最近、私は壮大な
Silexマイクロフレームワークについて学び、同時に
ORMモデルについても学びました。 チュートリアルは、一方を他方に接続する場合に役立ちます。
Silexは、
Symfony 2および
Pimpleコンポーネント上に構築された軽量で拡張可能なマイクロフレームワーク
です 。
Doctrine-直接ではなく、通常のオブジェクトを介してデータベースを操作できるORMエンジン。
この記事は
これに基づいて書かれていますが、翻訳ではありません。
さて、一方を他方に接続してみましょう。
Composerを使用してライブラリをインストールします。
composer.json
依存関係を定義する
{ "minimum-stability": "dev", "require": { "php": ">=5.3.3", "silex/silex": "1.*", "taluu/doctrine-orm-provider": "1.0.*" }, "config": { "bin-dir": "bin" } }
configフィールドを説明する価値があります。 その中で、Composerがコンソールで実行されるファイルへのショートカット(エイリアス)を作成する場所を示します。
composer install
実行します
アプリケーションコードを追加
プロジェクトのルートで、アプリケーションフォルダー
app/src
または他の任意のフォルダーを作成します。
パターンに従って (これはインストールできる方法ですが、私はしませんでした)私は
src
を呼び出しました。
次のコードを
index.php
追加します。
ここで、$ appでアプリケーションをアンロードして起動します。
app.phpの内部:
そして、Composerによって作成されたクラスオートローダーを接続し、アプリケーションを作成して構成します。
controllers.phpでは、コントローラーのロジックを記述します:$ app-> get()、$ app-> error()など。
Registers.phpに興味があります:
指定されたネームスペースに従って、この場合、ディレクトリを作成します。
src/TestApp
および
src/TestApp/Entity
Doctrineコンソール管理をセットアップする
bin
Composerのおかげで、Doctrineのコンソールツール(以下、単にコンソール)のコードをわずかに変更する必要があります。
コンソールとアプリケーションをリンクするには、
cli-config.php
設定します。 最初、このファイルは
vendor/doctrine/orm/tools/sandbox
、そこから
bin
コピーします。 ここで、
$helpers
の作成を除くすべてを削除します。
すべてのリモートコードは、アプリケーション用に構成したものを作成および構成しました。 では、なぜこれを使用しないのでしょうか?
ここで、
$app['db.orm.em']
を使用してアプリケーションで作業することを追加する価値があります。
$app['db.orm.em']
からEntityManagerのコピーを取得できます
$app['db.orm.em']
これらの設定の接続オプション:
- 正しいオプションではありません、これをしないでください:
bin / doctrine.phpを修正します:
$configFile = getcwd() . DIRECTORY_SEPARATOR . 'bin/cli-config.php';
これは、プロジェクトのルートにcli-config.phpを配置することではできませんでした。 一方では、ライブラリのコードを編集するのは正しくありませんが、他方では便利です。 - 別のより正確な方法に進むことができます-独自のコンソールを作成し、設定を自分で接続します。
ここで、bin / consoleを実行し、プロジェクトルートから開始する権限を与える必要があります。
./bin/console [command_name]
このトピックについて他に読むべきこと:
Doctrineのロシア語ドキュメントDoctrine ORM英語ドキュメントUPD:githubに、silexおよびdoctrine ormのアプリケーションフレームワークと共に
リポジトリを追加しました。 確かに、ORMには別のプロバイダーが使用されます