修复symfony下swiftmail 无法发送邮件的问题

wpcraft项目中,本来是支持在部分情况下自动发送邮件的,但是今天测试一下发现好像不好使了,并且印象中好像没有修改到swiftmail的配置,甚至一度怀疑是smtp服务器把我的IP屏蔽了的缘故,但是后来试了一下phpmail却可以正常发送邮件,对比了一下,好像swiftmail默认的配置缺少点东西,于是按如下补上,修改app/config/parameters.yml

swiftmailer:
    transport: '%mailer_transport%'
    host: '%mailer_host%'
    username: '%mailer_user%'
    password: '%mailer_password%'
    port: '587'
    encryption: 'tls'
    spool: { type: memory }

添加了portencryption两个参数,结果一切正常,至于为什么突然要加这两项配置,我也挺纳闷…

使用pecl安装php扩展

mac最近brew安装PHP扩展似乎不是很好使,于是想到使用pecl来安装了

pecl很大概率需要使用代理

下面的命令是安装php5.6版本的,具体安装什么版本可能需要去pecl.net网站上自己查看。

sudo pecl channel-update pecl.php.net
pecl search xdebug
sudo pecl install xdebug-2.5.5
sudo pecl install redis-2.2.8

PHP设计模式之观察者模式

感觉symfony中使用的service机制,依赖注入机制不是被很好的理解,主要是设计模式不了解,于是网上看了一下观察者模式的说明,算是有些了解了。

所谓观察者模式,就是当前对象应当有一个或者若干个观察者,当自己被改变时会通知观察者,让观察者做出反应,如果不用观察者模式,这个“做出反应”可能就是自己去实现的,这样使得代码耦合性太高,把这个反应放入到观察者,让观察者做自己的处理,当前类只专注于自己的业务处理,能有效降低耦合度。

继续阅读“PHP设计模式之观察者模式”

symfony开发环境配置

如果是windows环境开发建议全程使用git bash代替cmd。

安装

一般来说有三种安装方式,1.symfony的安装器安装,2.composer安装,3.github安装,经过自己使用第一种安装方式是最简单速度也是最快的,输入如下命令创建一个新的symfony项目:

php -r "readfile('https://symfony.com/installer');" > symfony
symfony new my_project_name

继续阅读“symfony开发环境配置”

一次LAMP+mongodb环境搭建过程

昨天根据一位朋友的要求帮忙搭建一个lamp的环境,一路上遇到各种问题,记录在此。

问题:给你一台全新的centos系统,安装apache+mysql+php5.6+mongodb.

一台全新的centos,意味着可能没有网,没有vim,没有ping。。。当然如果ssh登录到远程服务器那肯定是有网的。如果你是直接在物理机上面操作,如果遇到没有网的情况,

vi /etc/sysconfig/network-scripts/ifcfg-eno(后面是一段数字)

将这个文件中的ONBOOT=no改成ONBOOT=yes,之后:wq保存退出
继续阅读“一次LAMP+mongodb环境搭建过程”

Centos下Yum安装PHP5.5/5.6/7.0

经本人使用,通过这种方式安装的php会有一些扩展没有安装。

centos安装posix扩展(workerman需要使用此扩展):

yum install php-posix

安装intl扩展:

yum list | grep intl

找到适合自己版本的扩展进行安装即可,我安装的是56w这个版本的,这个你可能没有,需要安装webtatic源,请查看文章

https://blog.yeskn.com/archives/893.html

该文章的php部分讲到如何安装webtatic源。

默认的版本太低了,手动安装有一些麻烦,想采用Yum安装的可以使用下面的方案:

  1. 检查当前安装的PHP包

    yum list installed | grep php

如果有安装的PHP包,先删除他们:

yum remove php.x86_64 php-cli.x86_64 php-common.x86_64 php-gd.x86_64 php-ldap.x86_64 php-mbstring.x86_64 php-mcrypt.x86_64 php-mysql.x86_64 php-pdo.x86_64</pre>
  1. 如果想删除上面安装的包,重新安装:
    rpm -qa | grep webstatic
    rpm -e  上面搜索到的包
    
  2. 运行yum install

yum install php55w.x86_64 php55w-cli.x86_64 php55w-common.x86_64 php55w-gd.x86_64 php55w-ldap.x86_64 php55w-mbstring.x86_64 php55w-mcrypt.x86_64 php55w-mysql.x86_64 php55w-pdo.x86_6

yum install php56w.x86_64 php56w-cli.x86_64 php56w-common.x86_64 php56w-gd.x86_64 php56w-ldap.x86_64 php56w-mbstring.x86_64 php56w-mcrypt.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64

注:如果想升级到5.6把上面的55w换成56w就可以了。

yum install php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-mysql.x86_64 php70w-pdo.x86_64
  1. 安装PHP FPM
yum install php55w-fpm 
yum install php56w-fpm 
yum install php70w-fpm

注:如果想升级到5.6把上面的55w换成56w就可以了。