
ãã®èšäºã®ç¶ãã¯ãç§ã®æ lazãå¥åº·äžã®åé¡ãã€ã³ã¿ãŒãããã®ããã«å€§å¹ ã«é ããŠããŸãã éå»2ãæéãã·ã¹ãã ã¯ããŒãžã§ã³1.0.0ã«æé·ããmasterãã©ã³ãã§ã®ãã以éã®ãã¹ãŠã®ç·šéã¯ãææžåãããã«äœããã®åœ¢ã§ã·ã¹ãã ã®äœæ¥ãäžæããŸãã 誰ããã·ã¹ãã ãæã«å ¥ãããå ŽåãèŠããŠãããŠãã ãã-ã¿ã°ã§ããŒã¯ãããå®å®ããããŒãžã§ã³ã«é Œã£ãŠãã ããã
æããã£ãã¡ãªäººã¯ãã¹ã¯ããŒã«ããŠã³ããã€ã³ã¹ããŒã«ãããã·ã¹ãã ïŒVirtualBoxãå¿ èŠã§ãïŒã§ä»®æ³ãã·ã³ãããŠã³ããŒãããèªåã§ãã¹ãŠãæããããšãã§ããŸãããå®å šãæãããã«ãæåã«èšäºãèªãããšããå§ãããŸãã
ã ããã ããŒã¿ä¿ååŸã®èšç»ã¯äœã§ããïŒ

ãã³ãã¬ãŒããšã³ãžã³
ããã§ã¯ãã¹ãŠãããç¥ãããŠããŸã-Twigã䜿çšãããŸãã æè»ã§åŒ·åãéåžžã«é«éã§ç°¡æœã ãããã¯åå²ãç¶æ¿ãããã³ãã³ãã¬ãŒãã®PHPã³ãŒããžã®ã³ã³ãã€ã«ããµããŒãããŸãã ã¡ã€ã³ããŒãžãã³ãã¬ãŒãã¯æ¬¡ã®ããã«ãªããŸãã
{% extends "SandboxMainBundle::skeleton.html.twig" %} {% block content %} <p><em>We are on the homepage which uses a special template</em></p> {% createphp cmfMainContent as="rdf" %} {{ rdf|raw }} {% endcreatephp %} <hr/> {{ sonata_block_render({ 'name': 'additionalInfoBlock' }, { 'divisible_by': 3, 'divisible_class': 'row', 'child_class': 'span3' }) }} <div class="row"> <div class="span3"> <h2>Some additional links:</h2> <ul> {% for child in cmf_children(cmf_find('/cms/simple')) %} <li> <a href="{{ path(child) }}">{{ child.title|striptags }}</a> </li> {% endfor %} </ul> </div> <div class="span3"> {{ sonata_block_render({ 'name': 'rssBlock' }) }} </div> </div> {% endblock %}
CoreBundleã«ã¯ãCMFã®æäœãšPHPCRããªãŒã®èµ°æ»ãç°¡çŽ åããTwigã®æ¡åŒµæ©èœãå«ãŸããŠããŸããããšãã°ã
cmf_prev
ã
cmf_next
ã
cmf_children
ãªã©ã®é¢æ°ã§ãã
ç¹ã«ããã§æ³šç®ãã¹ãããšã¯ãããŸãããTwig-圌ã¯ã¢ããªã«ã®Twigã«ãããŸãã
管çããã«ã«é¢ããããã€ãã®èšè

管çããŒãž
æåãªç®¡çããã«ãžã§ãã¬ãŒã¿ãŒSonataAdminBundleã¯Symfony CMFã§ãŸã£ããåãæ©èœãå®è¡ããŸããã SonataDoctrinePhpcrAdminBundleã®åœ¢åŒã®ç¹å¥ãªã¬ã€ã€ãŒã䜿çšããŸãã ããã¯ãå ã®ãã³ãã«ãããŒã¿ãŠã§ã¢ããŠã¹ããæœè±¡åã§ããããã«ããããã§ãã
ããªãŒæ§é ãæäœããããã«ãjsTreeã§å®è¡ãããTreeBrowserBundleãèšèšãããŠããŸãã
以äžã§èª¬æããadminéšåãæã€ã³ã³ããŒãã³ãã¯ãå¿ ãããã§ããã«ãæ¥ç¶ããŸãã ãããã£ãŠãããã詳现ã«èª¬æããããã«ãçç±ã¯ãªããšæããŸãã詳现ãªã¹ã¯ãªãŒã³ã·ã§ããã¯ãã以äžãããŸããã
éçã³ã³ãã³ã
CMSã®éçã³ã³ãã³ãã¯ããã¹ãŠã®åºç€ã§ãã Symfony CMFã§ã¯ãContentBundleã¯éçã³ã³ãã³ããæ åœããŸããéçã³ã³ãã³ãã¯ãå€èšèªãšã«ãŒãéä¿¡ãå«ãéçããã¥ã¡ã³ãã¯ã©ã¹ã®åºæ¬çãªå®è£ ãæäŸããŸãã
ãã³ãã«ã®åºæ¬ã¯
StaticContent
ã¯ã©ã¹ã§ããããã®æ§æã¯ã
title
ã
body
ã芪ããã¥ã¡ã³ããžã®ãªã³ã¯ãªã©ãå€ãã®
StaticContent
ãã£ãŒã«ãã«éŠŽæã¿ããããŸãã ããã«ã2ã€ã®ã€ã³ã¿ãŒãã§ã€ã¹ãå®è£ ããŸãã
-
RouteReferrersInterface
ã¯ãRouteReferrersInterface
ã®ã«ãŒããæäŸããŸã -
PublishWorkflowInterface
ãæå®ãããçºè¡æ¥ã䜿çšããŠã³ã³ãã³ãã衚瀺ãŸãã¯é衚瀺ã«ããã®ã«åœ¹ç«ã¡ãŸã

