paysera/lib-arcanist-php-cs-extension

此包最新版本(1.3.4)没有可用的许可证信息。

Php Cs Fixer arcanist扩展

1.3.4 2019-05-14 10:50 UTC

README

此库将PHP CS Fixer集成到lint引擎中,以便在arcanist中使用。它允许开发者自动在arc diff上运行php-cs-fixer

安装库之前

要自动配置您的.arcconfig,请将"Paysera\\Composer\\ArcConfigParser::parseArcConfig"脚本添加到post-install-cmdpost-update-cmd或其他scripts中 - 只需确保此脚本在composer install时执行即可。

安装

  • composer require --dev paysera/lib-arcanist-php-cs-extension.
  • 确保.php_cs文件位于项目目录中。
  • 确保.arcconfig文件包含以下可配置默认条目
    • "lint.engine": "PhpCsFixerLintEngine"
    • "load": ["vendor/paysera/lib-arcanist-php-cs-extension/src/"]
    • "lint.php_cs_fixer.fix_paths" : ["src/"] - 运行php-cs-fixer的目录列表。
    • "lint.php_cs_fixer.php_cs_binary" : "{your-bin-dir}/php-cs-fixer" - php-cs-fixer可执行文件的位置。
    • "lint.php_cs_fixer.php_cs_file": ".php_cs" - .php_cs文件的位置。

示例输出

如果php-cs-fixer未发现任何问题

$ arc lint
 OKAY  No lint warnings.

如果php-cs-fixer报告错误,则arcanist diff将显示

$ arc lint

>>> Lint for src/Acme/Bundle/AcmeBundle/Controller/DefaultController.php:


   Warning  (PHP_CS_FIXER) pre_increment, phpdoc_separation, phpdoc_align
    Please consider applying these changes:
    ```
    - * @param array $fixData
    + * @param array  $fixData
    + *
    ```

               4 {
               5     /**
               6      * @param string $path
    >>>        7      * @param array $fixData
               8      * @return \ArcanistLintMessage[]
               9      */
              10     public function buildLintMessages($path, array $fixData)

   Warning  (PHP_CS_FIXER) pre_increment, phpdoc_separation, phpdoc_align
    Please consider applying these changes:
    ```
    - for ($i = 0; $i < count($rows); $i++) {
    + for ($i = 0; $i < count($rows); ++$i) {
    ```

              13         $rows = array_map('trim', file($path));
              14 
              15         $messages = [];
    >>>       16         for ($i = 0; $i < count($rows); $i++) {
              17             foreach ($diffParts as $diffPart) {
              18                 if (isset($diffPart['informational'])) {
              19                     $matchedInformational = 0;

如果提供Excuse消息,则这些消息将发送到Phabricator