想要创建自定义功能

时间:2013-07-03 12:45:14

标签: cakephp cakephp-2.0 cakephp-2.1

我正在开发一个CakePHP 2.x ..我想创建一个特殊的类,我想在其中创建函数,以便我可以从其他控制器调用函数。

例如此功能

function replace_dashes($string) {
   $string = str_replace("-", " ", $string);
  return $string;
     } 

因此,每当我想在其他控制器中使用该函数时,我可以调用它或者也可以传递参数......

我想在某些类中实现这样的所有原始函数。我怎么能在CakePHP中做到这一点?

2 个答案:

答案 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

您可以制作自己的组件。