解析php类的注册与自动加载
2015-01-24信息快讯网
本篇文章是对php类的注册与自动加载进行了详细的分析介绍,需要的朋友参考下
工程目录如下:
1、将需要注册的类放在一个数组中
<?php final class Utils { private function __construct() { } public static function getClasses($pre_path = '/') { $classes = array( 'DBConfig' => $pre_path.'DBConfig/DBConfig.php', 'User' => $pre_path.'Model/User.php', 'Dao' => $pre_path.'Dao/Dao.php', 'UserDao' => $pre_path.'Dao/UserDao.php', 'UserMapper' => $pre_path.'Mapping/UserMapper.php', ); return $classes; } } ?>
2、注册数组
注意:步骤1中的类的路径都是相对于init.php而言的,不是相对于Utils而言的,这是因为我们通过init.php里的自动加载函数spl_autoload_register来require类的
<?php require_once '/Utils/Utils.php'; final class Init { /** * System config. */ public function init() { // error reporting - all errors for development (ensure you have // display_errors = On in your php.ini file) error_reporting ( E_ALL | E_STRICT ); mb_internal_encoding ( 'UTF-8' ); //registe classes spl_autoload_register ( array ($this,'loadClass' ) ); } /** * Class loader. */ public function loadClass($name) { $classes = Utils::getClasses (); if (! array_key_exists ( $name, $classes )) { die ( 'Class "' . $name . '" not found.' ); } require_once $classes [$name]; } } $init = new Init (); $init->init (); ?>
3、本例中在使用处test.php里require init.php
<?php require_once 'Init.php'; $dao = new UserDao(); $result = $dao->findByName('zcl'); ?>
php实现水仙花数的4个示例分享
php命令行使用方法和命令行参数说明
php实现httpclient类示例
php使用json_encode对变量json编码
php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
zf框架db类的分页示例分享
zf框架的registry(注册表)使用示例
php自动加载autoload机制示例分享
生成随机字符串和验证码的类的PHP实例
PHP输出当前进程所有变量/常量/模块/函数/类的示例
php用户注册页面利用js进行表单验证具体实例
php class类的用法详细总结
如何修改和添加Apache的默认站点目录
php 注册时输入信息验证器的实现详解
php解析html类库simple_html_dom(详细介绍)
浅析十款PHP开发框架的对比
利用PHP实现短域名互转
PHP 安全检测代码片段(分享)
解析zend Framework如何自动加载类
如何在smarty中增加类似foreach的功能自动加载数据
PHP获取MSN好友列表类的实现代码
浅析PHP中Collection 类的设计
解析左右值无限分类的实现算法
CodeIgniter图像处理类的深入解析
深入PHP FTP类的详解
php自动加载机制的深入分析
PHP autoload与spl_autoload自动加载机制的深入理解
用Php编写注册后Email激活验证的实例代码
php中使用__autoload()自动加载未定义类的实现代码