我正在开发一个CakePHP 2.x ..我想创建一个特殊的类,我想在其中创建函数,以便我可以从其他控制器调用函数。
例如此功能
function replace_dashes($string) {
$string = str_replace("-", " ", $string);
return $string;
}
因此,每当我想在其他控制器中使用该函数时,我可以调用它或者也可以传递参数......
我想在某些类中实现这样的所有原始函数。我怎么能在CakePHP中做到这一点?
答案 0 :(得分:3)
并不难。只需在/ Lib中创建一个文件,最好使用像“Utility”这样的命名空间:
/Lib/Utility/Utility.php
并将您的方法放在那里:
class Utility {
public static function replaceDashes($string) { ... }
}
然后您可以在应用中的任何位置使用它:
//App::uses('ClassName', 'Package'); and our Package is the Folder "Utility" in /Lib
App::uses('Utility', 'Utility');
$result = Utility::replaceDashes($input);
等
参见https://github.com/dereuromark/tools/blob/master/Lib/Utility/Utility.php 以及它对现实场景/例子的测试用例。
不要忘记为其编写一些测试用例。
答案 1 :(得分:-3)
在AppContoller.php中创建此功能,如
public function __replaceDashes($string) {
$string = str_replace("-", " ", $string);
return $string;
}
在任何控制器中调用此方法,例如
$str = "anything";
$your_output = $this->__replaceDashes($str);
OR
您可以制作自己的组件。