PHP 라이브러리를 올바르게 가져오는 방법 알아보기
<p>내가 직접 사용하는 방법은 다음과 같습니다.</p>
- phpdotenv
<li>spatie/async</li>
</ul>
<p>这是我执行的内容:</p>
<pre class="brush:php;toolbar:false;"><?php
require_once "/var/local/entrop/vendor/autoload.php";
include_once '/var/local/entrop/inc/Functions.php';
include_once '/var/local/entrop/model/Contract.php';
SpatieAsyncPool을 사용하세요.
노력하다 {
$aConn = 함수::getConnection();
$contracts = 계약::getContracts();
$pool = 풀::create();
foreach($contract를 $contract로){
$pool->add(함수 () 사용 ($aConn, $contract) {
include_once '/var/local/entrop/config/DataConfig.php';
$next_contract = 계약::getNextContract($aConn);
})
->then(함수 ($output) {
})
->catch(함수 ($예외) {
함수::write_log($Exception);
})
->timeout(함수 () {
함수::write_log("timeout");
});
}
기다립니다($pool);
$aConn->close();
}
잡기 (예외 $e){
함수::write_log($e);
}</pre>
<p>这是DataConfig의 정의:</p>
<pre class="brush:php;toolbar:false;"><?php
ini_set('display_errors',1);
error_reporting(E_ALL);
require_once "/var/local/entrop/vendor/autoload.php";
$dotenv = DotenvDotenv::createImmutable("/var/local/entrop/");
$dotenv->load();
정의('DB_HOST', $_ENV['DB_HOST']);
정의('DB_USER', $_ENV['DB_USER']);
정의('DB_PASS', $_ENV['DB_PASS']);
정의('DB_DBMS', $_ENV['DB_DBMS']);
클래스 DataConfig {
정적 $db_host = DB_HOST;
정적 $db_user = DB_USER;
정적 $db_pass = DB_PASS;
정적 $db_dbms = DB_DBMS;
}</pre>
<p>这是我的composer.json文件:</p>
<pre class="brush:php;toolbar:false;">{
"요구": {
"vlucas/phpdotenv": "^5.2",
"공간/비동기": "^1.5"
},
"자동 로드": {
"클래스맵": [
"/var/local/entrop/model/Contract.php"
]
}
}</pre>
<p>현재 나타나는 오류는 다음과 같습니다. </p>
<인용문>
<p>[2022-08-04 10:38:38]local.INFO: 공간 비동기 출력 병렬 오류:
PHP 참고: 정의되지 않은 인덱스: DB_HOST
/var/local/entropia/config/DataConfigEntropia.php 라인 12 PHP
참고: 정의되지 않은 인덱스: DB_USER
/var/local/entropia/config/DataConfigEntropia.php 라인 13 PHP
참고: 정의되지 않은 인덱스: DB_PASS
/var/local/entropia/config/DataConfigEntropia.php 라인 14 PHP
참고: 정의되지 않은 인덱스: DB_DBMS
/var/local/entropia/config/DataConfigEntropia.php 15행</p>
</인용문>
<p>제가 시도한 것은 DataConfig 파일을 자동으로 로드하여 콜백 함수에 포함시키는 것이었습니다. 그러나 그것은 작동하지 않았습니다. 어떻게 해야 합니까? </p>