更改供应商目录无法再使用Symfony 3.4查找文件



>我正在尝试更改我在Symfony 3.4应用程序上的依赖项目录。

我需要它,因为我正在使用 Docker 在 macOS 上工作,我宁愿不与主机共享它们,因为文件同步太慢了。

相关文档说:

composer.json 中的更改将如下所示:

{
"config": {
"bin-dir": "bin",
"vendor-dir": "/some/dir/vendor"
},
}

我做到了

然后,更新 app/autoload.php 中自动加载.php文件的路径:

// app/autoload.php
// ...
$loader = require '/some/dir/vendor/autoload.php';

我的app目录中没有任何autoload.php文件。
我在文档中遗漏了什么吗?

应用程序生成以下致命错误:

警告:require(/some/dir/vendor/symfony/symfony/src/Symfony/Component/VarDumper/Resources/functions/dump.php):无法打开流:第 66 行的/vendor/composer/autoload_real.php 中没有这样的文件或目录

致命错误:require():在第 66 行的/vendor/composer/autoload_real.php 中需要打开失败的"/some/dir/vendor/symfony/symfony/src/Symfony/Component/VarDumper/Resources/functions/dump.php"(include_path='.:/usr/local/lib/php')

我最初使用以下内容创建该应用程序:

$ composer create-project symfony/framework-standard-edition test "3.*"
  1. 在编辑器中打开 composer.json 文件。
  2. 查找"自动加载开发"部分
  3. 删除整个"文件"部分(如果存在)
  4. 保存文件
  5. 再次运行composer install
  6. 享受派对。

示例代码:

"autoload-dev": {
"psr-4": {
"App\Tests\": "tests/"
},
"files": [
"vendor/symfony/symfony/src/Symfony/Component/VarDumper/Resources/functions/dump.php"
]
},

在Symfony 3.4中,文件app/autoload.php被删除,因此您应该:

  • 直接在web/app.phpweb/app_dev.php、bin/控制台和var/SymfonyRequirements.php文件中将旧的供应商路径替换为新的供应商路径
  • 重新运行命令$ composer install

我遇到了同样的问题,下一个问题已经解决了。

遵循以下 3 个步骤

1.首先,修改composer.json以使用新的供应商路径:

"config": {
...,
"vendor-dir": "/app-vendor"
},

并删除下一行:

"files": ["vendor/symfony/symfony/src/Symfony/Component/VarDumper/Resources/functions/dump.php"]

2.其次,如果您使用的是docker-compose,请添加一个新卷,您将在其中放置供应商。

volumes:
...
- /app-vendor

PD:/app-vendor是一个挂载的卷,现在是空目录。

3.最后,require '/app-vendor/autoload.php';写信给:

  • my_project_name/bin/console
  • my_project_name/web/app.php
  • my_project_name/web/app_dev.php

PD1:简单地说,这条线指向新的供应商路径。

PD2:没有必要修改任何其他文件(如我可以读取的var/SymfonyRequirements.php)。

检查您的更改

更改准备就绪后,删除vendor/并删除容器以避免将来出现问题。

启动新容器并执行composer install.现在,/vendor将被/app-vendor,它将不再位于项目的根文件夹中。

有关更多详细信息,我建议您访问我的docker-symfony存储库并检查提交。您将看到基准测试进度和其他提示,例如缓存卷和非共享/cache&&/logs文件夹。

全部用于Symfony 3.4。

相关内容

  • 没有找到相关文章

最新更新