前回のブログでは、Controller の基本クラスを抽象化し、ページのレンダリングと JSON 文字列を返す機能を実装しました。
それでは、フレームワークとして、今何が欠けているのでしょうか?はい、これまでデータベースに接続したことがなく、ORM (オブジェクト リレーショナル マッピング) が欠如していることに誰もが気づいたはずです。
PHP で MySQL に接続するには、ネイティブ関数、mysqli 拡張機能、および PDO 拡張機能を使用する 3 つの方法があります。詳細については、私の以前のブログ「PHP の学習 - MySQL に接続する 3 つの方法」を参照してください。
どれを選ぶべきですか?フレームワークとして 1 つのデータベースのみをサポートすることはできないことを考慮し、PDO を使用することにしました。もちろん、フレームワークが mysql データベースに接続するだけで十分であることがわかっている場合は、mysqli の使用を検討することもできます。
PDO は次のデータベースをサポートします:
もちろん、これらのデータベースは PDO を使用して接続できる場合でも、特定のケースでは若干異なります。詳細については、PDO のドキュメントを参照してください。
私のコンピューターには現在 mysql のみがインストールされているため、後続のコードは mysql データベースのみをテストし、他のデータベースはテストしません。まず、これらのコンテンツを src/db フォルダーに配置します。ここでは、最初に最も単純なものをインストールします。
何を達成する必要があるか?最も単純なのは、データの追加、削除、変更、クエリです。
今、記事テーブルと対応するモデル記事があるとします。それをどのように使用したいでしょうか?
リーリー
おそらく上に挙げたのは、単純な ORM 実装後の用途です。これに基づいて、次のインターフェイスを定義できます。 リーリーこのファイルは src/db フォルダーに配置されています。これは私が考えることができる最も単純なインターフェースです。開発中にいくつかの省略が行われる可能性があります。とりあえずはこれを先に実装してみます。
これはインターフェースです。後でこのインターフェースを実装する BaseModel クラスを作成し、すべてのモデルが BaseModel を継承して実装します。
さて、今日はここまでにしましょう。プロジェクトの内容やブログの内容も Github に載せる予定ですので、皆様からのご提案をお待ちしております。
コード: https://github.com/CraryPrimitiveMan/simple-framework/tree/0.4
ブログプロジェクト: https://github.com/CraryPrimitiveMan/create-your-own-php-framework
http://www.bkjia.com/PHPjc/1101502.html
。