广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP实现自动加载机制
  • 595
分享到

PHP实现自动加载机制

2024-04-02 19:04:59 595人浏览 独家记忆
摘要

PHP自动加载 php自动载方法有两种. 第一种方案用__autoload,这个函数较简单,也较弱. 但有一问题没有解决, 就是在include前判断文件是否存在的问题. set

PHP自动加载

php自动载方法有两种.

第一种方案用__autoload,这个函数较简单,也较弱.

但有一问题没有解决, 就是在include前判断文件是否存在的问题.


set_include_path('aa' . PATH_SEPARATOR . get_include_path());
function __autoload($className)
{
    //如果加这个检测, 因为此文件不在当前目录下,它就会检测不到文件存在, 
   //但include是能成功的
    if (file_exists($className . '.php')) {
   include_once($className . '.php');
    } else {
        exit('no file');
    }
}
$a = new Acls();

第二种方案用spl自动加载,这里具体说一下这个.

spl_autoload_reGISter()

一个简单的例子


set_include_path('aa' . PATH_SEPARATOR . get_include_path());
//function __autoload($className)
//{
//    if (file_exists($className . '.php')) {
//        include_once($className . '.php');
//    } else {
//        exit('no file');
//    }
//}
spl_autoload_register();
$a = new Acls();

spl_autoload_register()会自动先调用spl_autoload()在路径中查找具有小写文件名的".php"程序.默认查找的扩展名还有".ini",还可以用spl_autoload_extenstions()注册扩展名.

在找不到的清况下,还可以通过自己定义函数查找


function loader1($class)
{

//自己写一些加载的代码

}
function loader2($class)
{
//当loader1()找不到时,我来找
}
spl_autoload_register('loader1');
spl_autoload_register('loader2');

还可以更多........

mvc框架是如何实现自动加载的

首先设置路径

$include = array('application/controllers', 'application/models', 'application/library');

set_include_path(get_include_path() . PATH_SEPARATOR .implode(PATH_SEPARATOR, $config['include']));

在获取URL,解析出控制器与方法.

然后设置自动加载


class Loader
{
    
    public static function autoload($class)
    {
        $path = '';
            $path = str_replace('_', '/', $class) . '.php';
        include_once($path);
    }
}

spl_autoload_register(array('Loader', 'autoload'));

路由,实例化控制器,调用方法,你写的东西就开始执行了



public function route()
{
    if (class_exists($this->getController())) {
        $rc = new ReflectionClass($this->getController());
        if ($rc->hasMethod($this->getAction())) {
            $controller = $rc->newInstance();
            $method = $rc->getMethod($this->getAction());
            $method->invoke($controller);
        } else
            throw new Exception('no action');
    } else
        throw new Exception('no controller');
}

初步的自动加载就完成了

到此这篇关于PHP实现自动加载机制的文章就介绍到这了,更多相关PHP自动加载内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: PHP实现自动加载机制

