自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 php设计模式探秘-单例模式

我们继续扩展我们的电影网站。我们准备制作一个详情页来让用户查看更加详细的电影信息。借用封装好的数据库查询,我们编写了如下代码:<?php// detail.php$movieId = isset($_GET['id']) ? $_GET['id'] : 0;if (empty($movieId)) { exit('操作非法');}$db = new Connection();$d

2017-03-07 20:29:36 171

原创 php设计模式探秘-封装

概况如何让编程变得更简单? 这里,我们尝试用“设计模式”,去解决一些复杂的逻辑问题。为了便于理解,我们先从“封装”开始逐渐引入设计模式;也为了便于理解 ,我们通篇采用一个电影网站来作为需求的背景。封装我们的电影网站,首先有一个电影列表页。它从数据库抓取多条电影数据,并通过html展示出来,代码大致如下:<?php// List.php$offset = isset($_GET['offset'

2017-03-06 18:19:53 152

原创 算法在整个编程环境中的角色

算法,总是一个很具体的事情,它通常是在解决一个特定的问题。程序员的分层和程序员的素质,程序员不光是对自己的编程环境很熟悉,还要有团队合作的一些素质,比如团队合作意识,代码质量意识,文档水平,交流水平,算法在实际工作中所占的比例不是很大,学究与生产,

2015-07-07 10:32:38 329

原创 api中的版本控制

