我想將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