ManaPHP\Cli\Controllers\FacadeController::generate PHP Method

generate() public method

public generate ( string $facadeClassName, string $interfaceName ) : mixed
$facadeClassName string
$interfaceName string
return mixed
    public function generate($facadeClassName, $interfaceName)
    {
        $content = <<<EOD
/** @noinspection PhpUnnecessaryFullyQualifiedNameInspection */

/**
  * @method  static {$interfaceName} getFacadeInstance()
  */
class {$facadeClassName} extends Facade
{

EOD;
        $rc = new \ReflectionClass($interfaceName);
        $lines = file($rc->getFileName());
        foreach ($rc->getMethods() as $method) {
            $comment = '    ' . $method->getDocComment();
            $content .= $comment . PHP_EOL;
            $signature = '';
            for ($i = $method->getStartLine(); $i <= $method->getEndLine(); $i++) {
                $signature .= ' ' . $lines[$i - 1];
            }
            $signature = rtrim(rtrim($signature), ';') . '{}' . PHP_EOL . PHP_EOL;
            $content .= preg_replace('#public\\s+function#', 'public static function', $signature);
        }
        $content = rtrim($content) . PHP_EOL . '}';
        return $content;
    }