Перемещение папки поставщика Symfony за пределы проекта - PullRequest
0 голосов
/ 02 июля 2019

Я новичок в 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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...