>백엔드 개발 >PHP 튜토리얼 >Laravel是怎么和workbench的composer包兼容的?

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

WBOY
WBOY원래의
2016-06-06 20:39:33817검색

据我所知 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 这个包修改了 类->文件 的对应表,增加了几行。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.