gedachtegoed / workspace
围绕 tighten/duster 的有偏见的包装,默认配置,Larastan & Prettier blade 格式化集成以及 CI 工作流程。仅限内部使用。
Requires
- php: ^8.1|^8.2
- gedachtegoed/workspace-core: ^0.1
- illuminate/support: ^10.23|^11
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.53
- larastan/larastan: ^2.9
- laravel/pint: ^1.15
- orchestra/testbench: ^9
- pestphp/pest: ^2.34
- squizlabs/php_codesniffer: ^3.7
- symfony/thanks: ^1.3
- tightenco/duster: ^2.7
- tightenco/tlint: ^9.3
- timacdonald/callable-fake: ^1.7
This package is not auto-updated.
Last update: 2024-09-24 10:39:11 UTC
README
为 Laravel 提供可扩展的工作空间配置器,轻松同步所有团队和项目中的 linters、修复器、静态分析、CI 工作流程、编辑器集成等
在您的项目中安装 Workspace
composer require gedachtegoed/workspace --dev
然后运行安装命令以在您的项目中设置 Workspace 的配置
php artisan workspace:install
使用方法
Workspace 将为您的项目添加几个 artisan
命令,以帮助同步集成与上游更改
# Install configured Integrations php artisan workspace:install # Updates workspace & Integration dependencies + rebuilds configs php artisan workspace:update # Integrates configured Integrations with your editor php artisan workspace:integrate
Workspace 默认提供有偏见的集成。这些集成易于更改和扩展,但建议与该包一起使用的方法是发布自己的 便携式 Workspace。这样您可以完全控制任何上游配置更改以及非常定制的设置。
以下 composer 脚本别名将默认安装到您的项目中
# Linting and fixing composer lint composer fix # Static analysis composer analyze composer baseline
请注意,您可以通过在命令后添加 --
将选项和标志转发到底层 composer 脚本。您可以从 tighten/duster 为 lint
和 fix
命令传递任何选项,或从 phpstan/phpstan 为 analyze
和 baseline
命令传递任何选项。
例如,如果您只想修复脏文件,可以使用
composer lint -- --dirty
注意:如果您不希望 Workspace 为您安装 composer 脚本,请删除或编辑包配置中的 Aliases::class
。
与您的编辑器集成
到目前为止,我们已经有了 composer 脚本和 CI 工作流程来运行所有的 linting、fixing 和静态分析。
让我们弥合差距,确保您的 IDE 无缝地应用所有相同的规则。
php artisan workspace:integrate
您将被提示集成到 vscode
或 intellij
(如 phpstorm)。
所有默认集成都包含发布 workspace 插件和扩展以及 workspace 特定配置。这样我们可以确保团队中的每个人都拥有相同的 IDE 集成作为基础,这可以通过全局配置进行微调。
保持规则更新
Linter、fixer 和静态分析规则可能会随时间而变化。幸运的是,在本地更新这些规则非常简单。只需运行
php artisan workspace:update
注意:在开始内部更新之前,Workspace 会检查您的当前工作目录是否干净(没有未提交的文件)。这样,您可以更容易地审查已发布的文件的上游更改。
覆盖默认集成
Workspace 随附以下默认集成
return [ EditorDefaults::class, PHPCodeSniffer::class, PrettierBlade::class, PHPCSFixer::class, IDEHelper::class, Workflows::class, Larastan::class, Aliases::class, TLint::class, Pint::class, ];
这些可以通过发布 Workspace 的配置文件来禁用
php artisan vendor:publish --tag=workspace-config
您可以选择禁用您不喜欢或用您自己的实现扩展任何集成。 在此处 查看默认集成是如何实现的,以了解上下文。
您可以在配置中添加自己的集成类名,或者您可以直接添加集成构建器
请查看下面的片段,了解使用两种风格的用法示例。
use Gedachtegoed\Workspace\Integrations\EditorDefaults\EditorDefaults; use Gedachtegoed\Workspace\Core\Builder; use App\Workspace\MyCustomPrettierIntegration; return [ // Ships with Workspace. Can be combined with custom Integrations EditorDefaults::class, // FQCN to your custom Integration MyCustomPrettierIntegration::class, // Inlined Integration using the Builder directly Builder::make() // Register composer dependencies ->composerRequireDev('laravel/telescope:^4') ->composerUpdate('laravel/telescope') // Hook into afterInstall to configure Telescope ->afterInstall(function (Command $command) { $command->call('telescope:install'); $command->call('artisan migrate'); // NOTE: You can use Laravel Prompts in here to make anything interactive }) ];
我们正在制作一个全面的Builder API参考指南和指南,用于创建自己的集成。请稍后查看。
便携式工作空间
工作空间配备了有见地的默认集成设置。我们理解您的组织或团队有非常具体的需求。这就是为什么您可以轻松地将自己的配置作为包分发。
我们提供一款美观流畅的集成构建器API,可自动化所有类型的任务,例如:
- 安装和更新composer & npm依赖项
- 安装和合并composer脚本别名
- 使用Duster集成自定义linters & fixers
- 发布集成配置文件
- 发布CI工作流程文件
- 从您的gitignore文件中添加和删除行
- 提供vscode & phpstorm的插件/扩展
- 提供vscode & phpstorm的工作空间配置
此外,工作空间集成可以通过可调用的钩子完全扩展。因此,您可以执行安装、更新和集成命令,几乎可以完成您想要的任何事情。
关于使用您的便携式工作空间的文档正在等待!请保持关注!