私は現在の雇用主のためにCakePHPとMySQLをフルタイムで使用してWebアプリケーションを開発しているので、経験からあなたの質問に答えようとします。
この種の状況に最適な解決策を知っている人はいますか?
PHPフレームワークは、問題モデルに最適なソリューションです。私はCakePHPを好みます。なぜなら、アプリケーションを迅速にデプロイでき、設定より規約を優先するからです。
このアプリケーションがPHP/CakePHPで完全に開発された場合、1人で開発するにはかなりの時間がかかり、データベース構造/フィールドを追加/削除/更新するには開発者の入力が必要になります。
あなたが私に言っていることから、あなたのアプリケーションは主にCRUDアプリになります。CakePHPのインストールには、これに必要な機能が標準で付属しています。さらに良いことに、CakePHPコンソールを使用してアプリケーションを「ベイク」することができます。これにより、すべてのモデルとコントローラー、およびテーブルからレコードを追加/更新/削除するために必要なすべてのビューが自動的に生成されます。
アプリを焼くために必要な唯一の準備は次のとおりです。
- データベースの作成
- ドキュメントの規則に従って、すべてのテーブルに名前を付けます。
- 命名規則に従って、すべての外部キーが適切な場所にあることを確認します。
この時点で、Bake Consoleはモデルの構築、関係の検出、およびCRUD操作のコードの生成に取り掛かります。そうです、データベースを構築してから約10分で、機能は70〜90%完了します(現在のあいまいな仕様に基づく)。そこから、独自の設計、セキュリティ、およびレポートなどの機能で物事を具体化する必要があります。
本当に簡単です。
これですべてを説明したので、いくつかのことを知っておく必要があります。
- CakePHPの設定を適切に最適化するには、少しの経験や魔法が必要です。アプリケーションを起動して実行することは、非常に簡単です。正常に動作させるには、ベストプラクティスを確実に使用するためにある程度の努力が必要です。グーグルで「OptimizeCakePHP」のバリエーションを検索し、見つけたブログを確認してください。
- 封じ込め可能な行動は祝福と呪いです。ぜひ、AppModelに入れて、すべてを「包含可能」にしてください。ただし、深く関連するモデルからデータを検索するために包含可能を使用しないようにしてください。Cakeは、数百(または数千)のSelectクエリをバーフアウトし、アプリはクロール/失敗を開始します。