解析php类的注册与自动加载

 更新时间:2013年07月05日 10:58:04   作者:   我要评论
本篇文章是对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封装的PDO金沙国际官网操作类实例

    PHP封装的PDO金沙国际官网操作类实例

    这篇文章主要介绍了PHP封装的PDO金沙国际官网操作类,结合具体实例形式分析了php基于PDO针对金沙国际官网的增删改查、事务、批量添加等相关操作技巧,需要的朋友可以参考下
    2017-06-06
  • PHP加密解密类实例分析

    PHP加密解密类实例分析

    这篇文章主要介绍了PHP加密解密类,实例分析了php实现加密与解密的原理与相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • PHP的伪随机数与真随机数详解

    PHP的伪随机数与真随机数详解

    这篇文章主要介绍了PHP的伪随机数与真随机数详解,本文首先讲解了真随机数和伪随机数的相关概念,并给出了比用mt_rand()函数产生更好的伪随机数的一段例子代码,需要的朋友可以参考下
    2015-05-05
  • PHP和Shell实现检查SAMBA与NFS Server是否存在

    PHP和Shell实现检查SAMBA与NFS Server是否存在

    这篇文章主要介绍了PHP和Shell实现检查SAMBA与NFS Server是否存在,本文分别给出了PHP检查脚本和Shell检查脚本,需要的朋友可以参考下
    2015-01-01
  • php实现用于删除整个目录的递归函数

    php实现用于删除整个目录的递归函数

    这篇文章主要介绍了php实现用于删除整个目录的递归函数,涉及php递归算法与目录操作技巧,需要的朋友可以参考下
    2015-03-03
  • php实现的中秋博饼游戏之绘制骰子图案功能示例

    php实现的中秋博饼游戏之绘制骰子图案功能示例

    这篇文章主要介绍了php实现的中秋博饼游戏之绘制骰子图案功能,涉及php图形绘制中位置、颜色、形状等相关属性设置操作技巧,需要的朋友可以参考下
    2017-11-11
  • PHP memcache扩展的三种安装方法

    PHP memcache扩展的三种安装方法

    PHP中pecl::memcache扩展的三种安装方法 先提前说明一下还有一种是pecl::memcached,memcached会依赖于libmemcached,这种是比较新的
    2009-04-04
  • php解析字符串里所有URL地址的方法

    php解析字符串里所有URL地址的方法

    这篇文章主要介绍了php解析字符串里所有URL地址的方法,涉及php操作数组、字符串及URL的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • PHP中strtr与str_replace函数运行性能简单测试示例

    PHP中strtr与str_replace函数运行性能简单测试示例

    这篇文章主要介绍了PHP中strtr与str_replace函数运行性能简单测试,结合具体实例形式对比分析了PHP中strtr与str_replace函数的测试运行效率,需要的朋友可以参考下
    2019-06-06
  • PHP分享图片的生成方法

    PHP分享图片的生成方法

    这篇文章主要介绍了PHP分享图片的生成方法,类似淘宝宝贝分享图片功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04

最新评论