Yield the non redundant fully qualified class name of the classes.

@return \Generator
193933
private function fqcn(): \Generator
    {
        foreach ($this->paths() as $root => $path) {
            $x = substr($path, strlen($root) + 1, -4);

            $fqcn = implode('', [$this->namespace, '\\', str_replace('/', '\\', $x)]);

            yield $fqcn => $fqcn;
        }
    }
1045787
public function getGenerator()
    {
        try {
            if (empty($this->generator)) {
                $this->setGenerator(
                    new Generator(
                        $this->config(static::TOOL_NAME),
                        $this->config(static::TOOL_ID),
                        $this->config(static::TOOL_LAUNCH_URL),
                        (empty($this->config(static::TOOL_DESCRIPTION)) ?
                            false : $this->config(static::TOOL_DESCRIPTION)),
                        (empty($this->config(static::TOOL_ICON_URL)) ?
                            false : $this->config(static::TOOL_ICON_URL)),
                        (empty($this->config(static::TOOL_LAUNCH_PRIVACY)) ?
                            LaunchPrivacy::USER_PROFILE() : $this->config(static::TOOL_LAUNCH_PRIVACY)),
                        (empty($this->config(static::TOOL_DOMAIN)) ? false : $this->config(static::TOOL_DOMAIN))
                    )
                );
            }
        } catch (LTIConfigGeneratorException $e) {
            throw new ConfigurationException(
                $e->getMessage(),
                ConfigurationException::TOOL_PROVIDER
            );
        }
        return $this->generator;
    }
522153
public function values(): self
    {
        return static::create(
            function () {
                /** @noinspection YieldFromCanBeUsedInspection */
                foreach ($this->getGenerator() as $value) {
                    yield $value;
                }
            },
            $this->iteratorClass,
            false
        );
    }
51493
protected function compileClasses()
    {
        $preloader = (new Factory())->create(['skip' => true]);

        $path = $this->laravel->getCachedCompilePath();

        if (file_exists($path)) {
            unlink($path);
        }

        $handle = $preloader->prepareOutput($path . '.tmp');

        foreach ($this->getClassFiles() as $file) {
            try {
                fwrite($handle, $preloader->getCode($file, false) . "\n");
            } catch (SkipFileException $ex) {
                // Class Preloader 2.x
            } catch (VisitorExceptionInterface $e) {
                // Class Preloader 3.x
            } catch (RuntimeException $e) {
                // Handle when fwrite fails.
            }
        }

        fclose($handle);

        rename($path . '.tmp', $path);
    }
1287093
public function getIterator(): \Iterator
    {
        if ($this->generator instanceof ArrayyRewindableGenerator) {
            return $this->generator;
        }

        $iterator = $this->getIteratorClass();

        if ($iterator === ArrayyIterator::class) {
            return new $iterator($this->getArray(), 0, static::class, false);
        }

        return new $iterator($this->getArray());
    }
1257869
public function getChildNodes() : \Generator {
        foreach ($this::CHILD_NAMES as $name) {
            $val = $this->$name;
            if (\is_array($val)) {
                foreach ($val as $child) {
                    if ($child instanceof Node) {
                        yield $child;
                    }
                }
                continue;
            } elseif ($val instanceof Node) {
                yield $val;
            }
        }
    }
1118448
private function generateClass(): ServiceDTOGenerator
    {
        $this->DTOFile = (new PhpFile())
            ->addComment('This file is auto-generated.');

        $namespace = $this->inputData['namespace'] . '\\' . $this->inputData['module'] . 'Module\\' . $this->inputData['type'];

        $this->DTOClass = $this->DTOFile
            ->addNamespace($namespace)
            ->addClass($this->inputData['class'] . $this->inputData['type'])
            ->addComment($this->inputData['class'] . ' service ' . strtolower($this->inputData['type']) . PHP_EOL)
            ->addComment('@package ' . $namespace);

        return $this;
    }
951459
protected function getFormGenerator()
    {
        if (null === $this->formGenerator) {
            $this->formGenerator = new FormGenerator($this->getContainer()->get('filesystem'),  __DIR__.'/../Resources/skeletons/form');
        }

        return $this->formGenerator;
    }
337288
private function generateClasses()
    {
        foreach($this->ref->getClasses() as $class)
        {
            if($class->isInterface())
            {
                $this->generateInterface($class);
            }
            else if($class->isTrait())
            {
                $this->generateTrait($class);
            }
            else
            {
                $this->generateClass($class);
            }
        }
    }
