Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.2k views
in Technique[技术] by (71.8m points)

how to use common function in helper and component In Cakephp

We are familiar with Components and Helpers in CakePHP.

I have an ABC Component and XYZ helper and both have same function (around 2000 lines total 4000 lines). there is any way to use same function in Controller and .CTP files. it's not good to use same function 2 time.

any method so i can use Component/Helper function in Helper/Component without rewrite ?

same method into component and helper >>

Component

class DATAComponent extends Component {

public $components = array('Session', 'THmail');

public function UsaStateList()
{ /********/}

Helper

class LabHelper extends AppHelper {
    public function UsaStateList()
    { /********/}
}
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Well, you will have to rewrite something, it's not going to solve itself.

CakePHP is still PHP, so you can easily apply common patterns to keeps things DRY. The most straight forward way would probably be to move the shared functionality into an utility class that your component and helper can both use internally while leaving their public API unchanged.

Some of CakePHPs helpers do something similar, check for example the time helper.

Traits might be an option too, depending on the amount of functionality being shared and how much it is tied to the use in a component/helper.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...