symfony — проблемы с Symfony2 config.php: Примечание: неопределенное свойство: stdClass :: $ vendor-dir, отсутствуют библиотеки поставщика, как решить проблему?

сегодня, спустя некоторое время, я решил создать новый проект Symfony2. У меня установлен композитор на /usr/local/bin/composer и обновляется до последней версии:

$ composer self-update
You are already using composer version etc, etc...

Затем я набрал обычную команду:

composer create-project symfony/framework-standard-edition path/to/htdocs/PDFMonitor

Все прошло хорошо

...
Clearing the cache for the dev environment with debug true
Trying to install assets as symbolic links.
Installing assets for Symfony\Bundle\FrameworkBundle into web/bundles/framework
The assets were installed using symbolic links.
Installing assets for Sensio\Bundle\DistributionBundle into web/bundles/sensiodistribution
The assets were installed using symbolic links.

Затем я открыл браузер и сделал запрос к Symfony’s config.php чтобы убедиться, что на самом деле все было гладко, но я получил эту ошибку:

Symfony2 config.php

И это PHP уведомление и предупреждение:

Notice: Undefined property: stdClass::$vendor-dir in /path/to/htdocs/PDFMonitor/app/SymfonyRequirements.php on line 751

Notice: Undefined property: stdClass::$vendor-dir in /path/to/htdocs/PDFMonitor/app/SymfonyRequirements.php on line 751

Warning: file_get_contents(/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/skeleton/app/SymfonyRequirements.php): failed to open stream: No such file or directory in /path/to/htdocs/PDFMonitor/app/SymfonyRequirements.php on line 546

Я не знаю, почему это происходит. Некоторое время я не пользовался Symfony, но у меня никогда не было такой проблемы.

Что я пробовал:

  • Запустить либо composer install а также composer update внутри корня проекта. Не помогло
  • Переустановите композитор curl -s https://getcomposer/installer | php а потом:

    $ mv composer.phar / usr / local / bin

    $ rm -R / path / to / htdocs / PDFMonitor`

    и опять:

    $ composer create-project symfony / путь к фреймворку-стандартной-версии / к / htdocs / PDFMonitor

    Снова проект создан но открывается http://localhost/PDFMonitor/web/config.php дал предыдущие ошибки.

Как я уже говорил, я никогда не сталкивался с этой проблемой раньше.

Что я должен сделать, чтобы заставить Symfony снова работать должным образом? Почему Symfony не видит поставщиков?

1

Решение

Я нашел решение проблемы: это ошибка в Symfony 2.6, на самом деле 2.7, похоже, исправили ее.

Если кто-то все еще создает проект с composer create-project symfony/framework-standard-edition ...где версия Symfony2 по умолчанию 2.6 и испытывает ту же проблему, с которой я столкнулся, вот обходной путь:

Либо отредактируйте YourProject/app/SymfonyRequirements.php линия 406 а также

YourProject/vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/skeleton/app/SymfonyRequirements.php линия 406 и заменить:

 is_dir($this->getComposerVendorDir()),

С этим:

is_dir(__DIR__.'/../vendor/composer'),

Это устранит основную проблему, жаловавшуюся на поставщиков. Тогда это вместо этого удалит file_get_contents() Предупреждение:

внутри YourProject/app/SymfonyRequirements.php и сделать линия 546 выглядеть так:

file_get_contents(__FILE__) === file_get_contents(__DIR__.'/../vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/skeleton/app/SymfonyRequirements.php'),

Тогда открой localhost/YourProject/web/config.php и вы снова увидите красивую страницу приветствия Symfony.

введите описание изображения здесь

2

Другие решения

Других решений пока нет …