在PHP5之前,各個PHP框架如果要實現類的自動加載,一般都是按照某種約定自己實現一個遍歷目錄,自動加載所有符合約定規則的文件的類或函數。 當然,PHP5之前對面向對象的支持并不是太好,類的使用也沒有現在頻繁。 我們來詳細探討下吧。
php 類自動載入方法
- <?php
- class inload
- {
- /**
- * 類自動載入,不需要由開發者調用
- *
- * @param string $class 類文件
- */
- private function autoload( $class )
- {
- if( emptyempty($class) )
- {
- throw new QException('加載文件不存在'.$class);
- }
- else
- {
- require _SPRING_.'/_Core/SpringMap.php'; //框架地圖
- if(! file_exists( $source[$class]['file'] ) )
- {
- throw new QException('加載文件不存在'.$class);
- }
- require $source[$class]['file'];
- }
- }
- /**
- * 注冊或取消注冊一個自動類載入方法
- *
- * 該方法參考 Zend Framework
- *
- * @param string $class 提供自動載入服務的類
- * @param boolean $enabled 啟用或禁用該服務
- */
- private function registerAutoload($class = 'Interpreter' , $enabled = true)
- {
- if (!function_exists('spl_autoload_register'))
- {
- throw new QException('spl_autoload 不存在這個PHP的安裝');
- }
- if ($enabled === true)
- {
- spl_autoload_register(array($class, 'autoload'));
- }
- else
- {
- spl_autoload_unregister(array($class, 'autoload'));
- }
- }
- /**
- * 析構函數
- */
- public function __destruct()
- {
- self::registerAutoload('Interpreter' , false);
- }
以上所述就是本文的全部內容了,希望大家能夠喜歡。
新聞熱點
疑難解答