同僚の皆さん、楽しい休日を! そして、ここに成熟した贈り物があります。 まあ、または天罰。 まだ明確ではありません。 要するに、私たちは緊張し、集まって、集中し、
Limbフレームワークの新しいバージョンを公開する準備ができています。 まあ、真実は、完全なバージョンではありませんが、2番目のリリース候補は2010.1 RC2です。
知識がない人のために、
Limbは高速で柔軟な開発に焦点を合わせたPHPフレームワークです。 優先事項/柔軟性-コード品質-開発速度。
手足のリスト:
批判やバグ報告で私たちを引き裂くのが待ちきれない人は
、コードを
手に取り、 ドキュメントとレポート、レポート、レポートを
手に入れてください。
そして今、私たちが持っているものについての詳細。
手足パッケージ
パッケージには、遅延コードのロード、環境変数の操作、およびパッケージ用の
グローバル関数が含まれています。 さらに、
基本的なデータコンテナー (セット、オブジェクト、コレクション)が
含まれています。 そして、あらゆる種類の実用的なもの:配列とコレクションをジャグリングするための
lmbArrayHelper 、後でや
lmbDelegateのために何かを延期したい人のための
lmbHandle 、自分でそれをしたくない人のため、そして委任したい人のため。
Toolkitは、
Dependency Injectionメソッドの1つであるDynamic Service Locatorパターンの実装です。 一番下の行は、簡単にアクセスできるオブジェクトがあるということです。これは、すべての一般的なオブジェクト(サービス)にアクセスするための共通ポイントです。 これは、コードが静的依存関係の深intoに滑り込むのを防ぐ一種の接着剤です。
ActiveRecordは、その名前が示すように、ORM(Object-Relation Mapping)の可能な実装の1つです。 パッケージの最初のアイデアは、Ruby-On-Railsフレームワークから取ったものです。 この場合のRoRは、機能的なガイドとして機能しました。 そして、ここで彼ができることは/
ORMが好きではありませんか? そして、ここにDBALがあります! DBAL(データベース抽象化レイヤー)は、データベースへのオブジェクト指向のアクセスを提供し、特定の実装の詳細から抽象化します。 DBALパッケージのアーキテクチャは非常に標準的です:
- ドライバー-データベースアクセスを抽象化する基本クラス
- クエリ-さまざまな目的(SELECT、INSERT、UPDATE、DELETE)のために何らかの方法でSQLクエリをカプセル化できるクラスのグループ
- 基準-オブジェクト形式でSQLクエリの条件を構築できるクラスのグループ
ビュー、WACT、およびマクロ -画面表示
Limbは、コードを比較的独立した部分に論理的に分割する手段としてMVCパラダイムに従います。 Viewパッケージは、同じ名前のMVCレイヤーを表し、特定のテンプレートエンジンからの抽象化です。 現在、手足のメインテンプレートエンジンはマクロであり、WACTに取って代わりました。 さらに、ViewはBlitz、JSON、およびネイティブPHPをサポートしています。
マクロは、ネイティブPHPの一種の構文糖です。 私たちはヘルパーの道を歩みませんでしたが、タグとフィルターに忠実でした。 マクロについて簡単に:
- PHPコードへの中間コンパイル
- 変数の2つのスコープ/グローバルおよびローカル(テンプレートレベル)
- フィルター機構
- テンプレートは、インクルード(子テンプレートを含む)、ラップ(親テンプレートを含む)、およびテンプレート+適用(テンプレートの適用)によって結合されます。
- サポートされているスロットの概念
- リスト、ツリー、ページング、フォームとそのフィールド、リンク、および国際化に対応する既製のタグ
- 文字列、数値、日付、および特別な形式のさまざまなフォーマット用の既製フィルター
- カスタムタグとフィルターを使用して拡張する
MVCについて言及しましたか? そして、2番目の部分はWebAppです。 このパッケージは、Controllerコンポーネントのみを実装するためのクラスを提供します。 モデルとディスプレイを実装するための手段の選択は、アプリケーションの最終開発者に依拠しています。 一方、パッケージは、アプリケーションでの作業をできる限り簡素化するように実装されます。この場合、「ネイティブ」のLimb DBALおよびActiveRecordパッケージがモデルとして選択され、Viewパッケージが表示ツールとして使用されます。 一般に、2箇所、および3箇所の場所で。
管理パネルとそれをすばやく拡張する手段が必要ですか? 私はそれらを持っています-CMSパッケージ! 認証、識別、その他、CRUDインターフェイス、フィルター、フォームを迅速に構築するための手段。
多数のテストと複雑な多層フィクスチャを備えた、アプリケーション用のSimpleTestテストを整理および実行するためのパッケージ。 このパッケージには他のパッケージへの依存関係がないため、個別に使用するために、ジグソーパズルを使用してLimbから慎重に切り取ることができます。
その他
すべての37(ホラー!)パッケージのリスト 。 最も重要なものは次のとおりです/
- CACHE(2) -キャッシュストレージ(ファイル、APC、データベース、メモリ、セッション)からの抽象化とキャッシュを操作するためのツール(ドッグパイル保護、タグ付け、ロギング)
- CONSTRUCTOR-コンソールコードジェネレーター(モデル、コントローラー、管理パネル)
- FILTER_CHAIN -Limbアプリケーションの基本であるIntercepring Filterパターンの実装
- MIGRATE-開発者間でデータベーススキーマを同期し、コードにバインドします
- TASKMAN-独自のAntがあります
結論
1.安定していないのに、なぜこれらすべてを書いたのですか?
実際、私はそれを安定させるために書きました。 アプリケーションが多いほど、コードは安定します。 いくつかの新しいパッケージ(移行、プロファイル、コンストラクター)は、ライブプロジェクトで使用されるという事実にもかかわらず、私には生のように見えます。 まあ、私は開発に「新しい血」を引き付けたかった。
2.どこで入手できますか?
既に述べたように、
リポジトリはGitHubにあり
、バージョン2010.1 RC2のコードをダウンロードできます。
3.彼と噛む側はどちらですか?
まあ、手足が生まれて成長している
短いビデオ 。
PS:この明るい瞬間のしきい値で、私は30時間寝ていないので、私はあなたが間違いのために多くを蹴らないようにお願いします。 PMに書いてください。Man-Gryzlovのポータブルクローンが静かにすべてを修正します。
ZYY:もう一度、幸せな休日を! シンプルなコード、簡単なデバッグ、そして私たちの仕事をお気に入りにするより幸せな洞察力!