据我所知 composer
是不能加载多vendor
目录的
但是我看到很多laravel
的workbench
都可以加载自己vendor
文件
然后通过laravel
的php artisan dump-autoload
命令加载进来. 我不是很了解laravel
的机制.
想请laravel
的高手解答下!!谢谢
回复内容:
据我所知 composer
是不能加载多vendor
目录的
但是我看到很多laravel
的workbench
都可以加载自己vendor
文件
然后通过laravel
的php 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-0
和 psr-4
自动加载规范,他们的文档在 http://www.php-fig.org/ 右下角。
针对这个问题,是因为 workbench 这个包修改了 类->文件
的对应表,增加了几行。

APHPDependencyInjectionContainerisatoolthatmanagesclassdependencies,enhancingcodemodularity,testability,andmaintainability.Itactsasacentralhubforcreatingandinjectingdependencies,thusreducingtightcouplingandeasingunittesting.

Select DependencyInjection (DI) for large applications, ServiceLocator is suitable for small projects or prototypes. 1) DI improves the testability and modularity of the code through constructor injection. 2) ServiceLocator obtains services through center registration, which is convenient but may lead to an increase in code coupling.

PHPapplicationscanbeoptimizedforspeedandefficiencyby:1)enablingopcacheinphp.ini,2)usingpreparedstatementswithPDOfordatabasequeries,3)replacingloopswitharray_filterandarray_mapfordataprocessing,4)configuringNginxasareverseproxy,5)implementingcachingwi

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl

TomakePHPapplicationsfaster,followthesesteps:1)UseOpcodeCachinglikeOPcachetostoreprecompiledscriptbytecode.2)MinimizeDatabaseQueriesbyusingquerycachingandefficientindexing.3)LeveragePHP7 Featuresforbettercodeefficiency.4)ImplementCachingStrategiessuc

ToimprovePHPapplicationspeed,followthesesteps:1)EnableopcodecachingwithAPCutoreducescriptexecutiontime.2)ImplementdatabasequerycachingusingPDOtominimizedatabasehits.3)UseHTTP/2tomultiplexrequestsandreduceconnectionoverhead.4)Limitsessionusagebyclosin

Dependency injection (DI) significantly improves the testability of PHP code by explicitly transitive dependencies. 1) DI decoupling classes and specific implementations make testing and maintenance more flexible. 2) Among the three types, the constructor injects explicit expression dependencies to keep the state consistent. 3) Use DI containers to manage complex dependencies to improve code quality and development efficiency.

DatabasequeryoptimizationinPHPinvolvesseveralstrategiestoenhanceperformance.1)Selectonlynecessarycolumnstoreducedatatransfer.2)Useindexingtospeedupdataretrieval.3)Implementquerycachingtostoreresultsoffrequentqueries.4)Utilizepreparedstatementsforeffi


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

SublimeText3 Chinese version
Chinese version, very easy to use

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

Dreamweaver Mac version
Visual web development tools
