手机
当前位置:查字典教程网 >编程开发 >php教程 >解析php类的注册与自动加载
解析php类的注册与自动加载
摘要:工程目录如下:1、将需要注册的类放在一个数组中复制代码代码如下:2、注册数组注意:步骤1中的类的路径都是相对于init.php而言的,不是相...

工程目录如下:

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

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类的注册与自动加载】相关文章:

php实现的简单日志写入函数

php结合ACCESS的跨库查询功能

php一个解析字符串排列数组的方法

Email+URL的判断和自动转换函数

php的计数器程序

php线性表的入栈与出栈实例分析

用PHP读注册表

用 php 编写的日历

资料注册后发信小技巧

福利彩票幸运号码自动生成器

精品推荐
分类导航