cakephp组件和帮助器打破了逻辑!我该怎么办?

时间:2012-11-26 16:03:16

标签: php class cakephp cakephp-2.0

我在视图和控制器中也有一个字符串操作类! 我看到那个蛋糕在组件和帮助器中重用了这种情况的代码,我认为这种情况打破了OOP逻辑(例如,Session-> read)!

我没有这样做,而是创建了一个我在StringsHelper和StringsComponent中导入的供应商类。然后,我创建了一个相同的函数,该函数实例化Vendor / String类并返回相应函数的结果。这不是完全继承,仍然是多余的,但如果我在我的课程中更改代码,它会随处变化。

有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

您无需在Helper或Component中包装此类。

您可以简单地使用静态方法创建一个类,并将其放入像Mark所提到的APP/Lib中。

<?php
class StringTool{

  public static function manipulate($string){
   ...
  }

}

然后在你需要的任何类中使用它,包括Component,Helper,Model等。

<?php
$s2 = StringTool::manipulate($s1);

答案 1 :(得分:0)

之前我问过同样的问题。最好的地方是在app / Libs中,您可以在其中放置一个具有静态帮助函数的类,可以在应用程序的任何位置使用,包括控制器和视图。

使用App::import('Lib', 'YourClass')

导入课程

CakePHP - Where is the best place to put custom utility classes in my app structure?