SPL、PHP 標準ライブラリ (標準 PHP ライブラリ)、この組み込みコンポーネントとインターフェイスは PHP 5.0 から組み込まれており、PHP5.3 から徐々に成熟してきました。 SPL は実際にはすべての PHP5 開発環境に組み込まれており、セットアップは必要ありません。
多くの PHP 開発者は基本的に PHP を使用していないか、聞いたことさえないようです。その理由は、「存在」を無視してしまう雪のような文書にあります。 SPL この宝石は、海底に沈んだタイタニック号の「海の心臓」のようなものです。今、それは私たちによって手に取られ、しかるべき場所で着用されるべきであり、これがこの記事で表現されている観点です。
では、SPL は何を提供するのでしょうか?
SPL は、配列形式でオブジェクトを操作するために使用される ArrayAccess、Countable、SeekableIterator などのインターフェイスを備えた PHP エンジンの拡張機能を提供します。同時に、RecursiveIterator や ArrayObjects などの他のイテレータを使用してデータを反復することもできます。
また、Exceptions、SplObserver、Spltorage などのいくつかの組み込みオブジェクトや、対応する関数をオーバーロードするための splautoloadregister、splclasses、iteratorapply などのヘルパー関数もあります。
これらのツールを組み合わせると、多機能のスイスアーミーナイフのようなものになります。これらをうまく活用すると、PHP コードの効率が質的に向上します。では、どうすればその力を発揮できるのでしょうか?
オートローダーのオーバーロード
あなたが「教科書的なプログラマー」であれば、__autoload を使用して include/requires 操作を置き換え、対応するクラスを遅延ロードする方法を知っているはずですよね?
しかし、時間が経つと、まず、クラス ファイルが指定されたファイル パスに存在する必要があることを確認する必要があります。たとえば、Zend フレームワークでは、クラスを区切るのに「_」を使用する必要があります。およびメソッド名 (この問題をどのように解決しますか?)。
もう 1 つの問題は、プロジェクトがますます複雑になるにつれて、__autoload 内のロジックもそれに応じて複雑になることです。最終的には、例外判定も追加し、クラスをロードするロジックをすべて書き込むことになります。
「卵は 1 つのカゴに入れることができない」ことは誰もが知っています。SPL を使用して __autoload のロード ロジックを分離できます。独自の自動ロード関数を作成し、SPL が提供する関数を使用してそれをオーバーロードするだけです。
たとえば、上記の Zend フレームワークの問題では、対応するクラスが見つからない場合は、Zend ローダーの対応するメソッドをオーバーロードできます。その後、以前に定義した関数が使用されます。コードをコピー
コードは次のとおりです:
www.bkjia.com