PHP 设计模式 笔记与总结(2)开发 PSR-0 的基础框架
【PSR-0 规范的三项约定】:
① 命名空间必须与绝对路径一致
② 类名的首字母必须大写
③ 除入口文件外,其他".php"必须只有一个类(不能有可执行的代码)
【开发符合 PSR-0 规范的基础框架】:
① 全部使用命名空间
② 所有 PHP 文件必须自动载入,不能有 include/require
③ 单一入口
初始目录:

其中
index.php 入口文件
App 放置所有和业务逻辑相关的代码
Public 放置公共类文件(貌似 Public 会引起冲突,所以文件夹改名为 Common)
然后在项目文件夹下添加几个文件:

其中 Common/Loader.php 实现文件的自动载入功能,代码如下:
<?php
/*
实现文件自动载入功能
*/
namespace Common; class Loader{
static function autoload($class){
//var_dump($class);//string 'Common\Object' (length=13)
//$file = BASEDIR.'/'.str_replace('\\', '/', $class).'.php';
//var_dump($file);//string 'D:\practise\php\design\psr0/Common/Object.php' (length=45) require BASEDIR.'/'.str_replace('\\', '/', $class).'.php';
}
}
Common/Object.php :
<?php
namespace Common; class Object{
static function test(){
echo __METHOD__,'<br>';
}
}
//除了Object类之外,不得有任何可执行的语句
App/Controller/Home/Index.php:
<?php
namespace App\Controller\Home; class Index{
static function test(){
echo __METHOD__,'<br>';
}
}
运行入口文件 index.php,则会自动加载 App/Controller/Home/Index.php 和 Common/Object.php
<?php
define('BASEDIR',__DIR__); //定义根目录常量
include BASEDIR.'/Common/Loader.php';
spl_autoload_register('\\Common\\Loader::autoload'); //把autoload 注册到php 的自动载入里 Common\Object::test();
App\Controller\Home\Index::test();
页面输出:
Common\Object::test
App\Controller\Home\Index::test
PHP 设计模式 笔记与总结(2)开发 PSR-0 的基础框架的更多相关文章
- 如莲开发平台(MIS基础框架、Java技术、B/S结构)
关于 「如莲」是一套MIS类系统基础框架,主要用于各类“管理信息系统”的开发,也适合做网站后台开发.可省去开发时的框架搭建.规范约定.权限管理等基础工作,直接专注于业务功能实现. 「如 ...
- iOS开发(0):框架QMUIKit的使用 | 使用第三方UI框架 | cocoapods的使用
对于移动APP来说,客户端(iOS或android)的界面开发是必不可少的工作.为了减轻界面开发的工作量,也为了提高开发的速度,选择一个良好的界面框架,是有意义的. iOS开源的界面框架有很多,比如c ...
- 接口开发-基于SpringBoot创建基础框架
说到接口开发,能想到的开发语言有很多种,像什么Java啊..NET啊.PHP啊.NodeJS啊,太多可以用.为什么选择Java,究其原因,最后只有一个解释,那就是“学Java的人多,人员招聘范围大,有 ...
- 大话PHP设计模式笔记
针对PHP的设计模式进行总结记录. 顺带,我会在后面把我整理的一整套CSS3,PHP,MYSQL的开发的笔记打包放到百度云,有需要可以直接去百度云下载,这样以后你们开发就可以直接翻笔记不用百度搜那么麻 ...
- PHP设计模式笔记一:准备工作 -- Rango韩老师 http://www.imooc.com/learn/236
一.编程字体选择 1.选择等宽字体 包括Courier New ,Consolas,Source Code Pro(推荐) 2.环境搭建(建议easyPHP) 二.开发符合PSR规范的基础框架 PSR ...
- php设计模式笔记:单例模式
php设计模式笔记:单例模式 意图: 保证一个类仅有一个实例,并且提供一个全局访问点 单例模式有三个特点: 1.一个类只有一个实例2.它必须自行创建这个实例3.必须自行向整个系统提供这个实例 主要实现 ...
- VSTO 学习笔记(十一)开发Excel 2010 64位自定义公式
原文:VSTO 学习笔记(十一)开发Excel 2010 64位自定义公式 Excel包含很多公式,如数学.日期.文本.逻辑等公式,非常方便,可以灵活快捷的对数据进行处理,达到我们想要的效果.Exce ...
- Spring MVC 学习笔记12 —— SpringMVC+Hibernate开发(1)依赖包搭建
Spring MVC 学习笔记12 -- SpringMVC+Hibernate开发(1)依赖包搭建 用Hibernate帮助建立SpringMVC与数据库之间的联系,通过配置DAO层,Service ...
- springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定
springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定 标签: springmvc springmvc学习笔记13-springmvc注解开发之集合类型參数绑定 数组绑定 需 ...
随机推荐
- cf158B(水题)
题意:1辆出租车可以坐4人,已知k组人每组ki(ki<=4)人去坐车,要求同组人坐同一辆车,求最少需多少辆车.. 4人组的单独算,1人组和3人组一起,如1多余再将1和2匹配即可.... 代码如下 ...
- device unauthorized & ANDROID_ADB_SERVER_PORT 问题解决
最近做安卓开发的时候,碰到了如下两个极品问题,刚开始晕头转向,仔细一研究终于解决了: FAQ1: C:\Users\xxx>adb shelladb: Env var ANDROID_ADB_S ...
- Java Hour 20 Spring
有句名言,叫做10000小时成为某一个领域的专家.姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧. 本文作者Java 现经验约为20 Hour,请各位不吝赐教. 今天心情不佳,只 ...
- Zookeeper的功能以及工作原理
1.ZooKeeper是什么?ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的 ...
- Linux常用命令_(文件操作)
对文件的操作主要有以下命令: touch.cp.rm.mv.ln.mkdir.rmdir
- OutOfMemoryError异常穷举
本文内容的目的有两个:第一,通过代码验证Java虚拟机规范中描述的各个运行时区域存储的内容:第二,在工作中遇到实际的内存溢出异常时,能根据异常的信息快速判断是哪个区域的内存溢出,知道什么样的代码可能会 ...
- ZOJ2539 Energy Minimization(最小割)
题目大概说,给一个n个格子的矩阵,每个格子都有一个数字pi.求这个函数的最小值: 其中xi的取值是0或1,v0.v1已知,j是和i在矩阵中上下左右相邻的位置且j>i. 这个式子有三个加数组成A+ ...
- Jexus & Mono 迁移
具体案例: 问: 这个是现在微信公共平台的进三月请求数合计 如果迁移到 Mono & Jexus 需要注意那些? 因为微信需要的是5秒响应,服务号存在时段高峰值,在峰值上,一台服务器能否 ...
- 洛谷 P1908 逆序对 Label:归并排序||树状数组 不懂
题目描述 猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计.最近,TOM老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定 ...
- Shell 函数 function [转]
本文也即<Learning the bash Shell>3rd Edition的第四章Basic Shell Programming之读书笔记,但我们将不限于此. 运行shell脚本程序 ...