Laravel 框架结构 以及目录文件解读(学习笔记)

composer下载Laravel 5.4(由于PHP版本仅7.0,故未下载5.6)

        composer create-project laravel/laravel your-project-name --prefer-dist "5.4.*"

        composer下载后已经生成APP_KEY,如果需要改变 使用命令 php artisan key:generate ,需要把php命令设置为全局

下面我们说说根文件夹下的几个文件和文件夹(storage 和 bootstrap/cache 目录应该允许写入)

   app 文件夹  包含了应用的核心代码,此外你为应用编写的代码绝大多数也会放到这里(详情可以看官网);

         bootstrap 文件夹包含了少许文件,用于框架的启动和自动载入配置,还有一个 cache 文件夹用于包含框架为提升性能所生成的文件,如路由和服务缓存文件;

   config 文件夹包含了应用所有的配置文件,建议通读一遍这些配置文件以便熟悉所有配置项;

   database 文件夹包含了数据迁移及填充文件,如果你喜欢的话还可以将其作为 SQLite 数据库存放文件夹;

   public 文件夹包含了入口文件 index.php 和前端资源文件(图片、JavaScript、CSS等);

   resources 文件夹包含了视图文件及原生资源文件(LESS、SASS、CoffeeScript),以及本地化语言文件;

   routes 文件夹包含了应用的所有路由定义。Laravel默认提供了三个路由文件:web.php、api.php和console.php。

     web.php 文件包含的路由都会应用web中间件组,具备Session、CSRF防护以及Cookie加密功能,如果应用无需提供无状态的、RESTful风格的API,所有路由都会定义在web.php文件。

    api.php 文件包含的路由应用了api中间件组,具备频率限制功能,这些路由是无状态的,所以请求通过这些路由进入应用需要通过token进行认证并且不能访问Session状态。

    console.php 文件用于定义所有基于闭包的控制台命令,每个闭包都被绑定到一个控制台命令并且允许与命令行IO方法进行交互,尽管这个文件并不定义HTTP路由,但是它定义了基于控制台的应用入口(路由)。

   storage 文件夹包含了编译过的Blade模板、基于文件的session、文件缓存,以及其它由框架生成的文件,该文件夹被细分为成app、framework和logs子文件夹,app文件夹用于存放应用要使用的文件,framework文件夹用于存放框架生成的文件和缓存,最后,logs文件夹包含应用的日志文件;

   storage/app/public 文件夹用于存储用户生成的文件,比如可以被公开访问的用户头像,要达到被访问的目的,你还需要在public文件夹下生成一个软连接 storage 指向这个文件夹。你可以通过 php artisan storage:link 命令生成这个软链接。

   tests 文件夹包含自动化测试,其中已经提供了一个开箱即用的PHPUnit示例;每一个测试类都要以 Test 开头,你可以通过 phpunit 或 php vendor/bin/phpunit 命令来运行测试。

   vendor文件夹包含所有Composer依赖,这个文件我们不要动,也不要修改里面的代码。

  .env文件(如没有,请复制一份.env.example改名为.env)

            上面说的app_key就在.env文件中,.env文件就是Laravel的配置文件,一看便懂, 同时和config文件夹下的database一起配合使用

APP_ENV=local APP_KEY=base64:Wt1CEnZTaB7kq82syINzBqHcNCXxXL7uY1KMEmW/23I= APP_DEBUG=true APP_LOG_LEVEL=debug APP_URL=http://localhost DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret BROADCAST_DRIVER=log CACHE_DRIVER=file SESSION_DRIVER=file QUEUE_DRIVER=sync REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 MAIL_DRIVER=smtp MAIL_HOST=mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null PUSHER_APP_ID= PUSHER_APP_KEY= PUSHER_APP_SECRET=

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyfsys.html