https://github.com/kayue/KayueWordpressBundleのように、ギャップを少し埋めるのに役立つSf2バンドルがいくつかあります。ここでは、Symfony2エンティティを使用してWordpressデータを取得したり、Wordpressに認証したり、TwigでWordpress関数を使用したりできます。多分あなたはそれで働くことができます。
私は最近のプロジェクトでこれを行いました、そしてそれは本当にうまくいきました。
これを機能させるには、2つの別個のデータベースと2つのエンティティマネージャー(1つはsf2アプリケーション用、もう1つはWordpress用)が必要です。動的ページを処理する側。
これが私の設定の例です:
//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: ~
そして、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
KayueWordpressBundleを使用すると、「cms」エンティティマネージャーを使用してWordpressのすべての要素にアクセスできるようになります。Wordpressメニューを使用して、アプリケーションメニューに追加された新しいページを動的に統合することができました。また、curlを使用してWordpressで同じヘッダーとフッターを維持することができたため、全体が実質的にシームレスでした。
実用面:
プロジェクトのルートディレクトリにあるファイルにWordpressをインストールしました。これは、Gitを一緒に使用したり、Capifonyなどを使用してデプロイしたりできることを意味します。
デザイン、プラグインなどは、ローカル環境で追加/編集してから、Capifonyでデプロイする前にGitリポジトリにプッシュする必要があることに注意してください。ただし、ワードプレスの動的コンテンツ(ページ、記事)はデータベースに依存しているため、最終的なコンテンツは本番環境でのみ作成する必要があります。