自从用 Laravel4做了个小网站,使用了数据库ORM Eloquent, 就放下了一段时间,想不到这个与Asp.net MVC 有着异曲同工之妙的框架已经出了下个版本,而且还有不小的改动,因此不得不从头过一次,顺便更新一下知识点。
下面内容摘自Laravel 5.0 系列, 目录结构和命名空间
Laravel从4升级到5 ,改变的不只是文件的组织方式,而且是思想上的重大转变。 废话不多说, 新版本的目录。
app
Console
Commands
Events
Exceptions
Http
Controllers
Auth
Middleware
Requests
Jobs
Listeners
Providers
bootstrap
cache
config
database
factories
migrations
seeds
public
resources
assets
lang
views
storage
app
framework
cache
sessions
views
logs
tests
vendor
如果 xxx 代表的是某个类, 或者可以写成一个类的话, 它应该放在 app/
下的某个地方. 如果 xxx 代表的是 Eloquent model, 它应该放在 app/
下的某个地方。如果 xxx 要通过 Web 服务器来处理发送给请求流(比如 Controllers 和 FormRequests), 它应该放在 app/Http
目录下。如果 xxx 要通过 CLI (命令行界面) 来处理请求, 它应该放在 app/Console
目录下。如果 xxx 在以前的版本中是放在 routes.php 文件中(但它不是一个路由定义), 或者是放在 start.php 文件中, 那么现在它应该写到某个 Service Provider 里。如果 xxx 是一个过滤器(filter), 它应该放在app/Http/Filters
目录里一个专属于它的类中。
如果 xxx 不属于上面的任何一种情况, 那么从目录结构就可以很清楚看出它应该放在哪里了。
默认情况下, 每个 Laravel 应用都有一个代表应用类的顶级命名空间, 一般来说这个命名空间是 "App", 它对应的着 app/
目录, 遵循 PSR-4 规范。
但你只要执行一个 artisan 命令, 可以很轻松地修改 "App/" 下所有实例的根命名空间。
比如新建了一个 Laravel 项目之后, 可以马上执行下面的 artisan 命令, 把根命名空间从 "App" 改为 "Confomo":
$ php artisan app:name Confomo
执行完这个命令之后, app/
目录下的所有类都被归入 "Confomo" 命名空间下下.composer.json
文件里的 PSR-4 自动加载语句会自动更新, Laravel 也清楚应该在哪里去寻找该命名空间下的 filters, controlers 等。下下
composer.json
文件里的 PSR-4 自动加载语句会自动更新, Laravel 也清楚应该在哪里去寻找该命名空间下的 filters, controlers 等。