示例#1
0
 /**
  * @param Object $object
  * @param $filePath
  * @param array $fqns
  * @return $this
  */
 protected function dumpObject(Object $object, $filePath, array $fqns = [])
 {
     $fileDir = dirname($filePath);
     $file = File::make($filePath);
     if ($object->hasParent()) {
         $fqns[] = $object->getParent()->getFullyQualifiedName();
     }
     foreach ($object->allContracts() as $contract) {
         $fqns[] = $contract->getFullyQualifiedName();
     }
     sort($fqns);
     foreach ($fqns as $name) {
         if (is_array($name)) {
             $keys = array_keys($name);
             $fqn = new FullyQualifiedName($name[$keys[0]]);
             $fqn->setAlias($keys[0]);
             $file->addFullyQualifiedName($fqn);
         } else {
             $file->addFullyQualifiedName(new FullyQualifiedName($name));
         }
     }
     $file->setStructure($object);
     $this->filesystem->mkdir($fileDir, 0755);
     $this->filesystem->dumpFile($filePath, Build::prettyPrinter()->generateCode($file), 0755);
     return $this;
 }