在前面的章节中我们讲解过如何在 Laravel框架中建立后台文件夹.
php Laravel 框架之建立后台文件夹
现在我们再添加一块内容.是关于自动加载的部分.
在我们app目录中还有个start目录.它里面这样写道:
In addition to using Composer, you may use the Laravel class loader to
load your controllers and models. This is useful for keeping all of
your classes in the "global" namespace without Composer updating.
我翻译一下:除了使用Composer,你还可以使用Laravel的类加载器来加载你的控制器和模型.
这对于让你的类在不使用Composer updating 的情况下处于全局的名字空间中非常有用.
我们这里有一个code fragment
ClassLoader::addDirectories(array(
app_path().'/commands',
app_path().'/controllers',
//app_path().'/controllers/admin',
app_path().'/models',
app_path().'/database/seeds',
));
对,很熟悉,这些文件夹都是我们经常用到的文件夹,控制器,命令.模型,数据库种子
这些文件夹中的内容就是可以自动加载到全局名字空间中的.
但是还多了一个我注释的内容.这个内容的目的是干什么呢..
就是让我们controllers目录中的admin中的控制器也同样具有全局的名字空间.这样我们就可以直接在路由表中通过
我们的控制器名字来接收了.
我测试了一下,确实成功了,而不再需要compoer dumpautoload
但是还是有个问题,如果admin文件夹中有一个控制器和外面的名字相同该怎么办?
我也同样做了一个实验,最终发现,它只会选择其中之一,至于到底选择哪一个,就看我们上面的那个加载的顺序了.
如果是
app_path().'/controllers',
app_path().'/controllers/admin',
那么外部的控制器有效,否则的话,admin文件夹里面的控制器有效.
结合之前写的这么多.其实最保险,也高大上的方法就是使用 名字空间.
但是编写起来也会更加复杂一点咯...小项目可以考虑我们的方法.大不了注意一下,别让这些控制器冲突就好了.
又不是没办法控制.对吧.
Do one thing at a time,and do well.
Best Wishes.

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3汉化版
中文版,非常好用

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

SublimeText3 Linux新版
SublimeText3 Linux最新版

WebStorm Mac版
好用的JavaScript开发工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),