我正在做一个Laravel项目,它运行得很好。但是最近我通过composer update
更新了Composer,Composer更新成功。
然后,我从vendor
文件夹中删除了不必要的数据包。我还从vendor
中删除了paragonie
文件夹,这对我来说是不需要的。这给了我以下错误。
致命错误:require():在第54行的/var/www/laravel/vendor/paragonie/random_compat/lib/random.php中打开所需的"/var/www/laavel/vendor/autoload_real.php"(include_path=".:/usr/share/php:/usr/share/pear")`失败
我已经添加了这个文件夹,工作正常。任何人都可以帮我弄清楚paragonie
文件夹的用途。为什么包括它?
Composer管理vendor/
文件夹中的每个包。从vendor/
中删除任何文件夹都会破坏某些内容。不要这样!
如果要从项目中删除包,请编辑composer.json
并执行composer install
。
vendor
文件夹中可能存在一些composer.json
不需要的程序包。这是因为任何包都可以有自己的需求。如果你删除了其中一个所需的包,你就会破坏它。
通常没有必要从vendor
中删除任何内容!
注意:composer update
不会更新Composer本身。它会更新您项目的每个包!要更新Composer本身,请使用composer self-update
。
我真的建议你阅读composer文档或一些关于composer如何工作的教程,以更好地了解composer。
不要手动编辑composer.json
或vendors
文件夹的文件结构。vendor文件夹包含依赖项及其依存项。
最重要的一点是,您不应该编辑项目中的项目依赖项。第二次你这样做,你就破坏了未来的更新,这是一件可怕的事情。
如果你觉得这是不可能的,因为图书馆需要改变,我建议你深呼吸。
大多数库都有一些内置的配置选项或修改库的方法。如果他们不这样做,那么可能会贡献一些,或者分叉库。
你绝对可以对任何拥有修改源代码许可证的库进行更改,这就是开源代码存在的原因,但你需要以正确的方式进行更改。
您可以通过使用源代码管理进行分叉来可能改进代码,这也将允许您向包维护人员提交拉取请求(PR)。
这样做的好处是,如果包维护人员决定接受您的更改,您将了解他们未来的所有更新,即使您没有时间维护您的更改也可能会有人接受并进行更改。
如果您的PR不被接受;我强烈考虑重新审视你最初的假设,这样你就可以确保你所做的决定是唯一的方法,或者是最有益的方法。无论哪种方式;这并不重要,因为你可以保留你将来从中提取的叉子版本,或者将其添加到packagist中(只有当你真的是更多的人会从中受益);或者告诉作曲家直接从你的存储库中提取(它必须在互联网上AFAIK)。
如果你必须分叉,你需要确保你能保持依赖性,这在你的组织中是可以接受的。如果是你,那么在未来,你可以不时地从原始源库手动更新;以确保您仍然可以享受核心库的好处,同时保留您的更改。
这就是高中编码和专业发展之间的区别。
很抱歉大喊大叫,但这需要更多地放在那里,可能是用100英尺长的字母写的。
按照以下步骤解决此问题:
-
从终端(CLI)转到您的项目
-
cd供应商
-
svn添加paragonie
-
svn提交-m"
如果另一个文件丢失,也要执行同样的操作。对我来说,它100%有效。祝你好运