ホームページ > バックエンド開発 > PHPチュートリアル > 独自の PHP フレームワークを構築する - ORM インターフェイスを定義し、PHP フレームワークを構築する orm_PHP チュートリアル

独自の PHP フレームワークを構築する - ORM インターフェイスを定義し、PHP フレームワークを構築する orm_PHP チュートリアル

WBOY
リリース: 2016-07-12 08:58:44
オリジナル
1055 人が閲覧しました

独自の PHP フレームワークを構築する - ORM インターフェイスを定義し、PHP フレームワーク ORM を構築します

前回のブログでは、Controller の基本クラスを抽象化し、ページのレンダリングと JSON 文字列を返す機能を実装しました。

それでは、フレームワークとして、今何が欠けているのでしょうか?はい、これまでデータベースに接続したことがなく、ORM (オブジェクト リレーショナル マッピング) が欠如していることに誰もが気づいたはずです。

PHP で MySQL に接続するには、ネイティブ関数、mysqli 拡張機能、および PDO 拡張機能を使用する 3 つの方法があります。詳細については、私の以前のブログ「PHP の学習 - MySQL に接続する 3 つの方法」を参照してください。

どれを選ぶべきですか?フレームワークとして 1 つのデータベースのみをサポートすることはできないことを考慮し、PDO を使用することにしました。もちろん、フレームワークが mysql データベースに接続するだけで十分であることがわかっている場合は、mysqli の使用を検討することもできます。

PDO は次のデータベースをサポートします:

  • キューブリッド (PDO)
  • MS SQL サーバー (PDO)
  • ファイアバード (PDO)
  • IBM (PDO)
  • インフォミックス (PDO)
  • MySQL (PDO)
  • MS SQL サーバー (PDO)
  • オラクル (PDO)
  • ODBC と DB2 (PDO)
  • PostgreSQL (PDO)
  • SQLite (PDO)
  • 4D (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

tru​​ehttp://www.bkjia.com/PHPjc/1101502.html技術記事独自の PHP フレームワークを構築する - ORM インターフェイスを定義し、PHP フレームワーク ORM を構築します。 前回のブログでは、Controller の基本クラスを抽象化し、ページをレンダリングして JSON 文字列を返す関数を実装しました...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート