2011-07-07 8 views
0

こんにちは、みんな!Doctrine for PHP設定

私はPHPサイトを構築しており、DoctrineをDBALとORMとして使用することに決めました。私はPHPのスキルに少し錆びているので、私が1つのことを理解するのを助けてください。そのドキュメントに指定されている

教義を設定する方法は、次のようなコードを実行することです:

if ($applicationMode == "development") { 
    $cache = new \Doctrine\Common\Cache\ArrayCache; 
} else { 
    $cache = new \Doctrine\Common\Cache\ApcCache; 
} 

$config = new Configuration; 
$config->setMetadataCacheImpl($cache); 
$driverImpl = $config->newDefaultAnnotationDriver('/path/to/lib/MyProject/Entities'); 
$config->setMetadataDriverImpl($driverImpl); 
$config->setQueryCacheImpl($cache); 
$config->setProxyDir('/path/to/myproject/lib/MyProject/Proxies'); 
$config->setProxyNamespace('MyProject\Proxies'); 

if ($applicationMode == "development") { 
    $config->setAutoGenerateProxyClasses(true); 
} else { 
    $config->setAutoGenerateProxyClasses(false); 
} 

$connectionOptions = array(
    'driver' => 'pdo_sqlite', 
    'path' => 'database.sqlite' 
); 

私は約困惑してるあなたは、このコードを実行する方法です。それはあなたがconfig.phpファイルに入れて、あなたの各ページにインクルードするものですか?基本的にページが処理されるたびにこれを実行しますか?あるいは、私はこの設定を一度やりますか?

関連するメモ - APCキャッシュの代わりにArrayCacheにキャッシュを設定すると、開発中にどのように役立つのか理解してもらえますか?

ありがとうございます! PHPのスキルが錆びている場合

答えて

0

教義は、あなたは、ブートストラップファイルに一度接続とeventmangerを作成することができます...とにかく

...かなり難しい選択です。次に、あなたのクラスのコンストラクタにeventmanagerインスタンスを渡すことができますか。これは(ORM 2.0のための)良い出発点である静的レジストリ(汚い汚い汚い)または...

を通じてavailablyそれを作る:

http://www.doctrine-project.org/docs/orm/2.0/en/tutorials/getting-started-xml-edition.html

devCodeでArrayCacheを使用する唯一の理由は、その時点でAPCを設定する必要がなく、コーディングに集中できるということです。プロダクションモードでは、APCはあなたに余分なブーストを与え、強くお勧めします。ブートストラップファイルで

よろしく Floの

+0

- あなたは私のページの各々に含まれているファイルを意味するのですか?そうでない場合は、このファイルがいつロードされ、そこに作成されたオブジェクトがページ読み込みの間に永続化されますか? – Corvin

+0

オブジェクトはページ読み込みの間に持続できません。 Yoはすべてのリクエストで作成する必要があります。そして、はい - ページごとに1つのファイル "パターン"を実装する場合は、毎回このブートストラップファイルを含める必要があります。 – madflow

+0

あなたのプロジェクトにPHP Webフレームワークを使用することを強くお勧めします。 – madflow