我试图在Symfony 3.4应用程序上更改我的依赖项目录。
我需要这样做,因为我正在使用Docker处理macOS而我宁愿让它们不与主机共享,因为文件同步太慢了。
composer.json中的更改将如下所示:
{ "config": { "bin-dir": "bin", "vendor-dir": "/some/dir/vendor" }, }
我做了
然后,在app / autoload.php中更新autoload.php文件的路径:
// app/autoload.php // ... $loader = require '/some/dir/vendor/autoload.php';
我的autoload.php
目录中没有app
个文件
我在文档中遗漏了什么吗?
应用程序生成以下致命错误:
警告:require(/some/dir/vendor/symfony/symfony/src/Symfony/Component/VarDumper/Resources/functions/dump.php):无法打开流:/ vendor / composer中没有此类文件或目录第66行/autoload_real.php
致命错误:require():无法打开所需' /some/dir/vendor/symfony/symfony/src/Symfony/Component/VarDumper/Resources/functions/dump.php'第66行的/vendor/composer/autoload_real.php中的(include_path ='。:/ usr / local / lib / php')
我最初用以下方法创建了应用程序:
$ composer create-project symfony/framework-standard-edition test "3.*"
答案 0 :(得分:4)
finalvalues = dpath.util.search('values/*/*/max')
示例代码:
composer install
答案 1 :(得分:0)
在Symfony 3.4中,文件app/autoload.php
已删除,因此您应该:
web/app.php
,web/app_dev.php
,bin / console和var/SymfonyRequirements.php
文件$ composer install
答案 2 :(得分:0)
我遇到了同样的问题,并且解决了下一个问题。
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。