如何完全理解 Laravel 框架?

Posted

技术标签:

【中文标题】如何完全理解 Laravel 框架?【英文标题】:How to understand Laravel framework completely? 【发布时间】:2016-04-20 20:05:50 【问题描述】:

我已经完成了 Laravel 初学者教程,现在我可以理解这些教程中列出的每个主题并创建了我自己的项目,但是正如我在那些教程中看到的那样,导师能够理解每个文件的用途和内容能够根据需要对其进行编辑和更改。

那么他们是如何如此深入地学习的,又是从哪个来源学习的呢?

【问题讨论】:

看laracasts.com肯定在laravel.com/docs 他们阅读文档,最重要的是阅读源代码。由于使用了命名空间,Laravel 框架的源代码非常易于浏览。了解使用什么以及代码库如何工作的最简单方法是阅读源代码。 来源,你的意思是指laravel文件夹中的所有文件,对吧? @rranj -- 我的意思是在 github 上浏览适当的版本标签,看看它是如何工作的。那,结合 Laracasts 和阅读 laravel 文档,你应该为在框架中工作打下坚实的基础。通过阅读,我并不是说像一本书一样从头到尾阅读。在您开发时,请查看您正在使用的类上可用的方法。 学习没有捷径。继续在其中构建东西,浏览文档,甚至是 GitHub 上的源代码。 【参考方案1】:

我将尝试简要介绍Laravel Official Documentation 所说的内容

根目录

在每个 Laravel 项目的根目录中,您可以找到以下目录:

正如您所料,app 目录包含应用程序的核心代码。模型、控制器、服务、中间件都存储在这里。

bootstrap 文件夹包含一些引导框架和配置自动加载的文件,以及一个缓存文件夹,其中包含一些用于引导性能优化的框架生成文件。通常你不需要触摸这个文件夹。

config 目录,顾名思义,包含应用程序的所有配置文件。您必须在此处设置数据库连接、电子邮件驱动程序、会话存储配置(等等)。

database 文件夹包含您的数据库迁移和种子。如果你愿意,你也可以使用这个文件夹来保存一个 SQLite 数据库。迁移允许您在不编写任何 SQL 代码的情况下定义您的数据库。如果您对数据库结构的版本控制感兴趣,这将非常有用。 See more info here

public 目录包含前端控制器和您的资产(图像、javascript、CSS 等)。

resources 目录包含您的视图、原始资产(LESS、SASS、CoffeeScript)和本地化文件。默认情况下,视图使用名为刀片的视图引擎,但您可以在 config 文件夹中更改它。

storage 目录包含已编译的 Blade 模板、基于文件的会话、文件缓存和框架生成的其他文件。此文件夹分为应用程序、框架和日志目录。 app 目录可用于存储应用程序使用的任何文件。框架目录用于存储框架生成的文件和缓存。最后,logs 目录包含应用程序的日志文件。

tests 目录包含您的自动化测试。开箱即用地提供了一个示例 phpUnit。

vendor 目录包含您的 Composer 依赖项和应用程序所需的库。通过 composer 安装的每个库都将存储在这里。

应用文件夹

app 文件夹包含应用程序的核心代码。该文件夹内有不同的目录,每个目录都有特定的用途:

app 目录附带各种附加目录,例如 Console、Http 和 Providers。将 Console 和 Http 目录视为为应用程序的“核心”提供 API。 HTTP 协议和 CLI 都是与应用程序交互的机制,但实际上并不包含应用程序逻辑。换句话说,它们只是向您的应用程序发出命令的两种方式。 Console 目录包含您的所有Artisan 命令,而 Http 目录包含您的controllers、middleware 和requests。您的应用程序的routes 也在此目录中定义。

正如您所料,Events 目录包含事件类。事件可用于提醒应用程序的其他部分发生了给定的操作,从而提供了很大的灵活性和解耦性。 Check this link for more info

Exceptions 目录包含应用程序的异常处理程序,也是粘贴应用程序抛出的任何异常的好地方。

Jobs 目录当然包含应用程序的可排队作业。作业可能由您的应用程序排队或在当前请求生命周期内同步运行。 There is more info here。

Listeners 目录包含事件的处理程序类。处理程序接收事件并执行逻辑以响应被触发的事件。例如,UserRegistered 事件可能由 SendWelcomeEmail 侦听器处理。

Policies 目录包含应用程序的授权策略类。策略用于确定用户是否可以对资源执行给定的操作。 More info here。

【讨论】:

以上是关于如何完全理解 Laravel 框架?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 迁移是如何工作的?

看了laravel的php框架怎么感觉很不靠谱

php中laravel框架的控制器如何获取路由传过来的可选参数?

如何使用 Laravel 框架的 validator

laravel服务容器-----深入理解控制反转(IoC)和依赖注入(DI)

对laravel框架的理解及认识(摘自百度)