stevebauman / autodoc-facades
自动生成Laravel门面文档注释
v1.2.1
2024-04-10 14:00 UTC
Requires
- php: ^8.1
- illuminate/support: ^8.0|^9.0|^10.0|^11.0
- phpstan/phpdoc-parser: ^1.28
Requires (Dev)
- laravel/facade-documenter: dev-main
- laravel/pint: ^1.0
- orchestra/testbench: ^6.0|^7.0|^8.0|^9.0
README
为您的Laravel应用程序提供一个门面文档生成器。
Autodoc Facades使用官方的Laravel 门面文档生成器,通过使用单个命令的@see
注释,在您的app
目录内轻松生成应用程序的Laravel门面文档注释
php artisan autodoc:facades app
之前:
namespace App\Facades; /** * @see \App\Services\ServiceManager */ class Service extends Facade { // ... }
namespace App\Services; class ServiceManager { public function all(string $param): array { // ... } }
之后:
namespace App\Facades; /** +* @method static array all(string $param) +* * @see \App\Services\ServiceManager */ class Service extends Facade { // ... }
安装
通过composer安装
composer require --dev stevebauman/autodoc-facades
使用方法
在终端内
php artisan autodoc:facades {paths} {--only=} {--except=}
在Laravel命令内
namespace App\Console\Commands; class GenerateFacadeDocs extends Command { // ... public function handle(): int { return $this->call('autodoc:facades', [ 'paths' => ['app'], '--except' => ['...'], '--only' => ['...'], ]); } }
开始使用
开始之前,您的门面必须包含一个带有fully-qualified namespace
的@see
注释。
它不能解析已导入的类的短名类名。
例如,以下不会工作
namespace App\Facades; use App\Services\ServiceManager; /** * @see ServiceManager */ class Service extends Facade { // ... }
如果底层类将调用转发到另一个类,请向底层类添加一个@mixin
注释,以便它被文档生成器捕获
namespace App\Facades; use App\Services\ServiceManager; /** * @see \App\Services\ServiceManager */ class Service extends Facade { protected function getFacadeAccessor() { return ServiceManager::class } }
namespace App\Services; use Illuminate\Support\Traits\ForwardsCalls; /** * @mixin \App\Services\SomeClass */ class ServiceManager { use ForwardsCalls; // ... }
在路径中生成注释
要为您的app
目录中的所有门面生成文档注释,请提供“app”作为路径
您提供的所有路径,如果不以目录分隔符开头,将使用命令当前工作目录作为基本路径。
php artisan autodoc:facades app
在多个路径中生成注释
使用空格分隔路径以生成这些目录中门面的注释
php artisan autodoc:facades app/Services/Facades app/Api/Facades
为特定门面生成注释
指定“only”类以仅生成给定类的注释
您可以通过空格分隔提供多个“only”类。
php artisan autodoc:facades app --only App\Facades\Service
为除特定门面外的所有门面生成注释
指定“except”类以生成所有门面的注释,但排除指定的类
您可以通过空格分隔提供多个“except”类。
php artisan autodoc:facades app --except App\Facades\Service