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;
}