[英]Exporting existing data objects in pimcore to an XML file using php scripting
我正在嘗試從CVS的文件導入數據對象,並使用php腳本將數據從Pimcore導出到XML文件。 我已經設法從CVS文件導入數據,但是我無法弄清楚如何導出到XML文件。
我嘗試在網上瀏覽,但是官方文檔並沒有說太多(www.pimcore.org/wiki/display/PIMCORE/External+System+Interaction):
數據對象的導出可以通過編程或通過pimcore CSV導出來實現。 當單擊對象文件夾並選擇“搜索,編輯和導出”選項卡時,可以找到UI導出。
我發現了各種各樣的“ 松散代碼 ”,例如:
包括( “pimcore / CLI / startup.php”); $ class = Object_Class :: getById(1); echo Object_Class_Service :: generateClassDefinitionXml($ class);
我什至設法找到了上面示例中提到的“ Object_Class_Service ”,但無濟於事,每當我嘗試使用它時,它都會出錯,從我可以知道它根本無法正常工作。
我一直在尋找各種Helpers和其他方法來找到將pimcore數據對象導出為XML的正確方法,但實際上什么也沒有。
導出非常簡單,一個數據對象,我們將其命名為User,輸入字段帶有getter / setter“ Name”。
我需要創建PHP腳本,該腳本將數據對象“用戶”與數據一起導出。 您到底如何通過腳本實現這一目標?
保存類定義的最佳方法是使用JSON,因為這是Pimcore用於類定義導出和導入的方式。
/*
* Export class definition
*/
// !!! This is the id of the object class, not the id of object instance.
// Go to Settings > Object > Classes and find the object class ID there
$classId = 5;
$class = Pimcore\Model\Object\ClassDefinition::getById($classId);
$classDefinitionJson = Pimcore\Model\Object\ClassDefinition\Service::generateClassDefinitionJson($class);
header("Content-type: application/json");
header("Content-Disposition: attachment; filename=\"class_" . $class->getName() . "_export.json\"");
echo $classDefinitionJson;
/*
* Import class definition
*/
$nameOfTheClass = "someClass";
$class = Pimcore\Model\Object\ClassDefinition::getByName($name);
if (!$class) {
$class = new Pimcore\Model\Object\ClassDefinition();
$class->setName($name);
}
$classDefinitionJson = @file_get_contents($classDefinitionJson);
$classDefinitionJson = json_decode($classDefinitionJson, true);
Pimcore\Model\Object\ClassDefinition\Service::importClassDefinitionFromJson($class, $classDefinitionJson);
請注意,對象類ID和對象類的名稱未保存在對象定義文件中。 這就是為什么需要這樣做的原因:
$nameOfTheClass = "someClass";
$class = Pimcore\Model\Object\ClassDefinition::getByName($name);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.