2

私は現在、gitlibが利用可能な場合、オプションで特定のgitリポジトリを分析できる小さなコンソール(symfony 2.1)アプリ(セマンティックバージョン番号を処理する)を構築しています。理想的には、libが利用可能かどうかを検出するためにcomposerによって提供されるメカニズム(提供された自動ロードと同様)を好みますが、私が見る限り、自分自身をチェックする必要があります。

私はcomposer.lock(よりクリーンに見える)を解析することと、ライブラリからクラスをインスタンス化しようとすること(composerとは無関係ですが、フロー制御の例外を悪用すること)の間で引き裂かれています。後者は、インスタンスをまったく使用しない場合でも、アプリを構成するために(具体的には、コマンドをアプリケーションに登録するかどうかを決定するために)行う必要があるため、特に気分が悪くなります。

推奨事項/提案はありますか?

4

1 に答える 1

2

PHPはclass_exists()、まさにその目的のためにあなたに提供します。クラスにロードされているかどうかを確認します。デフォルトでオートローダーが呼び出されるため、事前にtry/catchブロックを使用してインスタンス化する必要はありません。

方法で拡張機能をテストしようとしている場合は、extension_loaded()またはを使用することもできますfunction_exists()

于 2012-10-05T15:26:10.083 に答える