欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

Laravel是怎么和workbench的composer包兼容的?

程序员文章站 2022-06-14 08:54:32
...
据我所知 composer是不能加载多vendor目录的

但是我看到很多laravelworkbench都可以加载自己vendor文件

然后通过laravelphp artisan dump-autoload命令加载进来. 我不是很了解laravel的机制.

想请laravel的高手解答下!!谢谢

回复内容:

据我所知 composer是不能加载多vendor目录的

但是我看到很多laravelworkbench都可以加载自己vendor文件

然后通过laravelphp artisan dump-autoload命令加载进来. 我不是很了解laravel的机制.

想请laravel的高手解答下!!谢谢

首先,这个事情跟 Laravel 基本没有关系。

为什么很多人在用了 Laravel 之后发现 Laravel 有好多新特性,是因为市面上的代码、框架都 积重难返,很多 PHP 高手都已经习惯了 PHP4 时代强大的函数和习惯用法,对 PHP 的面向对象新特性又喜欢又不想用,所以当 Taylor Otwell 这个 .NET 程序员看着 PHP 官方文档发明了 Laravel 的时候,大家都惊呆了,PHP 还能这样写!

所以并不是 Laravel 强大,而是 PHP 本身就是非常强大,只是以前没人这样用而已。其实话说回来,PHP 本身的语言特性反而是严谨古板的,没法像 Ruby 那样非常容易地就可以做出一个 DSL(领域特定语言)。

PHP 的文件加载机制是非常简单和*的,就是 include 'fuck.php';,背后的逻辑也是简单地把 fuck.php 里的代码拷贝过来放到这里。

为了更方便地引入其他文件,PHP 引入了 自动加载,官方文档在:http://php.net/manual/zh/language.oop5.autoload.php

自动加载的逻辑也非常简单,就是维护一张表,上面写着哪个类在哪个文件里,方便 PHP 解释器去 include 它。依赖 Composer 的系统通过 include /vendor/autoload.php 这个文件来维护这张表。这个表可以手动维护。

Laravel 同时支持 psr-0psr-4 自动加载规范,他们的文档在 http://www.php-fig.org/ 右下角。


针对这个问题,是因为 workbench 这个包修改了 类->文件 的对应表,增加了几行。