ホームページ  >  記事  >  バックエンド開発  >  ZF などの一般的な PHP フレームワークに存在する問題

ZF などの一般的な PHP フレームワークに存在する問題

WBOY
WBOYオリジナル
2016-07-29 08:37:21990ブラウズ

Zend Framework v0.13 バージョンから、Zend Framework の使い方を学び始めました。当時の同社のプロジェクトの 1 つでも、たまたま Zend Framework が使用されていました。バージョン0.6以降、細かいことは気にならなくなりました。 Zend Company が 5 月に Zend Framework を正式にリリースすると数日前に聞きました。今日は特別にクラスメートにダウンロードしてテストするように頼みました。
最新バージョンは 0.93 です。テストの結果、Zf フレームワークがますます愚かになっていることがわかりました。多くのものは ZF のライブラリに直接パッケージ化されています。呼び方を知っていれば大丈夫です。確かに以前のバージョンから大きな変更があり、より多くの機能が追加されています。
まず第一に、Zend.php はなくなり、Zend_load クラスに置き換えられ、load.php に配置されます。
次に、ライブラリ クラスのロードがより便利になります。以前の ZF はサブディレクトリで使用するのがさらに面倒でした。これはサブディレクトリで直接使用できるようになり、mod_rewrite なしで使用できるようになりました。「PHPCHINA に関するいくつかの質問に答える」で書いたのと同様に、http://path/to/site/controller/action からアクセスできます。 URL マッピング」では、URL マッピングについて説明します。
第三に、ビューはコントローラーに直接統合されており、簡単に呼び出すことができます。ただし、欠点の 1 つは、プログラムのディレクトリ構造を政府の要件に従って標準化する必要があることです。
さらに、アクセス制御など、多くの機能が追加されました。全体として、多くのことが変わりました。今夜はちょっとだけ見てみました。
ZF、cakephpなどのフレームワークについては、いわゆる「すべては分離できない」というフレームワークの基本原則を理解して学習するのが最善だと思います。フレームワーク自体は非常にシンプルで、ZF などほど複雑ではありません。細部をうまく処理しているだけですが、同時に普遍的で標準化され、強力である必要があるため、複雑です。フレームワークの基本原理については、PHP5 を使用してシンプルな MVC フレームワークを構築する方法に関する phpit.net の記事 (Joy International Village で翻訳) を読むことをお勧めします。または、私の記事「PHP 最も簡単な」をいくつか読むこともできます。 MVC 開発の実装方法」シリーズの記事。
以前 chinaunix に、PHP プロジェクトでのオブジェクトとプロシージャの使用の長所と短所について議論した投稿がありました。その議論は非常に良かったです。オブジェクトをサポートする人もいますが、オブジェクトを使用しない開発の方が WEB 開発の特性に適合し、パフォーマンスが優れていると考える人もいます。
私は個人的に、特に PHP5 環境でのオブジェクトベースの開発を強く支持しています (PHP5 のオブジェクトと PHP4 のオブジェクトは完全に異なるため、これを理解するには Zend エンジンを見ればわかります)。ただし、投稿で言及されている点も非常に合理的です。たとえば、「OOP フォームには、理由もなく多くの無関係な関数が読み込まれなければなりません」。WEB 開発はパフォーマンスを重視しており、PHP はインタプリタ言語です。コードが多すぎるとパフォーマンスに大きな影響を与えます。この問題は、Zend Framework、CackePHP、Fleaphp、および私のフレームワーク PHPbean に存在します。
たとえば、indexController、ここでは例として Zend Framework を使用します。コードは次のとおりです。
classindexController extends Zend_Controller_Action {
function init(){
//echo 'index/index'; ->view->title='hello World!';
アクション( ){
echo 'index/show';
}
}
?>
たとえば、index/index にアクセスする場合、testAction() メソッドと ShowAction() メソッドの内容は完全に冗長です。実際の開発では、この考え方に従うと、機能モジュールは一般にコントローラに相当し、例えばユーザーは userController に相当し、ログイン、終了、登録、一覧、詳細表示などのメソッドが存在します。プロジェクトが大きい場合、コントローラーには数 K から 10 K を超えるものしかない場合があります。それから、このモデルは非常に悪いです。
JAVA の Struts では、1 つのアクションが 1 つのファイルに対応する、まったく異なるアプローチが採用されています。とても参考になる方法だと思います。
PHP5ではオブジェクト指向を使った方が良いと思います。プロセスと向き合ったときに実現できることは、モノと向き合ったときにも実現できるし、それ以上に実現できると言えるでしょう。しかし、重要な点は、プロセス指向の思考を使用してオブジェクト指向プログラムを作成するのではなく、オブジェクト指向の思考を使用するためにオブジェクト指向の思考を使用することです。​
上記は、ZF などの一般的に使用されている PHP フレームワークに存在する問題点を側面も含めて紹介したもので、PHP チュートリアルに興味のある友人の参考になれば幸いです。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。