php 框架個人小結
檔案目錄: index.php lib/ DB.php Suan.php 程式碼: index.php: <?php define('PATH', realpath(dirname(__FILE__))); spl_autoload_register(function ($class_name) { require_once PATH . '/lib/' .$class_name . '.php'; }); echo Suan::sum(1,2); echo PHP_EOL; ?> lib/DB.php: <?php class DB { function __construct() {} public function conn(){ echo __METHOD__; } } ?> lib/Suan.php: <?php class Suan { protected function __construct() {} public static function sum($a, $b){ return $a + $b; } public static function db(){ return (new DB())->conn(); } } ?> 執行:php -dvld.active=1 index.php 檢視opcode發現並不載入DB.php檔案 載入了的Suan.php全部編譯,但只執行sum方法 PHP的按需載入特性,所以好的架構可以減少不必要的載入檔案,從而減少編譯的程式碼: 思考總結:1、對於web請求,很多架構程式碼,一個檔案一個controller包含多個action多個請求的業務邏輯,這無疑是增加了編譯程式碼量。 2、架構可以增加比較薄的一層,減少程式碼檔案的載入和編譯