使用Wordpress作为CMS的Symfony 2应用程序

Liv*_*viu 13 wordpress symfony

我想构建一个sf2应用程序并使用国际化(wpml插件)维护WordPress中的所有内容(类别,文章,页面,媒体等).该应用程序将拥有自己的管理员和管理用户登录到WordPress后端的内容.

我的计划是让路由系统备份一个sf2控制器,并给它第一次识别路由并做其事情的机会.如果不是,那么应该让WordPress处理页面的呈现.

我还认为我需要在某些sf2页面中提取WordPress内容,例如我可能希望将最新文章与sf2内容放在一起的主页.

有没有人曾经这样做过?优点和缺点?关于如何实现这个的建议?谢谢!

Tam*_*lyn 13

从不同角度看看这两个正在接近Symfony-WordPress集成的项目:


his*_*sem 6

有一些Sf2捆绑包可以帮助缩小差距,比如https://github.com/kayue/KayueWordpressBundle,你可以使用Symfony2实体获取Wordpress数据,在Wordpress中进行身份验证,在Twig中使用Wordpress功能,等等.也许你可以使用它.

我在最近的一个项目中做到了这一点并且效果非常好.

为了使这项工作,您需要有两个单独的数据库和两个实体管理器(一个用于您的sf2应用程序,一个用于Wordpress) - 至少它是如何最适合我,一方面有一个真正的sf2应用程序和使用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: ~
Run Code Online (Sandbox Code Playgroud)

和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
Run Code Online (Sandbox Code Playgroud)

使用KayueWordpressBundle,我现在可以使用"cms"实体管理器访问Wordpress的所有元素.使用Wordpress菜单,我们能够使我们的应用程序菜单动态集成添加到它们的新页面.我们也可以使用curl在Wordpress上保持相同的页眉和页脚,所以整个过程实际上是无缝的.

在实践方面:

我在一个位于项目根目录下的文件中安装了Wordpress.这意味着我可以使用Git,使用Capifony和类似的东西进行部署.

请注意,需要在本地环境中添加/编辑设计,插件和内容,然后在使用Capifony进行部署之前将其推送到Git存储库.然而,wordpress(页面,文章)的动态内容取决于您的数据库,因此最终内容应仅在您的生产环境中编写.