ホームページ  >  記事  >  バックエンド開発  >  Pea Framework 0.6 が正式にリリースされたソリューションのアイデア

Pea Framework 0.6 が正式にリリースされたソリューションのアイデア

WBOY
WBOYオリジナル
2016-06-13 13:49:09772ブラウズ

Wandou Framework 0.6 が正式リリースされました
[color=#339966] Wandou Framework (英語名は Wonderful Framework): [/color] は、PHP5 以降をサポートする PHP 開発フレームワークです。無料です。
はオープンソースであり、BSD プロトコルに基づいてリリースされており、柔軟で拡張可能、構成可能なコンポーネント化されたフレームワーク構造を持ち、従来のプロセス指向をサポートしながら、HTML に埋め込まれた開発手法を採用しています。
MVC モードをサポートし、プログラマーがアーティストとより協力できるようにします。
PhpTagLib、Action などの知識が必要なく、これらのテクノロジーにより開発者は強力に開発できます。階層化された設計アーキテクチャ。
統合された単体テスト/オブジェクト模倣機能と依存関係注入アーキテクチャにより、アジャイル開発がより適切にサポートされます。
このフレームワークは、JAVA の多くのテクノロジを参照しており、これらのテクノロジはさらに発展しています。フレームワークにはまだ多くの欠点があり、継続的に改善する必要があります。ご質問があれば、フィードバックをお寄せください。


機能:*柔軟性、拡張性、再利用性が高く、完全なオブジェクト指向設計で、いくつかの便利なクラス ライブラリを備えています。
* 依存関係の注入、開発用の IoC アーキテクチャを実現します。
* クラスの依存関係をより適切に削減できます。これはフレームワークの基礎です。開発者は独自の一致するアドレスを定義し、それらを操作用の特殊なクラスにマッピングできます。
* タグ エンジン、PhpTagLib は、開発者が HTML/XML などのタグを定義できるようにする重要な MVC 実装です。コンポーネントの開発を実現します。
* 強力なデータ処理フレームワークであるアクション モジュールは、タグを使用した呼び出しをサポートし、複数のアクションの組み合わせをサポートします。
* イテレーターは、PHP のイテレーター インターフェイスを拡張および強化し、他のモジュールに統合します。
* データベース、PEAR DB を再パッケージ化し、複数のデータベースへの同時接続をサポートし、タグを提供します。
* ページング クラス、データ ページング、およびページング ガイドが分離されており、ページングをより適切に拡張できます。イテレータ、任意のデータのイテレータ ページングを実行できます。
* キャッシュ、統合キャッシュ アーキテクチャ、開発を提供します。簡単に拡張でき、キャッシュ タグを介したページのコンテンツのキャッシュをサポートします。
* テスト エンジン、サポートアジャイル開発に必要な TDD 開発手法は、個別のテスト ケースの実行をサポートし、テスト グループの実行もサポートします。
* オブジェクトの模倣。指定したクラス/インターフェイスをモックするだけでなく、親クラスをモックして分離することもできます。
* PlainObject、通常のクラスの作成をサポートし、クラスを継承せず、インターフェイスも実装せず、直接使用できます。タグ クラスまたはアクション クラスとして使用されます。
* 従来のページ、従来の PHP ページ、HTML ページ、画像、スクリプト、その他のファイルに直接アクセスできます。
* 単一の入り口、入り口プログラムでフレームワーク環境を設定できます。
* デバッグ、より詳細なエラー/例外の提供をサポート、
* XML 形式の構成ファイルにより、構成がより直観的かつ柔軟になります。
* PEAR Basic および一般的に使用されるクラス ライブラリの一部が付属しています。
* 無料のオープン ソース。 BSD オープン ソース ライセンスを使用してリリースされているため、どのプロジェクトでも使用できます。

フレームワーク Web サイト: http://www.wonderfulproject.cn
Google コード: http://code.google.com/ p/wonderfulframework

例: http://www.wonderfulproject.cn/door.php/example.php

関連記事:
PhpTagLib の MVC 階層化設計
イテレーターの紹介およびページング (Page) クラス ライブラリ
フレームワーク内のアクションの機能: コンポーネントと組み合わせ
フレームワーク内での FCKEditor の使用

旧正月中には、新しいバージョンをリリースする時間があります
このフレームワークは主にシステム開発に位置付けられ、いくつかのアジャイル技術を提供します。
フレームワークが実際のプロジェクトに継続的に適用され実践されるにつれて、全体的なアーキテクチャが安定し、いくつかの点で改善が加えられています。
今後も、フレームワークはアーキテクチャの改善を続け、さまざまなライブラリ (クラス ライブラリ、タグ ライブラリ、アクション ライブラリ、バリデータ ライブラリ) を強化し、使いやすさを向上させ、効率を向上させます。 etc.


-----解決策--------- ドキュメントはどこにありますか?ドキュメントはどこにありますか?

------解決策---------デモを簡単に見てみましょう

あなたのフレームワークは PHP に適していません

1。このフレームワークは、PHP でのインクルード ファイルの参照が非常に面倒であることを知っておく必要があります。
2. MVC は M と V を認識しません。「PhpTagLib」を V としてカウントするのは少し抵抗があります。
3. アクション パラメーターは非常に複雑です - 「WDF_ActionForm & $form、WDF_ActionErrors & $errors」。コードを自動的に生成する IDE やツールがない場合は、パラメーターは単純であるほど良いことを知ってください。
4. 出力に $this->response->writeln を使用します。これは複雑すぎます。 $this->gt;出力はあまり良くありません
5. XML 形式の設定ファイルは PHP Array を使用して直接実装でき、PHP 自体は動的スクリプトなので可読性は悪くありません。特徴。
6. アクションパラメータを取得するには、$form->getValue を使用する必要があります。少し複雑ですか?
public function process(string $username) { ... } これが最高です

このフレームワークは本当に満足のいくものです。Java/C# とは異なり、PHP は非効率な動的スクリプト言語であることを知っておく必要があります。このようなフレームワークは PHP には適していません

------解決策----------------------
まず、ソースコードをまだ見ていないのですが、いくつか提案がありますので、ご不便をおかけして申し訳ございません。

> 1. フレームワークは自動ロードさえ実装していません。PHP でのインクルード ファイルの参照は非常に面倒であることを知っておく必要があります。
> 長い間これを追加する方法を考えていましたが、autoload はどのファイルをロードするかをどのように認識するのでしょうか?ネーミングスペースを使用することもできますが、PHP5.3 はネームスペースのみをサポートしていますが、この場合、エイリアスを使用しない限り、名前は依然として非常に長いです。エイリアスはインクルードよりもどれほど便利ですか?

一般に、 autoload はクラス名を通じて実装され、同じ名前のクラスが存在する場合は、using(...); と同様の関数を使用できます。 autoload にどのディレクトリを最初にロードするかを指示するグローバル マーク。
オートロードの実装は主に lib のディレクトリ構成に依存します。うまく整理できれば、オートロードの実装が大幅に容易になります。

-----------------


> 3. アクション パラメーターは非常に複雑です - "WDF_ActionForm & $form、WDF_ActionErrors & $errors" については、コードを自動的に生成する IDE またはツールがない場合、パラメーターは単純であるほど良いことを知っておく必要があります。
> そうですね、パラメータはシンプルであるほど良いという意見には同意しますが、これはすでにメイン データを分類しているため、$ Form を入れないのはなぜでしょうか。コントローラーのメンバーですが、パラメーターとして渡す必要がありますか?
PHP の組み込み例外処理を使用してみてはいかがでしょうか? class ActionException extends Exception { ... }
throw new ActionException(...);

-------------


> ; 6. アクションパラメータを取得するには、$form->getValue を使用する必要があります。少し複雑ですか?
> public function process(string $username) { ... } これは最高ではありませんが、1 つのユーザー名と 1 つのパラメータではどうなりますか? はい、追加します。


私が言いたいのはこれです:
public function process(string $username) { ... }
$username は必須パラメータであり、がありません その後、コントローラはエラーを報告します

public function process(string $username = null) { ... }
$username がオプションのパラメータであることを示します

渡された残りのパラメータページ上の $ フォームを通過して


にアクセスすることもできます。

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