我按照http://symfony.com/doc/2.0/bundles/DoctrineFixturesBundle/index.html中的描述尝试安装FixturesBundle,但我的代理人不会让我出去。
所以我去了https://github.com/doctrine/data-fixtures并从最新的提交中下载了一个zip。
我解压缩到供应商目录并将其重命名为 doctrine-fixures 。我按照教程中的描述编辑了autoload.php和AppKernel.php文件。
当我跑步时:
php app\console doctrine:fixtures:load
我收到以下消息:
PHP Fatal error: Class 'Symfony\Bundle\DoctrineFixturesBundle\DoctrineFixturesB
undle' not found in C:\NetbeansProjects\route_rest_service\app\AppKernel.php on
line 20
Fatal error: Class 'Symfony\Bundle\DoctrineFixturesBundle\DoctrineFixturesBundle
' not found in C:\NetbeansProjects\route_rest_service\app\AppKernel.php on line
20
有没有办法运行bundle指向zip文件的安装?
我在Windows 7上运行Symfony 2.0.9。
答案 0 :(得分:2)
似乎教条束已经移出Symfony范围,回到了Doctrine。
答案 1 :(得分:2)
是的,Doctrine正在远离Symfony命名空间(参见here)。
因此,如果您正在使用从网站下载的Symfony标准发行版(不使用git),并且您希望手动安装FixturesBundle
,则必须从{{下载doctrine-fixtures库3}},将zip解压缩到
YourProject/vendor/doctrine-fixtures
从here下载FixturesBundle
,然后在
YourProject/vendor/bundles/Doctrine/Bundle/FixturesBundle
然后你必须注册库的命名空间,通过添加
来完成'Doctrine\\\\Common\\\\DataFixtures' => \__DIR\__.'/../vendor/doctrine-fixtures/lib',
在autoload.php
。
此外,您必须注册Doctrine的命名空间,因为您的应用程序的某些部分将使用Symfony命名空间中提供的DoctrineBundle
,但新下载的FixturesBundle
将使用新的Doctrine的命名空间,为了使它工作,在你的autoload.php
中添加以下行(注意你在 Doctrine命名空间之前执行它,请记住更具体的规则首先!)
'Doctrine\\\\Bundle' => \__DIR\__.'/../vendor/bundles',
所以你现在要做的就是在AppKernel.php
写作
new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle(),
答案 2 :(得分:2)
我遇到了同样的问题,这就是我成功解决它的方法。我开始下载这些文件data-fixtures和DoctrineFixturesBundle,并将其解压缩到/vendor/doctrine
并创建了此文件夹结构:
vendor
- doctrine
- doctrine-fixtures-bundle
- Doctrine
- Bundle
- FixturesBundle
DoctrineFixturesBundle.php
..other files...
vendor
- doctrine
- data-fixtures
- lib
- test
composer.json
..other files...
然后我编辑了AppKernel.php
并添加了
public function registerBundles(){
.....
new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle(),
.....
}
编辑位于项目根目录中的composer.json
并添加了这两行:
"Doctrine\\Bundle\\FixturesBundle": "vendor/doctrine/doctrine-fixtures-bundle",
"Doctrine\\Common\\DataFixtures": "vendor/doctrine/data-fixtures/lib"
我现在看起来像这样:
{
"autoload": {
"psr-0": {
"": "src/",
"Doctrine\\Bundle\\FixturesBundle": "vendor/doctrine/doctrine-fixtures-bundle",
"Doctrine\\Common\\DataFixtures": "vendor/doctrine/data-fixtures/lib"
}
}
}
然后执行composer dump-autoload -o
以重新创建类图。所有这一切都归功于用户Wouter J和nifr回答了我的问题How to install DoctrineFixturesBundle offline
快乐的编码!