662928
public function generate_class_definition()
    {
        $this->tpl_replacements['class_definition']      = '';
        $this->tpl_replacements['class_definition_list'] = '';
        if ($this->is_final == true) {
            $this->tpl_replacements['class_definition'] .= 'final ';
        }

        if ($this->is_abstract == true) {
            $this->tpl_replacements['class_definition'] .= 'abstract ';
        }

        $this->tpl_replacements['class_definition'] .= 'class ' . ucfirst(strtolower($this->class_name));
        $this->tpl_replacements['class_definition_list'] .= 'class ' . ucfirst(strtolower($this->class_name)) . 'List';

        if (empty($this->extend_class) && empty($this->implement_interface)) return true;

        if (!empty($this->extend_class)) {
            $this->tpl_replacements['class_definition'] .= ' extends ' . ucfirst(strtolower($this->extend_class));
            $this->tpl_replacements['class_definition_list'] .= ' extends ' . ucfirst(strtolower($this->extend_class)) . 'List';
        }

        if (!empty($this->implement_interface)) {
            $this->tpl_replacements['class_definition'] .= ' implements ' . implode(',', $this->implement_interface);
            $this->tpl_replacements['class_definition_list'] .= ' implements ' . implode('List,', $this->implement_interface) . 'List';
        }

        return true;
    }
23184
public static function getInstance()
    {
        return new GeneratorFinderCache(
            new GeneratorFinder(
                TranstyperFactory::getInstance(),
                GeneratorValidatorFactory::getInstance(),
                new FileManager()
            ),
            Installer::getDirectories(),
            new FileManager()
        );
    }
32075
public function unique(): self
    {
        // INFO: \array_unique() can't handle e.g. "stdClass"-values in an array

        $this->array = $this->reduce(
            static function ($resultArray, $value) {
                if (!\in_array($value, $resultArray, true)) {
                    $resultArray[] = $value;
                }

                return $resultArray;
            },
            []
        )->getArray();
        $this->generator = null;

        return $this;
    }
1110976
public function getIterator()
    {

        $this->bindAndRun($this->bindings);

        while ($row = $this->statement->fetch()) {
            yield $row;
        }
    }
685839
public function getChildren()
    {
        $current = $this->current();
        $key = $this->key();
        $unfolder = $this->_unfolder;

        return new NoChildrenIterator($unfolder($current, $key, $this->_innerIterator));
    }
253933
protected function findGenerators()
	{
		$generators=array();
		$n=count($this->generatorPaths);
		for($i=$n-1;$i>=0;--$i)
		{
			$alias=$this->generatorPaths[$i];
			$path=Yii::getPathOfAlias($alias);
			if($path===false || !is_dir($path))
				continue;

			$names=scandir($path);
			foreach($names as $name)
			{
				if($name[0]!=='.' && is_dir($path.'/'.$name))
				{
					$className=ucfirst($name).'Generator';
					if(is_file("$path/$name/$className.php"))
					{
						$generators[$name]=array(
							'class'=>"$alias.$name.$className",
						);
					}

					if(isset($generators[$name]) && is_dir("$path/$name/templates"))
					{
						$templatePath="$path/$name/templates";
						$dirs=scandir($templatePath);
						foreach($dirs as $dir)
						{
							if($dir[0]!=='.' && is_dir($templatePath.'/'.$dir))
								$generators[$name]['templates'][$dir]=strtr($templatePath.'/'.$dir,array('/'=>DIRECTORY_SEPARATOR,'\\'=>DIRECTORY_SEPARATOR));
						}
					}
				}
			}
		}
		return $generators;
	}
831541
public function generate_class()
    {

        /**
         * generates the spaces
         *
         * @param int $amount
         *
         * @return string
         */
        function gen_spaces($amount)
        {
            $spaces = '';
            for ($i = 0; $i < $amount; $i++) {
                $spaces .= ' ';
            }

            return $spaces;
        }

        if (empty($this->table_model)) {
            return false;
        }

        // general initiation of the object properties based on the
        $this->init();

        $this->generate_class_definition();
        if (strpos($this->class_name, '_') !== false) {
            $tmp = explode('_', $this->class_name);
            foreach ($tmp as $key => $part) {
                $tmp[$key] = ucfirst(strtolower($part));
            }
            $this->class_name = implode('_', $tmp);
        }

        $this->tpl_replacements['class_name'] = $this->class_name;
        $file                                 = new File();
        $file->open($this->tpl_path);

        $this->generated_code = $file->read();

        foreach ($this->tpl_replacements as $pattern => $value) {
            if (!is_string($value)) continue;

            $pattern              = '#' . strtoupper($pattern) . '#';
            $this->generated_code = str_replace($pattern, $value, $this->generated_code);
        }

        $this->generated_code = str_replace("\t", gen_spaces(self::SPACE_AMOUNT), $this->generated_code);

        return true;
    }
1107443
protected function getClassNamePrefix()
    {
        $prefix = $this->input->getOption('prefix');

        if (empty($prefix)) {
            $prefix = $this->classNamePrefix;
        }

        return $prefix;
    }