代码改变世界

随笔档案-2012年09月

说说PHP的autoLoad

2012-09-27 11:04 by 轩脉刃, 4952 阅读, 收藏, 编辑
摘要: php的autoload大致可以使用两种方法:__autoload和spl方法。这两种方法又各有不同的几种使用方法。 __autoload的使用方法1: 最经常使用的就是这种方法,根据类名,找出类文件,然后require_one function __autoload($class_name) { $path = str_replace('_', '/', $class_name); require $path . '.php';}// 这里会自动加载Http/File/Interface.php 文件$a = new Http_File_Int 阅读全文

为什么使用框架

2012-09-25 18:09 by 轩脉刃, 3315 阅读, 收藏, 编辑
摘要: 这是一篇翻译文章,原文说明了框架在开发过程中给使用带来的懒惰,不思维的弊病。文章来源:http://blog.8thlight.com/myles-megyesi/2012/09/12/why-frameworks.html ===========正文开始 我们是由于效率和易用性的考虑才产生框架。框架能节省开发时间。框架强制使用公共的约定,因此它能有效地解决一些共有的问题,比如页面渲染,ass... 阅读全文

Golang之继承模拟

2012-09-13 23:07 by 轩脉刃, 16443 阅读, 收藏, 编辑
摘要: 问题由一个需求引起: web的controller,希望创建一个基类,然后在子类的controller中定义action方法,基类有一个run函数能根据字符串自动找到子类的action方法。 如何解决呢? -- 用继承 示例分析继承 首先这个需求是很普遍的,由于脑中有继承概念,所以想当然地以为这个很容易实现: package mainimport( "reflect")type A struct {}func (self A)Run() { c := reflect.ValueOf(self) method := c.MethodByName("Test" 阅读全文

PHP静态调用非静态方法

2012-09-12 22:53 by 轩脉刃, 17561 阅读, 收藏, 编辑
摘要: 静态调用非静态方法!!这在java,c#中是不可想象的,也是绝对不行的。这样的错误在这些语言中会在编译阶段就被指出错误的。但是对于php这样的动态语言呢?首先这个是语法没有错误的,php –l 找不出错误来的。如果运行呢? 先看一个例子 <?phpclass myClass{ private $name = "myClass"; public function echoName(){... 阅读全文

架构整洁之道

2012-09-10 10:00 by 轩脉刃, 11143 阅读, 收藏, 编辑
摘要: 这篇文章是翻译(Uncle Bob Martin)的文章。原文在这:http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html。这篇文章作者尝试使用简单的观点将各种架构的共通之处和最终目标说清楚。全文要说清楚的就是一件事“如何写出整洁的架构”。作者希望在架构系统的时候只需要秉持最简单的两个观点(分层和依赖规则)开发,就能开发出干净整洁的系统架构。 以下是译文 过去几年间有许多关于系统架构的观点。比如: 1 六角架构(Hexagonal Architecture )。 这种架构是由Alistai... 阅读全文

使用Golang 搭建http web服务器

2012-09-03 10:39 by 轩脉刃, 85858 阅读, 收藏, 编辑
摘要: Golang在搭建web服务器方面的能力是毋庸置疑的。官方已经有提供net/http包为搭建http服务器做准备。使用这个包能很简单地对web的路由,静态文件,模版,cookie等数据进行设置。至于这个包是否好用,这个就见仁见智了。你可以从net包开始封装一个web框架,当然也可以基于http包封装一个web框架。但是不论你是打算怎么样做,了解基本的net/http包一定是你借鉴的基础。 需求 ... 阅读全文