我应该在哪里保留自动加载类和路由器类?
据我所知,路由器类不是设计模式的一部分,所以我应该将它存储在一个文件夹中,比如facade
,然后我应该把它保存在哪里?
另外,自动加载类怎么样,它不是任何设计模式的一部分?我应该把它放在哪里呢?
所有php框架都保留这两个类?我尝试在Laravel,CakePHP,Zend Framework等中寻找它们,以获得应该保留它们的一些想法,但我在这些框架中找不到它们。有什么想法吗?
路由器类,
class Router
{
...
}
autoload class,
class Autoloader
{
...
// spl_autoload_register(array($this, 'load'));
}
答案 0 :(得分:1)
Cake Custom Router Class:http://book.cakephp.org/2.0/en/development/routing.html#custom-route-classes
我在app / Vendor / autoload.php中有Autoload,它实际上是由Composer创建的app / Vendor / Composer / autoload_real.php的链接。信息在这里:http://book.cakephp.org/2.0/en/installation/advanced-installation.html#installing-cakephp-with-composer
如果您正在编写完全自定义的自动加载,我认为您还可以合理地创建/ app / Autoload /并在此处添加。我为事件做了类似的事情 - 创建/ app / Event / .. - 它遵循Cake的文件结构的惯例并且运行良好。我不知道Cake文档中用于创建自定义自动加载类的任何指定方法。
有关在此处加载课程的更多信息:http://book.cakephp.org/2.0/en/core-utility-libraries/app.html#loading-classes
答案 1 :(得分:1)
好吧,让我们采取现代的方法。现在没有一个框架需要自动加载器。只需按照psr-4(或psr-0,如果你愿意)标准自动加载php类。始终使用composer自动加载您的文件和依赖项。
假设您需要为自定义项目自动加载所有类。您的所有课程都在App目录中。你怎么做呢?在你的composer.json文件中
"autoload": {
"psr-4": {
"MyAppName\\" : "App"
}
}
现在,如果您按照psr-4并要求" vendor / autoload.php"在任何文件中,所有类都将在需要时自动加载。
希望我能回答你的问题。如果需要,可以使用composer的use classmap。