PHP配置的Doctrine

时间:2011-07-07 19:17:11

标签: php doctrine-orm

大家好!

我正在构建一个PHP站点,我决定使用Doctrine作为DBAL和ORM。我的PHP技能有点生疏,所以请帮助我理解一件事。

按照文档中的说明配置Doctrine的方法是执行如下代码:

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文件中并包含在每个页面中的内容,基本上每次处理页面时都会执行此操作吗?或者我应该做一次这样的配置?

在相关的说明中 - 请帮助我理解在开发过程中如何设置缓存到ArrayCache而不是APC缓存?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果你的PHP技能生锈,那么学说是一个非常难的选择...无论如何...

您可以在引导程序文件中创建一次连接和事件管理器。然后你可以将eventmanager实例传递给你的类构造函数,或通过静态注册表(脏脏脏)或...来实现它。

这是一个很好的起点(对于orm 2.0):

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

在开发模式下使用ArrayCache的唯一原因我可以想到,您不必在此时配置APC并且可以专注于您的编码。在生产模式下,APC为您提供额外的提升,强烈推荐。

此致 FLO