30、php处理命名空间的类加载器

2022-10-11 20:30:38 107 0
魁首哥

1、文件目录结构

  • 目录文件

  • 说明

2、文件源码如下

  • index.php
  • Load.php

/**

* Copyright(C) Iamasb

* @project : 3、workerman相关知识点

* @explain : 处理命名空间的类加载器

* @filename : Load.php

* @author : Iamasb

*/

class Load

{

/**

* 文件格式常量

*/

const PREFIX = “.php”;

/**

* 命名空间名称

*/

const NAME = “name1”;

/**

* 处理类文件加载的核心方法

* @param $className

* @return bool

*/

public static function toDo($className)

{

$className = str_replace(‘\\’, DIRECTORY_SEPARATOR , $className);

$file = __DIR__ . DIRECTORY_SEPARATOR .$className. self :: PREFIX ;

if (!file_exists($file)) {

die ($className.” is not exits.”);

}

if (!class_exists($className, false )) {

include_once $file;

}

return true ;

}

}

spl_autoload_register(“Load::toDo”);

  • TestClass.php

/**

* Copyright(C) Iamasb

* @project : 3、workerman相关知识点

* @explain : 类加载器,被加载的测试类

* @filename : TestClass.php

* @author : Iamasb

*/

class TestClass

{

public function func()

{

echo ‘hello world’, PHP_EOL ;

}

}

  • NameClass.php

/**

* Copyright(C) Iamasb

* @project : 3、workerman相关知识点

* @explain : 类加载器,被加载的测试类

* @filename : TestClass.php

* @author : Iamasb

*/

namespace name1;

class NameClass

{

public function func()

{

echo ‘hello I am nameClass->func’, PHP_EOL ;

}

}

3、执行结果

收藏
分享
海报
0 条评论
107
上一篇:讲清楚PHP的运算符 下一篇:「PHP编程」var_dump(1…9)输出什么?旧方法新知识

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码