Example #1
0
 /**
  * Create flag instance
  * @param callback
  * @return self
  */
 public static function define($callback)
 {
     $instance = new self();
     $instance->module(NULL);
     call_user_func($callback, $instance);
     $instance->module(NULL);
     return $instance;
 }
Example #2
0
 /**
  * $objectsに同名のキーがあればマージし無ければ追加する
  * @param self{} $objects 対象の連想配列
  * @param string $doc 値の情報を表す文字列
  * @param string $class 定義されているクラス名
  * @param string $prefix 名称につく接頭辞
  */
 public static function merge(array &$objects, $doc, $class, $prefix = null)
 {
     $self = new self();
     $self->set($doc, $class);
     $name = $prefix . $self->name();
     if ($self->is_name() && isset($objects[$name])) {
         $objects[$name]->type($self->type());
         $objects[$name]->array($self->array());
         $objects[$name]->module($self->module());
         if ($self->is_document()) {
             $objects[$name]->document($self->document());
         }
     }
 }