php

编程中的那些套路——关于工厂模式

该文章属于《编程中的那些经典套路——设计模式汇总》系列,并且以下内容基于语言PHP前面我们写了简单工厂模式,《编程中的那些套路——关于简单工厂模式》,但简单工厂模式有一些不足(违反开放封闭原则),所以需要设计出一套更加规范的设计模式。工厂模式就在这个情形下产生了。此处以数据库的选择为例子:工厂模式算是对简单工厂模式的一次升级,新增了一个工厂类接口(factory)。###

PHP:echo、print、print_r() 和 var_dump()

PHP:echo、print、print_r 和 var_dumpecho 和 printecho 和 print 都不是函数,而是 语言结构,所以圆括号都不是必需的。两者十分相似,功能几乎是完全一样。1、echo 可以输出多个字符串,使用 , 连接echo 'a','b','c';输出:abc如果你非要加上圆括号,需要注意echo ('a','b','c');

YII2.0 codeception 一点经验

测试驱动 codeception 的安装我就不写了,http://www.kkh86.com/it/codeception/guide-create-project.html 这里有详细说明。 我就说一下我的测试。首先打开cmd命令提示符 执行cd d:wwwapihandonesvntestscodeceptionfrontend 在输入D: 进入文件夹在执行 php D

使用 PHPStorm 与 Xdebug 调试 Laravel (二)

环境系统版本:OSX 10.11.4PHP 版本:7.0.5Xdebug 版本:2.4.0Laravel 版本:5.1.31PHPStorm 版本:10.0.4根据上篇文章的配置,在工作时会发现,我们需要经常调整 PHP Web Application 的 URL 进行 Debug。举个例子,假如想要 Debug 菜单列表,我需要修改成 /menu/,如果想要 Debug

基于 flow.ci 实现 PHP 项目自动化持续集成

高效程序员的习惯之一——让开发流程自动化。Automating shapes smarter future.这是一个关于如何快速实现 PHP 项目自动化持续集成的快速指导。无论你是否使用过持续集成,或在苦心寻找一款合适的持续集成工具,希望这篇文章对你有帮助。了解 flow.ciflow.ci 是融入了 workflow 机制的持续集成(CI)服务,也可以理解为自动化流程平台

解决Yii2 在线上服务器无法访问GII 和BUG工具栏问题

应用场景 把代码转移到线上服务器时,GII、BUG工具不正常使用,但在本地服务器是正常的。 分析原因 Yii框架在使用GII 和BUG 时,会针对访问IP地址拦截,没有在配置中设置的IP地址是会默认被拦截掉。 解决方案 在common/config/main.php 配置一下参数,访问IP地址,可以百度搜索IP 这样可以看到自己当前的IP地址,这个IP地址是网络运营商自动分

使用 PHPStorm 与 Xdebug 调试 Laravel (一)

环境系统版本:OSX 10.11.4PHP 版本:7.0.5Xdebug 版本:2.4.0Laravel 版本:5.1.31PHPStorm 版本:10.0.4Xdebug 配置本机的 Xdebug 配置文件位于 /usr/local/etc/php/7.0/conf.d/ext-xdebug.ini打开文件添加并以下代码:[xdebug]zend_extension="/

编程中的那些套路——关于装饰器模式

该文章属于《编程中的那些经典套路——设计模式汇总》系列,并且以下内容基于语言PHP今天我们来谈谈装饰器模式,想象一个场景:有一篇帖子帖子的内容我写好了,三个部门的人员想控制它.编辑组要添导读文字审核组要去敏感字市场部想在末尾加点广告我只是一篇帖子,由你们来处置吧。此时如何处理呢?如何写出符合面向对象三特性五原则的代码呢?由此引出装饰器模式就发挥作用了一言不合来看看代码:装饰

memcache与rest服务相结合

在设计一个wordpress插件时,需要用到非wordpress数据库表中的内容,直接访问数据库表是最快的方法,但感觉耦合度太高,因此决定采用访问RESTful service的方法来远程调用数据,这时候带来的另一个问题是每次都要通过http请求访问远端,对性能会有影响,最后想到了何不把远程取来的数据存放在memcache里,这样就极大地节省了http请求的时间。代码如下:

composer 应用

Namespace1.非限定名称或不包含前缀的类名称.如 $a = new foo();如果当前命名空间是 app,则 foo 为appfoo如果当前没有命名空间,代码是全局的.则 foo 被解析为全局 foo2.限定名称或包含前缀的名称.如 $a = new userfoo();如果当前命名空间为 app,则 foo 被解析为 appuserfoo();如果使用 foo