首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Wordpress作为CMS的Symfony 2应用程序

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

Stack Overflow用户
提问于 2013-01-18 16:34:53
回答 3查看 16.6K关注 0票数 13

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

我的计划是让路由系统支持一个sf2控制器,让它有第一个机会识别路由并完成它的事情。如果不是,那么它应该让WordPress处理页面的呈现。

我还认为我需要将WordPress内容拉到一些sf2页面中,比如主页,在那里我可能想要将最新的文章放在sf2内容旁边。

以前有没有人这样做过?赞成与反对?关于如何实现这一点的建议?谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-17 23:04:17

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

票数 13
EN

Stack Overflow用户

发布于 2013-09-10 16:41:25

有一些Sf2包可以帮助缩小差距,比如https://github.com/kayue/KayueWordpressBundle,你可以使用Symfony2实体来获取Wordpress数据,认证到Wordpress,使用Twig中的Wordpress函数,诸如此类的事情。也许你可以利用这一点。

我在最近的一个项目中做到了这一点,它工作得非常好。

要做到这一点,你需要有两个独立的数据库和两个实体管理器(一个用于你的sf2应用程序,一个用于Wordpress) --至少对我来说这是最好的方式,一边是一个真正的sf2应用程序,另一边是Wordpress来处理动态页面。

下面是我的配置示例:

代码语言:javascript
运行
复制
//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配置:

代码语言:javascript
运行
复制
//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存储库。然而,wordpress的动态内容(页面、文章)依赖于您的数据库,因此最终内容只能在您的生产环境中编写。

票数 6
EN

Stack Overflow用户

发布于 2013-01-18 21:23:41

首先,为了将Wordpress与Symfony 2集成在一起,你必须想出一个“胶水”计划,因为Wordpress并不遵循interoperability standards,然后Symfony 2和其他框架才能实现这种程度的轻松集成。

其次,如果您可以查看Symfony CMF,那就太好了,它基本上是一个内容管理框架的实现,允许您在Symfony 2组件之上创建自己的内容管理系统。

第三点也是最后一点是,您试图实现的这种集成并没有太多意义。你需求的第一部分,在Wordpress之上需要一个简单的层来处理传入的请求,可以通过对Wordpress的前端控制器代码进行简单的hack来解决。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14395074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档