图 1.1 显示了 Laravel 项目目录结构是什么样子:

图1.1 Laravel 项目目录结构

  就如你看到这样,laravel下面只包含了4个文件夹,这4个文件夹下面有一些子文件夹,这种丰富的子文件夹在第一次看到是不是有压力?我会逐个介绍。我们大部分的开发工作都会在app/文件夹下面进行。

  下面是各个文件夹和文件的基本介绍:

顶级文件夹

作用

app

包含了站点的controllers(控制器),models(模型),views(视图)和assets(资源)。这些是网站运行的主要代码,你会将你大部分的时间花在这些上面。

bootstrap

用来存放系统启动时需要的文件,这些文件会被如index.php这样的文件调用。

public

这个文件夹是唯一外界可以看到的,是必须指向你web服务器的目录。它含有laravel框架核心的引导文件index.php,这个目录也可用来存放任何可以公开的静态资源,如css,Javascript,images等。

vendor

用来存放所有的第三方代码,在一个典型的Laravel应用程序,这包括Laravel源代码及其相关,并含有额外的预包装功能的插件。

  正如上面提到的,/app是所有的乐趣产生的地方,让我们更深入的看看这个目录的结构。

  图 1.2 显示/app文件夹的详细信息:

图1.2 app 文件夹详细信息

  下面是详细介绍:

文件的文件夹

作用

/app/config/

配置应用程序的运行时规则、 数据库、 session等等。包含大量的用来更改框架的各个方面的配置文件。大部分的配置文件中返回的选项关联PHP数组。

/app/config/app.php

各种应用程序级设置,即时区、 区域设置(语言环境)、 调试模式和独特的加密密钥。

/app/config/auth.php

控制在应用程序中如何进行身份验证,即身份验证驱动程序。

/app/config/cache.php

如果应用程序利用缓存来加快响应时间,要在此配置该功能。

/app/config/compile.php

在此处可以指定一些额外类,去包含由‘artisan optimize’命令声称的编译文件。这些应该是被包括在基本上每个请求到应用程序中的类。

/app/config/database.php

包含数据库的相关配置信息,即默认数据库引擎和连接信息。

/app/config/mail.php

为电子邮件发件引擎的配置文件,即 SMTP 服务器,From:标头

/app/config/session.php

控制Laravel怎样管理用户sessions,即session driver, session lifetime。

/app/config/view.php

模板系统的杂项配置。

/app/controllers

包含用于提供基本的逻辑、 数据模型交互以及加载应用程序的视图文件的控制器类。

/app/database/migrations/

包含一些 PHP 类,允许 Laravel更新当前数据库的架构并同时保持所有版本的数据库的同步。迁移文件是使用Artisan工具生成的。

/app/database/seeds/

包含允许Artisan工具用关系数据来填充数据库表的 PHP 文件。

/app/lang/

PHP 文件,其中包含使应用程序易于本地化的字符串的数组。默认情况下目录包含英语语言的分页和表单验证的语言行。

/app/models/

模型是代表应用程序的信息(数据)和操作数据的规则的一些类。在大多数情况下,数据库中的每个表将对应应用中的一个模型。应用程序业务逻辑的大部分将集中在模型中。

/app/start/

包含与Artisan工具以及全球和本地上下文相关的自定义设置。

/app/storage/

该目录存储Laravel各种服务的临时文件,如session, cache,  compiled view templates。这个目录在web服务器上必须是可以写入的。该目录由Laravel维护,我们可以不关心。

/app/tests/

该文件夹给你提供了一个方便的位置,用来做单元测试。如果你使用PHPUnit,你可以使用Artisan工具一次执行所有的测试。

/app/views/

该文件夹包含了控制器或者路由使用的HTML模版。请注意,这个文件夹下你只能放置模版文件。其他的静态资源文件如css, javascript和images文件应该放在/public文件夹下。

/app/routes.php

这是您的应用程序的路由文件,其中包含路由规则,告诉 Laravel 如何将传入的请求连接到路由处理的闭包函数、 控制器和操作。该文件还包含几个事件声明,包括错误页的,可以用于定义视图的composers。

/app/filters.php

此文件包含各种应用程序和路由筛选方法,用来改变您的应用程序的结果。Laravel 具有访问控制和 XSS 保护的一些预定义筛选器。

  花了很多心思在建立和命名文件夹上,得到的就是一个具有良好的文件系统的应用程序。

