人気のあるサーバー側のスクリプト言語として、PHPはPHP7バージョン以来、大幅なパフォーマンスの改善とより高度な機能をもたらしました。その中で、CLI(コマンドラインインターフェイス)モードは、開発者がWebサーバーに依存せずにPHPスクリプトを実行できる強力なツールです。特にバックグラウンドタスク、タイミングタスク、データ処理シナリオに適しています。
CLIモードでは、さまざまなコマンドラインパラメーターを使用して、スクリプトをより柔軟に呼び出すことができます。一般的なオプションの説明は次のとおりです。
たとえば、次のコマンドは、スクリプトを実行し、パラメーターを渡すために使用されます。
php -f script.php --argument1=value1 --argument2=value2
スクリプトでは、これらのパラメーターを$ _server ['argv']またはgetopt()で解析できます。
<?php
$options = getopt("a:b:c:");
var_dump($options);
?>
コマンドを実行します:
php -f script.php -a value1 -b value2 -c value3
出力例:
array(3) {
['a'] => string(6) "value1"
['b'] => string(6) "value2"
['c'] => string(6) "value3"
}
PHPはデフォルトでシングルスレッドされていますが、CLI環境では、スレッドプールやその他の拡張機能を使用して同時処理を実装することができ、それによりデータ処理効率が大幅に向上します。スレッドプールを使用する基本的な例は次のとおりです。
<?php
function worker($arg) {
// 時間のかかる操作を実行します
return $result;
}
<p>$pool = new Pool(4);<br>
$pool->submit(new Worker('worker', $arg1));<br>
$pool->submit(new Worker('worker', $arg2));<br>
$pool->submit(new Worker('worker', $arg3));<br>
$pool->submit(new Worker('worker', $arg4));<br>
$pool->shutdown();<br>
?><br>
この例では、4つのスレッドを作成し、複数のタスクを同時に処理し、全体的な実行時間を大幅に短縮します。
PHP7は構文と基礎となる処理の両方を最適化しており、これらの新機能を使用すると、スクリプトのパフォーマンスをさらに向上させることができます。
関数のパラメーターと戻り値にタイプ制約を追加すると、コードの安定性と実行効率が向上するのに役立ちます。
<?php
function add(int $a, int $b): int {
return $a + $b;
}
?>
クラス属性のデータ型を指定すると、コードの保守性とタイプの安全性が向上するのに役立ちます。
<?php
class MyClass {
public int $number;
}
?>
PHP7は、エラーと例外の処理を統合します。スロー可能なインターフェイスを使用して、すべてのエラータイプをキャプチャし、より堅牢なプログラムを作成できます。
<?php
try {
// 例外をスローする可能性のあるコードのブロック
} catch (Throwable $e) {
// ロジックの処理エラー
}
?>
PHP7のCLIモードは、コマンドラインスクリプトの開発により多くの可能性をもたらします。コマンドラインパラメーター、マルチスレッド、PHP7の新しい構文機能を柔軟に使用することにより、開発者はより効率的で安定したスクリプトプログラムを構築できます。これは、システムのパフォーマンスを改善するのに役立つだけでなく、開発エクスペリエンスを大幅に改善します。