我想将Doctrine 2 ORM整合到WordPress中以用于我正在开发的插件。目前有一个插件提供Doctrine 1.2.3 ORM support in WordPress,但不是v2。了解Doctrine 2 ORM及其如何使用WordPress以及如何使用WordPress
我遇到的最大问题是我不明白Doctrine 2 ORM如何与我的代码交互;具体地讲,什么他们的configuration code为我提供了与在那里我应该何去何从:
// 3.1.1
require dirname(__FILE__) . '/lib/Doctrine/ORM/Tools/Setup.php';
$lib = dirname(__FILE__) . '/lib';
Doctrine\ORM\Tools\Setup::registerAutoloadDirectory($lib);
// 3.1.2
use Doctrine\ORM\EntityManager,
Doctrine\ORM\Configuration;
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'
);
$em = EntityManager::create($connectionOptions, $config);
我继续通过文档的部分阅读了第8,并且有一定的了解。我的问题是:
这个配置是否足以让我在我的插件中使用Doctrine 2 ORM?
在使用Doctrine 2 ORM之前,有没有其他的关键步骤? WordPress插件似乎会自动从数据库中生成所有适当的类。我几次阅读文档,但我觉得我错过了一大步......或者也许Doctrine 2 ORM就是那么不同?
EntityManager是否可以在整个实体中使用一些全局变量?
我假设我必须将所有内容链接在一起,
@Entity
在文件中不足以让Doctrine知道实体的位置。文档中是否存在定义此内容的地方?
如果有人能提供这一切是如何一起工作的简要介绍:配置,实体等或提供任何明确的教程,可能已经在那里,我真的很感激它。
有两件事我不清楚。 #1为什么有人会这样做而不是挑战?它只是使重型系统重量增加一吨,没有真正的积极成果。 #2如果你不明白Doctrine,为什么你会在需要维护的插件中使用它?整个想法很疯狂。使用提供的WordPress API。 – topdown