最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP命名空間實現(xiàn)自動加載引入文件

 更新時間:2022年08月17日 09:15:54   作者:qq_39688201  
php的namespace命名空間僅僅提供了一個邏輯上的類的隔離空間,我們在引用類時,仍要自己實現(xiàn)自動載入。思路就是使用一個未引入的類時,php自動觸發(fā)spl_autoload_register這個方法,然后就會根據(jù)命名空間的結(jié)構(gòu)解析為文件路徑,引入相關(guān)的類文件

PHP 命名空間(namespace)

PHP 命名空間(namespace)是在PHP 5.3中加入的,如果你學(xué)過C#和Java,那命名空間就不算什么新事物。 不過在PHP當(dāng)中還是有著相當(dāng)重要的意義。

PHP 命名空間可以解決以下兩類問題:

  • 用戶編寫的代碼與PHP內(nèi)部的類/函數(shù)/常量或第三方類/函數(shù)/常量之間的名字沖突。
  • 為很長的標(biāo)識符名稱(通常是為了緩解第一類問題而定義的)創(chuàng)建一個別名(或簡短)的名稱,提高源代碼的可讀性。

雖然使用了命名空間,但我們在使用的時候也需要引入PHP文件,這就造成命名空間有時候不會減少我們的工作量,反而增加了我們的工作量。

自動加載

自動加載就是為了解決有了命名空間還讓我們引入文件的問題。

文件結(jié)構(gòu):

自動加載有幾種方式去實現(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í)行的代碼。

到此這篇關(guān)于PHP命名空間實現(xiàn)自動加載引入文件的文章就介紹到這了,更多相關(guān)PHP自動加載內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • php版阿里云OSS圖片上傳類詳解

    php版阿里云OSS圖片上傳類詳解

    這篇文章主要介紹了php版阿里云OSS圖片上傳類,結(jié)合具體實例形式分析了php版阿里云OSS圖片上傳類的功能、定義、使用方法與相關(guān)注意事項,需要的朋友可以參考下
    2016-12-12
  • 解析link_mysql的php版

    解析link_mysql的php版

    本篇文章是對link_mysql的php版的實現(xiàn)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • php函數(shù)與傳遞參數(shù)實例分析

    php函數(shù)與傳遞參數(shù)實例分析

    這篇文章主要介紹了php函數(shù)與傳遞參數(shù)的方法,以實例形式分析了函數(shù)按值傳遞的具體用法,具有不錯的參考借鑒價值,需要的朋友可以參考下
    2014-11-11
  • php實現(xiàn)統(tǒng)計二進(jìn)制中1的個數(shù)算法示例

    php實現(xiàn)統(tǒng)計二進(jìn)制中1的個數(shù)算法示例

    這篇文章主要介紹了php實現(xiàn)統(tǒng)計二進(jìn)制中1的個數(shù)算法,結(jié)合實例形式分析了php字符串遍歷、判斷、統(tǒng)計等相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • 最新評論

    禹城市| 固镇县| 嫩江县| 珲春市| 江陵县| 濮阳市| 胶南市| 井研县| 桑日县| 莲花县| 纳雍县| 铅山县| 呼和浩特市| 怀远县| 沭阳县| 庄浪县| 德州市| 阿克苏市| 石首市| 米林县| 咸宁市| 宝清县| 临高县| 启东市| 乌兰察布市| 宜春市| 蒙自县| 乌海市| 永福县| 上林县| 萝北县| 临桂县| 如皋市| 行唐县| 都匀市| 平顶山市| 阳泉市| 嘉义县| 田东县| 仪征市| 南木林县|