老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)

怎么讓Composer的autoload支持自定義文件后綴名-創(chuàng)新互聯(lián)

這篇文章主要介紹怎么讓Composer的autoload支持自定義文件后綴名,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)公司主打移動網(wǎng)站、成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站改版、網(wǎng)絡(luò)推廣、網(wǎng)站維護(hù)、主機(jī)域名、等互聯(lián)網(wǎng)信息服務(wù),為各行業(yè)提供服務(wù)。在技術(shù)實(shí)力的保障下,我們?yōu)榭蛻舫兄Z穩(wěn)定,放心的服務(wù),根據(jù)網(wǎng)站的內(nèi)容與功能再決定采用什么樣的設(shè)計(jì)。最后,要實(shí)現(xiàn)符合網(wǎng)站需求的內(nèi)容、功能與設(shè)計(jì),我們還會規(guī)劃穩(wěn)定安全的技術(shù)方案做保障。

PHP的Composer工具規(guī)范了我們對系統(tǒng)各種資源庫的加載格式,借助于PHP的自動加載機(jī)制,可以很大程度上簡化在應(yīng)用開發(fā)過程中的類庫文件引用場景。但到目前為止,它有個(gè)不是問題的問題,就是文件后綴名只支持.php,而基于某些框架開發(fā)的舊資產(chǎn),類文件的后綴名是.class.php,想使用Composer的自動加載規(guī)范,就不太純粹了,一般要兩者混著用,或者修改其他框架下的加載規(guī)則。

有沒有省事點(diǎn)的解決辦法呢?

首先只要能產(chǎn)生這么一個(gè)疑問,就贏了。而答案呢,多半能找到的。

Composer實(shí)現(xiàn)自動加載機(jī)制的代碼非常簡練,稍微看一下就能看懂。

當(dāng)看到ClassLoader.php文件中的findFileWithExtension方法時(shí)參數(shù)里出現(xiàn)了一個(gè)$ext,也就看到希望。只要在適當(dāng)?shù)臅r(shí)機(jī),能覆蓋這個(gè)$ext參數(shù)就搞定。

其原始代碼如下:

private function findFileWithExtension($class, $ext)
    {
        // PSR-4 lookup
        $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
        $first = $class[0];
        if (isset($this->prefixLengthsPsr4[$first])) {
            foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) {
                if (0 === strpos($class, $prefix)) {
                    foreach ($this->prefixDirsPsr4[$prefix] as $dir) {
                        if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
                            return $file;
                        }
                    }
                }
            }
        }
        // PSR-4 fallback dirs
        foreach ($this->fallbackDirsPsr4 as $dir) {
            if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
                return $file;
            }
        }
        // PSR-0 lookup
        if (false !== $pos = strrpos($class, '\\')) {
            // namespaced class name
            $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
                . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
        } else {

稍微修改一下:

怎么讓Composer的autoload支持自定義文件后綴名

autload_psr4.php 配置文件中,對應(yīng)的格式變化:

return array(
    'Qiniu\\' => array($vendorDir . '/qiniu/php-sdk/src/Qiniu’),
    // 字符串格式改為二維數(shù)組格式
    ‘Liniu\\' => array([$vendorDir . ‘/Liniu/php-sdk/src/Liniu’, ‘.class.php']),
);

貼出代碼:

private function findFileWithExtension($class, $ext)
    {
        // PSR-4 lookup
        $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR);
        $first = $class[0];
        if (isset($this->prefixLengthsPsr4[$first])) {
            foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) {
                if (0 === strpos($class, $prefix)) {
                    foreach ($this->prefixDirsPsr4[$prefix] as $dir) {
                        $_ext = $ext;
                        $_dir = $dir;
                        if (is_array($dir) && count($dir) == 2) {
                            $_ext = $dir[1];
                            $_dir = $dir[0];
                        }
                        if (file_exists($file = $_dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4 . $_ext, $length))) {
                            return $file;
                        }
                    }
                }
            }
        }
        // PSR-4 fallback dirs
        foreach ($this->fallbackDirsPsr4 as $dir) {
            if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4 . $ext)) {
                return $file;
            }
        }
        // PSR-0 lookup
        if (false !== $pos = strrpos($class, '\\')) {
            // namespaced class name
            $logicalPathPsr0 = substr($logicalPathPsr4 . $ext, 0, $pos + 1)
                . strtr(substr($logicalPathPsr4 . $ext, $pos + 1), '_', DIRECTORY_SEPARATOR);
        } else {

編碼,有一種純粹的樂趣。

以上是“怎么讓Composer的autoload支持自定義文件后綴名”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


分享題目:怎么讓Composer的autoload支持自定義文件后綴名-創(chuàng)新互聯(lián)
鏈接地址:http://www.xueling.net.cn/article/iiooe.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: 91段视频| 天天干夜夜春夜夜爽 | 黄色哪里看| 狠狠躁天天躁夜夜躁婷婷老牛影视 | 少妇MM被擦出白浆液视频 | 男男在线免费观看 | 一级片.| 欧美熟妇与小伙性欧美交 | 久久国产精品久久精 | 国产麻豆精品在线观看 | 久久婷婷五月综合97色 | 完全着衣の爆乳お姉さんが | 国产一区二区三区亚洲 | 一级片子 | 谍战剧《惊弦》在线观看免费高清 | 国产成人精品成人a在线观看 | 成人免费A级毛片无码片2022 | 国产成人看片 | 日韩欧美一区二区中文字幕 | 成年免费视频黄网站在线观看 | 国产一区二区三区久久99 | 国产精品视频福利 | 91社区视频 | 亚洲欧美日本在线观看 | 色综合久久综合中文综合网 | 日韩精品久久久久 | av片在线免费看 | 男人干女人逼 | 蜜乳av一区| 日本亚洲中文字幕不卡 | 欧洲成人午夜精品无码区久久 | 97精品| 四虎精品8848ys一区二区 | 一级毛片免费 | 国产成人精品日本亚洲18 | 宅男深夜国产 | cijilu在线视频一噜噜嘿 | 潮喷失禁大喷水无码 | www.色五月.com | 色综合无码AV网站 | 黄动漫在线免费观看 |