Comment créer des objets eZ Publish en PHP

J'ai découvert il n'y a pas très longtemps la fonction eZContentFunctions::createAndPublishObject() de l'API eZ Publish. Cette fonction bien cachée (et enfin documentée depuis la résolution de ce bug) permet de créer facilement des objets de contenus. Quand je pense que tout le travail est mâché par cette fonction, ça en fait des lignes de codes inutiles... Par exemple, pour créer un objet de la classe de contenu File, ces quelques lignes suffisent :

<?php
$params = array();
$params['parent_node_id'] = 52; // node id of /Media/Files
$params['class_identifier'] = 'file';
$params['creator_id'] = 14; // admin
$params['storage_dir'] = '/tmp/data/'; // don't forget the ended /
$params['section_id'] = 3; // section media

$attributesData = array();
$attributesData['name'] = 'My file';
$attributesData['file'] = 'my_file.txt';

$params['attributes'] = $attributesData;
$contentObject = eZContentFunctions::createAndPublishObject( $params );
?>

Chaque élément du tableau $attributesData contient les valeurs des attributs du futur objet de contenu sous le format attendu par la méthode fromString() de chaque datatype Et voila, ce n'est pas plus compliqué que ça ! Dommage qu'il n'existe pas encore l'équivalent pour mettre à jour les objets de contenu existants.