php 类自动载入的方法

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);
  }

以上所述就是本文的全部内容了,希望大家能够喜欢。

(0)

相关推荐

  • 说说PHP的autoLoad自动加载机制

    __autoload的使用方法1: 最经常使用的就是这种方法,根据类名,找出类文件,然后require_one 复制代码 代码如下: function __autoload($class_name) { $path = str_replace('_', '/', $class_name); require_once $path . '.php'; } // 这里会自动加载Http/File/Interface.php 文件 $a = new Http_File_Interface(); 这种方法

  • 深入理解PHP类的自动载入机制

    php的自动加载: 在php5以前,我们要用某个类或类的方法,那必须include或者require,之后才能使用,每次用一个类,都需要写一条include,麻烦 php作者想简单点,最好能引用一个类时,如果当前没有include进来,系统能自动去找到该类,自动引进~ 于是:__autoload()函数应运而生. 通常放在应用程序入口类里面,比如discuz中,放在class_core.php中. 先讲浅显的例子: 第一种情况:文件A.php中内容如下 <?php class A{ public

  • PHP的autoload自动加载机制使用说明

    在PHP开发过程中,如果希望从外部引入一个class,通常会使用include和require方法,去把定义这个class的文件包含进来,但是这样可能会使得在引用文件的新脚本中,存在大量的include或require方法调用,如果一时疏忽遗漏则会产生错误,使得代码难以维护. 自PHP5后,引入了__autoload这个拦截器方法,可以自动对class文件进行包含引用,通常我们会这么写: 复制代码 代码如下: function __autoload($className) { include_o

  • php自动加载的两种实现方法

    php自动载方法有两种. 第一种方案用__autoload,这个函数较简单,也较弱. 但有一问题没有解决, 就是在include前判断文件是否存在的问题. 复制代码 代码如下: set_include_path('aa' . PATH_SEPARATOR . get_include_path()); function __autoload($className) { //如果加这个检测, 因为此文件不在当前目录下,它就会检测不到文件存在, //但include是能成功的 if (file_exi

  • php 类自动载入的方法

    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(! f

  • PHP自动载入类文件函数__autoload的使用方法

    开发面向对象的应用程序时,往往要对每个类的定义建立一个 PHP 源文件.这样的做法产生的一个很大的烦恼就是不得不在每个脚本(每个类一个文件)开头写一个长长的包含文件的列表. 在PHP开发的系统中,当在一个文件中需要调用另一个PHP文件中声明的类时,就需要通过include或require把这个文件引入.不过有的时候,在文件众多的项目中,要一一将所需类的文件都包含进来,是一个让人很头疼的事,所以我们能不能在用到什么类的时候,再把这个类所在的php文件导入呢?这就是我们这里我们要讲的自动加载类. 在

  • php自动载入类用法实例分析

    本文实例讲述了php自动载入类用法.分享给大家供大家参考,具体如下: <?php //function __autoload($class_name) { // require_once $class_name . '.php'; //} spl_autoload_register(array("core",'autoload'));//当实例化类的时候,自动调用core类中的autoload()方法来载入类 //也可以使用__autoload()来实现,但是php新版本建议使用

  • php类自动加载器实现方法

    本文实例讲述了php类自动加载器实现方法.分享给大家供大家参考.具体如下: 这里autoload 可兼容以下格式: Cache_File_Json class_xxx.php xxx.class.php   xxx.php php代码如下: function __autoload($className){ $dirs=explode('_',$className); $fileName=array_pop($dirs); //print_r($dirs); $filePath=$fileName

  • springboot+mybatis通过实体类自动生成数据库表的方法

    前言 本章介绍使用mybatis结合mysql数据库自动根据实体类生成相关的数据库表. 首先引入相关的pom包我这里使用的是springboot2.1.8.RELEASE的版本 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.0</ve

  • shell实现SSH自动登陆的方法示例

    前言 公司开发使用docker,每次登陆自己开发机总要输入 ssh user_name@ip_string,然后再确认输入password,手快了还经常会输错.作为一个懒人,肯定要找一个取巧的方式,查看了下ssh命令,由于它要进行一次跟服务器的加密交互,所以没有直接附带密码登陆的选项,只好作罢. 前些天在同事进行技术分享时,看到他竟然只输入了一行命令./test.sh就成功登陆了开发机,甚是惊异,于是回来搜索研究了一下,遂成此文. shell脚本基础 在编写ssh自动登陆脚本之前,先说一下she

  • php实现的redis缓存类定义与使用方法示例

    本文实例讲述了php实现的redis缓存类定义与使用方法.分享给大家供大家参考,具体如下: php+redis缓存类 <?php class redisCache { /** * $host : redis服务器ip * $port : redis服务器端口 * $lifetime : 缓存文件有效期,单位为秒 * $cacheid : 缓存文件路径,包含文件名 */ private $host; private $port; private $lifetime; private $cachei

  • Android编程实现自动检测版本及自动升级的方法

    本文实例讲述了Android编程实现自动检测版本及自动升级的方法.分享给大家供大家参考,具体如下: 步骤: 1.检测当前版本的信息AndroidManifest.xml-->manifest-->android:versionName. 2.从服务器获取版本号(版本号存在于xml文件中)并与当前检测到的版本进行匹配,如果不匹配,提示用户进行升级,如果匹配则进入程序主界面. 3.当提示用户进行版本升级时,如果用户点击了确定,系统将自动从服务器上下载并进行自动升级,如果点击取消将进入程序主界面.

  • java线程之用Thread类创建线程的方法

    在Java中创建线程有两种方法:使用Thread类和使用Runnable接口.在使用Runnable接口时需要建立一个Thread实例.因此,无论是通过Thread类还是Runnable接口建立线程,都必须建立Thread类或它的子类的实例.Thread类的构造方法被重载了八次,构造方法如下: 复制代码 代码如下: public Thread( ); public Thread(Runnable target); public Thread(String name); public Thread

随机推荐