我目前正在迁移Symfony2网站,但我遇到了一个无法修复的问题。
我收到的错误信息是:
致命错误:调用未定义的方法 Symfony的\包\ SecurityBundle \ DependencyInjection \ SecurityExtension :: addUserProviderFactory() 在[...]供应商/捆绑/ Propel / PropelBundle / PropelBundle.php第73行
这是我的deps文件:
[symfony]
git=http://github.com/symfony/symfony.git
version=origin/2.0
[twig]
git=http://github.com/fabpot/Twig.git
version=v1.8.2
[monolog]
git=http://github.com/Seldaek/monolog.git
version=1.0.2
[doctrine-common]
git=http://github.com/doctrine/common.git
version=2.1.4
[doctrine-dbal]
git=http://github.com/doctrine/dbal.git
version=2.1.5
[doctrine]
git=http://github.com/doctrine/doctrine2.git
version=2.1.6
[swiftmailer]
git=http://github.com/swiftmailer/swiftmailer.git
version=v4.2.0
[assetic]
git=http://github.com/kriswallsmith/assetic.git
version=v1.0.3
[twig-extensions]
git=http://github.com/fabpot/Twig-extensions.git
[metadata]
git=http://github.com/schmittjoh/metadata.git
version=1.0.0
[SensioFrameworkExtraBundle]
git=http://github.com/sensio/SensioFrameworkExtraBundle.git
target=/bundles/Sensio/Bundle/FrameworkExtraBundle
version=origin/2.0
[JMSSecurityExtraBundle]
git=http://github.com/schmittjoh/JMSSecurityExtraBundle.git
target=/bundles/JMS/SecurityExtraBundle
version=origin/1.0.x
[SensioDistributionBundle]
git=http://github.com/sensio/SensioDistributionBundle.git
target=/bundles/Sensio/Bundle/DistributionBundle
version=origin/2.0
[SensioGeneratorBundle]
git=http://github.com/sensio/SensioGeneratorBundle.git
target=/bundles/Sensio/Bundle/GeneratorBundle
version=origin/2.0
[AsseticBundle]
git=http://github.com/symfony/AsseticBundle.git
target=/bundles/Symfony/Bundle/AsseticBundle
version=origin/2.0
[Phing]
git=https://github.com/phingofficial/phing.git
[Propel]
git=https://github.com/propelorm/Propel.git
[PropelBundle]
git=https://github.com/propelorm/PropelBundle.git
target=/bundles/Propel/PropelBundle
branch=origin/1.0
[PdfBundle]
git=git://github.com/psliwa/PdfBundle.git
target=/bundles/Ps/PdfBundle
[PHPPdf]
git=git://github.com/psliwa/PHPPdf.git
version=origin/1.1.x
总而言之,我使用的是Symfony 2.0(我不能使用2.1:远程服务器在PHP 5.3.2中,因为Plesk而无法迁移到PHP 5.3.3)和相关的Propel版本(1.0)。
这也是我的AppKernel:
$bundles = array(
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
new Symfony\Bundle\SecurityBundle\SecurityBundle(),
new Symfony\Bundle\TwigBundle\TwigBundle(),
new Symfony\Bundle\MonologBundle\MonologBundle(),
new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
new Symfony\Bundle\DoctrineBundle\DoctrineBundle(),
new Symfony\Bundle\AsseticBundle\AsseticBundle(),
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
new JMS\SecurityExtraBundle\JMSSecurityExtraBundle(),
// My application bundles
new Ps\PdfBundle\PsPdfBundle(),
new Propel\PropelBundle\PropelBundle(),
);
我的autoload.php文件,如果可以提供帮助:
$loader->registerNamespaces(array(
'Symfony' => array(__DIR__.'/../vendor/symfony/src', __DIR__.'/../vendor/bundles'),
'Sensio' => __DIR__.'/../vendor/bundles',
'JMS' => __DIR__.'/../vendor/bundles',
'Doctrine\\Common' => __DIR__.'/../vendor/doctrine-common/lib',
'Doctrine\\DBAL' => __DIR__.'/../vendor/doctrine-dbal/lib',
'Doctrine' => __DIR__.'/../vendor/doctrine/lib',
'Monolog' => __DIR__.'/../vendor/monolog/src',
'Assetic' => __DIR__.'/../vendor/assetic/src',
'Metadata' => __DIR__.'/../vendor/metadata/src',
'Ps' => __DIR__.'/../vendor/bundles',
'PHPPdf' => __DIR__.'/../vendor/PHPPdf/lib',
'Imagine' => array(__DIR__.'/../vendor/PHPPdf/lib', __DIR__.'/../vendor/PHPPdf/lib/vendor/Imagine/lib'),
'Zend' => __DIR__.'/../vendor/PHPPdf/lib/vendor/Zend/library',//If you have used ZF2 packages already, you should skip this entry
'ZendPdf' => __DIR__.'/../vendor/PHPPdf/lib/vendor/ZendPdf/library',
'Propel' => __DIR__.'/../vendor/bundles',
'Phing' => __DIR__.'/../vendor/phing/classes/phing',
));
你知道我怎么解决它吗?
答案 0 :(得分:1)
您似乎正在加载错误版本的PropelBundle。
在您的deps文件中,不要为PropelBundle编写branch=origin/1.0
,而是写version=origin/1.0
:
[PropelBundle]
git=https://github.com/propelorm/PropelBundle.git
target=/bundles/Propel/PropelBundle
version=origin/1.0