快捷搜索:  汽车  科技

php网站开发范例(php处理命名空间的类加载器)

php网站开发范例(php处理命名空间的类加载器)require_once "Load.php"; */ * @explain : 测试文件入口 * @filename : index.php * @author : Iamasb

1、文件目录结构
  • 目录文件

php网站开发范例(php处理命名空间的类加载器)(1)

  • 说明

php网站开发范例(php处理命名空间的类加载器)(2)

2、文件源码如下
  • index.php

<?php

/**

* Copyright(C) Iamasb

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

* @explain : 测试文件入口

* @filename : index.php

* @author : Iamasb

*/

require_once "Load.php";

// 通过use引入类

use name1\NameClass;

$nc = new NameClass();

$nc->func();

$tc = new TestClass();

$tc->func();

  • Load.php

<?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

<?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

<?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、执行结果

php网站开发范例(php处理命名空间的类加载器)(3)

猜您喜欢: