好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > PHP從零開始打造自己的MVC框架之類的自動加載實現方法詳解

PHP從零開始打造自己的MVC框架之類的自動加載實現方法詳解

熱門標簽:咸寧銷售電銷機器人系統 開發地圖標注類網站 余姚電話機器人 外呼系統能給企業帶來哪些好處 廣東廣州在怎么申請400電話 百度地圖怎樣標注圖標 電銷機器人問門薩維品牌my 400電話蘭州申請請 百度地圖標注偏差

本文實例講述了PHP從零開始打造自己的MVC框架之類的自動加載實現方法。分享給大家供大家參考,具體如下:

前面介紹了MVC框架的入口文件,接下來我們希望完成一個“自動加載類”的功能,我們把這個功能放到Imooc這個基礎類當中。

core\imooc.php:

?php
namespace core;
class Imooc
{
  public static $classMap = array();
  static public function run()
  {
    p('ok');
    $route = new \core\route();
  }
  /*
  自動加載的功能
  */
  static public function load($class)
  {
    // 自動加載類庫
    // new \core\Route()
    // $class = '\core\Route'
    // IMOOC.'/core/route.php'
    if(isset($classMap[$class])){
      return true;
    }else{
      $class = str_replace('\\', '/', $class);
      $file = IMOOC.'/'.$class.'.php';
      if (is_file($file)) {
        include $file;
        self::$classMap[$class] = $class;
      }else{
        return false;
      }
    }
  }
}

上面代碼中,load()方法的主要功能就是自動加載類庫。

自動加載的工作原理:

當我們new一個類的時候,如果它不存在,就會觸發spl_autoload_register注冊的方法,然后通過這個方法去引入要實例化的類

spl_autoload_register('\core\Imooc::load');

我們在入口文件index.php中注冊:

?php
/*
入口文件
1.定義常量
2.加載函數庫
3.啟動框架
*/
// 定義當前框架所在的根目錄
define('IMOOC', __DIR__);
// 定義框架核心文件所在的目錄
define('CORE', IMOOC.'/core');
// 項目文件所在目錄
define('APP', IMOOC.'/app');
// 定義項目調試模式
define('DEBUG', true);
// 判斷項目是否處于調試狀態
if (DEBUG) {
  // 設置報錯級別:顯示所有錯誤
  ini_set('display_error', 'On');
}else{
  ini_set('display_error','Off');
}
// 加載函數庫
include CORE.'/common/function.php';
// 加載框架核心文件
include CORE.'/imooc.php';
// 注冊自動加載
// (當我們new一個不存在的類的時候會觸發\core\Imooc::load)
spl_autoload_register('\core\Imooc::load');
\core\Imooc::run();

所以,我們在run方法實例化route類的時候并沒有手動引入該類文件

static public function run()
{
    p('ok');
    $route = new \core\route();
}

上面代碼,new \core\route()會觸發load()方法,然后去引入需要的文件。

route.php代碼如下:

?php
namespace core;
class Route
{
  public function __construct(){
    p('route ok');
  }
}

現在我們訪問入口文件index.php,會調用Imooc::run方法,預期瀏覽器會輸出:

ok
route ok

至此,項目結構如圖:

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php面向對象程序設計入門教程》、《PHP數組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • PHP命名空間和自動加載類
  • PHP動態地創建屬性和方法, 對象的復制, 對象的比較,加載指定的文件,自動加載類文件,命名空間
  • PHP實現的簡單路由和類自動加載功能
  • PHP命名空間與自動加載類詳解
  • 解析php類的注冊與自動加載
  • php類自動加載器實現方法
  • PHP類的自動加載機制實現方法分析
  • php項目中類的自動加載實例講解
  • PHP從零開始打造自己的MVC框架之路由類實現方法分析
  • PHP MVC框架中類的自動加載機制實例分析

標簽:衡陽 銅陵 重慶 麗江 鷹潭 臨沂 十堰 巴彥淖爾

巨人網絡通訊聲明:本文標題《PHP從零開始打造自己的MVC框架之類的自動加載實現方法詳解》,本文關鍵詞  PHP,從,零,開始,打造,自己的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP從零開始打造自己的MVC框架之類的自動加載實現方法詳解》相關的同類信息!
  • 本頁收集關于PHP從零開始打造自己的MVC框架之類的自動加載實現方法詳解的相關信息資訊供網民參考!
  • 推薦文章