å€èšèªããã¥ã¡ã³ãã®å Žåã
MultilangStaticContent
ãæäŸãããŸã-ãã¹ãŠåãã§ããããã£ãŒã«ãã®ç¿»èš³ãšãã±ãŒã«ã®å®£èšãè¿œå ãããŸãã 翻蚳ã®æ¹æ³-èšäºã®æåã®éšåã§ãã§ã«èŠãŸããã
ãã³ãã«ã¯ã³ã³ãããŒã©ãŒã«äŸåããŠããŸãã
ContentController
ã¯åäžã®
indexAction
ã§æ§æãããå ¥åæã«ç®çã®ããã¥ã¡ã³ãã
indexAction
ããç®çã®èšèªã§ã¬ã³ããªã³ã°ããŸãïŒå ¬éãã©ã¡ãŒã¿ãŒã§ãã¹ãŠãåé¡ãªãå ŽåïŒã ãªãã·ã§ã³ã§ãããŒãžã®è¡šç€ºã«äœ¿çšãããã³ãã¬ãŒããæå®ã§ããŸãã èšå®ãããŠããªãå Žåãããã©ã«ãã§æå®ããããã®ã䜿çšãããŸãã
ã«ãŒãã£ã³ã°
ä»æ¥ã®å€§èŠæš¡ãªãµã€ãã§ã¯ãææã®éãæ°ååäœã§ç°¡åã«æž¬å®ã§ããŸãã 翻蚳ã®æ°ãæããŸãã æ€çŽ¢ãšã³ãžã³æé©åã®åã®äžã«ãçŽ æãšURLã絶ããç·šéããå¿ èŠæ§ãè¿œå ããŸãã
åæã«ããµã€ã管çè ïŒãŠã§ããã¹ã¿ãŒãã³ã³ãã³ããããŒãžã£ãŒãSEOïŒã¯éåžžãéçºè ã§ã¯ãªããã®ãããªããšã«é¢äžããŠããŸãã
ãã®å Žåã®ã«ãŒãã£ã³ã°ã®èŠä»¶ã¯äœã§ããïŒ
- ãŠãŒã¶ãŒãèšå®ããURL
- ãã«ããµã€ããµããŒã
- å€èšèªãµããŒã
- ããªãŒæ§é
- ã³ã³ãã³ããã¡ãã¥ãŒãã«ãŒããå ±æããå¿ èŠããããŸã
æšæºã®Symfony 2ã«ãŒã¿ãŒãæãåºããšããã®ãããªæè»æ§ã¯ããã§ã¯éæã§ããªãããšãæããã«ãªããŸãã ã«ãŒãã¯åã³ã³ãããŒã©ãŒã®æ§æã«æ瀺çã«ç»é²ãããŠããããŠãŒã¶ãŒã¯åã«ã«ãŒãã®å€æŽãèš±å¯ããŠããŸããã æåŸ ã§ããæ倧æ°ã¯ã管çããã«ããç·šéã§ããäœããã®çš®é¡
/page/{slug}
ã§ãã
ãã¢SF2ã®æäœã¹ããŒã ãã©ã®ããã«èŠããããèŠãŠã¿ãŸãããã

æ§æãªãã·ã§ã³ã®è©³çŽ°ã«è§Šããªãå Žåããã¹ãŠãéåžžã«åå§çã§ãã èŠæ±ãå°çãããšãã«ãŒã¿ãŒãåŒã³åºãã³ã³ãããŒã©ãŒã決å®ããã³ã³ãããŒã©ãŒãå¿ èŠãªããŒã¿ãååŸããŠãã¥ãŒã衚瀺ããåæãããå¿çãçºè¡ããŸãã
ããã¯ããªãããç¥ãããã¹ããŒã ã§ãã
ãã®ãªãã·ã§ã³ã¯ãªãCMSã«ååã§ã¯ãªãã®ã§ããïŒ
ããŒãžURLãšã€ãªã¢ã¹ãåŒæ°ãšããŠåãåããããŒã¿ããŒã¹ã«ä¿åãããŠãããã®ãšæ¯èŒããŠããŒãžã衚瀺ããç¹å®ã®
PageController
ãããããšãæ³åããŠãã ããã404
ç§ã®å®è·µã§ã¯ãéçã³ã³ãã³ãã®äžã«ãåå¥ã®ã³ã³ããŒãã³ããšããŠããããµã€ãã®ã»ã¯ã·ã§ã³ã®äžéšãšããŠãã調åã®ãšããç°ãªããã©ãŒã ãååšããå ŽåããããŸããã ããšãã°ãããéè¡ã®ãŠã§ããµã€ãã®ããã¹ãã»ã¯ã·ã§ã³
/credits/cash
ã®URLã«ã¯ã¬ãžãã
/calculator
è¿œå ãããããã人ã ã¯ããŒã³ã«é¢ããå¿ èŠãªæ å ±ãèªãã åŸããã®å Žã§å¿ èŠãªæ°åãææ¡ã§ããŸãã
PageController
ãURLã®æåã®éšåãåŠçãããšä»®å®ããŸããé»åã§äœããã¹ãããããã¯æããã«ãå¥åã®ã³ã³ãããŒã©ãŒãšããŠæ©èœããŸããïŒ
pattern: /credits/cash/calculator
è¿œå ã
pattern: /credits/cash/calculator
èšå®ã§
pattern: /credits/cash/calculator
ãšå¥ã®ã³ã³ãããŒã©ãŒ/ã¢ã¯ã·ã§ã³ãæå®ããŸããïŒ ãªããšãªãugãã æ®ãã®ã«ãŒãã«åªå é äœãä»ãããšããŠããæè»æ§ã®åããããªãããšã¯æããã§ããããŒã¿ããŒã¹å ã®ããã¯ããŒã ãå€æŽãããå Žåãæã§èšå®ãç·šéããå¿ èŠããããŸãã
ä»ã®äœããå¿ èŠã§ãã
SF2ã®ã«ãŒãã£ã³ã°ãèŠçŽããŸãã
- ã©ã®ã³ã³ãããŒã©ãŒããªã¯ãšã¹ããåŠçããŠãããã決å®ããŸã
- URLãã©ã¡ãŒã¿ãŒã解æãããŸã
- ä»ã®ãã¹ãŠã倱æããå Žåãããã©ã«ãã®åäœã¯äºåã«èšå®ãããã«ãŒãã®ã»ããã«åºã¥ããŠããŸã
- ã¢ããªã±ãŒã·ã§ã³æ§æãã
- ãã³ãã«ãã
- ãŠãŒã¶ãŒã¯ã«ãŒããç·šéã§ããŸãã
- éåžžã«å€æ°ã®ã«ãŒãã«å¯Ÿå¿ããŠããŸãã
- CMSã§ã¯ã ãŠãŒã¶ãŒèªèº«ãã©ã®ã¢ãã¬ã¹ã«ããã¹ããã決å®ããããšèããŠããŸãã
Symfony CMFã«ãŒãã£ã³ã°ã³ã³ã»ãã
Symfony 2ã¯çŸãã匷åãªãã®ãæŸæ£ããªããã°ãªããŸããã§ããããCMSã«ãŒã¿ãŒã®å Žåã¯æ°ããã³ã³ã»ãããæ¯æããŠäžäŸ¿ã§ãã
- ã³ã³ãã³ãããªãŒãããã²ãŒã·ã§ã³ããªãŒããåé¢ããå¿ èŠããããŸã
- ããã²ãŒã·ã§ã³ããªãŒã¯ãã³ã³ãã³ãããªãŒèŠçŽ ãžã®ãªã³ã¯ã§æ§æãããŠããŸã ã ãã®ãããå®è£
ã¯ç°¡åã§ãã
- ãã«ããµã€ãïŒãã¹ã¯ããããã¿ãã¬ãããã¢ãã€ã«ããŒãžã§ã³ïŒ
- å€èšèª
- ããã²ãŒã·ã§ã³ãªãŒããŒãããŒã«ã¯ãããã²ãŒã·ã§ã³ããªãŒã®è€è£œãå¿ èŠã§ã
- æºåãã§ããããçµæãæ»ããŸã
ããã«è§£æ±ºçãæµ®ãã³ãŸãïŒå¿ é ãã©ã¡ãŒã¿ãŒ
url: .*
䜿çšããŠããã©ã«ãã«ãŒãïŒ
/{url}
ãäœæãããã¹ãŠã®èŠæ±ã«å¯ŸããŠ1ã€ã®ã³ã³ãããŒã©ãŒãäœæããã³ã³ãã³ãã«å¿ããŠãèŠæ±ãä»ã®ã³ã³ãããŒã©ãŒã«ãªãã€ã¬ã¯ãããŸãã ãããåæã«ãä»ã®ã«ãŒããšã®ç«¶åããã£ã³ã»ã«ãã人ã¯ããŸããã
navigation: pattern: "/{url}" defaults: { _controller: service.controller:indexAction } requirements: url: .*
ããã¯ãŸã ããŸãè¯ãèãããŸããã
ïŒSymfony 2.1ã®æ代ããéæšå¥šãšããŒã¯ããããŸã§ïŒ
DoctrineRouter
æ¹ãããè¯ããœãªã¥ãŒã·ã§ã³ãæäŸããŸããã PHPCR-ODMãä»ããããã¥ã¡ã³ãã®å®è£ ã®æºåãã§ããŠããã®ã§ãããŒã¿ããŒã¹å ã®URLã§ã«ãŒããæ¢ããŠããããããã§ã«ã¯ããã«æè»ã§ããç¬èªã®ãã®ãè¿œå ã§ããŸãã ã³ã³ãããŒã©ãŒã¯ãæ瀺çã«ã«ãŒããæ瀺çã«ç€ºããŸããããã以å€ã®å Žåã¯ã
ControllerResolver
䜿çšããããªã¯ãšã¹ããåŠçããã³ã³ãããŒã©ãŒã決å®ããããšããŸããã çµã¿èŸŒã¿ã®ãªãŸã«ãããããŸããïŒ
- ç¹å®ã®ã¿ã€ãã®ããŒããã³ã³ãããŒã©ãŒã«ãã€ã³ããã
- ç¹å®ã®ã¿ã€ãã®ããŒãããã³ãã¬ãŒãã«ãã€ã³ãããæšæºïŒæ±çšïŒã³ã³ãããŒã©ãŒã䜿çšãã
ããŒããž-ïŒä»ã®ã«ãŒããŸãã¯çµ¶å¯ŸURLãžã®ïŒã«ãŒãã®ãªãã€ã¬ã¯ãã
çŸåšãSymfony CMFã¯2ã€ã®ã³ã³ããŒãã³ãã䜿çšããŠãã«ãŒãã£ã³ã°ã«é¢ãããã¹ãŠã®åé¡ã解決ããŸã
ChainRouter
ããã³
DynamicRouter
ã æåã®ãã®ã¯æšæºã®SF2ã«ãŒã¿ãŒã眮ãæããŸãããååã«ããããããã«ãŒã¿ãŒã¯å®éã«ã¯æ©èœããŸããïŒèŠæ±ãåŠçããã³ã³ãããŒã©ãŒãå®çŸ©ããŸãïŒã 代ããã«ãã«ãŒã¿ãŒããã§ãŒã³ãªã¹ãã«è¿œå ããããšãã§ããŸãã ãã§ãŒã³ã§ã¯ãæ§æããããã¹ãŠã®ã«ãŒã¿ãŒãåªå 床é ã«é çªã«èŠæ±ãåŠçããããšããŸãã ã«ãŒã¿ãŒãµãŒãã¹ã¯ã¿ã°ã«ãã£ãŠæ€çŽ¢ãããŸãã
cmf_routing: chain: routers_by_id: # DynamicRouter # # cmf_routing.dynamic_router: 20 # acme_core.my_router: 50 # router.default: 100 services: acme_core.my_router: class: %my_namespace.my_router_class% tags: - { name: cmf_routing.router, priority: 300 }
ããŠã䜿çšå¯èœãªã«ãŒã¿ãŒã®æ°ã¯ç¡éã§ãã
ããã§ãããŒã¿ããŒã¹ãš
DynamicRouter
å ã®ã«ãŒãã®æ€çŽ¢ãæãåºããŸãã ãã®ã¿ã¹ã¯ã¯ã ãããã€ããŒããã«ãŒããããŒãããããšã§ãããããã€ããŒã¯ããŒã¿ããŒã¹ã«ãªãããšãã§ããŸãïŒéåžžã¯ããã§ãïŒã æšæºããã±ãŒãžã«ã¯ãDoctrine PHPCR-ODMãDoctrine ORMã®ãããã€ããŒå®è£ ãããããã¡ããã RouteProviderInterfaceãå®è£ ããããšã§ãããã€ããŒã®ãªã¹ããè£å®ã§ããŸãã
ãããã€ããŒã¯äœãããŸããïŒ ãªã³ããã³ããããã€ããŒã¯ãçä¿¡èŠæ±ã«é©åããå¯èœæ§ã®ããåè£ã«ãŒãã®é åºä»ããµãã»ãããçºè¡ãã
DynamicRouter
ãæçµæ±ºå®ãè¡ããèŠæ±ãã¿ã€ã
Route
ç¹å®ã®ãªããžã§ã¯ãã«ãããããŸãã

