paysera/util-phpstorm-helper

设置共享 PhpStorm 配置的助手

1.0.8 2020-08-28 21:16 UTC

This package is auto-updated.

Last update: 2024-08-29 05:00:34 UTC


README

Latest Version Software License Build Status Coverage Status Quality Score

设置 PhpStorm 与共享配置的脚本。

为什么?

我们每个人都喜欢自定义我们的开发者体验——快捷键、布局以及其他极其重要的东西,比如配色方案。但是,某些配置通常最好与其他团队成员共享。

  • 自定义代码风格、检查、生成代码模板;
  • 按项目结构配置的目录;
  • 正确的 SQL 方言;
  • 项目启用的某些插件;
  • PHP 解释器作为 docker,使用正确的镜像;
  • 与任何质量控制工具集成;
  • 可运行的外部工具;
  • 允许调试服务器的配置;
  • 要安装的一些常用插件。

这可以让您的团队更加一致,避免为每个成员单独配置一切。

PhpStorm 中有 设置仓库 功能,但它不同步大多数此类东西,并且它同步一些本应私有的东西(如配色方案)。

此外,还应该在三个不同的地方更改此配置

  • .idea 文件夹中 - 可版本化的文件。这个库有助于简化初始配置;
  • .idea 文件夹中,但在一个不应版本化的文件中。这需要在每台机器上运行脚本来修改该文件;
  • 在全局 PhpStorm 配置文件中 - 安装的插件和外接工具。这些对所有项目都是共享的。

安装

发布页面 下载最新版本的 phpstorm-helper.phar

自动

curl -sLo phpstorm-helper https://github.com/paysera/util-phpstorm-helper/releases/download/1.0.0/phpstorm-helper.phar
chmod +x phpstorm-helper
./phpstorm-helper self-update
sudo mv phpstorm-helper /usr/local/bin/phpstorm-helper

您还需要 zip 库来下载和解压插件。在 Ubuntu 上安装

sudo apt-get install php-zip

用法

TL;DR;

一次(最好在 PhpStorm 关闭时运行)

phpstorm-helper configure-installation

对于每个项目

  • 关闭项目
phpstorm-helper configure
  • 重新打开项目

或者,有更多选项

phpstorm-helper configure --docker-image php-cli:7.4 --webpack-config-path config/webpack.js --server project-url-address.docker:80@/project-path-inside/container

对于相同项目的后续运行可以跳过选项,除非您想更改其中之一。

命令

如您已注意到的,有两种不同的用例

  • .idea 中设置(可能)可版本化的配置文件,并修改 workspace.xml(不能版本化)。库提供了 Paysera 制作的存储库的默认设置——请随意使用这些或使用您自己的自定义;
  • 配置外部工具和安装常用插件,这是在 PhpStorm 安装文件夹中完成的。

设置可版本化配置文件

phpstorm-helper configure [project-root-dir] [path-to-configuration-template-structure]

默认配置的功能

  • 自定义代码风格和生成代码模板与 Paysera 风格指南 兼容;
  • 自定义检查 - 一些已禁用,一些可选的已启用;
  • MariaDB SQL 方言;
  • 为项目启用的 Symfony 插件;
  • Symfony 生成服务名称遵循约定;
  • 目录已正确标记
    • vendor 目录未添加为 Git 根目录 - 在项目更新后不会调用 git update 为库;
    • 生成文件被标记为排除 - 您不会看到重复的查找结果;
    • 供应商的配置 - 供应商被排除,但包含在内。这使得以下配置的 Scopes
      • 项目文件(或 项目内)- 供应商不被包括;
      • 项目和库 - 供应商被包括。在搜索时选择 范围 → 项目和库
  • PHP 解释器作为 docker,使用正确的镜像。这允许在正确环境中使用 PhpStorm 集成运行单元测试;
  • php-cs-fixer 集成 - 如果出现问题,它将被标记为弱警告。

某些功能需要额外的选项或当前目录中已存在的文件(如 .php_cs)。使用 --help 获取更多信息。

配置外部工具和安装插件

phpstorm-helper configure-installation [path-to-config-file]

path-to-config-file 是指向 php 配置文件的路径,其结构如下

<?php
declare(strict_types=1);

use Paysera\PhpStormHelper\Entity\ExternalToolConfiguration;
use Paysera\PhpStormHelper\Entity\GlobalConfiguration;

return (new GlobalConfiguration())

    ->setExternalToolConfigurations([
        (new ExternalToolConfiguration())
            ->setName('Fix CS (debug)')
            ->setCommand('bin/php-cs-fixer')
            ->setParameters('fix --diff --verbose --config=$ProjectFileDir$/.php_cs --dry-run "$FilePath$"')
            ->setSynchronizationRequired(false)
            ->setConsoleShownAlways(true),
    ])
    
    // copy direct links from plugin pages, for example https://plugins.jetbrains.com/plugin/7219-symfony-plugin
    // versions will get old, but prompt will appear to update the plugin
    // if plugin by that name already exists, no action will be taken
    ->setPlugins([
        'https://plugins.jetbrains.com/files/7219/59728/Symfony_Plugin-0.17.171.zip',
    ])
;

或者,您可以扩展建议的配置

<?php
declare(strict_types=1);

use Paysera\PhpStormHelper\Entity\SuggestedGlobalConfiguration;
use Paysera\PhpStormHelper\Entity\ExternalToolConfiguration;

return (new SuggestedGlobalConfiguration())

    ->addExternalToolConfigurations([
        (new ExternalToolConfiguration())
            ->setName('PHP server')
            ->setCommand('php')
            ->setParameters('-S 0.0.0.0:8080'),
    ])
    
    ->addPlugins([
        'https://example.com/my-custom-plugin.jar',
    ])
;

如果您没有提供配置路径,将使用我们建议的全局配置。

语义化版本控制

该库遵循 语义化版本控制

有关 API 中可以更改和不可以更改的基本信息,请参阅 Symfony BC 规则。请注意,在此包中,默认情况下一切都是 @internal - 只直接使用标记有 @api 的类和方法。

任何其他文件,包括项目的默认配置,也可以在任何版本中更改。

默认的 PhpStorm 配置、工具或插件也可以在任意版本号中更改。

运行测试

composer update
composer test

贡献

请随意创建问题和提供 pull 请求。

您可以使用以下命令修复任何代码风格问题

composer fix-cs