私は大学院生の時にWebエンジニアコースを受講していました。当時のコースは Java サーブレット + Tomcat + Mysql で Facebook のようなソーシャル ネットワーキング サイトを開発するというものでした。講義を行った先生はフレームワークについて言及し、フレームワークの目的は初期ローテーションの時間を短縮することであると述べました。フレームワークを学習するにはドキュメントを読む必要があり、学習と調査には通常 1 か月かかります。でも、素手でブロックを組み立てるのはクールで素晴らしいことだと思います。
私がこのフレームワークに本格的に触れたのは、働き始めたばかりの 2015 年の初めでした。その際に使用したのが、NXP でのインターンシップ中に聞いた Cakephp というフレームワークです。 Cake の初期のアイデアは、移行やコマンドラインなど、RoR (Ruby on Rails) を 100% 継承することでした。もちろん、批判されているのは、リレーショナル データベースを支持する Cake のデータ カプセル化モデルです。 Cakephp は Lavare ほど有名ではないかもしれませんが、依然としてコア開発者、コミュニティ活動、Q&A コミュニティから多くの質問があります。
ウェブサイト構築が初めての方にとって、Cakephp は開発が非常に効率的で、拡張も簡単です。そして、建築家になることを志す子供たちにとって、Cakephp のコア コードを読むことの学習価値は非常に高いと個人的に思います。初期段階では、Cakephp によってカプセル化された API を使用することで、通常の MVC フレームワークの基本的なモジュールと機能を理解できます。上級のプロセスでは、コアコードを読んで設計原則を理解します。最後に、コードを最適化することで、統合点に到達します。筆者も駆け出しのphperとして手探りで開発に取り組んでいますが、この記事を読んでいただける皆さんに私の考えやアイデアを提供し、一緒に進歩していきたいと思っています。
このシリーズは主に Cakephp 3 Cookbook の翻訳に焦点を当てており、Cakephp 3 の特徴の紹介を交えながら、開発プロジェクト プロセスでの Cakephp 3 の使用経験に焦点を当てています。私は、Cakephp 3 の紹介と翻訳によって、Cakephp に少しでも貢献できればと思っています。また、このシリーズを通じて同じ考えを持つ友人と知り合えればと思っています。
詳細に入る前に、Cakephp 3 のいくつかの機能について簡単に説明しましょう。
1). 命名規則
Cake は、RoR、Django、その他のフレームワークと同様に、MVC 規則名の完全なセットを提供します。命名規則を使用すると、Cake が提供するいくつかの機能を便利に使用できます。プロジェクト後のコードのメンテナンスにも役立ちます。開発プロセスにおいて、命名規則は開発効率に貢献します。
2). データ層 (モデル)
Cakephp 2 と比較して、Cakephp 3 のデータ層は大幅に改善されました。 MYSQL、PostgreSQL、Microsoft SQL Server、SQLite などをサポートするだけでなく、ORM は 2 つの異なるデータ CRUD API も提供します。ユーザーはネイティブ SQL ステートメントを使用してデータベースを呼び出し、クエリを柔軟に処理できます。エンティティ処理クラスは、データを安全に処理するために使用できるカプセル化された API のセットを提供します。
3). ビュー レイヤー (ビュー)
ビュー レイヤーは、基本的なデータ プレゼンテーションを提供します。テンプレートと拡張モジュールはコードを効率的に簡素化し、フロントエンド コードをより簡潔にして再利用可能にします。同時に、ビュー レイヤーは、XML、JSON、その他のリソースを含む完全な RESTFUL アプリケーションを提供し、Web サイトに Web サーバーを URI 形式で提供できます。
4). 制御層 (コントローラー)
制御層は、コアロジック層として、データ層とビュー層を効果的に組み合わせます。重要なアルゴリズム処理は、この層で実装および改善できます。