自动载入实战---构造一个PSR-0的简易框架
PSR-0规范是什么
命名空间与绝对路径一致
类名首字母大写
除入口文件外,其他PHP文件必须只有一个类
建立目录结构
---App
------Controller
---------Home
------------Index.php
---All
------Object.php
------Loader.php
---index.php
上面是本框架的目录结构。
自动载入
\App\Controller\Home\Index.php源代码如下:
<?php
//命名空间与绝对路径一致
namespace Apps\Controller\Home;
Class Index{public static function test(){echo __METHOD__;}
}
\All\Object.php的源代码如下:
<?php
namespace All;
Class Object{public static function test(){echo __METHOD__;}
};
\All\Loader.php是一个自动加载类:
<?php
namespace All;
class Loader{public static function autoload($className){$className=str_replace("\\",'/',$className);//BASEDIR是在index.php中定义的require BASEDIR.'/'.$className.".php";}
}
index.php中的源代码如下:
<?php
define("BASEDIR",__DIR__);
//加载Loader.php文件
include BASEDIR.'/Imooc/Loader.php';
//使用此函数注册autoload
spl_autoload_register("\\Imooc\\Loader::autoload");
//会把Apps\Controller\Home\Index传入注册的autoload函数,从而自动加载Apps\Controller\Home\Index这个类
Apps\Controller\Home\Index::test();
Imooc\Object::test();
自动载入实战---构造一个PSR-0的简易框架相关推荐
- 使用TextInputLayout分分钟构造一个酷炫登录框架
Google在2015的IO大会上,给我们带来了更加详细的Material Design设计规范,同时,也给我们带来了全新的Android Design Support Library,Android ...
- 露雨资源库三(第一个.net2.0软件)-为控件增加自动完成功能
前面我写过"露雨资源库"的第一篇和第二篇,分别介绍了界面设计和设计思路. 链接如下: 露雨资源库(第一个.net2.0软件)一 http://luyu.cnblogs.com/ar ...
- 给定一个随机数生成器(0,1),构造一个随机数生成器(0,4)
现给定一个随机数生成器range2(),可等概率的生成0和1,现如何构造一个随机数生成器range5(),可等概率的生成0,1,2,3,4. 目前有个有点low的想法: 因为现在已有可生成0,1的随机 ...
- 初学编译原理——构造一个DFA,它接受字母表∑={0,1}上能被能5整除的二进制数
题目:构造一个DFA,它接受字母表∑={0,1}上能被能5整除的二进制数 解析如下: 注意,我们要明白DFA是一个一个数字扫描的,比如二进制数字101,其先扫描的字符是1,接下来是0,最后是1. 要求 ...
- 效果良好!构造一个输入速度的神经网络,以DQN方式实现小游戏的自动控制
在之前的文章中,我们做了如下工作: 如何设计一个类flappy-bird小游戏:[python实战]使用pygame写一个flappy-bird类小游戏 | 设计思路+项目结构+代码详解|新手向 DF ...
- 构造一个简单的神经网络,以DQN方式实现小游戏的自动控制
在之前的文章中,我们做了如下工作: 如何设计一个类flappy-bird小游戏:[python实战]使用pygame写一个flappy-bird类小游戏 | 设计思路+项目结构+代码详解|新手向 DF ...
- 大话PHP设计模式:类自动载入、PSR-0规范、链式操作、11种面向对象设计模式实现和使用、OOP的基本原则和自动加载配置...
一.类自动载入 SPL函数 (standard php librarys) 类自动载入,尽管 __autoload() 函数也能自动加载类和接口,但更建议使用 spl_autoload_registe ...
- 实战Spring Boot 2.0系列(一) - 使用Gradle构建Docker镜像
前言 通常我们使用 Dockerfile 来构建项目的 Docker 镜像.但是也有使用 gradle 在编译项目的时候一起把镜像给 构建 并 上传 的需求.本文将会讲解如何使用 gradle 编写并 ...
- php 类加载其它类,PHP 命名空间 namespace / 类别名 use / 框架自动载入 机理的
相比 PHP5.2 版本 PHP5.3 新增了三大主要新特性 命名空间 延迟静态绑定 lambda匿名函数 命名空间的出现也使PHP可以更加合理的组织项目结构,同时通过命名空间和自动载入机制一大批 P ...
最新文章
- 2021-2027年中国手机结构件行业投资分析及发展战略研究咨询报告
- mysql创建外键的表_Mysql表创建外键报错解决方案
- 网站前端和后台性能优化1
- 【C语言】动态分配二维字符串数组
- 工业交换机的几大“择机”标准,你学会了吗?
- 给定没有重复数字的序列,将其全排列
- Blah数集(信息学奥赛一本通-T1333)
- 快速排序 - python版超详细讲解
- 腾跃计算机二级vfp培训,计算机二级:在VFP中实现进度条
- topcoder srm 661 div1
- [第5天]nginx环境下404问题
- 层次选择器[selector_2.html]
- 二维树状数组 探索进行中
- xencenter教程
- MODSCAN32的应用
- Windows 有哪些冷门但是非常值得推荐的软件?
- 计算机无法检测电池损耗怎么办,笔记本电脑电池损耗怎么修复 笔记本电脑电池损耗修复方法...
- 【操作指导】安捷伦数据采集器开机自检/通讯接口设置说明
- 全类销项发票电子化管理系统:iBox+RPA的开票流程数字化
- 关于涉及到区间类型数值的缓存
热门文章
- BIRT 中如何根据参数动态拼接 SQL
- this.$emit is not a function
- python爬虫爬取彼岸图网图片
- 人生:中国青年女科学家颜宁教授:不向前走,你根本不能轻易定义成功与失败
- Week 2 - Wed. Thu.
- 《元宇宙发展与治理》课题调研 齐心构建“元宇宙世界”蓝图
- html调用高德地图得到城市,高德地图API获取行政区域
- Unity 之 解决包体过大问题记录和纹理相关知识点整理
- 日本电子企业败走世界舞台的真假面
- 【场景化能力包】满足不同场景使用的解决方案