在咱们平时用框架好比laravel时,只要在app目录下的任意路基文件中,以下使用就能够实例化一个对象。php
$u = new App\Model\User()
咱们知道,原生PHP要想实例化一个其余文件中的类,必须把该文件 include/require 进来。而框架中不须要引入文件,直接就能够实例化对象是如何实现的呢?答案就是类自动加载技术。laravel
psr-4,叫文件路径自动载入规范。咱们的类自动加载技术就必须遵守这个规范。规范介绍不是本文重点,有兴趣的朋友能够查阅 https://www.php-fig.org/psr/psr-4/。app
. |____app | |____Test.php |____index.php
app目录下的Test.php中的代码以下:框架
<?php namespace App; class Test { public function aa() { echo 123; } }
index.php代码以下:ui
1 <?php 2 3 spl_autoload_register(function ($class_name) { 4 require_once str_replace('\\', '/', $class_name) . '.php'; 5 }); 6 7 8 $a = new App\Test(); 9 $a->aa();
这样我们的类自动加载就实现了。spa
第8行是否是和我们在一个框架中声明一个对象的方式很像呢。code
结果:对象
123