[PHP] 自动加载的实现详解编程语言

基于psr的规范,使用命名空间和spl_autoload_register()来实现自动加载

文件结构:

|–Api
  |–Account.php
  |–User.php
|–Service
  |–Login.php
  |–User.php

|–Application.php

Application.php

<?php 
use Api/User; 
use Service/User as User2; 
class Application{ 
    public static function main(){ 
        self::registe(); 
        new User(); 
        new User2(); 
    } 
    public static function registe(){ 
        spl_autoload_register("Application::loadClass"); 
    } 
    public static function loadClass($class){ 
        $class=str_replace('//', '/', $class); 
        $class="./".$class.".php"; 
        require_once $class;         
    } 
} 
Application::main();

Api/User.php

<?php 
namespace Api; 
 
use Service/Login; 
class User{ 
    public function __construct(){ 
        echo "User类<br/>"; 
        new Login(); 
        new Account(); 
    } 
}

Api/Account.php

<?php 
namespace Api; 
 
class Account{ 
    public function __construct(){ 
        echo "Account类<br/>"; 
    } 
}

Service/Login.php

<?php 
namespace Service; 
 
class Login{ 
    public function __construct(){ 
        echo "Login类<br/>"; 
    } 
}

Service/User.php

<?php 
namespace Service; 
 
class User{ 
    public function __construct(){ 
        echo "Service下的User类<br/>"; 
    } 
}

结果:

[PHP] 自动加载的实现详解编程语言 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/12596.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论