0

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

例如这个函数

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

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

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

4

2 回答 2

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);

ETC

请参阅https://github.com/dereuromark/tools/blob/master/Lib/Utility/Utility.php 及其真实场景/示例的测试用例。

别忘了写一些测试用例。

于 2013-07-03T13:10:52.523 回答
-3

在您的 AppContoller.php 中创建此函数,例如

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

在任何控制器中调用它

$str = "anything";
$your_output = $this->__replaceDashes($str);

或者

您可以制作自己的组件。

于 2013-07-03T12:49:27.580 回答