Example #1
0
 /**
  * Perform command.
  *
  * @param Documenter $documenter
  */
 public function perform(Documenter $documenter)
 {
     if ($this->container->hasBinding(\Spiral\ODM\Entities\SchemaBuilder::class)) {
         $odmBuilder = $this->container->get(\Spiral\ODM\Entities\SchemaBuilder::class);
     } else {
         $odmBuilder = $this->odm->schemaBuilder();
     }
     if ($this->container->hasBinding(\Spiral\ORM\Entities\SchemaBuilder::class)) {
         $ormBuilder = $this->container->get(\Spiral\ORM\Entities\SchemaBuilder::class);
     } else {
         $ormBuilder = $this->orm->schemaBuilder();
     }
     /**
      * @var ODMStormDocumenter $odmDocumenter
      */
     $odmDocumenter = $this->container->get(ODMStormDocumenter::class, ['builder' => $odmBuilder]);
     $odmDocumenter->document();
     $odmDocumenter->render($documenter->config()['phpstorm']['odm']);
     $this->writeln("<comment>ODM virtual documentation were created:</comment> {$odmDocumenter->countClasses()} classes");
     /**
      * @var ODMStormDocumenter $odmDocumenter
      */
     $ormDocumenter = $this->container->get(ORMStormDocumenter::class, ['builder' => $ormBuilder]);
     $ormDocumenter->document();
     $ormDocumenter->render($documenter->config()['phpstorm']['orm']);
     $this->writeln("<comment>ORM virtual documentation were created:</comment> {$ormDocumenter->countClasses()} classes");
 }
Example #2
0
 /**
  * Add new ClassElement into file under specified namespace.
  *
  * @param ClassElement $element
  * @param string       $namespace Virtual namespace by default.
  * @return string
  */
 protected function addClass(ClassElement $element, $namespace = null)
 {
     if (is_null($namespace)) {
         $namespace = $this->documenter->config()['namespace'];
     }
     if (!isset($this->namespaces[$namespace])) {
         $this->namespaces[$namespace] = new NamespaceElement(trim($namespace, '\\'));
         $this->file->addNamespace($this->namespaces[$namespace]);
     }
     $this->namespaces[$namespace]->addClass($element);
     $this->countClasses++;
     return '\\' . trim($namespace, '\\') . '\\' . $element->getName();
 }