Как установить Symfony 2.0 Bundle из Zip-файла - PullRequest
0 голосов
/ 10 января 2012

Я попытался установить FixturesBundle, как описано в http://symfony.com/doc/2.0/bundles/DoctrineFixturesBundle/index.html, но мой прокси не выпустил меня.

Так что я пошел на https://github.com/doctrine/data-fixtures и загрузил zip из последнего коммита.

Я разархивировал в каталог vendor и переименовал его в 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

Есть ли способ запустить установку пакета, указав его в zip-файле?

Я запускаю Symfony 2.0.9 в Windows 7.

Ответы [ 3 ]

2 голосов
/ 28 января 2012

Да, это правда, что Doctrine удаляется из пространства имен Symfony (см. здесь ).

Так что, если вы используете стандартный дистрибутив Symfony, вы скачиваете с сайта (без использования git), и вы хотите, чтобы FixturesBundle был установлен вручную, вам необходимо скачать библиотеку doctrine-fixtures из здесь , распаковать zip в

YourProject/vendor/doctrine-fixtures

ЗагрузитьFixturesBundle из здесь и извлеките его в

YourProject/vendor/bundles/Doctrine/Bundle/FixturesBundle

Затем вам нужно зарегистрировать пространство имен библиотеки, сделайте это, добавив

'Doctrine\\\\Common\\\\DataFixtures' => \__DIR\__.'/../vendor/doctrine-fixtures/lib',

в свой autoload.php.

Кроме того, вам придется зарегистрировать пространство имен Doctrine, потому что некоторая часть вашего приложения будет использовать DoctrineBundle, поставляемый из пространства имен Symfony, но новая загруженная FixturesBundle будетиспользуя новое пространство имен Doctrine, чтобы заставить его работать, в вашей autoload.php добавьте следующую строку (если вы делаете это до пространства имен Doctrine, помните, что более конкретные правила идут первыми!)

'Doctrine\\\\Bundle' => \__DIR\__.'/../vendor/bundles',

Итак, все, что вам нужно сделать сейчас, это зарегистрировать новый пакет в вашей AppKernel.php записи

new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle(),
2 голосов
/ 28 октября 2013

У меня была такая же проблема, и вот как я успешно ее решил.Я начал скачивать эти файлы 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, расположенный в корне проекта, и добавил следующие 2 строки:

"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 , которые ответили на мой вопрос Как установить DoctrineFixturesBundle в автономном режиме

Счастливого кодирования!

2 голосов
/ 11 января 2012

Похоже, что комплект доктрины перемещен за пределы Symfony обратно в Doctrine.

Пожалуйста, используйте https://github.com/doctrine/DoctrineFixturesBundle

...