Symfony2 config.php麻烦:注意:未定义的属性:stdClass :: $ vendor-dir,供应商库缺失,如何解决?

时间:2015-01-02 20:26:59

标签: php symfony config

今天,过了一段时间,我决定创建一个新的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的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 installcomposer update。没有帮助。
  • 重新安装作曲家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没有看到供应商?

1 个答案:

答案 0 :(得分:2)

我找到了问题的解决方案:这是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欢迎页面。

enter image description here