Ketahui cara mengimport perpustakaan PHP dengan betul
P粉214089349
P粉214089349 2023-09-03 17:07:32
0
1
443
<p>我正在使用两个库:</p> <ul> <li>phpdotenv</li> <li>spatie/async</li> </ul> <p>这是我正在执行的内容:</p> <pre class="brush:php;toolbar:false;"><?php memerlukan_sekali "/var/local/entrop/vendor/autoload.php"; include_once '/var/local/entrop/inc/Functions.php'; include_once '/var/local/entrop/model/Contract.php'; gunakan SpatieAsyncPool; cuba { $aConn = Functions::getConnection(); $contracts = Contract::getContracts(); $pool = Pool::create(); foreach ($kontrak sebagai $kontrak){ $pool->add(function () use ($aConn, $contract) { include_once '/var/local/entrop/config/DataConfig.php'; $next_contract = Contract::getNextContract($aConn); }) ->kemudian(fungsi ($output) { }) ->tangkap(fungsi ($pengecualian) { Functions::write_log($exception); }) ->masa tamat(fungsi () { Fungsi::write_log("masa tamat"); }); } await($pool); $aConn->tutup(); } tangkap (Pengecualian $e){ Functions::write_log($e); }</pre> <p>这是DataConfig的定义:</p> <pre class="brush:php;toolbar:false;"><?php ini_set('display_errors',1); error_reporting(E_ALL); memerlukan_sekali "/var/local/entrop/vendor/autoload.php"; $dotenv = DotenvDotenv::createImmutable("/var/local/entrop/"); $dotenv->load(); define('DB_HOST', $_ENV['DB_HOST']); define('DB_USER', $_ENV['DB_USER']); define('DB_PASS', $_ENV['DB_PASS']); define('DB_DBMS', $_ENV['DB_DBMS']); kelas DataConfig { statik $db_host = DB_HOST; statik $db_user = DB_USER; $db_pass statik = DB_PASS; statik $db_dbms = DB_DBMS; }</pre> <p>这是我的composer.json文件:</p> <pre class="brush:php;toolbar:false;">{ "memerlukan": { "vlucas/phpdotenv": "^5.2", "spatie/async": "^1.5" }, "automuat": { "peta kelas": [ "/var/local/entrop/model/Contract.php" ] } }</pra> <p>Sekarang, ralat yang saya dapat ialah: </p> <blockquote> <p>[2022-08-04 10:38:38]local.INFO: Ralat selari keluaran tak segerak ruang: Nota PHP: Indeks tidak ditentukan: DB_HOST dalam /var/local/entropia/config/DataConfigEntropia.php baris 12 PHP NOTA: Indeks tidak ditentukan: DB_USER dalam /var/local/entropia/config/DataConfigEntropia.php baris 13 PHP NOTA: Indeks tidak ditentukan: DB_PASS dalam /var/local/entropia/config/DataConfigEntropia.php baris 14 PHP NOTA: Indeks tidak ditentukan: DB_DBMS dalam /var/local/entropia/config/DataConfigEntropia.php baris 15</p> </blockquote> <p>Apa yang saya cuba ialah memuatkan fail DataConfig saya secara automatik dan memasukkannya ke dalam fungsi panggil balik. Tetapi ia tidak berjaya. apa patut saya buat? </p>
P粉214089349
P粉214089349

membalas semua(1)
P粉448130258

phpdotenv lemah dalam pelaporan ralat (dan saya secara peribadi berpendapat ia juga tidak bergantung dengan betul pada piawaian dan amalan terbaik, yang boleh membawa kepada beberapa kesan sampingan, termasuk kaveat yang anda alami - cuma saya adil pasti pengarang mereka menganggap ini adalah Ciri dan bukannya pepijat, jadi saya harus mengakui saya tidak akan menilai mereka, pada penghujung hari, pengguna perlu berusaha sendiri dan memahami apa yang mereka lakukan).

Untuk masalah khusus anda, jika anda menggunakan perpustakaan, sila ketahui cara mengkonfigurasinya. Malah ulasan saya sebelum ini mungkin menggesa anda bahawa ia mungkin tidak sesuai, sebenarnya - dan di sinilah phpdotenv bersinar - ia melakukan kebanyakan pengangkatan berat dan anda boleh mengawal kebanyakan bahagian --- cuma bukan format fail.

Masalah anda bukan format fail. Jadi konfigurasikan aplikasi anda dengan betul untuk mendapatkan parameter dari mana-mana persekitaran dan mengendalikan keadaan ralat (cth. membuang nilai yang tidak dijangka pada permulaan). Ini juga harus mendedahkan kesilapan yang anda lakukan semasa menggunakan perpustakaan ini atau itu, dan membetulkannya dalam kod anda.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan