私は他の人々のソース コードや他のオープン ソースの PHP ソフトウェアをかなり見てきましたが、実際に PEAR を使用している人はほとんどいないように思えます。
PEAR の使用は、実際の使用ではどれくらい一般的ですか?
フレームワークに対する現在の感覚が、その人気に影響しているのかもしれないと考えていました。
私は他の人々のソース コードや他のオープン ソースの PHP ソフトウェアをかなり見てきましたが、実際に PEAR を使用している人はほとんどいないように思えます。
PEAR の使用は、実際の使用ではどれくらい一般的ですか?
フレームワークに対する現在の感覚が、その人気に影響しているのかもしれないと考えていました。
PHP プログラマー文化では、誰もが自分で車輪を再発明したいと考える「Not Invented Here」症候群が蔓延しているようです。
これがすべてのPHP プログラマーに当てはまるとは言いませんが、彼らがこれを行うのは明らかにあまりにも普通のことです。
多くの場合、それは教育の欠如が原因であると私は信じています。それは、まともな PHP サービスを提供するホスティングプロバイダーの難しさと相まって.
これにより、動作可能な PEAR インストールを取得することが非常に困難になり、PHP の設計構造がモジュラー設計に適していないため、さらに悪化しています。
(これは、名前空間の追加で改善される可能性がありますが、まだ確認していません)。
私が実際に目にする PHP コードの大部分は、依然として HTML で補間された古典的なアマチュア コードであり、PHP ユーザーが必然的にサインアップする安価なホスティングの大部分は、シェル アクセスを提供しません。
私の(限られた)経験では、潜在的に興味深いすべてのPEARプロジェクトには、それに対して大きなポイントがありました。
include
ます。PHPインタープリターがすべてのページヒットでそのソースコードをすべて処理する必要がある場合(作成者がオペコードキャッシュに適したものになるように設計していない可能性があるため)、数千行の未使用のコードを処理するための測定可能なオーバーヘッドがあります。私は仕事で使っていPEAR::DB
ました。ほとんどのスクリプトが、独自のコードではなくPEARコード内で時間を費やしていることがわかりました。これを関数の非常に単純なラッパーに置き換えると、実際のプリペアドステートメント pgsql_*
が使用されるため、実行時間が大幅に短縮され、実行時の安全性が向上します。ネイティブ関数は新しすぎてどこでも使用できないため、Postgres用に独自の(当時は正しくない)プリペアドステートメントロジックを使用していました。PEAR::DB
pgsql_
全体として、PEARは多くの場合「スターターライブラリ」として優れていると思います。個人が短時間で作成するよりも高品質のコードである可能性があります。しかし、私は確かに人気のある公開Webサイトでは使用しません(少なくとも、手作業で多くの調整を行わなければ...自分のフォークを維持する必要があります)。
私の意見では、PEAR は良いプロジェクトですが、それに取り組み続けたいと思う人が不足しており、ほとんどのパッケージのコーディング方法に一貫性がなく (コーディング スタイルという意味ではありません)、全体にたくさんの TODO があります。
カスタムの国の検証関数など、まだ存在を知らなかったものをコーディングするのに役立つ場合があります。それ以外の場合は、利用可能なフレームワーク (CodeIgnite や Zend Framework など) を使用する方が適切です。
PEARは一般的でも人気でもありませんが、それは良いことであり、誰にもお勧めします。
(私はトムに同意します。それは単一の統一されたAPIのようには感じられませんが、これはPHPです…インタプリタされたハック言語としてステーションを超えてしまうのを見たくないですか?! )。
PEAR は一般的ではなく、人気もありません。
私は何度も PEAR を使おうとしましたが、コミットする力がありません。
私は、「緩い」タイプのアプローチをとる Zend Framework を好みます。必要なものだけを使用してください。
Pear ライブラリは、プラグを差し込んでそこに座っているようなもので、栄光はほとんどありません。それができることを探していて、使用しているフレームワークで特に対象とされているものがない場合は、それを使用してください。
私は過去 2 年間、出会い系サイトに取り組んできました。私が使用したナシソースのファイルは少なくとも 65 あり、現在もそこに残っています。ページャーや html_Quickform のように、更新時に新しいコードに取って代わられるものもありますが、必要のないものもあります。