在咱們平時用框架好比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