예제 #1
0
 /**
  * @param WritableInterface $writable
  * @return WritableInterface[]
  */
 public function flattenWritables(WritableInterface $writable)
 {
     $writables = [$writable];
     if ($writable instanceof WritableBearerBearerInterface || $writable instanceof WritableBearerInterface) {
         if ($writable instanceof WritableBearerBearerInterface) {
             $writables[] = $writable->getWritableBearer();
         }
         foreach ($writable->getWritables() as $child) {
             $writables = array_merge($writables, $this->flattenWritables($child));
         }
     }
     return $writables;
 }