簡體   English   中英

使用php腳本將pimcore中的現有數據對象導出到XML文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM