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
时间: 2024-11-05 13:22:32

PHP 设计模式 笔记与总结(2)开发 PSR-0 的基础框架的相关文章

iOS开发(0):框架QMUIKit的使用 | 使用第三方UI框架 | cocoapods的使用

对于移动APP来说,客户端(iOS或android)的界面开发是必不可少的工作.为了减轻界面开发的工作量,也为了提高开发的速度,选择一个良好的界面框架,是有意义的. iOS开源的界面框架有很多,比如cocoaui.yykit.qmui_ios等. 本文介绍QMUI_IOS界面框架的使用. qmui_ios,按github上的描述,这是一个致力于提高UI开发效率的解决方案. qmui_ios的官网是:http://qmuiteam.com/ios,官网详细介绍了qmui的使用跟它的功能. qmui

大话PHP设计模式笔记

针对PHP的设计模式进行总结记录. 顺带,我会在后面把我整理的一整套CSS3,PHP,MYSQL的开发的笔记打包放到百度云,有需要可以直接去百度云下载,这样以后你们开发就可以直接翻笔记不用百度搜那么麻烦了.  笔记链接:http://pan.baidu.com/s/1qYdQdKK 密码:pvj2   一.关于命名空间命名空间1.命名空间介绍2.命名空间使用 实例:test1.php文件代码: 1 2 3 4 5 6 7 <?php namespace Test1; function test(

PHP设计模式笔记一:准备工作 -- Rango韩老师 http://www.imooc.com/learn/236

一.编程字体选择 1.选择等宽字体 包括Courier New ,Consolas,Source Code Pro(推荐) 2.环境搭建(建议easyPHP) 二.开发符合PSR规范的基础框架 PSR: 1.命名空间和类文件的绝对路径必须一致 2.类名必须大写: 3.除入口文件外,其他的 ".php"必须只有一个类 符合PSR-0规范的基础框架: 1.全部使用命名空间 2.所有PHP文件必须自动载入,不能有include.require 3.单一入口 入口文件index.php 文件目

前端网页开发经常用到的框架解析

前端网页开发经常用到的框架解析?个人感觉这分为两种情况,一种是能力超强,时间够用的情况,另外一种就是用前端网页框架,可以节约开发时间和减少工作量,这可以根据自身的情况作出正确的判断,并不是别人说什么就是什么. 小项目到底用不用前端网页框架? 小项目本身就是做的事情比较多,但是成本还小,如果让开发人员不停写代码可能会花很多的时间去做,这需要考虑到这个小项目开发时间和成本的.如果用前端网页框架相信大家都知道,可能会考虑到浏览器兼容性,还有功能不够自己用,我想这都不用担心,从QUICKUI开发以来,体

(CZ深入浅出Java基础)设计模式笔记

一.面向对象思想设计原则 1.单一职责原则 其实就是开发人员经常说的"高内聚,低耦合",也就是说,每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有一个.在设计模式中,所有的设计模式都遵循这一原则. 2.开闭原则 核心思想是:一个对象对扩展开放,对修改关闭.其实开闭原则的意思就是:对类的改动是通过增加代码进行的,而不是修改现有代码.也就是说软件开发人员一旦写出了可以运行的代码,就不应该去改动它,而是要保证它能一直运行下去,如何能够做到这一点呢?这就需要借助于抽象和

[设计模式] .NET设计模式笔记 - 了解设计模式

今天在TerryLee的cnblog(http://terrylee.cnblogs.com)里看到了与设计模式相关的整套文章,初学设计模式看完每篇文章后做些笔记和摘抄. ●什么是设计模式,什么是架构? 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的:设计模式使代码编制真正工程化:设计模式是软件工程的基石脉络,如同大厦的

xshell远程终端操作Ubuntu server安装LAMP环境之最详细笔记之二PHP开发环境配置

前言: 昨天学会了安装server,今天试着通过远程终端xshell来安装LAMP,搭配一下开发环境,也有集成环境可以一键安装使用,还是瞎折腾一下,手动一步一步搭建一下这个开发环境. 接上一篇:ubuntu server 14.04 LTS下搭建LAMP环境之最详细笔记之一U盘安装双系统本文原创博客地址:http://www.cnblogs.com/unofficial官网地址:www.pushself.com) 准备: 在windows系统上首先需要安装xhsell,具体下载地址可以搜一下,安

Android:日常学习笔记(8)———探究UI开发(5)

Android:日常学习笔记(8)---探究UI开发(5) ListView控件的使用 ListView的简单用法 public class MainActivity extends AppCompatActivity { private String[] data={"Apple","Banana","Orange","Watermelon","Pear","Grape","

php设计模式笔记:单例模式

意图: 保证一个类仅有一个实例,并且提供一个全局访问点 单例模式有三个特点: 1.一个类只有一个实例2.它必须自行创建这个实例3.必须自行向整个系统提供这个实例 主要实现: Singleton定义了一个instance操作,允许外部访问它的唯一实例,instance是一个类方法,负责创建它的唯一实例. singleton适用场景: 1.当类只能有一个实例而且外部可以从一个公共的访问点访问它.2.当这个唯一实例应该是通过子类化可扩展的.并且用户应该无需更改代码就能使用一个扩展的实例时. Singl