慕课网----大话PHP设计模式 一(命名空间,类的自动加载,PSR-0)

2023-10-12 10:32

本文主要是介绍慕课网----大话PHP设计模式 一(命名空间,类的自动加载,PSR-0),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.如果是相同的命名空间,就不能创建相同名字的类和函数了。会产生命名冲突。
2.调用对应命名空间的方法,先用require来引入,然后用Test1\test()的方式来引用。
3.类的自动载入:代码如下,这是被废弃的版本,因为可能一个php项目会有多个框架,然后都用__autoload的话,会导致命名冲突。但这个也是不错的方法。
__DIR__ 这个魔法变量是获取当前的目录,然后当程序里面调用对应的类的时候,发现没有引入过这个类的话,就会去吧这个类的名字传到__autoload这个方法里面,如这个例子的话,传来的$class参数是Test1或者Test2。然后加上.php的话就能实现自动载入了。
类的自动加载

在最新版本里面,官方出来的方法是spl_autoload_register()
这个方法的话也是基于autoload的,使用方式就是先写好上述的__autoload方法,然后

spl_autoload_register('\\Imooc\\Loader::autoload');

这样的方式去加载。如果有多个框架的话,就使用多次这个语句。
通过目录和类去判断哪个地方的自动载入。上面这个对应的路径是Imooc目录下的Loader类里面的autoload方法。

class Loader{static function autoload($class){// \\ 双反斜杠的话是因为反斜杠要进行转移的//BASEDIR 是在index.php这个入口文件里面预定义的变量require BASEDIR . '/' . str_replace('\\', '/', $class) . '.php';}
}

然后在入口文件index.php里面

define('BASEDIR', __DIR__);
include BASEDIR . '/Imooc/Loader php';
//先引入对应的文件,即类。然后通过下面那个spl的方法,来定义自动加载的类
//spl php标准库
spl_autoload_register('\\Imooc\\Loader::autoload');

4.PSR-0的规范。
PSR-0规范

这篇关于慕课网----大话PHP设计模式 一(命名空间,类的自动加载,PSR-0)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/195252

相关文章

变量与命名

引言         在前两个课时中,我们已经了解了 Python 程序的基本结构,学习了如何正确地使用缩进来组织代码,并且知道了注释的重要性。现在我们将进一步深入到 Python 编程的核心——变量与命名。变量是我们存储数据的主要方式,而合理的命名则有助于提高代码的可读性和可维护性。 变量的概念与使用         在 Python 中,变量是一种用来存储数据值的标识符。创建变量很简单,

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

Flutter 进阶:绘制加载动画

绘制加载动画:由小圆组成的大圆 1. 定义 LoadingScreen 类2. 实现 _LoadingScreenState 类3. 定义 LoadingPainter 类4. 总结 实现加载动画 我们需要定义两个类:LoadingScreen 和 LoadingPainter。LoadingScreen 负责控制动画的状态,而 LoadingPainter 则负责绘制动画。

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

Python3 BeautifulSoup爬虫 POJ自动提交

POJ 提交代码采用Base64加密方式 import http.cookiejarimport loggingimport urllib.parseimport urllib.requestimport base64from bs4 import BeautifulSoupfrom submitcode import SubmitCodeclass SubmitPoj():de

PHP原理之内存管理中难懂的几个点

PHP的内存管理, 分为俩大部分, 第一部分是PHP自身的内存管理, 这部分主要的内容就是引用计数, 写时复制, 等等面向应用的层面的管理. 而第二部分就是今天我要介绍的, zend_alloc中描写的关于PHP自身的内存管理, 包括它是如何管理可用内存, 如何分配内存等. 另外, 为什么要写这个呢, 因为之前并没有任何资料来介绍PHP内存管理中使用的策略, 数据结构, 或者算法. 而在我们

php中json_decode()和json_encode()

1.json_decode() json_decode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) json_decode — 对 JSON 格式的字符串进行编码 说明 mixed json_decode ( string $json [, bool $assoc ] ) 接受一个 JSON 格式的字符串并且把它转换为 PHP 变量 参数 json

如何将文件夹里的PHP代码放到一个文件里

find ./dir -name "*.php" -exec 'cat' {} \; > dir.out

PHP抓取网站图片脚本

方法一: <?phpheader("Content-type:image/jpeg"); class download_image{function read_url($str) { $file=fopen($str,"r");$result = ''; while(!feof($file)) { $result.=fgets($file,9999); } fclose($file); re

PHP防止SQL注入详解及防范

SQL 注入是PHP应用中最常见的漏洞之一。事实上令人惊奇的是,开发者要同时犯两个错误才会引发一个SQL注入漏洞。 一个是没有对输入的数据进行过滤(过滤输入),还有一个是没有对发送到数据库的数据进行转义(转义输出)。这两个重要的步骤缺一不可,需要同时加以特别关注以减少程序错误。 对于攻击者来说,进行SQL注入攻击需要思考和试验,对数据库方案进行有根有据的推理非常有必要(当然假设攻击者看不到你的