zoukankan      html  css  js  c++  java
  • laravel5-目录结构分析

    laravel5-目录结构分析

      (2016-01-21 11:24:03)
       
    一.环境配置:
    $ lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description: Ubuntu 12.04.2 LTS
    Release: 12.04
    Codename: precise
     
    $ php -v
    PHP 5.4.45-3+deb.sury.org~precise+1 (cli) (built: Jan  7 2016 15:32:17) 
    Copyright (c) 1997-2014 The PHP Group
    Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
     
    $ php artisan --version
    Laravel Framework version 5.0.16
     
    二.laravel 文件目录
    $ composer create-project laravel/laravel example --prefer-dist
    $ $ tree -L 2
    .
    |-- app
    |   |-- Commands
    |   |-- Console
    |   |-- Events
    |   |-- Exceptions
    |   |-- Handlers
    |   |-- Http
    |   |-- Providers
    |   |-- Services
    |   `-- User.php
    |-- artisan
    |-- bootstrap
    |   |-- app.php
    |   `-- autoload.php
    |-- composer.json
    |-- composer.lock
    |-- config
    |   |-- app.php
    |   |-- auth.php
    |   |-- cache.php
    |   |-- compile.php
    |   |-- database.php
    |   |-- filesystems.php
    |   |-- mail.php
    |   |-- queue.php
    |   |-- services.php
    |   |-- session.php
    |   `-- view.php
    |-- database
    |   |-- migrations
    |   `-- seeds
    |-- gulpfile.js
    |-- package.json
    |-- phpspec.yml
    |-- phpunit.xml
    |-- public
    |   |-- css
    |   |-- favicon.ico
    |   |-- fonts
    |   |-- index.php
    |   `-- robots.txt
    |-- readme.md
    |-- resources
    |   |-- assets
    |   |-- lang
    |   `-- views
    |-- server.php
    |-- storage
    |   |-- app
    |   |-- framework
    |   `-- logs
    |-- tests
    |   |-- ExampleTest.php
    |   `-- TestCase.php
    `-- vendor
        |-- autoload.php
        |-- bin
        |-- classpreloader
        |-- compiled.php
        |-- composer
        |-- danielstjules
        |-- dnoegel
        |-- doctrine
        |-- ircmaxell
        |-- jakub-onderka
        |-- jeremeamia
        |-- laravel
        |-- league
        |-- monolog
        |-- mtdowling
        |-- nesbot
        |-- nikic
        |-- phpdocumentor
        |-- phpspec
        |-- phpunit
        |-- psr
        |-- psy
        |-- sebastian
        |-- services.json
        |-- swiftmailer
        |-- symfony
        `-- vlucas
     
    51 directories, 31 files
     
    说明:
    laravel项目下主要文件夹:app、bootstrap、config、database、public、resources、storage、tests、vender;
    1.app
    包含了应用的核心代码;
     
    其中Console和Http文件提供了应用的主要结构程序API,HTTP协议和CLI虽然是两种与应用交互的机制,但实际上并不包含应用的逻辑关系;换句话说,它们仅仅是两种对应用发布命令的方式。Console文件中包含了所有Artisan命令,而Http文件夹包含了控制器(controllers)、中间件(middleware)和请求(requests);
     
    Commands文件夹,存放了对于应用的命令,Commands代表任务可以被你的应用队列,当然也包含任务可以被同步地运行到目前请求的业务声明周期中;
     
    Events文件夹,顾名思义,存放着事件的类;当然用类去表现事件不是必须的;然而,如果你选择使用它们,当你运用Artisan命令创建的时候,这个文件是默认位置;
     
    Handlers文件夹包含了和commands以及events相关的处理器(handler)类,Handler接受一个命令或事件,然后执行其逻辑;
     
    Services文件夹包含了大量的“helper”服务。例如Laravel内置的用于验证和创建新用户的Registrar服务。其他也可能是与外部API、度量系统或来自应用的集成数据想交互的服务;
     
    Exceptions包含了应用的异常处理程序,也是应用抛出异常的好地方;
     
    注意:
    1).app文件夹中的许多类都可以通过Artisan命令产生,如:
    $ php artisan list make
    Available commands for the "make" namespace:
     make:command      Create a new command class
     make:console      Create a new Artisan command
     make:controller   Create a new resource controller class
     make:event        Create a new event class
     make:middleware   Create a new middleware class
     make:migration    Create a new migration file
     make:model        Create a new Eloquent model class
     make:provider     Create a new service provider class
     make:request      Create a new form request class
     
    下图源自网上地址链接,供进一步补充:
    laravel5-目录结构分析

     
    2).命名空间
    应用默认的命名空间(namespace)为App;然后,你可以改变这一命名空间,通过简单的Artisan 命令(app:name),以与你的应用相匹配,例如,假设你的应用名为solar,你可以通过以下的命令实现:
    $ php artisan app:name solar
     
    2.bootstrap
    包含了一些应用启动时需要的文件;
     
    3.config
    包含应用的配置文件,完成更多业务上的需求,如应用系统配置、验证(模型、验证表)配置、缓存(存储方式)配置、编译(附加编译类、编译器提供者)配置、数据库(提取模式、默认数据库连接名、连接方式、迁移库表、Redis数据库)配置、文件系统(文件系统磁盘位置)配置、邮件(邮箱驱动程序、服务器主机地址/端口号、全局源地址、email加密协议、服务器用户名/密码、驱动程序系统位置、邮件伪装)配置、队列(默认队列驱动程序、队列连接方式、失败队列管理)配置、服务(第三方服务认证)配置、会话(默认会话驱动程序、会话生命周期、会话加密、会话文件位置、会话数据库连接/数据库表、会话清除概率、会话临时文件名/路径/域HTTPS临时文件)配置、视图(视图文件存储路径、编译视图文件路径)配置。
     
    4.database
    包含了数据迁移(migration)和填充(seeds);
     
    5.public
    包含了前端文件,即可以对外开放的资源(images,JavaScript,CSS,字体包等);
     
    6.resources
    包含了视图相关的文件,一些原始的如LESS、SASS、ConffeeScript、语言包文件等;
     
    7.storage
    包含了已编译的blade模板、会话文件、文件缓存、log文件以及其他框架产生的临时文件,该目录需要可写权限;
     
    8.tests
    包含了自动测试文件;
     
    9.vender
    包含Composer命令相关管理文件,包含了许多PHP相关的app应用程序;
  • 相关阅读:
    【BZOJ4945&&UOJ317】游戏(2-sat,拓扑序)
    【Hihocoder1636】Pangu and Stones(区间DP)
    【BZOJ1579】Revamping Trails(分层图,最短路,堆)
    【NOIP2017】逛公园(最短路图,拓扑排序,计数DP)
    【HDOJ6218】Bridge(线段树,set,网格图,连通性)
    【BZOJ1018】堵塞的交通traffic(线段树,网格图,连通性)
    【HDOJ6217】BBP Formula(公式)
    【HDOJ6224】Legends of the Three Kingdoms(概率DP)
    152.图论
    151.函数
  • 原文地址:https://www.cnblogs.com/duanweishi/p/6122147.html
Copyright © 2011-2022 走看看