ã«ãŒãã¯ãç¹å®ã®èŠæ±ãåŠçããã³ã³ãããŒã©ãŒã決å®ããŸãã
DynamicRouter
ã¯ãåªå 床ã®éé ã§ããã€ãã®ã¡ãœããã䜿çšããŸãã
- æ瀺çã«ïŒ
Route
ããã¥ã¡ã³ãèªäœã¯ãgetDefault('_controller')
åŒã³åºãããå®å ã³ã³ãããŒã©ãŒãè¿ãããå Žåãå®å ã³ã³ãããŒã©ãŒãæ瀺çã«å®£èšããŸãã - ãšã€ãªã¢ã¹ã«ããïŒã«ãŒãã¯
getDefault('type')
è¿ããŸããããã¯config.yml
ããèšå®ã«ãããããŸã
- ã¯ã©ã¹å¥ïŒ
RouteObjectInterface
ããã¥ã¡ã³ãã¯RouteObjectInterface
ãå®è£ ããgetContent()
ãªããžã§ã¯ããè¿ãå¿ èŠããããŸãã è¿ãããã¯ã©ã¹ã¿ã€ãã¯ãåã³èšå®ã«ãããã³ã°ãããŸã - ããã©ã«ãïŒæå®ãããŠããå Žåãããã©ã«ãã®ã³ã³ãããŒã©ãŒã䜿çšãããŸã
åæ§ã«ïŒæ瀺çã«ãŸãã¯ã¯ã©ã¹ããšã«ïŒãã«ãŒãã¯ããŒãžã®ã¬ã³ããªã³ã°ã«äœ¿çšãããã³ãã¬ãŒããæå®ã§ããŸãã
ãªãã·ã§ã³ã§ãåè¿°ã®
RouteObjectInterface
ã䜿çšããŠãé¢é£ä»ããããã¢ãã«ã€ã³ã¹ã¿ã³ã¹ãè¿ãããã«ã«ãŒããæããããšãã§ããŸãã
ãªãã€ã¬ã¯ãããµããŒããããŠããŸãã äžè¬ã«ã
RedirectRouteInterface
ã€ã³ã¿ãŒãã§ãŒã¹ããã
RedirectRouteInterface
ããPHPCR-ODMã®å Žåã
RedirectRoute
ããã¥ã¡ã³ã圢åŒã®å®è£ ãçšæãããŠããŸãã 絶察URIããã³ãã§ãŒã³å ã®ä»»æã®ã«ãŒã¿ãŒã«ãã£ãŠçæãããååä»ãã«ãŒãã«ãªãã€ã¬ã¯ãã§ããŸãã
Symfonyã䜿çšããããšããªã人ã«ãšã£ãŠèå³æ·±ããã1ã€ã®éèŠãªæ©èœã¯ãã«ãŒã¿ãŒã®åæ¹åæ§ã§ãã æå®ããããã©ã¡ãŒã¿ã«åºã¥ããŠã«ãŒããèªèããããšã«å ããŠããããã®ã«ãŒãã¯ãã©ã¡ãŒã¿ãåŒæ°ãšããŠæž¡ãããšã§çæããããšãã§ããŸãã æšæºã®SF2ã«ãŒã¿ãŒãšã¯ç°ãªãã
path()
é¢æ°ã®ãã©ã¡ãŒã¿ãŒãšããŠãconfigã§æå®ãããã«ãŒãåã ãã§ãªãã
RouteObjectInterface
ã
RouteReferrersInterface
ïŒã€ãŸããã«ãŒããªããžã§ã¯ãïŒã®å®è£ ããŸãã¯content_idã䜿çšããŠãªããžããªå ã®ãªããžã§ã¯ããžã®ãªã³ã¯ãæž¡ãããšãã§ããŸãïŒ
{# myRoute Symfony\Component\Routing\Route #} <a href="{{ path(myRoute) }}">Read on</a> {# / #} <a href="{{ path('/cms/routes') }}">Home</a> {# myContent RouteReferrersInterface #} <a href="{{ path(myContent) }}">Read on</a> {# , ContentRepositoryInterface #} <a href="{{ path(null, {'content_id': '/cms/content/my-content'}) }}"> Read on </a>
è€æ°ã®ã«ãŒããåããããªã¢ã«ã«é©ããŠããå Žåããã±ãŒã«ãã¯ãšãªãã±ãŒã«ãšäžèŽããã«ãŒãã奜ãŸãããšèŠãªãããŸãã
æåŸã«ãããã²ãŒã·ã§ã³ããªãŒãšã³ã³ãã³ãããªãŒã®åé¢ãå°ãåã«æžããããã®ã«æ»ããŸãã å³ãèŠãŠãç¹å®ã®ã«ãŒã«ã«åŸã£ãŠåå²ããããã²ãŒã·ã§ã³ãå¿ èŠãªã³ã³ãããŒã©ãŒã«å¶åŸ¡ã移ãããã®åŸããŒã¿ãèŠæ±ããŸãïŒ

ã«ãŒãã®ç®¡çããã«ã§ã圢åŒïŒããšãã°ãURLã
.html
ã§çµããããã«ïŒãšã¹ã©ãã·ã¥ãèšå®ã§ããŸãã
ããã«å ããŠãå®éšçãªRoutingAutoBundleã¯ãããŸã§ ãå®çŸ©æžã¿ã®ã«ãŒã«ã«åºã¥ããŠã³ã³ãã³ãã®ã«ãŒããçæããããšãææ¡ããŠããŸãã èªåã«ãŒããçæããããšã«ãããæè»æ§ãå®çŸããŸããåã ã®ã«ãŒãã«ã€ããŠããšã€ãªã¢ã¹ã®å€æããµã€ããããã®çæãããã³ã«ãŒãããªã³ã¯ã§ããããã¥ã¡ã³ãã®ã¯ã©ã¹ã®å€æŽãç°¡åã§ãã ãã ããã»ãšãã©ã®å ŽåãåçŽãªCMSã®å Žåããã®ãã³ãã«ã¯å¿ èŠãããŸããã
æè»ãªã«ãŒãã£ã³ã°ã§ããã§çµãããŸãã
ã¡ãã¥ãŒ
CMSã¯ã¡ãã¥ãŒã·ã¹ãã ãªãã§ã¯ã§ããŸããã ã¡ãã¥ãŒæ§é ã¯éåžžãã³ã³ãã³ãã®æ§é ã«åŸããŸãããã³ã³ãã³ãã«ãã£ãŠå®çŸ©ãããŠããªãããç°ãªããªãã·ã§ã³ãæã€ããã€ãã®ã³ã³ããã¹ãã«ååšããç¬èªã®ããžãã¯ãå¿ èŠã«ãªãå ŽåããããŸãã

Symfony CMFã«ã¯ãç¬èªã®ã¡ãã¥ãŒãå®çŸ©ã§ããããŒã«ã§ããMenuBundleãå«ãŸããŠããŸãã æåãªKnpMenuBundleãæ¡åŒµããéå±€çã§å€èšèªã®èŠçŽ ãšãéžæãããªããžããªã«æžã蟌ãããã®ããŒã«ã§è£å®ããŸãã
ã¡ãã¥ãŒã衚瀺ããããšãMenuBundleã¯KnpMenuBundleã®ããã©ã«ãã®ã¬ã³ãã©ãŒãšãã«ããŒã«åºã¥ããŠããŸãã ããã¥ã¡ã³ãå šäœãèªãããšããå§ãããŸãããäžè¬çã«ãæãåçŽãªå Žåãåºåã¯æ¬¡ã®ããã«ãªããŸãã
{{ knp_menu_render('simple') }}
MenuProviderInterface
æž¡ãããã¡ãã¥ãŒåã¯ã
MenuProviderInterface
å®è£ ã«æž¡ããã衚瀺ããã¡ãã¥ãŒã決å®ãããŸãã
ãã³ãã«ã¯ãPHPCRã¹ãã¬ãŒãžããã¡ãã¥ãŒãåçã«ããŒããã
MenuProviderInterface
ã®å®è£ ã§ãã
MenuProviderInterface
ã«åºã¥ããŠããŸãã ããã©ã«ãã§ã¯ããããã€ããŒãµãŒãã¹ã¯
menu_basepath
ãã©ã¡ãŒã¿ãŒã§æ§æãããŸãããã®ãã©ã¡ãŒã¿ãŒã¯ãPHPCRããªãŒã§ã¡ãã¥ãŒãæ¢ãå Žæã瀺ããŸãã ã¡ãã¥ãŒãã¬ã³ããªã³ã°ããããšã
name
ãã©ã¡ãŒã¿ãŒãæž¡ãããŸããããã¯ãæå®ãããããŒã¹ãã¹ã®çŽæ¥ã®åå«ã§ãªããã°ãªããŸããã ããã«ããã
PhpcrMenuProvider
ãåäžã®ã¹ãã¬ãŒãžãšã³ãžã³ã䜿çšããŠè€æ°ã®ã¡ãã¥ãŒéå±€ãæäœã§ããŸãã äžèšã®äœ¿çšäŸãæãåºããŠãã ãããæ§æã§ä»¥äžãæå®ãããŠããå Žåã
/cms/menu/simple
ã¯
/cms/menu/simple
ã«é 眮ããå¿ èŠããããŸãã
cmf_menu: menu_basepath: /cms/menu
ãã³ãã«ã¯ã
MenuNode
ãš
MenuNode
2çš®é¡ã®ããŒãããµããŒãããŠããŸãã
MenuNode
ã¯ãç¹å®ã®ã¡ãã¥ãŒé ç®ã«é¢ããæ å ±ãå«ãŸããŠããŸãïŒ
label
ã
uri
ãåäŸã®
children
ãªã¹ããã«ãŒããžã®ãªã³ã¯ãé¢é£ããContentèŠçŽ ãããã³å±æ§
attributes
ãªã¹ããããã«ãããã¡ãã¥ãŒåºåãã«ã¹ã¿ãã€ãºã§ããŸãã
MenuNode
ã¯ã©ã¹ã¯ã
MenuNode
ãæ¡åŒµããŠå€èšèªããµããŒãã
locale
ãã£ãŒã«ããè¿œå ãããã¢ã€ãã ãå±ãã
translated=true
ãšã
translated=true
ãšããŒã¯ããã
uri
ã®
label
ãå®çŸ©ã
translated=true
ã ãããã¯ã翻蚳éã§ç°ãªãå¯äžã®ãã£ãŒã«ãã§ãã

管çããã«ãšçµ±åããããã«ãSonataDoctrinePhpcrAdminBundleçšã®ããã«ãšãµãŒãã¹ããããŸãã ããã«ã¯ããã«äœ¿çšå¯èœã«ãªããŸããã䜿çšããã«ã¯ãããã·ã¥ããŒãã«æ瀺çã«è¿œå ããå¿ èŠããããŸãã

ãã³ãã«ã¯éåžžã©ããæ§æãããŸããããã¹ãŠã®ãã©ã¡ãŒã¿ãŒã¯ãªãã·ã§ã³ã§ãã
ã«ãŒãã£ã³ã°ãã¡ãã¥ãŒãããã³ã³ã³ãã³ãéã®æ¥ç¶ã¯æ¬¡ã®ãšããã§ãã

ãããã¯
ãããã¯ãæäœããããã®ãã³ãã«ãæäŸãããŸãã ãããã¯ã¯ãããçš®ã®ããžãã¯ãå®è£ ãããããã³ãã¬ãŒãã®ã©ãããã§ãåŒã³åºãããšãã§ããéçã³ã³ãã³ããåã«è¿ãããšãã§ããŸãã BlockBundleã¯SonataBlockBundleã«åºã¥ããŠãããå¿ èŠã«å¿ããŠã芪ãã³ãã«ã®ã³ã³ããŒãã³ãããPHPCRãšäºææ§ã®ããç¬èªã®ãã³ãã«ã«çœ®ãæããŸãã

ã¡ã€ã³ããŒãžããã®å žåçãªãããã¯
ãã³ãã«å ã«ã¯ãããã€ãã®å žåçãªãããã¯ããããŸãã
-
StringBlock
åäžã®body
ãã£ãŒã«ããæã€ãããã¯ããã³ãã¬ãŒãã§æååãã¬ã³ããªã³ã°ããã ãã§ãã¿ã°ã§å²ãããšããããŸãã -
SimpleBlock
title
è¿œå ããbody
-
ContainerBlock
æå®ããããããã¯ã®ãªã¹ãïŒä»ã®ã³ã³ãããŒãããã¯ãå«ãïŒãã¬ã³ããªã³ã°ããŸã -
ReferenceBlock
å¥ã®ãããã¯ã®ã¿ãåç §ã§ããŸãã åŒã³åºããããšããªã³ã¯ãæããããã¯ãåŒã³åºãããããã«åäœããŸãã -
ActionBlock
ã³ã³ãããŒã©ãŒããã®ç¹å®ã®ã¢ã¯ã·ã§ã³ã®çµæãActionBlock
ãŸããç®çã®èŠæ±ãã©ã¡ãŒã¿ãŒãæž¡ãããšãã§ããŸã -
RssBlock
æå®ããããã³ãã¬ãŒãã§RSSãã£ãŒãã衚瀺ããŸã -
ImagineBlock
-PHPCRããçŽæ¥ç»åãåºåããããã«LiipImagineBundleã«ãã£ãŠäœ¿çšãããŸã -
SlideshowBlock
ã¯ç¹å¥ãªçš®é¡ã®ã³ã³ãããããã¯ã§ãããããŒã¯ã¢ããå ã®ä»»æã®ãããã¯ãã©ããããŠãã¹ã©ã€ãã·ã§ãŒãæŽçã§ããŸãã ãã®ããã«èªåã§JSã©ã€ãã©ãªãéžæããå¿ èŠãããããšã¯æ³šç®ã«å€ããŸãããããã«ã¯å«ãŸããŠããŸããã

ç¬èªã®ãããã¯ãäœæã§ããŸã ã
ãããã¯åºåãã£ãã·ã³ã°ã¡ã«ããºã ã¯SonataCacheBundleã®äžã§æ©èœããŸããã BlockBundleã«ã¯MongoDBãMemcachedãããã³APCçšã®ã¢ããã¿ãŒã¯ãããŸãã-VarnishãŸãã¯SSIã«æºè¶³ããå¿ èŠããããŸãã
ãããã¯ã¯Twigé¢æ°
sonata_block_render()
ã䜿çšããŠ
sonata_block_render()
ããŸããå ã®ãã³ãã«ãšã¯ç°ãªããPHPCRã®ãããã¯ã®ååã¯åŒæ°ãšããŠæž¡ãããŸãã
ããã³ããšã³ã/ã€ã³ã©ã€ã³ç·šé
ãªã³ã¶ãã©ã€ç·šéã¯ãããã€ãã®ã³ã³ããŒãã³ãã䜿çšããŠå®è£ ãããŸãã
1ã€ç®ã¯RDFaããŒã¯ã¢ããã§ãã ããã¯HTMLã§ã¡ã¿ããŒã¿ãmicroformatã¹ã¿ã€ã«ã§èšè¿°ããæ¹æ³ã§ãããå±æ§ã䜿çšããŸãã
<div id="myarticle" typeof="http://rdfs.org/sioc/ns#Post" about="http://example.net/blog/news_item"> <h1 property="dcterms:title">News item title</h1> <div property="sioc:content">News item contents</div> </div>
ãã®åŸãäžèšã®ã³ãŒãã¯DOMèŠçŽ ã®ããã ãã»ããã§ã¯ãªããªããŸããããã¯ãå±æ§ããã®æ å ±ãJSã³ãŒãã«ç°¡åã«æœåºãã VIE.jsã䜿çšããŠBackbone.jsã®ã¢ãã«ãšã³ã¬ã¯ã·ã§ã³ã«ãªã³ã¯ã§ããããã§ãã
ãã§ãŒã³ã®3çªç®ã¯create.jsã§ã ãããã«ãããç·šéã€ã³ã¿ãŒãã§ãŒã¹ãæãä»ãå¿ èŠããªããªããŸãã

Create.jsã¯ãŒã¯ãããŒ
create.jsã¯ãjQueryãŠã£ãžã§ããã®VIE.jsã®äžã§å®è¡ãããŸãã 圌ã¯äœãã§ããŸããïŒ
- ãšãã£ã¿ãŒ-AlohaãHallowãRedactorãckEditorã䜿çšããŠãRDFã§ããŒã¯ãããèŠçŽ ã®ã³ã³ãã³ããå€æŽãã
- localStorageã䜿çšããŠãCMSãé¢ããåã«ç·šéãä¿åããã³åŸ©å ããããã®ãµããŒããæäŸããŸãã
- ç·šéäžã«è¡šç€ºãããéç¥ã管çãã
- é©åãªããŒã«ã§ããŒã«ããŒãæŽçãã
- ãåé€ãããå ¬éããåé€ãã¿ã€ãã®ã«ã¹ã¿ã ã¯ãŒã¯ãããŒé¢æ°ãåŒã³åºã
ãã¹ãŠã®ã³ã³ãã³ãã¯ãã®å Žã§ç·šéãããRDFaã«ãããäžéšã®CMSã®ããã«å€§éã®è£å©HTMLããŒã¯ã¢ãããçæããå¿ èŠããããŸããã

åã®å¥ä»ã«ãããckEditor
ããŠã CreatePHPãªã¹ããéããŸã ãcreate.jsåŒã³åºããšããã¯ãšã³ãèªäœããªã³ã¯ããã©ã€ãã©ãªã 圌女ã¯ãPHPã®ã¢ãã«ããããã£ãHTMLå±æ§ã«ãããã³ã°ãããšã³ãã£ãã£ãã¬ã³ããªã³ã°ãã責任ããããŸãã æã泚ææ·±ã人ã¯ãCreatePHPã®Twigæ¡åŒµæ©èœãããããšããã§ã«èŠãŠããããã®åŒã³åºãã¯ãã®èšäºã®æåã®ãªã¹ãã«è¡šç€ºãããŠããŸããã¢ãã«ã転éããåºå圢åŒãæå®ããŸãã çŸäºº
æåŸã®2ã€ã®ã³ã³ããŒãã³ãã¯ãCreateBundleã§äŸ¿å®äžçµåãããŠããŸãã
ã¡ãã£ã¢ãã³ãã«
æãæå°éã®å®è£ ã®ãã³ãã«ã®1ã€ã¯ãã¡ãã£ã¢ãªããžã§ã¯ããæäœããããã®ãã³ãã«ã§ãã ããã¥ã¡ã³ãããã€ããªãã¡ã€ã«ãMP3ããããªãªã©ãéãæããã®ãªãäœã§ãããŸããŸããã çŸåšã®ããŒãžã§ã³ã¯ç»åã®ããŠã³ããŒããšãã¡ã€ã«ã®ããŠã³ããŒãããµããŒãããŠãããæ®ãã¯ããªãã®æã§æžããŸãã SonataMediaBundleã¯ãç¹ã«çµ±åãããŠããããã圹ç«ã¡ãŸãã
ãã³ãã«ã¯ä»¥äžãæäŸããŸãïŒ
- åçŽãªã¢ãã«ã®åºæ¬ææžã
- åçŽãªã¢ãã«ã®åºæ¬çãª
FormType
ã - ãã¡ã€ã«ãã¢ããããŒãããã³ããŠã³ããŒãããããã®ã³ã³ãããŒã©ãŒã
- ãµãŒããŒãžã®ããŠã³ããŒãããã®æœè±¡åãæäŸãããã«ããŒã
- ç»åã衚瀺ããã³ã³ãããŒã©ãŒã
çµ±åçšã®ãã«ããŒãšã¢ããã¿ãŒïŒ
- ã¡ãã£ã¢ãã©ãŠã¶ïŒelFinderãckFinderãMceFileManagerãªã©ïŒ;
- ç»åæäœã©ã€ãã©ãªïŒImagineãLiipImagineBundleïŒã

ç¬èªã®ã¡ãã£ã¢ã¯ã©ã¹ãäœæããããã®å€æ°ã®ã€ã³ã¿ãŒãã§ã€ã¹ããããŸãã
-
MediaInterface
ïŒåºæ¬ã¯ã©ã¹; -
MetadataInterface
ïŒã¡ã¿ããŒã¿å®çŸ©; -
FileInterface
ïŒãã¡ã€ã«ãšããŠå®çŸ©ãããŠããŸãã -
ImageInterface
ïŒç»åãšããŠå®çŸ©ãããŠããŸãã -
FileSystemInterface
ïŒãã¡ã€ã«ã¯ãã¡ã€ã«ã·ã¹ãã ã«ä¿åãããã¡ãã£ã¢ãªããžã§ã¯ããšããŠãã¡ã€ã«ãžã®ãã¹ãä¿åãããŸãã -
BinaryInterface
ïŒäž»ã«ãã¡ã€ã«ãã¡ãã£ã¢ãªããžã§ã¯ãå ã«ä¿åããããšãã«äœ¿çšãããŸãã -
DirectoryInterface
ïŒãã£ã¬ã¯ããªãšããŠå®çŸ©ãããŠããŸãã -
HierarchyInterface
ïŒã¡ãã£ã¢ã¯ãã¡ãã£ã¢ã«ä¿åããããã£ã¬ã¯ããªãã¹ããªããžã§ã¯ãïŒ/path/to/file/filename.ext
ã
ãã¡ã€ã«ãã¹ãžã®èå³æ·±ãã¢ãããŒãããã³ãã«ã®çšèªã§ã¯ãããšãã°ã¡ãã£ã¢ãªããžã§ã¯ããžã®ãã¹ãç解ããã
/path/to/my/media.jpg
Windowsã·ã¹ãã ãš* nixã·ã¹ãã ã®ãã¹ã®éãã¯å¹³æºåãããŸããPHPCRã§ã¯ããã®ãã¹ãèå¥åãšããŠäœ¿çšã§ããŸããããã€ãã®äŸ¿å©ãªæ¹æ³ãå©çšå¯èœã§ãïŒ
-
getPath
PHPCRãORMããŸãã¯ãã®ä»ã®Doctrineã¹ãã¬ãŒãžã«ä¿åãããŠãããªããžã§ã¯ããžã®ãã¹ãååŸããŸã -
getUrlSafePath
å®å šã«äœ¿çšããããã«ãã¹ãURLã«å€æããŸãã -
mapPathToId
Doctrineãªããžããªãæ€çŽ¢ããããã«ãã¹ãèå¥åã«å€æããŸã; -
mapUrlSafePathToId
URLãå€æããŠèå¥åã«æ»ããŸãã
èªæã®æ©èœã¯Twigæ¡åŒµã§å©çšå¯èœã§ãïŒ
<a href="{{ cmf_media_download_url(file) }}" title="Download">Download</a> <img src="{{ cmf_media_display_url(image) }}" alt="" />
æäŸããããã©ãŒã ã¿ã€ãã䜿çšããŠãããã¥ã¡ã³ãã«ç»åãæ·»ä»ã§ããŸãã
use Symfony\Component\Form\FormBuilderInterface; protected function configureFormFields(FormBuilderInterface $formBuilder) { $formBuilder ->add('image', 'cmf_media_image', array('required' => false)) ; }
å®è£ ã¢ããã¿ã¡ãã£ã¢ãã©ãŠã¶elFinderãã©ã€ãã©ãªGaufretteã¯ããã¡ã€ã«ã·ã¹ãã ãšã®äžã«æœè±¡åå±€ãäžããLiipImagineç»åã®æäœãç°¡çŽ åããã

å ã»ã©èšã£ãããã«ããã³ãã«ã®å®è£ ã¯æå°éã§ããåçã¯å€§éã«èªã¿èŸŒãŸããããã§ã¯ãããŸããããããã¥ã¡ã³ãã«æ·»ä»ãããŠãããã¡ã€ã«ãç©ççã«åé€ããã«ã¯ãããã¥ã¡ã³ãèªäœãåé€ããå¿ èŠããããŸãããã®
èŠèŸŒã¿
ã¢ãžã¥ãŒã«ãšã®çµ±åãèšç»ãããŠããŸãïŒäžéšã®å Žæã§ã¯ããçšåºŠæºåãã§ããŠããŸãïŒã
- SymfonyCmfSearchBundleïŒãã«æ€çŽ¢ãLiipSearchBundleãæ¡åŒµïŒ
- SymfonyCmfSimpleCmsïŒCMFã«ä»å±ããæãåçŽãªCMSïŒ
- LuneticsLocaleBundleïŒãã±ãŒã«ã®èªåæ€åºïŒ
- Sonataã®ä»ã®ãã³ãã«
ãããŠãã¡ãããæ°æ©èœã®éçºãšçŸåšã®æ¬ ç¹ã®é€å»ã
ãã¹ãŠããšãŠãè¯ãã§ããïŒ
Symfony CMFã®ãã¹ãŠãçŽ æŽãããã®ã§ãããã§ã¯äœãããã€ããã®ããã¹ããååæ¶ã«ã€ããŠããŸãããã®ãããæ¹å€ã¯ã©ãã«ããã®ããå°ããã®ã¯è«ççã§ãã
ååãªæ¬ ç¹ããããŸãã
Symfony CMFã¯ãã£ãã«æŽæ°ãããŸãã-æ°ããããŒãžã§ã³ããªãªãŒã¹ããããã»ã¹ã¯SF2ãªãªãŒã¹ã¹ããŒã ã«é¡äŒŒããŠããããšãã€ãŸã6ãæããšïŒ4ãæã¯æ°ããæ©èœãäœæãã2ãæã¯ãã°ãä¿®æ£ããŠãªãªãŒã¹ãæºåããŸãïŒã«githubã§ç€ºãããŸãããã¡ãããè匱æ§ãæé€ããããšãç®çãšãããã€ããŒãªä¿®æ£ããããŸãããäžè¬çã«ãæ°ãããã®ãå¿ èŠãªå Žåã¯ãããªãåŸ ããªããã°ãªããŸãããåæã«ãããã¯ãªãªãŒã¹éã§äžäœäºææ§ãç¶æããçŽæã誰ãè² ããªããããªéçºæ®µéã§ããããã¯ã1.0ã1.1ã§æ©èœããŠãããã®ãç°¡åã«å£ããããšãããããšãæå³ããŸãã
ããã¥ã¡ã³ããèŠããã§ããŸãã messãããžã§ã¯ãã®wikiã§ã¯ãå€ãã®èšäºãæ¢ã«åé€ãããŠããå¿ èŠããããŸããå€ãã³ãŒãã¯ã©ããã«æžãããŠãããäžè¬ã«Symfony CMF Bookã¯SF2ã®åæ§ã®ã³ã¬ã¯ã·ã§ã³ã»ã©ãã¬ã³ããªãŒã§ã·ã³ãã«ã§ã¯ãããŸããã
CMFã«ã¯éåžžã«é«ããšã³ããªãããå€ããããŸãããã¹ãã·ã¹ãã ãã€ã³ã¹ããŒã«ããã«ã¯ããwebrootã§ãã¹ãŠã解åããŠinstall.phpãå®è¡ãããã ãã§ã¯äžååã§ããã³ã³ããŒãã³ãéã®æ¥ç¶ãç解ããåã³ã³ããŒãã³ããåŠçã§ããå¿ èŠããããŸããã³ãŒãã®æ¹è¯ãå®è£ ã«ã¯ãå éšã泚ææ·±ã調æ»ããå¿ èŠããããŸãããããããSF2ã䜿çšããŠããéçºè ã¯æããŠããŸããããããããŠãŒã¶ãŒã«ã¯ãŸã£ããããã¥ã¡ã³ãããããŸãã...
ã¹ã¯ãªãŒã³ã·ã§ããã ãã§æãããªçµè«ã¯ãã·ã¹ãã ãç²éã§ããããŸã ãã¬ãŒã³ããŒã·ã§ã³ããã¯ã»ã©é ããšããããšã§ãã管çè ã®äœ¿ããããã«ã¯çåããããŸããããã¯ãã¡ããšããããŒãã¹ãã©ããã®ããã§ããããã¶ã€ããŒã®æã¯ããã§ã¯äœã觊ããŠããªãããã§ããã¯ãŒã«ãªããã³ããšã³ããšãã£ã¿ãŒã«ããããããã
body
管çããã«ã®-elementsã«ã¯ã2è¡ã®é«ãã®æ²æšãªããã¹ããšãªã¢ã®ã¿ãæäŸãããŸããéåžžã®æäœã§ã¯ãããã²ãŒã·ã§ã³ã®æŠå¿µãäžé©åã§ããããããžã§ã¹ãã£ãå€ãããªããã°ãªããŸããã

ããã¥ã¡ã³ããŒã·ã§ã³ã¯ããã°ãã°XãŸãã¯YãåŸã§äœæããããšãçŽæããŸãã誰ãããããžã§ã¯ãã宣äŒãããå Žåã䜿çšã®åŠ¥åœæ§ã説åŸããããšã¯é£ãããšæããŸããSymfony CMFãã€ã³ã¹ããŒã«ããåŸãããªãã®äººçãã©ãã»ã©ç°¡åã§æ¥œãããã®ã«ãªãããçŽæãããããããªèŠãç®ã·ãŒãã¯ãããŸãããäžè¬çã«ãé åçãªäœæ¥ã·ã¹ãã ãåŸãããã®ãããã¯ã¹ãã¯ãããŸããã
ãããšã¯å¥ã«ãSymfony CMFã®ç£æ¥äžã®äœ¿çšäŸã¯ãŸã ãªãããšã«æ³šæããŠãã ãããè² è·ãããã£ãç¶æ ã§ã·ã¹ãã ãã©ã®ããã«åäœããããæ¥ã«æ¡åŒµããå¿ èŠãããå ŽåïŒããã¯ãšã³ããå«ãïŒã«ã©ããããã¯äžæã§ãããããã®åé¡ã¯ããã£ãã·ã¥ãã³ãã«ãšAPCã®ã€ã³ã¹ããŒã«ãé€ããããã¥ã¡ã³ãã«ã¯èšèŒãããŠããŸããã
ããžãã¹ã«åãæããã
VirtualBoxçšã«æºåããä»®æ³ãã·ã³ã€ã¡ãŒãžãããã«ããŠã³ããŒãã§ããŸããVirtualBoxã«ã¯ãããŸããŸãªããã¯ãšã³ããå«ãããã¹ãŠãã€ã³ã¹ããŒã«ããã³æ§æãããŠããŸãã䟿å®äžãhostsãã¡ã€ã«ã«ç»é²ããŠ
ip_ cmf-sandbox
ãã©ãŠã¶ãããã°ã€ã³ã§ããŸãããéåžžã¯IPã¢ãã¬ã¹ã§å ¥åã§ããŸããIPã¢ãã¬ã¹ãå ¥åãããšããã°ã€ã³åŸããã«ããã³ãââãã衚瀺ãããŸãïŒããã©ã«ãã®ãŠãŒã¶ãŒåãšãã¹ã¯ãŒã:)
symfony
ã
ãã©ãŒïŒ.ovaãã¡ã€ã«ãâ1GbïŒïŒ
äœããã®çç±ã§ãããããããããªãå Žåã¯ããªã³ã©ã€ã³ãµã³ãããã¯ã¹ãžã®ãªã³ã¯ãæäŸããŸãããæ¥ãã§èŠãããšã§ãæ©èœããŸãããå éšã§æãäžããããšã¯ã§ããŸããã
å°ãéå±ãªäœæ¥ãæåã§ã€ã³ã¹ããŒã«ããããã詳现ãªæé ã§èª¬æãããŠããåæé ã«ã€ããŠã¯è©³ãã説æããŸãããäž»èŠãªãã€ã³ããå°ãæ©ãã ãã§ãã
ãã·ã³ãCMFãå®è¡ããããã®èŠä»¶ã¯å°ãæšæºçã§ã¯ãããŸããããç¯çœªã¯ãããŸããã
ãŸããSymfony 2ã®æšæºçãªããŒãºãæºããå¿ èŠããããŸãïŒããã¯ãã§ã«å€§äžå€«ã§ããå¯èœæ§ãéåžžã«é«ãïŒïŒ
- PHP 5.3.3以éãã€ã³ã¹ããŒã«
- JSONãæå¹ã«ãã
- ctypeãµããŒããæå¹ã«ãã
- ããããã«
php.ini
æ£åžžã«ã€ã³ã¹ããŒã«date.timezone
- Doctrineã®PDOãã©ã€ããŒã眮ã
ä»ã®ãã¹ãŠïŒAPCãªã©ïŒã¯ãªãã·ã§ã³ã§ãã
次ã¯Symfony CMFã®èŠä»¶ã§ããããã©ã«ãã§ã¯ãSQLiteã¯ããŒã¿ã®ä¿åã«äœ¿çšããããããæ¡åŒµæ©èœãã€ã³ã¹ããŒã«ãããŠããããšã確èªããŠãã ãã
pdo_sqlite
ã
ä»ã®ããã¯ãšã³ãã䜿çšããã«ã¯ã次ãã€ã³ã¹ããŒã«ããŸãã
- Apache Jackrabbitãšãããã«å¿ããJavaïŒãã£ã¹ããªãã¥ãŒã·ã§ã³ããšã«ãç¬èªã®ã€ã³ã¹ããŒã«æ¹æ³ïŒãã€ã³ã¹ããŒã«ãããCMFã®ã«ãŒãã¯ã
jack
äžèŠãªãžã§ã¹ãã£ãŒãªãã§JackrabbitãããŠã³ããŒãããŠèµ·åããã®ã«åœ¹ç«ã€ã¹ã¯ãªããã§ãªããã°ãªããŸããã䜿çšã§ããŸãããJavaã¯åŒãç¶ãåå¥ã«èšå®ãããŸãã - Midgard2 PHPCR PHP. , : , ( sid Debian), , , . , , RPM, deb-. , â Midgard2 CMF .
ãŸãããµã³ãããã¯ã¹ã®ãããã©ã«ããŒã«ã¯
switch_backends.py
ãç§ãæžããã¹ã¯ãªããããããããèªäœãæ§æãå¿ èŠãªãã®ã«çœ®ãæãïŒå ã®ãã¡ã€ã«ã¯ã§ä¿®æ£ãããŸã
app/config/phpcr/
ïŒãå®çšŒåãã£ãã·ã¥ãæ¶å»ããŠãã¹ãŠãèµ·åããŸããæãããªçç±ã§ãç§ã¯ãããŸã§midgardã®ãªãã·ã§ã³ã«ã€ããŠã³ã¡ã³ãããŸãã-ããã§ãåäœããŸããã
ã³ã³ãœãŒã«ã«å ¥åããèªæã«èŠåãã
git pull
ã
composer update
ãèšäºã®åé ã§è¿°ã¹ãããã«ãmasterãã©ã³ãã®å€æŽã¯ã·ã¹ãã ã®ããã©ãŒãã³ã¹ã«éåããããã次ã®å®å®çãªãªãŒã¹ãåŸ ã¡ãŸãã
ãŸãšã
ãããã£ãŠãå€æ°ã®ãããããã«ãé¢ãããããããžã§ã¯ãã¯é¢çœããã§ããé©ããããšã«ãã³ã³ãã³ã管çã®ããã€ãã®åºæ¬çãªåé¡ã¯æ£åžžã«è§£æ±ºãããŸããïŒããšãã°ãå€èšèªãšã«ãŒãã£ã³ã°/ã¡ãã¥ãŒïŒãéçºã¯ããã§ã«ä»äºãããŠããéåžžã«éããã人ã ã®ã°ã«ãŒãã«ãã£ãŠãã£ãããšè¡ãããŠããã®ã§ãããã¥ã¡ã³ãã®ç·šéããã°ã®ä¿®æ£ã«é¢ä¿ãªããgithubã®ãã©ãŒã¯ãšäŸ¿å©ãªãã«ãªã¯ãšã¹ããæåã®å©ãã«ãªããŸããCMFã®æ®åã¯ããã«é²ãã§ããŸãïŒãããã¯ãŒã¯ã§è³æãæ€çŽ¢ããŠã¿ãŠãã ãããå®éã«ã¯ãããŸããïŒããã¹ãŠã®åžæã¯ãªãŒãã³ãœãŒã¹ãšã³ãã¥ããã£ã®ã¿ã§ãã
çŸåšãæ¬çªç°å¢ã§CMFã䜿çšããã®ã¯å±éºãªå ŽåããããŸããããã¹ãŠåãããã«æ³šæããå¿ èŠããããŸããããããããããã®æ°çŸäžãŠãŒãããäœããããã«èœã¡ãŠãæ°å¹ŽåŸã«ã¯çŽ æŽããã補åãèŠã€ããã§ããããïŒ
以äžã§ãã 䟿å©ãªãªã³ã¯ã®å°ããªãªã¹ãïŒ