1. 程式人生 > 其它 >名稱空間和自動載入類

名稱空間和自動載入類

名稱空間基礎使用例項

/Huyongjian/Controller/User.php

<?php
namespace Huyongjian\Controller;

class User{
    public function show(){
        echo __METHOD__;
    }
}

/Huyongjian/Model/User.php

<?php
namespace Huyongjian\Model;

class User{
    public function show(){
        echo __METHOD__;
    }
}

/index.php

<?php
//匯入類檔案
include "./Huyongjian/Controller/User.php";
include "./Huyongjian/Model/User.php";

//Huyongjian\Controller名稱空間下的User類呼叫
$controllerUser = new \Huyongjian\Controller\User();
$controllerUser->show();
echo "<hr>";

//Huyongjian\Model名稱空間下User類呼叫
$modelUser = new \Huyongjian\Model\User();
$modelUser->show();

瀏覽器列印

Huyongjian\Controller\User::show
Huyongjian\Model\User::show

自動載入類

/autoload.php

<?php

spl_autoload_register(function ($class){
    $file = str_replace('\\','/',$class).'.php';
    var_dump($file);
    require $file;
});

修改/index.php

<?php

include "autoload.php";

//Huyongjian\Controller名稱空間下的User類呼叫
$controllerUser = new Huyongjian\Controller\User();
$controllerUser->show();
echo "<hr>";

//Huyongjian\Model名稱空間下User類呼叫
$modelUser = new Huyongjian\Model\User();
$modelUser->show()

瀏覽器列印

Huyongjian\Controller\User::show
Huyongjian\Model\User::show