Symfony2 config.php troubles: Notice: Undefined 属性: stdClass::$vendor-dir, Vendor libraries are missing, 如何解决?
Symfony2 config.php troubles: Notice: Undefined property: stdClass::$vendor-dir, Vendor libraries are missing, how to resolve?
今天,过了一段时间,我决定创建一个新的 Symfony2 项目。我在 /usr/local/bin/composer
安装了 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 的 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
。没有帮助。
重新安装 composer curl -s https://getcomposer/installer | php
然后:
$ mv composer.phar /usr/local/bin
$ rm -R /path/to/htdocs/PDFMonitor`
又一次:
$ composer create-project symfony/framework-standard-edition path/to/htdocs/PDFMonitor
项目再次创建,但打开 http://localhost/PDFMonitor/web/config.php
出现了之前的错误。
正如我所说,我以前从未遇到过这个问题。
我应该怎么做才能使symfony 再次正常工作?为什么 Symfony 看不到供应商?
我找到了解决问题的方法:这是 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()
Warning:
在 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 欢迎页面。
今天,过了一段时间,我决定创建一个新的 Symfony2 项目。我在 /usr/local/bin/composer
安装了 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 的 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
。没有帮助。 重新安装 composer
curl -s https://getcomposer/installer | php
然后:$ mv composer.phar /usr/local/bin
$ rm -R /path/to/htdocs/PDFMonitor`
又一次:
$ composer create-project symfony/framework-standard-edition path/to/htdocs/PDFMonitor
项目再次创建,但打开
http://localhost/PDFMonitor/web/config.php
出现了之前的错误。
正如我所说,我以前从未遇到过这个问题。
我应该怎么做才能使symfony 再次正常工作?为什么 Symfony 看不到供应商?
我找到了解决问题的方法:这是 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()
Warning:
在 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 欢迎页面。