Я новичок в Symfony и у меня есть одна проблема.
Я хочу переместить папку поставщика за пределы текущего каталога (Symfony 4.3).
РЕШЕНИЕ # 1
Итак, из этой структуры по умолчанию:
/bin
/config
/public
...
/vendor
composer.json
...
в эту структуру:
/vendor
/web
/bin
/config
/public
...
composer.json
Я отредактировал файл composer.json в соответствии с этимстатья (https://symfony.com/doc/current/configuration/override_dir_structure.html#override-the-vendor-directory) к этому:
"config": {
"vendor-dir": "../vendor",
...
},
и Я заменил путь к autoload.php в /config/bootstrap.php с этого:
require dirname(__DIR__).'/vendor/autoload.php';
к этому
require dirname(__DIR__).'/../vendor/autoload.php';
Я запустил composer install
, затем.
Файл .. / vendor / autoload.php доступен (и успешно включен)) из / config / bootstrap.php . Я проверял это.
Но если я загружаю страницу, Symfony возвращает это исключение:
(1/1) ClassNotFoundException
Attempted to load class "Kernel" from namespace "App".
Did you forget a "use" statement for "Symfony\Component\HttpKernel\Kernel"?
in index.php line 23
SOLUTION # 2
Я также попробовал другой способ:
Я не изменил структуру папок по умолчанию на моем хосте, как в Solution # 1. Но после сборки контейнераЯ переехал к продавцуНа один уровень выше.Поэтому из / var / www / html / (где находятся файлы проекта Symfony) я переместил его в / var / www / .
Тогда у меня естьудалил папку / var / www / html / vendor / и создал символическую ссылку на папку на уровень выше
rm /var/www/html/vendor
ln -s /var/www/vendor /var/www/html/vendor
Таким образом, структура внутри контейнера выглядит следующим образом:
/var/www/vendor/
/var/www/html/bin/
/var/www/html/config/
/var/www/html/public/ # this is project´s document root
/var/www/html/vendor -> /var/www/vendor/ # symlink
....
Но все равно не повезло и приложение выдает такую же ошибку.
Есть ли что-то еще, что я должен сделать?
Причина, по которой я хотел быпереместить папку из-за того, что мое приложение работает в док-контейнере в Windows, а веб-сайт работает очень медленно со структурой папки Symfony по умолчанию (когда папка / vendor является частью общего монтирования).
Связанные проблемы на что меня вдохновили:
Symfony 4 мучительно медленен в DEV
https://github.com/maxpou/docker-symfony/issues/53
http://blog.michaelperrin.fr/2017/04/14/docker-for-mac-on-a-symfony-app/