Istnieje kilka pakietów Sf2, które pomagają zamknąć lukę nieco, jak https://github.com/kayue/KayueWordpressBundle, gdzie można użyć jednostek Symfony2, aby uzyskać dane Wordpress, uwierzytelnić się w Wordpress, używać funkcji Wordpress w Twig, takie rzeczy. Może możesz z tym pracować.
Zrobiłem to w ostatnim projekcie i działało naprawdę dobrze.
Aby to działało, musisz mieć dwie oddzielne bazy danych i dwa menedżery encji (jeden dla twojej aplikacji sf2, jeden dla Wordpressa) - przynajmniej tak to działało najlepiej dla mnie, mając prawdziwą aplikację sf2 z jednej strony i używanie Wordpressa po stronie do obsługi dynamicznych stron.
Oto przykład z mojej konfiguracji:
//app/config.yml
doctrine:
dbal:
default_connection: default
connections:
default:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
cms:
driver: "%database_driver_cms%"
host: "%database_host_cms%"
port: "%database_port_cms%"
dbname: "%database_name_cms%"
user: "%database_user_cms%"
password: "%database_password_cms%"
charset: UTF8
orm:
auto_generate_proxy_classes: %kernel.debug%
default_entity_manager: default
entity_managers:
default:
connection: default
mappings:
MyFirstBundle: ~
MySecondBundle: ~ #if you have more than one bundle in your application
cms:
connection: cms
mappings:
KayueWordpressBundle: ~
i konfiguracji KayueWordpressBundle:
//app/config.yml
kayue_wordpress:
# Site URL must match *EXACTLY* with WordPress's setting. Can be found
# on the Settings > General screen, there are field named "WordPress Address"
site_url: %blog_url%
#Note : I put the site_url in my parameters.yml to get this working on all my environments (see comment below)
# Logged in key and salt. Can be found in the wp-config.php file.
logged_in_key: 'samethingasinyourwpconfig'
logged_in_salt: 'samethingasinyourwpconfig'
# Optional: WordPress cookie path/domain settings.
cookie_path: '/'
cookie_domain: null
# Optional: Custom table prefix. Default is "wp_".
table_prefix: 'wp_'
# Optional: Entity manager configuration to use (cache etc). Default is 'default'.
entity_manager: 'cms' #here is where i put the name of my new entity manager defined above
Korzystanie KayueWordpressBundle, mogę teraz dostęp do wszystkich elementów mojego Wordpress za pomocą "cms" kierownika jednostki . Korzystając z menu Wordpress, mogliśmy sprawić, że nasze menu aplikacji dynamicznie integruje nowe strony, które zostały do nich dodane. Byliśmy również w stanie utrzymać ten sam nagłówek i stopkę w naszym Wordpressie używając curl, więc całość była praktycznie bez szwu.
Od strony praktycznej:
zainstalowałem Wordpress w pliku znajduje się w katalogu głównym mojego projektu. Oznacza to, że mogę używać Git z nim, wdrażać go za pomocą Capifony i tym podobne.
Należy pamiętać, że projekt, wtyczki i inne rzeczy muszą być dodane/edytowane w lokalnym środowisku, a następnie przeniesione do repozytorium Git przed wdrożeniem w Capifony. Dynamiczna zawartość twojej wordpress (stron, artykułów) jest jednak zależna od twojej bazy danych, więc ostateczna treść powinna być napisana tylko w twoim środowisku produkcyjnym.
Symfony cmf nie jest aplikacją klasy produkcyjnej i nie mam czasu na nią czekać. cały ten problem pojawił się, ponieważ użyłem Diem, wielkiego sf 1 cmf, który właśnie umarł w pewnym momencie. Właśnie dlatego chcę zarządzać treścią z czymś, co udowodniło, że może przetrwać. Drupal zaczyna brzmieć jak dobra idee. – Liviu