Laravel的目录结构分析
根目录结构
/app
/bootstrap
/public
/vendor
artisan
composer.json
server.php
1./app
整个Laravel 目录中最需要我们注意的地方,包含设置(config)、路由(routing)、MVC 模型的三大模块都在这里,项目的主要代码工作都在这个目录下完成。
2./bootstrap
这个目录主要是用来存放所有的第三方代码,包括框架函数源码(/vendor/laravel)、插件和扩展等。
3./public
这个目录是网站的访问入口,请求都会进入 index.php ,同时存放所有对外开放的资源目录,如 css、javascript 以及图片等等皆被存放在此。
4./vendor
这个目录主要是用来存放所有的第三方代码,包括框架函数源码(/vendor/laravel)、插件和扩展等。
5.artisan
工匠指令,这是 Laravel 框架里的命令行工具。
6.composer.json
该文件是应用的配置文件,描述了应用的相关信息,如名称、版本、许可证书等,同时也写明了应用启动时会自动加载某些文件夹或文件,见"autoloand",所以
当你需要在 controller 或者 model 添加子目录时可以在 autoload 的 classmap 处申明;也允许你申明应用所需的依赖库进而会在项目里帮你安装依赖库;
7.server.php
该文件其实是给php内置的服务器用的,当使用 php -S localhost:9999 server.php 开启内置服务器的时候,就会使用server.php做了部分url兼容的工作,往地址栏输入:localhost:9999即可打开项目主页。
而在laravel项目的目录下敲命令:php artisan serve,会默认打开端口8000,此时输入http://localhost:8000,可打开laravel项目的主页。
不过需将/app/storage设置为可读写。
Application 目录结构
/config
/controllers
/databases
/lang
/models
/start
/storage
/tests
/views
filters.php
routes.php
1./config
虽然 Laravel 程序在一开始的使用可以不做任何设置,但我们肯定还需要更多的设置来完成业务上的需求,所有的设置都放在这个目录中。
2./controllers
这个目录放 MVC 模型中的控制器(controller) 。
3./database
/migrations/:包含一些PHP类,允许Laravel更新当前数据库的架构并同时保持所有版本的数据库的同步。迁移文件是使用Artisan工具生成的。
/seeds/: 包含允许Artisan工具用关系数据来填充数据库表的PHP文件。
4./lang
语言目录,Laravel 框架的语系采用文字格式,先用目录做各语系的分别,再依所需要的文件来存放,默认是英文(“en”)。
转换语言的方法是 config 目录下的 application.php 文件中的language ,设定值与语言文件夹名相同即可。
5./models
MVC 模型中的 M,就是我们的业务逻辑(business logic),基本上就是定义了我们要从数据库中取出的内容、通过 web service 要传出的内容等。
原则上,也是搭配著 Laravel 框架中 Eloquent ORM 对数据库进行存取,包含在 auto-loading 之中。
6./start
包含与 artisan 工具、global(不限定本地环境,无论处于什么环境都会加载里面的内容)和 locale 上下文相关的启动文件,应用响应请求时会加载这些文件。
7./storage
存储 Laravel 各种服务的临时文件,如session、cache、log、views等,必须保证可以写入,由 Laravel 自己维护。
8./tests
Laravel 框架整合了 PHPUnit ,方便我们对专门的程序进行单元测试,所以我们可以直接參考PHPUnit 文件来编写单元测试,在全新的文件目录中含有 example.test.php 的基本范例。可以使用artisan工具一次性执行所有的测试。
9./views
HTML 的模板(template),也就是 MVC 模型中的 V。而模板除了原始的 HTML 格式外,Laravel 框架提供了 Blade Template Engine ,让我们可以用比较简洁的方式编写模板文件,而这些文件只要的扩展名改为 .blade.php ,例如 index.blade.php,模板引擎就会自动帮我们编译了,想要了解更多的內容,说明文件 – Blade Template Engine 中有详细介绍。
10.filters.php
该文件包含应用程序的筛选方法和一些过滤器,为程序使用。Laravel具有访问控制和 XSS 保护的一些预定义筛选器。
11.routes.php
路由设置,接收请求,再根据我们的设定调用相应的程序进行回应。若是请求不存在或请求失败则返回 404 或 500 的错误回应。
Laravel的目录结构分析的更多相关文章
- Laravel项目目录结构说明
Laravel项目目录结构说明: |- vendor 目录包含你的 Composer 依赖模块及laravel框架. |- bootstrap 目录包含几个框架启动跟自动加载配置的文件. |- app ...
- Android项目目录结构分析
Android项目目录结构分析 1.HelloWorld项目的目录结构1.1.src文件夹1.2.gen文件夹1.3.Android 2.1文件夹1.4.assets 1.5.res文件夹1.6.An ...
- phpcms v9框架的目录结构分析
phpcms v9框架的目录结构分析: 了解v9框架的目录结构,有助于帮助我们快速建立起对v9框架的一个整体认识 打开"mycms"项目,有如下文件和目录 使用 ...
- Laravel笔记目录
一.MVC 1.路由 2.控制器与视图 3.控制器与路由的绑定 4.中间件 二.模式与数据库 1.数据库迁移 2.填充测试数据 3.ORM入门 4.分页 三.Laravel的生命周期 1.Larave ...
- 手机自动化测试培训:appium目录结构分析
手机自动化测试培训:appium目录结构分析 移动端的自动化测试越来越普遍,poptest率先退出移动端自动化测试的课程,以appuim的python脚本版本作为授课基础,后期陆续退出java版本 ...
- Django目录结构分析
Django目录结构分析: Django的Linux项目目录记录 [root@cmdb Django]# tree mysite mysite ├── cmdb │ ├── admin.py # ...
- Vue 目录结构分析 数据绑定 绑定属性 循环渲染数据 数据渲染
一.目录结构分析 node_modules 项目所需要的各种依赖 src 开发用的资源 assets 静态资源文件 App.vue 根组件 main.js 配置路由时会用 .babelrc 配置文件 ...
- vue2.* 目录结构分析 数据绑定 循环渲染数据 数据渲染02
一.目录 结构分析 node_modules:项目依赖文件(也可以说是模块) src:开发时所用的资源 assets:静态资源文件 App.vue:根组件(最基础的公共页面) main.js:实例化v ...
- ionic小白的学习路之目录结构分析、创建组件、创建页面、页面跳转
一. 目录结构分析 hooks:编译cordova 时自定义的脚本命令,方便整合到我们的编译系统和版本控制系统中. node_modules :node 各类依赖包. resources :andro ...
随机推荐
- Promise,Generator(生成器),async(异步)函数
Promise 是什么 Promise是异步编程的一种解决方案.Promise对象表示了异步操作的最终状态(完成或失败)和返回的结果. 其实我们在jQuery的ajax中已经见识了部分Promise的 ...
- xcode调试查看变量的值
对于IPhone开发/XCode的初学者,如何在调试时查看变量的值是很头痛的事情.因为Xcode的expression 经常无法正确显示变量的值.但是强大的GDB可以很方便的帮我们查看变量的值. 当执 ...
- java基础之static(静态)
静态的属性.方法等属于类而不是对象. 静态的方法能够由类直接调用,不须要将类实例化. 本篇主要说明:1.态的代码.成员变量要比构造方法先运行. 2. 子类的构造方法会默认去调用父类的不带參数的构造方法 ...
- 每天一个linux命令-wc命令
语法:wc [选项] 文件… 说明:该命令统计给定文件中的字节数.字数.行数.如果没有给出文件名,则从标准输入读取.wc同时也给出所有指定文件的总统计数.字是由空格字符区分开的最大字符串. 该命令各选 ...
- 绝望的主妇第八季/Desperate Housewives迅雷下载
绝望的主妇 第七季 Desperate Housewives Season 8(2011) 本季看点:曾经在<主妇>中有过重要演出的达娜·德拉尼(Dana Delany), 凯尔·麦克拉克 ...
- Android应用icon和闪屏splash的尺寸
icon (尺寸为px) 目录 尺寸 (width * height) drawable 72 x 72 drawable-hdpi 72 x 72 drawable-ldpi 36 x 36 dra ...
- versionCode溢出的问题
android应用的版本主要由versionCode和versionName来决定,android系统是根据versionCode来验证新的apk是否能安装.如果已安装高版本的应用,就无法使用覆盖安装 ...
- Log stash学习笔记(一)
Logstash是一款开源的数据收集引擎,具备实时管道处理能力.简单来说,logstash作为数据源与数据存储分析工具之间的桥梁,结合 ElasticSearch以及Kibana,能够极大方便数据的处 ...
- Orchard模块开发全接触8:改造后台
后台默认提供了 Content 的管理,但是,所有的内容类型揉杂在一起,而我们需要更深度的定制一些功能,比如,我们只想管理订单,又比如,我们需要对注册用户进行管理.本篇的内容包括: 1:自定义 adm ...
- 02 如何创建线程 线程并发与synchornized
所有程序运行结果 请自行得出 创建线程方式一:继承Thread类 步骤: 1,定义一个类继承Thread类. 2,覆盖Thread类中的run方法. 3,直接创建Thread的子类对象创建线程. 4, ...