PHP命名空間實現(xiàn)自動加載引入文件
PHP 命名空間(namespace)
PHP 命名空間(namespace)是在PHP 5.3中加入的,如果你學過C#和Java,那命名空間就不算什么新事物。 不過在PHP當中還是有著相當重要的意義。
PHP 命名空間可以解決以下兩類問題:
- 用戶編寫的代碼與PHP內部的類/函數(shù)/常量或第三方類/函數(shù)/常量之間的名字沖突。
- 為很長的標識符名稱(通常是為了緩解第一類問題而定義的)創(chuàng)建一個別名(或簡短)的名稱,提高源代碼的可讀性。
雖然使用了命名空間,但我們在使用的時候也需要引入PHP文件,這就造成命名空間有時候不會減少我們的工作量,反而增加了我們的工作量。
自動加載
自動加載就是為了解決有了命名空間還讓我們引入文件的問題。
文件結構:

自動加載有幾種方式去實現(xiàn):
1.__autoload()方法
index.php文件
function __autoload($class){
if ($class) {
$file = str_replace('\\', '/', $class);
$file .= '.php';
if (file_exists($file)) {
include $file;
}
}
}
$class = new \app\Index();
$class->index();2.spl_autoload_register()方法,如果用spl_autoload_register,autoload就失效了。
index.php文件
spl_autoload_register(function ($class) {
if ($class) {
$file = str_replace('\\', '/', $class);
$file .= '.php';
if (file_exists($file)) {
include $file;
}
}
});
$class = new \app\Index();
$class->index();3.使用composer的自動加載實現(xiàn)。
在文件的跟目錄創(chuàng)建composer.json文件。"app\\": "app"指向命名空間的文件存放的地址
{
"autoload": {
"psr-4": {
"app\\": "app"
}
}
}使用命令composer install,生成vendor文件在根目錄index.php 引入vendor/autoload.php
require 'vendor/autoload.php';
PSR-0
PHP的命名空間必須與絕對路徑一致。
類名首字母大寫。
除了入口文件之外,其他的PHP文件必須是一個類,不能有執(zhí)行的代碼。
到此這篇關于PHP命名空間實現(xiàn)自動加載引入文件的文章就介紹到這了,更多相關PHP自動加載內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
PHP腳本監(jiān)控Nginx 502錯誤并自動重啟php-fpm
這篇文章主要介紹了PHP腳本監(jiān)控Nginx 502錯誤并自動重啟php-fpm,本文直接給出實現(xiàn)代碼,然后放到cron中執(zhí)行,需要的朋友可以參考下2015-05-05
php運行報錯Call to undefined function curl_init()的最新解決方法
其實在網上很早之前就出現(xiàn)過這個問題,網上百度了下,答案千篇一律,最近又遇到這個問題,但是百度出來的問題不能解決這個問題了,所以只能翻墻找答案,現(xiàn)在將解決的方法分享給大家,有需要的朋友們可以參考借鑒,下面來一起學習學習吧。2016-11-11
PHP數(shù)組 為文章加關鍵字連接 文章內容自動加鏈接
PHP給文章加關鍵字連接,像163文章內容自動加鏈接效果,其實很多php網站管理系統(tǒng)里面都有,可以參考里面的代碼。2011-12-12

