热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

设计模式(三)——自动加载

为什么80%的码农都做不了架构师?php提供了两种方案来自动载入:__autoload()函数和spl系列函数一、前提约束1.类文件命名方式采用驼

为什么80%的码农都做不了架构师?>>>   hot3.png

    php提供了两种方案来自动载入:__autoload()函数和spl系列函数

一、前提约束

    1.类文件命名方式采用驼峰写法,且以.class.php做后缀,比如:

Page.class.php

    2.一个类文件中只写一个类,且这个类的名称和文件名一致,比如:

        类文件Page.class.php中的写类:

class Page {}

    3.类文件都采用命名空间,且命名空间的名称就是从根目录到自己的路径名,比如:

    目录: App/Home/Page.class.php的类文件的命名空间为:App\Home,即文件代码为:

namespace App\Home;class Page {}

二、测试目录

      103455_aomU_2716743.png

三、类文件代码

    1.文件Page.class.php

namespace App\Home;class Page {public function test(){echo __FILE__."
";}
}

    2.文件Test.class.php

namespace Lib;class Test {public function g(){echo __FILE__."
";}
}

四、入口文件

    1.方法一:使用__autoload函数自动加载类文件

        index.php代码

function __autoload($class){require $class.'.class.php';
}//实例化
$p=new App\Home\Page();
$p->test();//实例化
$t=new Lib\Test();
$t->g();

        运行结果:

E:\wamp\www\Test\Work\App\Home\Page.class.php
E:\wamp\www\Test\Work\Lib\Test.class.php

    2.方法二:使用spl函数

    注意:spl函数是指一spl开头的一些列的函数

        index.php代码

function autoLoad($class){require $class.'.class.php';
}//实例化
$p=new App\Home\Page();
$p->test();//实例化
$t=new Lib\Test();
$t->g();

        运行结果:

E:\wamp\www\Test\Work\App\Home\Page.class.php
E:\wamp\www\Test\Work\Lib\Test.class.php



转:https://my.oschina.net/znb26/blog/666275



推荐阅读
  • Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ... [详细]
  • 作者:守望者1028链接:https:www.nowcoder.comdiscuss55353来源:牛客网面试高频题:校招过程中参考过牛客诸位大佬的面经,但是具体哪一块是参考谁的我 ... [详细]
  • 在Python开发过程中,随着项目数量的增加,不同项目依赖于不同版本的库,容易引发依赖冲突。为了避免这些问题,并保持开发环境的整洁,可以使用Virtualenv和Virtualenvwrapper来创建和管理多个隔离的Python虚拟环境。 ... [详细]
  • 本文详细介绍了如何在 Windows 环境下使用 node-gyp 工具进行 Node.js 本地扩展的编译和配置,涵盖从环境搭建到代码实现的全过程。 ... [详细]
  • JavaScript实现表格数据的实时筛选功能
    本文介绍如何使用JavaScript实现对表格数据的实时筛选,帮助开发者提高用户体验。通过简单的代码示例,展示如何根据用户输入的关键字动态过滤表格内容。 ... [详细]
  • 本文介绍了如何在 Windows 系统上下载、安装和配置 Netcat (nc) 工具,并通过具体步骤演示如何测试 UDP 连接。Netcat 是一个功能强大的网络工具,适用于多种网络操作。 ... [详细]
  • 本文详细介绍了如何准备和安装 Eclipse 开发环境及其相关插件,包括 JDK、Tomcat、Struts 等组件的安装步骤及配置方法。 ... [详细]
  • 本文将介绍网易NEC CSS框架的规范及其在实际项目中的应用。通过详细解析其分类和命名规则,探讨如何编写高效、可维护的CSS代码,并分享一些实用的学习心得。 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • 本文详细解释了如何使用@IfProfileValue注解来检测Spring框架中的配置文件是否处于活动状态,并探讨其与@Profile和@activeProfiles的区别。 ... [详细]
  • 创建项目:Visual Studio Online 入门指南
    本文介绍如何使用微软的 Visual Studio Online(VSO)创建和管理开发项目。作为一款基于云计算的开发平台,VSO 提供了丰富的工具和服务,简化了项目的配置和部署流程。 ... [详细]
  • FinOps 与 Serverless 的结合:破解云成本难题
    本文探讨了如何通过 FinOps 实践优化 Serverless 应用的成本管理,提出了首个 Serverless 函数总成本估计模型,并分享了多种有效的成本优化策略。 ... [详细]
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
  • 深入理解Shell脚本编程
    本文详细介绍了Shell脚本编程的基础概念、语法结构及其在操作系统中的应用。通过具体的示例代码,帮助读者掌握如何编写和执行Shell脚本。 ... [详细]
author-avatar
blovejin
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有