命名空间和自动加载类
命名空间和自动加载类
命名空间基础使用实例
/Huyongjian/Controller/User.php
<?phpnamespace Huyongjian\Controller;class User{ public function show(){ echo __METHOD__; } }
/Huyongjian/Model/User.php
<?phpnamespace Huyongjian\Model;class User{ public function show(){ echo __METHOD__; } }
/index.php
<?php//导入类文件include "./Huyongjian/Controller/User.php";include "./Huyongjian/Model/User.php";//Huyongjian\Controller命名空间下的User类调用$controllerUser = new \Huyongjian\Controller\User();$controllerUser->show();echo "<hr>";//Huyongjian\Model命名空间下User类调用$modelUser = new \Huyongjian\Model\User();$modelUser->show();
浏览器打印
Huyongjian\Controller\User::showHuyongjian\Model\User::show
自动加载类
/autoload.php
<?phpspl_autoload_register(function ($class){ $file = str_replace('\\','/',$class).'.php'; var_dump($file); require $file; });
修改/index.php
<?phpinclude "autoload.php";//Huyongjian\Controller命名空间下的User类调用$controllerUser = new Huyongjian\Controller\User();$controllerUser->show();echo "<hr>";//Huyongjian\Model命名空间下User类调用$modelUser = new Huyongjian\Model\User();$modelUser->show()
浏览器打印
Huyongjian\Controller\User::showHuyongjian\Model\User::show