zoukankan      html  css  js  c++  java
  • 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');
    ?>

    推荐一个自己业余时间开发的网盘搜索引擎,360盘搜www.360panso.com

  • 相关阅读:
    The Tower of Hanoi
    POJ 3259:Wormholes
    第二数学归纳法
    Josephus Problem
    想成为Java高手的25个学习目标
    How to find a cycle of length 4?
    Fabonacci Numbers
    通过参数离线安装SharePoint 2010[转]
    Sharepoint2010文档库权限问题
    BizTalk 2010 学习笔记——第一章 BizTalk 2010 概述
  • 原文地址:https://www.cnblogs.com/eczhou/p/2814877.html
Copyright © 2011-2022 走看看