laravel 目录结构的更多相关文章

  1. laravel5.4学习--laravel目录结构

    Laravel目录结构分析 app目录:主要是存放自己开发的应用代码(里面主要书写 控制器和模型和路由文件) bootstrap目录:laravel启动目录 config目录:主要是存放配置文件信息 ...

  2. laravel目录结构

  3. Laravel项目目录结构说明

    Laravel项目目录结构说明: |- vendor 目录包含你的 Composer 依赖模块及laravel框架. |- bootstrap 目录包含几个框架启动跟自动加载配置的文件. |- app ...

  4. Laravel 5.2 一、安装与目录结构

    一.Laravel 安装 这里选择通过 Composer 的 create-project 命令来安装 Laravel 应用. composer create-project laravel/lara ...

  5. Laravel 目录结构分析

    根目录结构 /app/bootstrap/public/vendorartisancomposer.jsonserver.php 1./app 整个Laravel 目录中最需要我们注意的地方,包含设置 ...

  6. thinkcmf安装教程与目录结构详解 快速上手版

    最近接了一个建站项目,要求用thinkcmf来搭建,ytkah在想php都大致一样吧,快速地下载安装包,可是!怎么安装呢?没看到安装指引文件或目录,查看了安装说明public目录做为网站根目录,入口文 ...

  7. Laravel5.1 目录结构解析

    学习一门框架,首先要了解的就是目录结构.对目录结构清晰就可以着手学习了~这里不作新特性的介绍,权当目录结构手册看吧.若发现有何不恰当的地方请联系我哦~注:写本文时参照的是5.1.4版本 目录或文件 说 ...

  8. Laravel5.1 学习笔记1, 目录结构和命名空间(待修)

    自从用 Laravel4做了个小网站,使用了数据库ORM Eloquent, 就放下了一段时间,想不到这个与Asp.net MVC 有着异曲同工之妙的框架已经出了下个版本,而且还有不小的改动,因此不得 ...

  9. 黑马lavarel教程---1、lavarel目录结构

    黑马lavarel教程---1.lavarel目录结构 一.总结 一句话总结: 一套视频讲的东西太少,要看多套视频 1.安装lavarel需要额外开启的模块? extension=php_filein ...

随机推荐

  1. iOS:crash崩溃日志分析

    一.前言: 作为一个合格的iOS开发者,除了具有规范强悍的编码能力外,还应该具有过硬的查错纠错能力.在项目运行时,程序崩溃是不可避免的,遇到这个问题,有时会出现一大堆的crash日志,艹,貌似看不懂呀 ...

  2. saltstack之(十二)配置管理mount

    线上很多服务器都需要挂载存储上的公共目录,并实现开机启动(/etc/fstab),比如web的静态文件共享目录,日志远程集中收集等. 一.批量挂载部分. 1.在node1上配置nfs服务器,有关nfs ...

  3. 一个由INode节点爆满引起的业务故障

    一个由INode节点爆满引起的业务故障 http://2358205.blog.51cto.com/2348205/1747951 好久没有写博文了,今天周六,分享一下刚刚处理完的一个小故障 现象描述 ...

  4. Xib的使用与File'Owner总结

    Xib的使用与File'Owner总结 一.XIB的适用范围 xib(也叫Nib)与storyboard一样是用来描述界面的. storyboard描述的是比较大型的,大范围.适合描述界面跳转等. 二 ...

  5. PLSQL 的简单命令之四

    -- 子查询 -- in 等于表中的任意一个 select * from Stu where id in (select id from scores) -- 和子查询返回结果中的某一个值比较成立即可 ...

  6. RAC object remastering ( Dynamic remastering )

    RAC环境中,每个数据块都被一个instance所管控(mastered),管控数据块的instance被称作主实例(master instance).管控数据块就是说主实例(master insta ...

  7. Java堆

    1. Java堆的内存是由操作系统分配给JVM的内存部分. 2. Java的对象是在堆中创建 3. Java堆空间为了垃圾回收分为三个区域或代,叫做新代,年老代和永久代.在Hotspot JVM中永久 ...

  8. C++Primer 第十一章

    //1.关键容器支持高效的关键字查找和访问. map 关联数组:保存关键字-值对.通过关键字来查找值. set 关键字即值,即只保存关键字的容器. multimap 关键字可重复出现的map mult ...

  9. Adobe Flash CC 安装报错的解决办法

    安装FlashCC的时候莫名的报错 ---------------------------Flash.exe - 应用程序错误---------------------------应用程序无法正常启动 ...

  10. nyist 673 悟空的难题

    http://acm.nyist.net/JudgeOnline/problem.php?pid=673 悟空的难题 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 ...