zoukankan      html  css  js  c++  java
  • PHP类自动加载技术

    在我们平时用框架比如laravel时,只要在app目录下的任意路基文件中,如下使用就可以实例化一个对象。

    $u = new AppModelUser()

    我们知道,原生PHP要想实例化一个其他文件中的类,必须把该文件 include/require 进来。而框架中不需要引入文件,直接就可以实例化对象是如何实现的呢?答案就是类自动加载技术。

    PSR-4

    psr-4,叫文件路径自动载入规范。我们的类自动加载技术就必须遵照这个规范。规范介绍不是本文重点,有兴趣的朋友可以查阅 https://www.php-fig.org/psr/psr-4/。

    项目

    目录结构

    .
    |____app
    | |____Test.php
    |____index.php

    代码

    app目录下的Test.php中的代码如下:

    <?php namespace App;
    
    class Test
    {
        public function aa()
        {
            echo 123;
        }
    }

    index.php代码如下:

    1 <?php
    2 
    3 spl_autoload_register(function ($class_name) {
    4     require_once str_replace('\', '/', $class_name)  . '.php';
    5 });
    6 
    7 
    8 $a = new AppTest();
    9 $a->aa();

    这样咱们的类自动加载就实现了。

    第8行是不是和咱们在一个框架中声明一个对象的方式很像呢。

    结果:

    123
  • 相关阅读:
    ## js 性能 (未完。。。)
    React 创建元素的几种方式
    Json 与 javascript 对象的区别
    js 基本数据类型
    第十三章 事件
    第十二章 DOM2和DOM3
    第十一章 DOM扩展
    第十章 DOM
    第八章 BOM
    第七章 函数表达式
  • 原文地址:https://www.cnblogs.com/xiaoxlm/p/9456917.html
Copyright © 2011-2022 走看看