91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php如何解決項目中多個自動加載沖突?

發布時間:2020-05-22 17:33:18 來源:億速云 閱讀:213 作者:鴿子 欄目:編程語言

在有的框架中的自動加載機制,在發現無法加載時, 直接報錯, 而沒有把控制權轉交給下一個自動加載方法., 如我要引入阿里云日志服務接口sdk,該sdk中自帶自動加載方法,如下:

<?php
/**
 * Copyright (C) Alibaba Cloud Computing
 * All rights reserved
 */
$version = '0.6.0';
function Aliyun_Log_PHP_Client_Autoload($className) {
    $classPath = explode('_', $className);
    if ($classPath[0] == 'Aliyun') {
        if(count($classPath)>4)
            $classPath = array_slice($classPath, 0, 4);
        $filePath = dirname(__FILE__) . '/' . implode('/', $classPath) . '.php';
        if (file_exists($filePath))
            require_once($filePath);
    }
}
spl_autoload_register('Aliyun_Log_PHP_Client_Autoload');

上面自動加載方法會與原有框架自己的加載方法沖突,解決方法如下:

<?php
function autoloadAdjust()
{
    // 取原有的加載方法
    $oldFunctions = spl_autoload_functions();
    // 逐個卸載
    if ($oldFunctions){
        foreach ($oldFunctions as $f) {
            spl_autoload_unregister($f);
        }
    }
    // 注冊本框架的自動載入
    spl_autoload_register(
        # 就是aliyun sdk的加載方法
        function ($className) {
            $classPath = explode('_', $className);
            if ($classPath[0] == 'Aliyun') {
                    if(count($classPath)>4)
                    $classPath = array_slice($classPath, 0, 4);
                unset($classPath[0]);
                $filePath = dirname(__FILE__) . '/' . implode('/', $classPath) . '.php';
                if (file_exists($filePath))
                    require_once($filePath);
            }
        }
    );
    // 如果引用本框架的其它框架已經定義了__autoload,要保持其使用
    if (function_exists('__autoload')) {
        spl_autoload_register('__autoload');
    }
    // 再將原來的自動加載函數放回去
    if ($oldFunctions){
        foreach ($oldFunctions as $f) {
            spl_autoload_register($f);
        }
    }
}
# 最后調用上面方法
autoloadAdjust();

以上就是php 解決項目中多個自動加載沖突問題的詳細內容,更多請關注億速云其它相關文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永济市| 巫山县| 阿鲁科尔沁旗| 永兴县| 高安市| 胶南市| 磴口县| 华池县| 屯昌县| 京山县| 竹北市| 娄底市| 中西区| 湖州市| 云安县| 镇安县| 平定县| 常熟市| 扶沟县| 蒙山县| 宾川县| 丰宁| 博白县| 康马县| 塘沽区| 嘉定区| 德清县| 乌拉特前旗| 怀集县| 新余市| 辽阳市| 苏尼特左旗| 西乌珠穆沁旗| 萝北县| 漾濞| 当雄县| 泌阳县| 米泉市| 柳州市| 峨边| 清远市|