$version = $request->getParam('versionId', true);$method = $this->methodByVersion($version, array(7, 4));$this->$method(&$request, &$response);function methodByVersion($version, array tip){ rsor

2015-07-03 16:47:51 310

原创 php基础实例

我们应用基本的php做一个页面

2015-06-18 11:02:05 217

原创 php基础教程

php能做什么php可以用来作网站,很多大型公司的网站再用Php做。php可以给手机应用提供服务器接口。 以.php结尾的文件中,包含在<?phpphpinfo();变量与数据类型条件判断循环函数和封装字符串数组

2015-06-18 10:12:16 258

原创 角色编程与设计模式

设计模式很多时候是一种抽象概念,并不是都必须用类,或者继承实现的。而且在php方面,很多时候设计模式用非类的方式实现,还能获得更好的可读性和代码简洁度。

2015-06-18 09:02:14 252

原创 数据访问

这里并没有采用很多引擎宣扬的级联,个人觉得把目的放最后很有问题,而且用对象相对有幸能损耗。数据访问方式DB::table(tableName)−>getAll(tableName)->getAll(condition) DB::table(tableName)−>getRow(tableName)->getRow(condition) DB::table(tableName)−>getVal(t

2015-06-16 16:32:01 262

原创 加载最少的代码start.php

在很多php引擎中,加载了很多我们其实并不需要的东西。比如做了很多环境的初始化,但我们其实只用到很少的部分。我们试图做到,一个引擎代码加载量的最小。我们可以只引入一个db库来做脚本,所以,waiterphp只需要加载start.php进行自动加载机制的绑定。关于start.phpstart.php做了三件事情,把Enreiment类的自动加载机制注册到php中、实现主动调用接口(call函数),实

2015-06-16 15:54:36 300

原创 好的接口

如何界定一个代码? 如何定义一个良好的接口?好的接口,一般都具有原子性,越原子的东西,越容易被重用,也越稳定。原子性要求功能单一。逻辑目的尽可能少。

2015-06-16 10:28:16 236

原创 从地铁闪灯看抽象与稳定性

首先程序属于渐进编程,你永远无法知道你现在做的事情将来会变成怎样。这不同于建筑。你就在自己的一亩三分地上面造房子,住宅,只局限于睡觉、用餐、看电视,当然,你也可以有游泳池,但总体上,它是可预测的。你可以把你所有想做的事情收罗到一块,整理计划,慢慢把图纸画出来。程序确是个多变的世界。你都不知道你做的东西下个月会变成什么。整体规划就成了一种费力不讨好的事情。我们只能务实的实现一小个任务,然后以后的事情再

2015-06-15 14:40:52 316

原创 php标准规范

<1. 代码块不得超过10行(独立的代码单元,包括函数不仅限于函数) 2. 代码块职责单一(功能单一原则) 3. 分清控制器和模块的职责(控制器、模块的职责界定) 1. 命名必须采用大小写字母,不得有下划线、数字和特殊字符。 2. 名称不得超过15个字符,须超过15个字符,请申请缩写(当前可用缩写:mag:杂志,arg:参数) 3. 注释在有必要的时候添加,而且注释必须对理解逻辑很作用,注

2015-06-15 13:45:54 535

原创 wailterphp的start

一个引擎,精简和低耦合的极致体验。一个引擎,如何避免加载不必要的代码?wailterPhp在start.php里面做了极大的精简。在文件里, 只提供了可以自动装载功能类的环境,和主动加载功能类的方法。当然,我们在主动加载中,为监控 挂载了注入接口。如果你只装载引擎,那么它只会做这些事情,不会加载其他任何冗余的内容。waiterphp强调低耦合服务和协议。我们可以加载start.php,然后在脚本

2015-06-08 17:43:34 203

原创 请假问题的实现

有时候我们真是滥用设计模式啊。例如下面的场景: 【场景】假设现在一个公司的请假流程如下:一天及以下由小组组长审批,一天以上三天以下由经理审批,三天以上七天以下由老板审批,七天以上直接劝退。 【实现】class Employee{ public static function canLeave($day) { if ($day > 7) {

2015-06-08 17:13:18 487

原创 PHP 5.6.3 日期bug

代码如下:<?phpvar_dump(date('Y-m-d H:i:s', strtotime('2015-10-22 10:00:00') + 86400));var_dump(date('Y-m-d H:i:s', strtotime('2015-10-23 10:00:00') + 86400));var_dump(date('Y-m-d H:i:s', strtotime('2015

2015-06-08 16:00:32 306

原创 php基础

php 变量 数据类型 字符串 运算符 函数 作用域 循环和判断 数组 类

2015-06-03 17:21:07 256

原创 think.class.php的start函数优化

Think.class.php里面40行到99行的代码太乱了。逻辑很简单,debug模式直接装载代码运行,非debug模式有runtime就装载runtime没有则装载代码并生成runtime文件,为何不做简单的抽离,为何要把装载代码和生成runtime弄到一块,看起来很费劲!还有就是你们到底用什么命名方式啊,runtimefile明显是错的!可不可以给出解释。$runtimeFile

2015-06-03 17:06:25 512

原创 thinkphp中twig模板的实现

thinkphp本身支持模板引擎的扩展。对于smarty,它本身内置了,我们只需要设置:'TMPL_ENGINE_TYPE' =>'Smarty'就好了。但对于Twig,我们该怎么办呢?研究发现,我们需要在ThinkPHP\Library\Think\Template\Driver文件夹下面创建Twig.class.php。并把Twig的源码包放到ThinkPHP\Library\Vendo

2015-06-03 17:00:58 640

转载 linux基础命令

linux基础命令服务器登录linux服务器通常通过ssh服务登录。下载putty、SecureCRT等ssh客户端软件,输入ip、用户名便可以登录linux服务器。 有些需要公私钥,请搜索相应文章。当然,我们也可以通过命令行登录:ssh [email protected] //(用户名@ip) **注意:**linux系统和git命令行支持ssh命令,cmd不支持ssh命令如何查看文件[p

2015-06-03 11:34:57 350 1

原创 thinkphp 运行机制和优缺点

thinkphp首先设置一些常量、然后运行Think对象(系统环境),装载think的运行环境,包括:自动加载、异常处理、功能核心等。环境准备好后,运行App对象(应用程序),App对象会调用调度者(dispatcher)解析用户请求,然后通过反射机制实现控制器的访问(控制器的前置操作和后置操作),控制器中,通过自动加载机制访问model和其他层的功能,通过display调用View(视图类),渲

2015-06-03 11:23:54 2978 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除