add(function () use ($aConn, $contract) { include_once '/var/local/entrop/config/DataConfig.php'; $next_contract = Contract::getNextContract($aConn); }) ->然後(函數(shù)($輸出){ }) ->catch(函數(shù)($異常){ 函數(shù)::write_log($異常); }) -> 超時(shí)(函數(shù)(){ 函數(shù)::write_log(“超時(shí)”); }); } 等待($池); $aConn->close(); } 捕獲(異常$e){ 函數(shù)::write_log($e); }</pre> <p>這是DataConfig的定義:</p>load(); 定義('DB_HOST', $_ENV['DB_HOST']); 定義('DB_USER', $_ENV['DB_USER']); 定義('DB_PASS', $_ENV['DB_PASS']); 定義('DB_DBMS', $_ENV['DB_DBMS']); 類別資料配置{ 靜態(tài)$db_host = DB_HOST; 靜態(tài)$db_user = DB_USER; 靜態(tài)$db_pass = DB_PASS; 靜態(tài)$db_dbms = DB_DBMS; }</pre> <p>這是我的composer.json檔案:</p>{ 「要求」:{ “vlucas/phpdotenv”:“^5.2”, “空間/非同步”:“^1.5” }, 「自動(dòng)載入」:{ “類別映射”:[ “/var/local/entrop/model/Contract.php” ] } }</pre> <p>現(xiàn)在,我遇到的錯(cuò)誤是:</p> <區(qū)塊引用> <p>[2022-08-04 10:38:38]local.INFO:空間\非同步\輸出\任務(wù)錯(cuò)誤: PHP 注意:未定義索引:DB_HOST in /var/local/entropia/config/DataConfigEntropia.php 第 12 行 PHP 注意:未定義索引:DB_USER in /var/local/entropia/config/DataConfigEntropia.php 第 13 行 PHP 注意:未定義索引:DB_PASS in /var/local/entropia/config/DataConfigEntropia.php 第 14 行 PHP 注意:未定義索引:DB_DBMS in /var/local/entropia/config/DataConfigEntropia.php 第 15 行; </區(qū)塊引用> <p>我嘗試的方法是自動(dòng)載入我的DataConfig文件,並將其包含在回調(diào)函數(shù)中。但沒有作業(yè)。我該怎麼做?</p>
phpdotenv在錯(cuò)誤報(bào)告方面表現(xiàn)不佳(並且我個(gè)人認(rèn)為它也沒有正確依賴標(biāo)準(zhǔn)和最佳實(shí)踐,可能會(huì)導(dǎo)致許多副作用,包括你遇到的注意事項(xiàng)- 只是我相當(dāng)確定他們的作者認(rèn)為這是一個(gè)功能而不是錯(cuò)誤,因此我不得不承認(rèn)我不會(huì)對(duì)他們進(jìn)行評(píng)判,歸根結(jié)底,用戶需要自己努力並了解他們?cè)谧鍪颤N)。
對(duì)於你的特定問題,如果你使用一個(gè)庫(kù),請(qǐng)了解如何配置它。甚至我之前的註釋可能會(huì)提示你它可能不適合,實(shí)際上 - 這就是phpdotenv的亮點(diǎn) - 它正在做大部分的繁重工作,你可以控制大部分部分 --- 只是不能控製文件格式。
你的問題不是文件格式。所以正確配置你的應(yīng)用程式以從任何環(huán)境中獲取參數(shù)並處理錯(cuò)誤情況(例如,在開始時(shí)對(duì)意外值進(jìn)行拋出)。這也應(yīng)該揭示你在使用這個(gè)或那個(gè)函式庫(kù)時(shí)犯了什麼錯(cuò)誤,並在你的程式碼中解決這個(gè)問題。