Laravel 5中的错误:致命错误:require():在最近的Composer更新之后

时间:2015-11-19 05:31:56

标签: composer-php laravel-5.1

我正在开发一个Laravel项目并且工作正常。但 最近我通过composer update更新了Composer,并成功更新了Composer。

然后我从vendor文件夹中删除了不必要的包。我还从paragonie删除了vendor文件夹,这对我来说是不受欢迎的。 这给了我以下错误。

  

致命错误:require():无法打开所需' /var/www/laravel/vendor/paragonie/random_compat/lib/random.php'第54行的/var/www/laravel/vendor/composer/autoload_real.php中的(include_path ='。:/ usr / share / php:/ usr / share / pear')

我已添加此文件夹并正常工作。 任何人都可以帮我弄清楚paragonie文件夹的目的是什么。 为什么包含它?

3 个答案:

答案 0 :(得分:3)

Composer管理vendor/文件夹中的每个包。你根本无法从vendor/删除任何文件夹而不会破坏某些内容。不要这样做!

如果您要从项目中删除软件包,请编辑composer.json并执行composer install

您的vendor文件夹中可能包含composer.json中不需要的一些软件包。这是因为包装可以满足自己的要求。如果您删除其中一个必需的包,则将其分解。

通常没有必要从vendor删除任何内容!

注意: composer update不会更新Composer本身。它会更新项目的每个包!要更新Composer本身,请使用composer self-update

我真的建议您阅读composer docshow composer works上的一些教程,以便更好地了解作曲家。

答案 1 :(得分:2)

不要手动编辑composer.jsonvendors文件夹的文件结构。 vendors文件夹包含依赖项及其依赖项

最重要的部分是你不应该 EVER 编辑项目中的项目依赖项。你做的第二个,你已经打破了未来的更新, 这是一个可怕的事情

如果你觉得这是不可能的,因为图书馆需要改变,我建议你去吸一口气。

大多数库都有一些内置配置选项或修改库的方法。如果他们不愿意贡献一些,或者分叉图书馆。

您绝对可以对具有源代码修改许可许可的库进行更改,这就是开源代码存在的原因,但您需要以正确的方式执行此操作。

您可以通过使用源控件分叉来可能改进代码,这也可以让您提交拉取请求(PR)到包维护者。

尝试此操作的好处是 IF 软件包维护人员决定接受您的更改,即使您没有时间,也可以及时更新所有未来的更新保持你的变化,有人可能会接受并做出改变。

IF 您的公关不被接受;我强烈考虑重新审视您的初步假设,以便您可以确定您所做的决定是唯一的方式,或者是最有利的前进方式。无论哪种方式;它无关紧要,因为你可以保持你的分叉作为你未来的版本,并将它添加到packagist(只有当你真的更多的人将从中受益);或告诉作曲家直接从您的存储库拉(它必须在互联网AFAIK上)。

如果必须fork,则需要确保可以维护依赖关系,这在组织内是可接受的。如果以后您可以从原始源库中不时手动更新;确保您仍然享受核心库的好处,同时保持您的变化。

这是高中编码与专业发展之间的差异。

对不起喊叫/惊呼,但这需要更多,可能在某处100英尺的字母。

答案 2 :(得分:0)

通过以下步骤解决此问题:

  1. 从终端(CLI)

  2. 转到您的项目
  3. cd vendor

  4. svn add paragonie

  5. svn commit -m""

  6. 如果缺少另一个文件也会做同样的事情。 对我来说它100%有效。 祝你好运。