Home > Backend Development > PHP Tutorial > Simple implementation of PHP autoloading

Simple implementation of PHP autoloading

不言
Release: 2023-03-29 07:38:02
Original
1201 people have browsed it

这篇文章主要介绍了关于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(&#39;\\&#39;, &#39;/&#39;, $class);
    $class="./".$class.".php";
    require_once $class;    
  }
}
Application::main();
Copy after login

Api\User.php

<?php
namespace Api;

use Service\Login;
class User{
  public function __construct(){
    echo "User类<br/>";
    new Login();
    new Account();
  }
}
Copy after login

Api\Account.php

<?php
namespace Api;

class Account{
  public function __construct(){
    echo "Account类<br/>";
  }
}
Copy after login

Service\Login.php

<?php
namespace Service;

class Login{
  public function __construct(){
    echo "Login类<br/>";
  }
}
Copy after login

Service\User.php

<?php
namespace Service;

class User{
  public function __construct(){
    echo "Service下的User类<br/>";
  }
}
Copy after login

结果:

 

相关推荐:

PHP自动识别当前使用移动终端

PHP自动加载autoload和命名空间方法小结

The above is the detailed content of Simple implementation of PHP autoloading. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template