PSR-0 自动加载类,简单框架

psr-0规范:

1.命名空间和类必须有以下结构 \<Vendor Name>\(<Namespace>\)*<Class Name>
2.每个命名空间必须有顶级的命名空间(“提供者”)
3.每个命名空间可以有任意多个子命名空间
4.从文件系统加载时,每个名称空间分隔符都会转换为DIRECTORY_SEPARATOR(操作系统路径分隔符)。
5.类别名称中的每个_字符都将转换为DIRECTORY_SEPARATOR。 _字符在名称空间中没有特殊含义。
6.从文件系统加载时,标准的名称空间和类的后缀为.php。
7.供应商名称,名称空间和类名称中的字母字符可以是小写和大写的任意组合。

开始创建

- app
- Autoload
--Autoload.php
--Database.php
- index.php
  1. 创建自动加载类
<?php

namespace Autoload;

/**
 * 
 */
class Loader
{
	
	static function autoload($class)
	{
		require BASEDIR.'/'.str_replace('\\','/',$class).'.php';

	}
}

2.index文件为入口文件包含自动加载类

define('BASEDIR',__DIR__);


include(BASEDIR.'\Autoload\Loader.php');

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


spl_autoload_register

spl_autoload_register — 注册给定的函数作为 __autoload 的实现

[手册](https://www.php.net/manual/zh/function.spl-autoload-register.php)

类中使用use

namespace Autoload;
use Autoload\Database as DB;

/**
 * 
 */
class 
{
	
	function test(){
		$db = new DB();
	}
}
posted @ 2019-10-20 10:47  rohua  阅读(123)  评论(0编辑  收藏  举报