YP.Lam

# PHP

Symfony 4 the new way

Symfony 5 已经发布了一段时间,Symfony 4 也出了 4.4 LTS 版本,于是准备把手上一个历史遗留项目升级到 4.4,然而一动手就遇到麻烦,因为现在官方已经不推荐使用之前那种传统的大 bundle,而是倾向于更通用的组件(作为一个从 Symfony 2 过来的用户,不得不说挺支持官方的做法,因为经常会因为有 bundle 不及时更新而导致 composer 冲突)。

本文章将尝试从头开始创建一个 Symfony 4 基础应用。


Symfony 4 尝鲜

Symfony 4 如期在11月的最后一天发布,相比与 Symfony 2 到 Symfony 3 的升级,Symfony 4 的变化似乎更大,特别是由于加入 Flex 以及 Service Autowired,开发方式都会发生比较大的变化。


Symfony 性能优化

测试环境 ubuntu 14.04, php 5.5.9,使用 ab -c 10 -t 5 的方式针对不同的Symfony配置进行性能测试。


Symfony2 太“重”了?试试 Symfony2 微框架

Symfony2 是一个全功能的框架,因此有些开发人员会以它太“重”了(而不是太“难”了)为理由而拒绝使用。在开发环境下,一个简单的Symfony页面大概需要花费 70ms,而prod环境下大概需要30ms(以上是个人在一个Web App上实践后数据)。虽然相对其提供的功能而言,这是一个可观的数据,但对于一个简单的REST API请求而言,这也许真的太“重”了。


使用 Jenkins 与 Github 对 Symfony 2 应用进行持续集成

持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础。Jenkins 是一个开源软件项目,旨在提供一个开放易用的软件平台,使持续集成变成可能。本文记录如何使用 Jenkins 与 Github 对 Symfony 2 应用进行持续集成。


如何将一个Drupal网站转到Symfony

最近尝试将自己的一些Drupal网站转移到Symfony(这个个人博客就是其中之一),下面分享一些转移过程的心得,主要包括Drupal基本功能在Symfony上的实现。


SonataAdminBundle创建自定义后台页面

SonataAdminBundle可以非常简便地实现CRUD页面,然而,如果我们需要在后台中实现与Entity无关的管理页面,应该怎么办呢?下面分享自己在摸索工程中的一个实现方法。


使用twigExtension实现页面区块功能

所谓区块,就是在页面中展示的一块内容,可以与当前页面内容相关或者无关。譬如常见的在网站侧边栏展示 “最新文章”区块,或者在文章内容页展示“相关文章”区块。


30个最常用的Symfony组件

在Symfony官网上有个投票,让用户选出工作中最有用的组件,下面是评选结果:


PHP中的empty()与isset()

  • In PHP
  • /
  • Posted 2014-12-02

对PHP程序员而言,empty()与isset()肯定不会陌生,甚至是每天都会调用N百遍,正因为如此,我们每个人都认为对它们已经熟悉的不得了,甚至连文档都懒得再翻阅一下,前赴后继的往坑里冲。


Discuz移动接口原理简介

Discuz论坛内置提供针对移动端开发的json接口,下面根据源码进行一些分析。


Drupal 8服务与依赖注入

原文地址:Services and dependency injection in Drupal 8

Drupal 8 引入了服务的概念,用来解耦可复用的功能,并且可以通过在服务容器中注册这些服务,让它们可插拔与可替换。身为开发者,最佳的方式就是通过服务容器来访问Drupal提供的所有服务,这样可以保证遵循系统的解耦特性。在Symfony 2的文档中对服务有非常好的介绍。


Drupal 专题页面模块

Drupal Special Topic 模块提供一种通用并且可定制的 Drupal 专题页面功能。

这里的专题页面,指的是将网站中与某个话题相关的内容聚合到一个页面中,具有特殊的布局与样式设计。国内常见的专题页面大多以区块的形式展现,不同的位置显示不同的内容列表,有链接与图文混合等展示形式。


Drupal微信公众平台模块

最近在用Drupal做一个微信公众平台后台,决定发扬一下开源精神,将微信部分的module分享出来,给有需要的朋友参考使用。现在还是不稳定版本,有任何建议请反馈 yplam#yplam.com 欢迎关注测试反馈:


FOSUserBundle 入门

这是一篇介绍FOSUserBundle的安装与配置笔记,面向Symfony2.1+,更详细的内容请参考:https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/index.md


Symfony服务容器 ( Symfony Service Container )

这是一篇关于Symfony2服务容器实现的笔记,原文请查看文章末尾的相关资料部分。

上一篇笔记介绍了依赖注入容器,依赖注入容器使得对各种系统功能的调用变得简便,但同时引入了一个新的问题就是容器的编写与维护变得非常复杂。Symfony2试图通过ServiceContainer、ServiceContainerBuilder以及xml、yml配置文件来使容器的实现变得简单。


依赖注入容器(Dependency Injection Container)

这是一篇关于Symfony依赖注入容器 Dependency Injection Container 的笔记,原文地址:http://fabien.potencier.org/article/12/do-you-need-a-dependency-injection-container


依赖注入 ( Dependency Injection )

这是一篇关于Symfony依赖注入(Dependency Injection)的笔记,原文地址:http://fabien.potencier.org/article/11/what-is-dependency-injection


Symfony2 启动流程分析

Symfony2 启动流程分析


使用Capifony对Symfony网站进行发布

以前一直使用Drupal来搭建网站,由于需要定制的代码量不是很大,所以每次修改都是直接用sftp传到服务器,再到Drupal后台清一下缓存。最近使用Symfony2进行开发,到了发布环节遇到了问题。Symfony代码的发布并不像其他CMS那么方便,因为更新代码后还需要assetic:dump,assets:install,cache:clear等一系列操作,因此每次更新往往需要登录到服务器去更新代码,运行清理cache的一系列命令。 capifony是针对Symfony开发的应用部署脚本,基于Capistrano。使用capifony只需要进行简单的配置,就可以很方便的将代码部署到不同的服务器上。