正确使用CakePHP 3.x中的类

时间:2016-06-01 18:13:16

标签: php class cakephp

尝试按照本书(http://book.cakephp.org/3.0/en/development/routing.html#generating-urls)使用$url = Router::url(...);,我可以通过将use Cake\Routing\Router;添加到我的控制器来使其工作,但我觉得必须有更容易/更好的方式,我记得有人提到永远不会通过Class::function()调用函数。

通过进一步的研究(从不停止寻找),它似乎只是一个类的东西。

  1. 使用use Cake\Routing\Router;
  2. 加载班级
  3. 使用$routes = new Router();
  4. 实例化班级
  5. 使用Class实例调用函数$url = $routes->url(...);
  6. 使用Class的静态(?)函数最好是实例化Class还是只使用Router :: url()?

1 个答案:

答案 0 :(得分:2)

  

使用Class的静态(?)函数最好是实例化Class还是只使用Router :: url()?

url()是Router类的公共静态方法。在PHP中调用它的正确方法是Router :: url(...)(使用范围解析运算符::)。

  

我记得有人提到永远不会通过Class :: function()来调用函数。

如果你能找到它,我有兴趣听听他或她的推理。

如果他或她意味着范围解析运算符不是访问静态方法的最佳方式,那么他或她就错了。就PHP man而言,范围解析运算符是从类上下文外部访问公共静态方法的正确方法:Scope Resolution Operator