同社は yaf フレームワークを使用しているため、少なくとも多くのプロジェクトが yaf フレームワークに基づいています。 yaf を使用したことのある友人なら誰でも、yaf の機能が単純すぎるとはっきりと感じられると思います。yaf は基本的に mvc モード、自動ロード機構、およびルーティング機構を提供するだけで、残りは基本的に何もありません。
もちろん、C 言語フレームワークとしては必須ではありませんし、結局のところ、1 人でメンテナンスされ、1 人の時間も限られており、Niao 兄弟も独自の yaf フレームワークをメンテナンスしていただきたいと思います。改めて心から感謝を申し上げます。そこで、統一された要件に基づいて、主要な主流フレームワークの具体的な実装方法を詳しく調べ、そこからいくつかを抽出して自分用に活用することにしました。
最初に思い浮かぶフレームワークは laravel です。これは、よりエレガントなフレームワークであるだけでなく、非常に高い市場シェアを持っているだけでなく、機能とパフォーマンスの点で優れたパフォーマンスを備えているためです。ソースコードを詳しく調べたことは一度もありませんでしたが、これは損失と言わざるを得ません。
フレームワークを研究するときは、そのさまざまなメカニズムの実装プロセスを研究することが非常に重要です。結局のところ、これらのクラス ライブラリを作成する効率は低くありません。
さて、くだらない話はやめましょう。今日はDB層の実装を30分ほどざっと見ただけで、適当な修正も加えました。たとえば、Databaseの下のQueryに2つのフォルダがあるので、それを1つのフォルダにまとめただけです。また、自動ロード方法に従って名前を変更しました。たとえば、Connection の名前は DBX_Query_Connect に変更されます。yaf と laravel に詳しい人は、ライブラリの下に DBX ディレクトリを作成したことを知っているでしょう。そのディレクトリ内のサブディレクトリに Connect.php ファイルが配置されます。
しかし、最も重要なことは、そのジャンプが非常に強力であるということです。単純な $conn->table("t_admin")->get(); には 3 つのジャンプがあります。 1 つは Builder、1 つは Processor、1 つは Grammar です。もちろん、ソース コードの Support ディレクトリに Arr.php ファイルという別の Arr が存在し、そのファイルに対してメソッドが呼び出されていることがわかりました。一般に、クエリを実行して 5 ~ 10 回のジャンプを行うときにこの複雑さを確認することを好み、通常はこの方法で実行します。しかし、10回から20回と飛躍すると人の思考は必然的に不明確になり、それをより巧みにコントロールするには多くの努力が必要になることも決まります。
ちなみに、私が検討しているコードのバージョンは 5.1.4 であることをお伝えしておきます。ソース コードの読み取りに関する一連の情報は、仕事上の必要性のため、後ほど公開します。それが好きな友達は、引き続きXiaaoに注目してください。
著作権声明: この記事はブロガーによるオリジナルの記事であり、ブロガーの許可なく複製することはできません。