2013-11-08 3 views
0

Просто попав в Symfony2, и я хотел использовать комплект CMF.InvalidConfigurationException установка Symfony2 CMF

Я следую кулинарной здесь: http://symfony.com/doc/current/cmf/cookbook/editions/cmf_core.html

При запуске

composer.phar update 

Я получаю эту ошибку:

[Symfony\Component\Config\Definition\Exception\InvalidConfigurationException]                     
    When the dynamic router is enabled, you need to either enable one of the persistence layers or set the cmf_routing.dynamic.route_provider_service_id option 

Что является правильной настройкой для route_provider_service_id? Я не могу найти никаких документов по этому поводу.

config.yml

# CMF config 
cmf_routing: 
chain: 
    routers_by_id: 
     cmf_routing.dynamic_router: 200 
     router.default: 100 
dynamic: 
    enabled: true 
    route_provider_service_id: ~ 
sonata_block: 
    default_contexts: [cms] 

Вот мой composer.json файл:

{ 
"name": "symfony/framework-standard-edition", 
"license": "MIT", 
"type": "project", 
"description": "The \"Symfony Standard Edition\" distribution", 
"autoload": { 
    "psr-0": { "": "src/" } 
}, 
"minimum-stability": "dev", 
"require": { 
    "php": ">=5.3.3", 
    "symfony/symfony": "2.3.*", 
    "doctrine/orm": ">=2.2.3,<2.4-dev", 
    "doctrine/doctrine-bundle": "1.2.*", 
    "twig/extensions": "1.0.*", 
    "symfony/assetic-bundle": "2.3.*", 
    "symfony/swiftmailer-bundle": "2.3.*", 
    "symfony/monolog-bundle": "2.3.*", 
    "sensio/distribution-bundle": "2.3.*", 
    "sensio/framework-extra-bundle": "2.3.*", 
    "sensio/generator-bundle": "2.3.*", 
    "incenteev/composer-parameter-handler": "~2.0", 
    "jackalope/jackalope-doctrine-dbal": "dev-master", 
    "doctrine/phpcr-bundle": "1.0.*", 
    "doctrine/phpcr-odm": "1.0.*", 
    "symfony-cmf/symfony-cmf": "1.0.*" 
}, 
"scripts": { 
    "post-install-cmd": [ 
     "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", 
     "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 
     "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 
     "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 
     "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile" 
    ], 
    "post-update-cmd": [ 
     "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", 
     "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 
     "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 
     "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 
     "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile" 
    ] 
}, 
"config": { 
    "bin-dir": "bin" 
}, 
"extra": { 
    "symfony-app-dir": "app", 
    "symfony-web-dir": "web", 
    "incenteev-parameters": { 
     "file": "app/config/parameters.yml" 
    }, 
    "branch-alias": { 
     "dev-master": "2.3-dev" 
    } 
} 

}

Если кто-то может просто пролить свет на эти cmf_routing настройками получить чистое обновление от композитора было бы здорово.

Одна вещь, которую я нахожу расстраивающей с помощью этого нового метода Sym2, - это, кажется, каждый комплект, который вам нужен, поставляется с другим требуемым пакетом, составлением вероятностей ошибок и путаницы.

UPDATE

Я посмотрел на динамической конфигурации здесь: http://symfony.com/doc/master/cmf/reference/configuration/routing.html#dynamic

Он говорит, что это о route_provider_service_id:

route_provider_service_id

Тип: Строка

Если ни один из уровней сохранения не включен, для получения маршрутов необходимо предоставить услугу поставщика маршрута. Это делается с помощью параметра route_provider_service_id.

Я понимаю, что если я не настроен настойчивость, я должен добавить эту настройку. Я знаю, что настройка должна быть строкой. Но я не знаю, что такое service_id на самом деле, поэтому я не знаю, что такое настройка. Возможно, я все еще не понимаю, что я делаю с динамическим маршрутизатором.

я был в состоянии исправить это, позволяя persistence.phpcr и давая manager_name: нулевой

Убрана ошибка, но это может быть, что определение manager_name является важным шагом в получении CMF от земли.

ответ

1

Необходимо настроить поставщика маршрутов. В противном случае маршрутизатор не будет знать, как загружать маршруты. Идея динамического маршрутизатора заключается в том, что вы можете загружать маршруты из базы данных, поэтому вам нужно сказать, как их загрузить. вы можете либо включить persistence.phpcr, либо persistence.orm, либо предоставить свой собственный сервис.

Существует введение в маршрутизации CMF здесь http://symfony.com/doc/master/cmf/book/routing.html

И больше деталей здесь http://symfony.com/doc/master/cmf/bundles/routing/dynamic.html (я только осветленные вещь с провайдером маршрута немного больше, так как я понял, что это было не очень четко).

Ссылка конфигурации для маршрутизации здесь: http://symfony.com/doc/master/cmf/reference/configuration/routing.html#dynamic

+0

Нет имеет значения настройки, которые я использую из динамической конфигурации, я до сих пор получаю ошибку: Когда динамический маршрутизатор включен, то необходимо либо включить один из упорства слоев или установите параметр cmf_routing.dynamic.route_provider_service_id. –

+0

лучше всего открыть вопрос о github, так как я не уведомлен о комментариях здесь. если вы установите для persistence orm или phpcr значение true или настроили параметр route_provider_service_id (прочитайте связанный документ, чтобы узнать, что вам нужно делать там) сообщение должно исчезнуть. – dbu