Day: 2015年4月25日

php中通过虚代理实现延迟加载的实现代码

基本原理是通过一个虚代理(Virtual Proxy)做占位符,一旦访问代理对象的某成员(方法或属性),加载就被触发。
这货是从 Martin 大神的《企业应用架构模式》中学到的,辅助 PHP 动态语言的特性,可以比 Java 轻松很多的实现延迟加载(LazyLoad)。基本原理是通过一个虚代理(Virtual Proxy)做占位符,一旦访问代理对象的某成员(方法或属性),加载就被触发。

老调重弹–面向对象设计原则–S.O.L.I.D设计原则

SRP - 单一职责原则

  • 全称:Single Responsibility Principle
  • 定义:每一个上下文对象(类、函数、变量等等)的定义应该仅仅包含单一的职责
  • 描述:对象提供单一职责的高度封装,对象的改变仅仅依赖于单一职责的改变,它基于软件设计中的高内聚性定义
  • 出处:Robert C. Martin(Bob大叔)《Agile Software Development, Principles, Patterns, and Practices》2002
  • 源头:Tom DeMarco 《Structured Analysis and Systems Specification》提出 cohesion   1979
  • 宣言:to make our classes more robust ! a class should

常用PHP设计模式

 

  1. PHP设计模式之工厂方法模式(Factory Method)
  2. PHP设计模式之模板方法模式(Template Method)
  3. PHP设计模式之策略模式(Strategy)
  4. PHP设计模式之迭代器模式(Iterator)
  5. PHP设计模式之命令模式(Command)
  6. PHP设计模式之适配器模式(Adapter)
  7. PHP设计模式之单例模式(Singleton)
  8. PHP设计模式之观察者模式(Observer)
  9.  链接文章转自: 醉清风的博客

2013PHP技术峰会《Bug Free的PHP开发实践分享》摘录

 

上次参加了2013PHP技术峰会,非常精彩,很受益。最近空闲下来,把嘉宾的PPT下载下来看了一通,当然有大牛的主题对我这个菜鸟来说还是看不懂。这里摘录了@高春辉 老师的《Bug Free 的 PHP 开发实践分享》的主题分享内容,我觉得很有价值很有实践指导意义,没有晦涩的技术流,但是很多都是PHP实践中值得注意的细节点。…

thinkphp的缺点,好的代码应该是什么样的

好的代码应该是语义化的、自解释的,配合文档注释和单元测试,甚至可以说代码本身就是文档。说真心话,thinkphp的源代码根本没心情读下去,我猜凡是读过symfony、laravel、phalcon等流行源代码的应该都没心情去读thinkphp。
我觉得thinkphp在国内的流行是一个错误,这误导了很多人,为了写这个评论,我忍受痛苦git clonehttps://github.com/liu21st/thinkphp.git 翻开源代码一点点表达下自己的感受。…

    

PHP程序员如何理解依赖注入容器(dependency injection container)

PHP程序员如何理解依赖注入容器(dependency injection container)

背景知识

传统的思路是应用程序用到一个Foo类,就会创建Foo类并调用Foo类的方法,假如这个方法内需要一个Bar类,就会创建Bar类并调用Bar类的方法,而这个方法内需要一个Bim类,就会创建Bim类,接着做些其它工作。…

控制反转(IoC)与依赖注入(DI)

1.控制反转(Inversion of Control)与依赖注入(Dependency Injection)

控制反转即IoC (Inversion of Control),它把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现对象组件的装配和管理。所谓的“控制反转”概念就是对组件对象控制权的转移,从程序代码本身转移到了外部容器。
IoC是一个很大的概念,可以用不同的方式来实现。其主要实现方式有两种:<1>依赖查找(Dependency Lookup):容器提供回调接口和上下文环境给组件。EJB和Apache Avalon都使用这种方式。<2>依赖注入(Dependency Injection):组件不做定位查询,只提供普通的Java方法让容器去决定依赖关系。后者是时下最流行的IoC类型,其又有接口注入(Interface Injection),设值注入(Setter Injection)和构造子注入(Constructor Injection)三种方式。

话说 依赖注入(DI) or 控制反转(IoC)

科普:
首先依赖注入和控制反转说的是同一个东西,是一种设计模式,这种设计模式用来减少程序间的耦合,鄙人学习了一下,看TP官网还没有相关的文章,就写下这篇拙作介绍一下这种设计模式,希望能为TP社区贡献一些力量。

首先先别追究这个设计模式的定义,否则你一定会被说的云里雾里,笔者就是深受其害,百度了N多文章,都是从理论角度来描述,充斥着大量的生涩词汇,要么就是java代码描述的,也生涩。…