本文链接: https://www.lsjlt.com/news/130003.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PHP实现自动加载机制
    php自动加载 php自动载方法有两种. 第一种方案用__autoload,这个函数较简单,也较弱. 但有一问题没有解决, 就是在include前判断文件是否存在的问题. set...
    99+
    2022-11-12
  • 什么是php自动加载机制
    本篇内容介绍了“什么是php自动加载机制”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!说明自动加载是在实例化时,PHP自动将所需的文件交给r...
    99+
    2023-06-20
  • php怎么实现自动加载
    在PHP中,可以使用spl_autoload_register()函数实现自动加载。这个函数用于注册一个自定义的自动加载函数,当使用...
    99+
    2023-09-06
    php
  • laravel自动加载机制是什么
    Laravel使用Composer自动加载机制来加载类文件。Composer是PHP的一个依赖管理工具,它可以帮助我们定义和安装项目...
    99+
    2023-09-06
    laravel
  • php实现自动加载的示例分析
    这篇“php实现自动加载的示例分析”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“php实现自动加载的示例分析”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让我们进入...
    99+
    2023-06-06
  • php实现自动加载的方法有哪些
    本篇内容主要讲解“php实现自动加载的方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php实现自动加载的方法有哪些”吧!1、__autoload()方法,一个项目只能有一个__auto...
    99+
    2023-06-20
  • 如何在Linux系统上实现PHP的自动加载?
    在Linux系统上使用PHP开发项目时,经常会遇到需要载入多个类文件的情况。手动引入每个类文件显然效率低下,而使用PHP的自动加载机制可以方便地解决这个问题。本文将介绍如何在Linux系统上实现PHP的自动加载,并提供相应的演示代码。 一、...
    99+
    2023-11-04
    load linux linux
  • Android自定义加载控件实现数据加载动画
    本文实例为大家分享了Android自定义加载控件,第一次小人跑动的加载效果眼前一亮,相比传统的PrograssBar高大上不止一点,于是走起,自定义了控件LoadingView...
    99+
    2022-06-06
    数据 动画 Android
  • Composer如何实现自动加载原理
    小编给大家分享一下Composer如何实现自动加载原理,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1. 入口文件(/public/index.php)中引入了 autoload.phprequire __DIR...
    99+
    2023-06-15
  • 如何实现javaScript和jQuery自动加载
    这篇文章给大家分享的是有关如何实现javaScript和jQuery自动加载的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、JavaScript自动加载①在文本中用onload...
    99+
    2022-10-19
  • 分析Composer实现自动加载原理
    目录1. 入口文件2.  autoload.php3. autoload_real.php5. spl_autoload_register和spl_autoload_unr...
    99+
    2022-11-12
  • webpack如何实现热加载自动刷新
    这篇文章主要介绍webpack如何实现热加载自动刷新,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:一、webpack-dev-server 一个轻量级的服务 功能:修改代码...
    99+
    2022-10-19
  • node后端路由自动加载怎么实现
    这篇文章主要介绍“node后端路由自动加载怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“node后端路由自动加载怎么实现”文章能帮助大家解决问题。背景今天来谈谈node后端中路由的问题。我们...
    99+
    2023-07-05
  • PHP最简单自定义自己的框架控制器自动加载运行(四)
    1、实现效果调用控制中方法     2、创建控制器indexCrl.php ...
    99+
    2023-09-01
    php 开发语言
  • js/jquery如何控制页面动态加载数据和滑动滚动条自动加载事件
    这篇文章主要介绍了js/jquery如何控制页面动态加载数据和滑动滚动条自动加载事件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。页面滚动动...
    99+
    2022-10-19
  • Android自定义View实现loading动画加载效果
     项目开发中对Loading的处理是比较常见的,安卓系统提供的不太美观,引入第三发又太麻烦,这时候自己定义View来实现这个效果,并且进行封装抽取给项目提供统一的lo...
    99+
    2022-06-06
    view loading Android
  • CentOS6.5怎么实现开机自动挂载硬盘
    本篇内容介绍了“CentOS6.5怎么实现开机自动挂载硬盘 ”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  1、手动挂载磁盘  查看磁盘分...
    99+
    2023-06-10
  • JDKSPI机制以及自定义SPI类加载问题
    目录概述规则自定义实现注解基于SPI的伪类加载器测试概述 介绍SPI之前,我们先了解一下为什么要用SPI JDBC相信已经不陌生了,JDBC 是一个标准。 不同的数据库厂商(如,my...
    99+
    2022-11-21
    JDK SPI机制 自定义SPI类加载 SPI类加载
  • Android实现ListView分页自动加载数据的方法
    Android应用开发中,采用ListView组件来展示数据是很常用的功能,当一个应用要展现很多的数据时,一般情况下都不会把所有的数据一次就展示出来,而是通过分页的形式来展示数...
    99+
    2022-06-06
    自动 方法 数据 listview Android
  • Android自定义Dialog实现文字动态加载效果
    之前在技术问答上面看到一个提问 “加载中…” 后面三个点是动态的,这么一个效果实现。想来想去,好像没想到好的处理方式。 尝试了一下,以一个最笨的方式实现了。先来看一下效果 :...
    99+
    2022-06-06
    dialog 动态 Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作