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
 
下图源自网上地址链接,供进一步补充:

 
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应用程序;

最新文章

  1. 适配iOS 10以及Xcode 8(转载)
  2. 企业好助手U-Mail邮件服务器软件
  3. sdut 2163:Identifiers(第二届山东省省赛原题,水题)
  4. Android Handler练习
  5. 第二章 D - Number Sequence(1.5.10)
  6. Codeforces Round #337 (Div. 2) C. Harmony Analysis 数学
  7. 20150226--WebForm中GridView
  8. [iOS 10 day by day] Day 1:开发 iMessage 的第三方插件
  9. 【HDU 3483】 A Very Simple Problem (二项式展开+矩阵加速)
  10. 类和对象:一些相关的BIF - 零基础入门学习Python040
  11. Anniversary party(POJ 2342 树形DP)
  12. cocos2d-x 3.0游戏实例学习笔记《卡牌塔防》第七步---英雄要升级&属性--解析csv配置文件
  13. xcode UIButton创建、监听按钮点击、自定义按钮 、状态 、内边距
  14. tp下的memcached运用
  15. 初探JodaTime
  16. Dynamics CRM 给视图配置安全角色
  17. 剑指Offer 59. 按之字形顺序打印二叉树 (二叉树)
  18. java设计模式学习
  19. js基础梳理-究竟什么是变量对象,什么是活动对象?
  20. 4.update更新和delete删除用法

热门文章

  1. threeSum_0
  2. Spring AOP配置文件
  3. (基础篇) php中0与空 Null false的区别
  4. 时空上下文视觉跟踪(STC)算法的解读与代码复现(转)
  5. tyvj 1056 能量项链 区间dp (很神)
  6. codeforces 725/C
  7. 用 C# 在 Windows 7 中写注册表想到的
  8. What is Proguard?
  9. Android——不同activity之间数据传递
  10. STL学习小结