CLIまたはWebアプリケーションで使用できる機能がありますが、プロセスに少し違いがあります。たとえば、この関数を CLI に使用している場合、テキスト プログレス バーが使用されますが、この関数を Web アプリケーションに使用している場合は意味がありません。
関数は基本的にループです。私が探しているのは、コードを引数として渡して各ループサイクルの最後に実行できるようにすることで、この関数を柔軟にする方法です。したがって、CLI でこの関数を使用している場合。プログレス バーを進めるためのプログレス インクリメンタル関数を渡します。
私の現在の解決策は、プログレス バー オブジェクトのインスタンスを渡すことですが、これは適切な解決策ではないと思います。長期的には柔軟性がないように見えるからです。
私がすでに行っていることのデモ例:
function myFunction($progressBar = null)
{
for($i = 0; $i......)
{
//Do stuff
....
//finally...
if(!empty($progressBar))
$progressBar->advance();
}
}
そのため、ループの最後に別の関数を追加したい場合は、それを引数として渡し、後で手動で呼び出す必要があります。しかし、私が言ったように、それは正しくないようです。
コールバック関数 (myFunction に渡される匿名関数) を使用することを考えていますが、それを行う適切な方法は何ですか? 各コールバック関数を個別の引数として作成する必要がありますか? または、さらに柔軟にするために、すべてのコールバック関数を配列にグループ化する必要があります(可能な場合)。