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(){
$this->initView(){
//echo 'index/index';
$ this->view->title='hello World!'; $this-> }
function ShowAction () {
echo 'index/show';
向けたとえば、Index/Index にアクセスすると、testAction () と ShowAction () の内容は完全に冗長になります。実際の開発では、この考え方に従うと、機能モジュールは一般にコントローラーに相当し、例えばユーザーは userController に相当し、ログイン、終了、登録、一覧、詳細表示などのメソッドが存在します。プロジェクトが大きい場合、コントローラーには数 K から 10 K を超えるものしかない場合があります。それから、このモデルは非常に悪いです。
JAVA の Struts では、1 つのアクションが 1 つのファイルに対応します。とても参考になる方法だと思います。
PHP5ではオブジェクト指向を使った方が良いと思います。プロセスと向き合ったときにできることは、モノと向き合ったときにもできるし、さらに良くできると言えるでしょう。しかし、重要な点は、プロセス指向の思考を使用してオブジェクト指向プログラムを作成するのではなく、オブジェクト指向の思考を使用するためにオブジェクト指向の思考を使用することです。