symfony

Symfony支持多个站点(应用)

对于一个网页系统来说,通常会需要面向用户的站点和面向管理员的站点,有的甚至还需要面向App的api站点。这些站点拥有不同的域名,但却共享核心业务逻辑。 Symfony的标准发行版只支持一个站点,虽然可以通过路由系统中的Host配置,根据不同的域名使用不同的路由规则,这样也可以实现类似多站点的功能,但缺点也非常明显: 如果希望某个Service在不同的站点有不同的表现,就没办法实现(DI不能直接注入Request)。 静态文件没办法很好拆分开来 每个页面请求都需要加载所有站点的配置(bundle、路由规则、Service等等),影响性能 不同的站点的异常处理逻辑不同(例如对于NotFoundHttpException,在Api站点可能需要输出一个json串而在网页端需要输出一个404页面) 经过搜索,发现也有人有相同的困惑,也给出了一个初步的解决方案。但是还是有一些细节方面的问题,比如标准发行版自带的Composer post-install-cmd/post-update-cmd(清文件缓存、生成bootstrap.cache.php、

  • Leo Chen
    Leo Chen
5 min read
symfony

vagrant环境中symfony程序速度慢解决方案

最近在写一个symfony程序,最开始是直接在Mac下通过console server:run命令启动一个简单的web服务器来访问,但是Mac本身自带的php没有memcached扩展,所以就把这个程序放到vagrant中,然而发现访问的速度非常慢,一个极其简单的页面也需要消耗10秒左右,于是搜索了一下,发现之前有人遇到相同的问题。 该文章中列出的几个方案: 使用vagrant1.2版本(目测不合适,现在都已经1.7+了) 使用NFS方式挂载目录 vagrant虚拟机中的Vbox Guest Additions版本与virtual box版本一致(我当前的环境就是一致的) 使用opcache扩展(我当前的环境已经安装了apc) 关闭xdebug和xphrof扩展(我当前环境已经关闭) 看这情况,只能尝试一下NFS方式了,根据vagrant的文档配置,还好OS X自带了nfsd,省去了安装的麻烦,

  • Leo Chen
    Leo Chen
1 min read