尝试按照本书(http://book.cakephp.org/3.0/en/development/routing.html#generating-urls)使用$url = Router::url(...);
,我可以通过将use Cake\Routing\Router;
添加到我的控制器来使其工作,但我觉得必须有更容易/更好的方式,我记得有人提到永远不会通过Class::function()
调用函数。
通过进一步的研究(从不停止寻找),它似乎只是一个类的东西。
use Cake\Routing\Router;
$routes = new Router();
$url = $routes->url(...);
使用Class的静态(?)函数最好是实例化Class还是只使用Router :: url()?
答案 0 :(得分:2)
使用Class的静态(?)函数最好是实例化Class还是只使用Router :: url()?
url()是Router类的公共静态方法。在PHP中调用它的正确方法是Router :: url(...)(使用范围解析运算符::)。
我记得有人提到永远不会通过Class :: function()来调用函数。
如果你能找到它,我有兴趣听听他或她的推理。
如果他或她意味着范围解析运算符不是访问静态方法的最佳方式,那么他或她就错了。就PHP man而言,范围解析运算符是从类上下文外部访问公共静态方法的正确方法:Scope Resolution Operator。