Dans le package kassiop.system.data.vo il y a une classe abstraite ValueObject qui en étant hérité par les autres classes permet de définir dynamiquement la propriété 'explicitType' nécessaire pour le class mapping entre PHP et AS2/AS3.

Analysons le constructeur:

/**
 * Creates an instance of ValueObject
 *
 * @param array $init
 * @param ValueObject $init
 * @return void
 */
public function __construct( array $init = array(), $package = null )
{
  if( !empty( $init ) )
  {
    $reflection = new ReflectionClass( $this ) ;
    foreach( $init as $key => $value )
    {
      if( $reflection->hasProperty( $key ) )
      {
        $this->$key = $value ;
      }
    }
  }
  if( $package !== null )
  {
    $package .= '.' ;
  }
  $this->_explicitType = $package . get_class( $this ) ;
}

Deux paramètres peuvent être envoyés: $init et $package.

  1. $init: est un tableau indéxé qui au moyen de la réflexion permet de remplir l'objet uniquement sur ses propres propriétés. Cette méthode permet d'exclure les données non déclarées dans le ValueObject.
  2. $package: est une chaine de caractère qui permet de spécifier si le ValueObject côté AS a été enregistré avec son nom de package.

Je reparlerai sous peu de mon travail sur kassiop.

N'hésitez à suivre l'évolution du framework sur google code et ohloh!

Enjoy ;)

++ NairuS