PHP 自动加载的简单实现(推荐)


Posted in PHP onAugust 12, 2016

基于psr的规范,使用命名空间和spl_autoload_register()来实现自动加载

文件结构:

|--Api

|--Account.php

|--User.php
|--Service

|--Login.php

|--User.php

|--Application.php

Application.php

<?php
use Api\User;
use Service\User as User2;
class Application{
  public static function main(){
    self::registe();
    new User();
    new User2();
  }
  public static function registe(){
    spl_autoload_register("Application::loadClass");
  }
  public static function loadClass($class){
    $class=str_replace('\\', '/', $class);
    $class="./".$class.".php";
    require_once $class;    
  }
}
Application::main();

Api\User.php

<?php
namespace Api;

use Service\Login;
class User{
  public function __construct(){
    echo "User类<br/>";
    new Login();
    new Account();
  }
}

Api\Account.php

<?php
namespace Api;

class Account{
  public function __construct(){
    echo "Account类<br/>";
  }
}

Service\Login.php

<?php
namespace Service;

class Login{
  public function __construct(){
    echo "Login类<br/>";
  }
}

Service\User.php

<?php
namespace Service;

class User{
  public function __construct(){
    echo "Service下的User类<br/>";
  }
}

结果:

PHP 自动加载的简单实现(推荐) 

以上这篇PHP 自动加载的简单实现(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP 和 MySQL 基础教程(三)
Oct 09 PHP
php 无极分类(递归)实现代码
Jan 05 PHP
php smarty 二级分类代码和模版循环例子
Jun 16 PHP
php shell超强免杀、减少体积工具实现代码
Oct 16 PHP
php中get_headers函数的作用及用法的详细介绍
Apr 27 PHP
PHP不用第三变量交换2个变量的值的解决方法
Jun 02 PHP
phpexcel导入excel数据使用方法实例
Dec 24 PHP
PHP实现视频文件上传完整实例
Aug 28 PHP
Yii实现自动加载类地图的方法
Apr 01 PHP
php使用curl伪造来源ip和refer的方法示例
May 08 PHP
PHP实现浏览器格式化显示XML的方法示例
Jan 22 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
Dec 01 PHP
py文件转exe时包含paramiko模块出错解决方法
Aug 12 #PHP
PHP url的pathinfo模式加载不同控制器的简单实现
Aug 12 #PHP
PHP命令行执行整合pathinfo模拟定时任务实例
Aug 12 #PHP
谈谈PHP连接Access数据库的注意事项
Aug 12 #PHP
总结PHP中DateTime的常用方法
Aug 11 #PHP
php使用curl详细解析及问题汇总
Aug 11 #PHP
PHP实现四种基础排序算法的运行时间比较(推荐)
Aug 11 #PHP
You might like
php 正确解码javascript中通过escape编码后的字符
2010/01/28 PHP
php配置php-fpm启动参数及配置详解
2013/11/04 PHP
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
2014/06/23 PHP
php常用日期时间函数实例小结
2019/07/04 PHP
mysqli扩展无法在PHP7下升级问题的解决
2019/09/10 PHP
JS 无法通过W3C验证的处理方法
2010/03/09 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
2014/03/19 Javascript
跟我学Nodejs(三)--- Node.js模块
2014/05/25 NodeJs
js清空表单数据的两种方式(遍历+reset)
2014/07/18 Javascript
js实现从中间开始往上下展开网页窗口的方法
2015/03/02 Javascript
js验证上传图片的方法
2015/05/12 Javascript
分享JavaScript与Java中MD5使用两个例子
2015/12/23 Javascript
JavaScript构造函数详解
2015/12/27 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
2016/04/29 Javascript
详细探究ES6之Proxy代理
2016/07/22 Javascript
js继承实现方法详解
2016/12/16 Javascript
深入理解Javascript箭头函数中的this
2017/02/13 Javascript
vue在使用ECharts时的异步更新和数据加载详解
2017/11/22 Javascript
VUE 配置vue-devtools调试工具及安装方法
2018/09/30 Javascript
ES6之Proxy的get方法详解
2019/10/11 Javascript
Vue组件化开发之通用型弹出框的实现
2020/02/28 Javascript
[03:10]超级美酒第四天 fy拉比克秀 大合集
2018/06/05 DOTA
新手该如何学python怎么学好python?
2008/10/07 Python
jupyter安装小结
2016/03/13 Python
Python魔法方法功能与用法简介
2019/04/04 Python
树莓派采用socket方式文件传输(python)
2019/06/22 Python
python实时检测键盘输入函数的示例
2019/07/17 Python
html5+css3之CSS中的布局与Header的实现
2014/11/21 HTML / CSS
读书心得体会
2013/12/28 职场文书
2014年营业员工作总结
2014/11/18 职场文书
2015年社区党建工作汇报材料
2015/06/25 职场文书
体育教师研修感悟
2015/11/18 职场文书
详解MySQL 用户权限管理
2021/04/20 MySQL
Java虚拟机内存结构及编码实战分享
2022/04/07 Java/Android
Spring中的@Transactional的工作原理
2022/06/05 Java/Android
Redis实现主从复制方式(Master&Slave)
2022/06/21 Redis