ORM を使用して Composer で独自の PHP フレームワークを構築する、composerrom_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:15:41
オリジナル
962 人が閲覧しました

ORM、composerrom を使用して Composer で独自の PHP フレームワークを構築します

レビュー

最初の 3 つの記事で基本的な準備、ルーティング、MVC 設計を行った後、比較的完全な MVC アーキテクチャを備えた PHP マイクロフレームワークを入手しましたが、実際に使用できるフレームワークにはまだ欠けているものが 1 つあります。データベースのカプセル化、この記事では、ORM Composer パッケージを統合する方法について説明します。

この記事はこのシリーズの最後の記事です。次に、このサイトで主に公開されるシリーズタイトル「Composer Packageを開いて開いてみよう」でいくつかの経験と洞察を共有するかもしれません。

テキスト

ORMパッケージとしてLaravelのilluminate/databaseを選択します。有名な ORM をいくつか試してみましたが、Laravel の Eloquent が最も便利であることがわかりました。私たちを幸せにするORMが何度も開かれます! :-D

この一連のチュートリアルでは、各 Composer パッケージは次の基本要件を満たしている必要があります:

管理のために Composer にネイティブに依存します

使いやすさを考慮して、できるだけシンプルになるようにしてください (非常にシンプルなルーティング パッケージなど)
できるだけ最新の状態にして、PHP の新機能を使用してください

PHP の新機能について言えば、余談があります。 PHP5.3 では、PHP6 で予定されている機能である名前空間が導入されているため、PHP5.3 は実際にはある程度 PHP6 になります。PHP の次のバージョンは、主な貢献者は有名な Bird Brother @Laruence です。 。さらに、最前線のレポーター (私です) が Weibo から、Niao 兄弟が JIT 上で伝説的な PHP7 を作成するために取り組みを強化していると報告しました。私の大きな PHP の歴史的な車輪は止められません、ハハハ! :-P

イルミネーション/データベースをインストールする

composer.json に必須項目を追加します:

"イルミネーション/データベース": "*"

Composer update を実行し、インストールが完了するまで待ちます。

Eloquentの使用

public/index.php を次のように変更します:

コードをコピーします コードは次のとおりです:
IlluminateDatabaseCapsuleManager をカプセルとして使用します;

//Autoload 自動ロード

「../vendor/autoload.php」が必要です;

// 雄弁な ORM

$capsule = 新しいカプセル;

$capsule->addConnection('../config/database.php'が必要);

$capsule->bootEloquent();

//ルーティング設定

「../config/routes.php」が必要です;


config/database.php を追加します (データベースのパスワードを置き換えることに注意してください):

コードをコピーします コードは次のとおりです:
戻る [

'ドライバー' => 'mysql',

'ホスト' => 'ローカルホスト',

'データベース' => 'mffc',

'ユーザー名' => 'root',

'パスワード' => 'パスワード',

'charset' => 'utf8',

'照合' => 'utf8_general_ci',

'プレフィックス' => ''

];


モデル/Article.phpを変更:

コードをコピーします コードは次のとおりです:
/**

* 記事モデル

*/

クラス記事はIlluminateDatabaseEloquentModelを拡張します

{

public $timestamps = false;

}


controllers/HomeController.php 変更は必要ありません。

更新すると、ページは残ります:

おめでとうございます! Eloquent で成功しました!

雄弁なその他の使用法

Eloquent は非常に強力で、Laravel の最も特別で価値のある部分と言えます。
HomeController で呼び出される Article::first() と同様、以前は十数行のコードが必要でしたが、現在は何もする必要はなく、クラスを継承するだけです。

Eloquent の詳しい使用法については、Eloquent ORM 中国語ドキュメントを参照してください

その他の有名なORM

有名な ORM およびデータマッピング (データベース移行など) パッケージも多数あります。参照: ORM とデータマッピング

ORM は開発効率を大幅に向上させることができ、Eloquent はまさに魔法のツールです。
Web 世界のさまざまな言語陣営が新しいいわゆる急速開発フレームワークを絶えず立ち上げていますが、それらは依然として Rails にますます似てきています。表面的には、Eloquent は Rails に最も似た ORM に近いですが、Ruby の超オブジェクト指向機能と比較することはできません。 Laravel の作者である Taylor Otwell 氏はインタビューで、Eloquent は Laravel で実装するのが最も難しい部分だと述べています。デバッグ中に、MFFC/vendor/illuminate/database/Illuminate/Database/Eloquent/Model.php ファイルに 3,000 行以上あることもわかりました...

完全で使いやすい PHP フレームワークを構築するという現在の作業は基本的に完了しました。次に、MFFC フレームワークをさらに改良して、より使いやすくします。

将来的には、テンプレートエンジン、フォームバリデーション、メール送信、パーミッションシステム管理、非同期キュー、ビデオ・オーディオ処理(インストゥルメント:-D)などのコンテンツが登場する可能性がありますので、今後の内容にご注意ください。何度も開いているComposerパッケージシリーズの記事を公開しました。

読んでくださった皆様、お付き合いくださった皆様、ありがとうございました!さようなら!

PHP Composer の基本的な使用法の問題

質問1: なぜマネージャーをカプセルとして使用しなければならないのですか

名前が長すぎるので、使いやすいように名前を変更してください

質問2: ベンダーの下のautoload.phpの機能は言うまでもありませんが、自動読み込み、読み込み方法を知りたいです

require '../vendor/autoload.php';
このファイルのコードは見えないので、何をするのかわかりません

質問 3: とは何ですかbootEloquent()関数の関数

この関数がどこで定義されているか見ていないので、その機能を判断できません

phpパッケージ管理、composerには国内ミラーがあります

はい、国内のフルイメージには、laravel フレームワークプロジェクトチームによって構築された pkg.phpcomposer.com/
というプロキシもあります: 218.244.132.204/proxy/packagist このプロキシは、composer の検索および通知メソッドを使用できません。

http://www.bkjia.com/PHPjc/903480.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/903480.html技術記事 ORM を使用して Composer で独自の PHP フレームワークを構築する、composerrorm のレビュー 最初の 3 つの記事で基本的な準備、ルーティングの構築、MVC の設計を行った後、構造の比較を行いました...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート