zoukankan      html  css  js  c++  java
  • Laravel的应用目录结构

    1.简介

    Laravel(本版本为5.4)作为一款开发框架自然和其他框架一样有自己的目录结构。并且Laravel的框架目录布置的尤其清晰,适用于各种类型的项目开发。我们要学习一个框架,最基本的肯定是要了解他的原理以及目录结构,知道MVC层各在什么地方,资源在什么地方,基层类在哪里,包括扩展等等。。。,接下来我们就来说一说这个目录结构的问题。

    2.根目录

    2.1app存放着应用的核心代码,包括我们熟知的MVC模式的M层和C层。

     2.1.1Console目录包含了Laravel所使用的所有Artisan命令,不熟悉Artisan的同学可以点击进行了解一下。app目录中的很多类都可以通过在终端使用命令直接生成包括我们熟悉的控制器和model类。

     2.1.2Events目录是放置事件类的地方,事件可以用于通知应用其他部分给定的动作已经发生,并且进行灵活的解耦处理。至于这个解耦我们在这暂时不提,你可以把它理解为一个纽带联系着但又不是很直接的把事件绑定在一起了。

     2.1.3Exception目录包含应用的异常处理器,同事还可以处理应用抛出的异常。

     2.1.4Http目录是重点目录,包含了控制器,过滤器和请求等。以及中间件Middleware和路由文件route.php。这里面的控制器和中间件包括model类都可以通过上面的artisan命令直接生成。

     2.1.5Jobs目录是放置队列任务的地方,应用中的任务可以被队列化,也可以在当前请求生命周期中同步执行。

     2.1.6Listeners目录包含事件的处理器类,处理器接收一个事件并且提供对该事件发生后的逻辑。

     2.1.7Policies目录存放一个git处理文件。

     2.1.8Providers目录包含一些空的处理。

     2.1.9route.php路由文件,请求通过路由调用中间件等经过M层传递到C层。

    2.2bootstrap目录包含了少许文件用于框架的启动和自动载入配置,还有一个cache文件夹用于包含框架生成的启动文件以提高性能;Laravel中的cache缓存机制特别厉害,可以对求求过得控制器都可以进行缓存。

    2.3config目录存放着框架中一系列配置文件,包括数据库(databases.php等),在这里要说明的是不要在这个databases.php文件中配置你的数据库信息,因为现在很多人会把自己的作品放在git上面共享。如果你在这个文件中配置数据库信息就可能会造成信息泄露或者被无聊的人当做攻击数据库的工具。laravel根目录中有个.env文件。你可以在这里进行数据库配置,当你上传git的时候会把这个文件过滤掉。git默认不显示该文件的。有效的保护了用户的信心安全。

    2.4public目录存放着框架的入口文件index.php以及存放一些资源等,比如说js,css,图片或者视频等。在这里提一下加入你没有对配置文件进行修改的话或者没有修改根目录下的server.php的时候你的项目的根目录记得要配置到public目录下。

    2.5resouces目录存放项目的前端页面,位置就在resources下面的views下,也就是MVC的V层。

    2.6 storage目录包含了编译过的Blade模板、基于文件的session、文件缓存,以及其它由框架生成的文件,该文件夹被隔离成app、framework和logs目录,app

    目录用于存放应用要使用的文件,framework目录用于存放框架生成的文件和缓存,最后,logs目录包含应用的日志文件;

    2.7tests目录包含了自动化测试,其中包含了一个可立即使用的PHPUntil实例。

    2.8Vendor目录是非常重要的一个目录,包含了Composer的依赖,也就是一些扩展以及框架的核心类的内容都在这里。

  • 相关阅读:
    王者齐聚!Unite 2017 Shanghai 日程讲师全揭晓
    微软在.NET官网上线.NET 架构指南频道
    期待微软平台即服务技术Service Fabric 开源
    Visual Studio 20周年软件趋势随想
    .NET 十五岁,谈谈我眼中的.NET
    API网关Ocelot 使用Polly 处理部分失败问题
    互联网背景下知识半衰期这么短,如何学习?
    CentOS 7 上面安装PowerShell
    搭建consul 集群
    Entity Framework Core 实现MySQL 的TimeStamp/RowVersion 并发控制
  • 原文地址:https://www.cnblogs.com/Y15965521559/p/13745686.html
Copyright © 2011-2022 走看看