私の PHP アプリのいくつかを構築するとき、多くの機能は PEAR/PECL モジュールを使用してコーディングできますが、それを使用している一部の人々がインストールにアクセスできない可能性があるという事実は、私にとって困惑をもたらします。
一部のユーザーが機能のために PEAR/PECL を使用するのをやめるべきでしょうか。これにより、独自の機能を作成する場合よりもシステムを迅速にコーディングできますが、特定の人々がそれを使用できなくなることを意味します。
それはあなたがどれだけの時間を持っているか、そしてプロジェクトの目的に部分的に依存します。うまくいくものを作ろうとしているだけなら、PEAR/PECLを使ってください。あなたがより良いプログラマーになることを学ぼうとしていて、時間があれば、私はあなた自身のバージョンを書く努力をすることをお勧めします。置き換えようとしているものの内部を理解したら、PEAR / PECLバージョンに切り替えて、すでに実装されているものを再実装する時間を無駄にしないようにすることができます...
...しかし一方で、既存のツールは必ずしも必要なことを正確に実行するとは限りません。また、オーバーヘッドがあり、役に立たない場合もあります。これが、Unixコマンドラインツールが非常に小さく、目的が狭い理由です。'ls'が現在実行できる以外のことを実行できるバージョンの'ls'は誰も本当に必要としません。PEARライブラリのバージョンは、自分で作成したものであるため、必要なことを正確に実行できます。慎重に考える必要があります...
...しかし、握りしめている手では、それについて考えるのにあまり時間をかけないでください。5分を費やして決定を下し、コーディングを開始します。間違った決定をしたとしても、少なくともコーディングの練習を積むことができます。:-)
pear ライブラリを使用して開発することで開発時間を節約し、配布するものにバンドルされたライブラリを提供します (ただし、ライセンス要件に従っていることを確認する必要があります)。
特定の PECL 拡張機能がインストールされていることに依存することはありませんが、特定の PECL 拡張機能に特に関連すること (XDebug Web フロントエンドなど) を行っている場合を除きます。ほとんどのインストールでは、ごく普通の拡張機能セットが使用されます。
PEAR を使用しますが、プロジェクト内に PEAR パッケージを含めることができます。すべての PEAR パッケージは、http://pear.php.net/から個別にダウンロードでき、どこにでも置くことができます。利便性とライセンスの問題に応じて、必要なすべての PEAR ファイルをプロジェクトにパッケージ化するか、ダウンロードして「インストール」する方法をユーザーに伝えることができます。
私の提案は、PEAR/PECL モジュールを想定して開始し、残りのコードを完成させることです。次に、ほとんどのコードが思いどおりに動作するようになったら、前に戻って評価し、外部コードを独自のコードに置き換えます。さらに、それまでに、それらを使用することによるユーザーベースへの影響をよりよく理解できるようになります。
最初は PEAR/PECL を使用してコーディングし、PEAR/PECL 以外のバージョンを求める人がいる場合は、独自の代替案をコーディングしてから、そのようなバージョンを作成してください。
これにより、最初の開発ははるかに速く進み、アプリのリリースを開始すると、サードパーティのライブラリを必要とすることを誰も気にしないことに気付くかもしれません.
すでに言われていることの多くを繰り返します:http://www.codinghorror.com/blog/archives/001145.html
PEAR の使用は問題ありません。ユーザーが Web サーバーへの root アクセス権を持っていない場合は、pear.php.net から PHP ファイルをダウンロードしてインクルード パスに追加するだけです。多くの場合、ルート アクセスなしで新しいモジュールをインストールする方法がないため、PECL を回避するには少し注意が必要です。
pear の多くのモジュールは実際にはかなり低品質であるため、注意する必要があります。
いくつかは素晴らしいものです。誤解しないでください。ただし、洋ナシであるからといって、洋ナシで作られているものはすべて、特定の品質であると想定しないでください。つまり、使用を決定する前に、少なくとも pear モジュールのソースをざっと目を通しておかなければなりません。これは、十分に単純なタスクの場合、pear を使用しない場合よりも時間がかかる場合があります。
ただし、pecl は異なります。拡張機能はよりよく吟味され、テストされる傾向があります。そうしないと、php がクラッシュします。
ほとんどの場合、サーバーにグローバルにインストールされた PEAR は使用しません。バージョンは変更され、アプリケーションに影響を与える可能性があります。代わりに、必要なすべてのパッケージとそのバージョンをリストする構成ファイル (私の場合は XML) があります。インストーラーは私の個人的な FTP リポジトリに接続し、すべての PEAR パッケージを $PROJECTBASE/lib/pear/ .. にローカルにダウンロードしてインストールします。そして、PEAR はグローバルではなくローカルで実行されます。検討したいことがあります。