youou 发表于 2015-06-24 09:57

php 自动加载方法

<?php
class inload
{
/**
   * 类自动载入,不需要由开发者调用
   *
   * @param string $class 类文件
   */
    private function autoload( $class )
    {
      if( empty($class) )
      {
            throw new QException('加载文件不存在'.$class);
      }
      else
      {   
            require _SPRING_.'/_Core/SpringMap.php';//框架地图
            if(! file_exists( $source[$class]['file'] ) )
            {
                throw new QException('加载文件不存在'.$class);
            }
            require $source[$class]['file'];
      }
    }
   
    /**
   * 注册或取消注册一个自动类载入方法
   *
   * 该方法参考 Zend Framework
   *
   * @param string $class 提供自动载入服务的类
   * @param boolean $enabled 启用或禁用该服务
   */
    private function registerAutoload($class = 'Interpreter' , $enabled = true)
    {
      if (!function_exists('spl_autoload_register'))
      {
            throw new QException('spl_autoload 不存在这个PHP的安装');
      }
      if ($enabled === true)
      {
            spl_autoload_register(array($class, 'autoload'));
      }
      else
      {
            spl_autoload_unregister(array($class, 'autoload'));
      }
    }
   
    /**
    * 析构函数
    */
    public function __destruct()
    {
      self::registerAutoload('Interpreter' , false);
    }   
举报
页: [1]
查看完整版本: php 自动加载方法