"php artisan dump-autoload" 和 "composer dump-autoload" 有什么区别?

203
我对 Laravel 4 和 Composer 还比较陌生。在学习 Laravel 4 的过程中,我不太理解这两个命令的区别:php artisan dump-autoloadcomposer dump-autoload 它们之间有什么不同?请问能否解答一下?

23
请注意,虽然“php artisan dump-autoload”是常见的 Laravel 4 命令,但它并未包含在 Laravel 5 中。 - Jimmy Obonyo Abor
在控制台运行dump-autoload后,我收到了以下消息: 位于./app/Http/Middleware/AdminRedirectifAuthenticated.php的类App\Http\Middleware\AdminRedirectIfAuthenticated不符合psr-4自动加载标准。跳过。 - mchomvu
3个回答

181

LaravelAutoload有所不同:

  1. 实际上,它将使用Composer处理某些内容。

  2. 它将带着优化标志调用Composer

  3. 它会重新编译大量文件,创建一个巨大的bootstrap/compiled.php文件。

  4. 它还将找到您所有的工作台(Workbench)包,并逐个使用composer dump-autoload命令。


17
但你仍需要运行"composer dump-autoload"和"artisan dump-autoload"以确保所有自动加载都正确。例如,在执行migrate:make命令后,您需要运行"composer dump-autoload"才能执行migrate:rollback命令。在这里,"artisan dump-autoload"无法起作用。 - woens
命令“dump-autoload”未定义。这是什么意思? - Čamo

97

php artisan dump-autoload在Laravel 5中已经被弃用,因此您需要使用composer dump-autoload


这是正确的。更多信息请参见:https://laravel.com/docs/5.8/seeding#running-seeders - Brad Ahrens

41

composer dump-autoload

PATH vendor/composer/autoload_classmap.php
  • Composer dump-autoload 不会下载任何东西。
  • 它只是重新生成需要包含在项目中的所有类的列表 (autoload_classmap.php)。
  • 当您在项目中有一个新类时,非常理想。
  • autoload_classmap.php 还包括 config/app.php 中的 providers

php artisan dump-autoload

  • 它将使用优化标志调用 Composer
  • 它将重新编译大量文件,创建庞大的 bootstrap/compiled.php 文件。

2
php artisan dump-autoload在Laravel 5中已经弃用,所以您需要使用composer dump-autoload。 - rajangupta
你真的只是从Antonio的回答中复制粘贴了最后几个点吗? - totymedli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接