使用php脚本将pimcore中的现有数据对象导出到XML文件

使用php脚本将pimcore中的现有数据对象导出到XML文件,php,xml,object,scripting,pimcore,Php,Xml,Object,Scripting,Pimcore,我正在尝试从CVS文件导入数据对象,并使用php脚本将数据从Pimcore导出到XML文件。我已经成功地从CVS文件导入了数据,但是我不知道如何导出到XML文件 我试着环顾一下网络,但官方文档没有说太多(www.pimcore.org/wiki/display/pimcore/External+System+Interaction): 数据对象的导出可以通过编程或通过 pimcore CSV导出。当单击一个菜单时,可以找到UI导出 对象文件夹并选择“搜索、编辑和导出”选项卡 我发现了各种各样的“

我正在尝试从CVS文件导入数据对象,并使用php脚本将数据从Pimcore导出到XML文件。我已经成功地从CVS文件导入了数据,但是我不知道如何导出到XML文件

我试着环顾一下网络,但官方文档没有说太多(www.pimcore.org/wiki/display/pimcore/External+System+Interaction):

数据对象的导出可以通过编程或通过 pimcore CSV导出。当单击一个菜单时,可以找到UI导出 对象文件夹并选择“搜索、编辑和导出”选项卡

我发现了各种各样的“”,比如:

包括(“pimcore/cli/startup.php”)$class=Object\u class::getById(1); echo对象类服务::generateClassDefinitionXml($Class)

我甚至成功地找到了上面例子中提到的“”,但是没有用,每当我尝试使用它时,它都会出错,从我可以看出它甚至不能正常工作

我已经寻找了各种帮助工具和其他方法来找到将pimcore数据对象导出到XML的正确方法,但实际上似乎什么都没有

导出非常简单,一个数据对象,让我们将其命名为User,带有一个输入字段,其中包含getter/setter“name”


我需要创建PHP脚本,将数据对象“User”与数据一起导出。您究竟是如何通过编写脚本来实现这一点的?

保存类定义的最佳方法是使用JSON,因为Pimcore使用JSON导出和导入类定义

/*
 * 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);

你只是想把csv转换成xml?不,不是csv,是我以类的形式存储在php文件和数据库中的原始格式,比如MySQL.nope,不知道你刚才说的是什么,数据库导出成xml格式,IE获取SQL数据并将其放入XML文件中,为了实现这一点,我需要数据库结构以及与之相关的数据。然后需要将这两件事写入XML文档。为了知道要获取什么,我需要ZendFramework和/或Pimcore中的某种帮助。首先感谢您的回答!是的,我同意JSON是首选。如果改用XML导出,则需要更改行:Pimcore\Model\Object\ClassDefinition\Service::generateClassDefinitionJson($class);收件人:Pimcore\Model\Object\ClassDefinition\Service::generateClassDefinitionXml($class);正确吗?没有方法generateClassDefinitionXml。它可能存在于旧版本的Pimcore中,但从来没有一个版本只有用于json的方法。我的意思是,你可以把json转换成XML,但我看不出有什么意义。