承接 genesos/php-simple-lint 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

genesos/php-simple-lint

Composer 安装命令:

composer require genesos/php-simple-lint

包简介

README 文档

README

php-simple-lint, extends phpcs easily.

Usage

php lint.php rule/rule.sample.json phpcs

php lint.php rule/rule.sample.json vendor/bin/phpcs

Matching process

namespace N;
use U;
class ABC extends A implements B, C
{
  const THE_CONST=1;
  public $property=1;
  public function someMethod($a, $b){
    $var = 2;
  }
}

Serialize to

['type' => 'use', 'clause' => 'namespace N use U'],
['type' => 'class', 'clause' => 'namespace N class ABC extends A implements B implements C'],
['type' => 'const', 'clause' => 'namespace N class ABC extends A implements B implements C { public THE_CONST'],
['type' => 'property', 'clause' => 'namespace N class ABC extends A implements B implements C { public $property'],
['type' => 'param', 'clause' => 'namespace N class ABC extends A implements B implements C { public function someMethod ( int $a'],
['type' => 'param', 'clause' => 'namespace N class ABC extends A implements B implements C { public function someMethod ( bool $b'],
['type' => 'function', 'clause' => 'namespace N class ABC extends A implements B implements C { public function someMethod ( )'],
['type' => 'var', 'clause' => 'namespace N function someMethod ( ) { $var'],

Match with

[
  {
    "type": "class",
    "must": "class [\\w]+Model",
    "if": "extends\\s+PlatformBaseModel",
    "reason": "Extends PlatformBaseModel must postfix Model"
  },
  {
    "type": "var",
    "must": "\\$[a-z0-9_]+",
    "reason": "var must lowercase with underbar"
  },
  {
    "type": "param",
    "must": "\\$[a-z0-9_]+",
    "reason": "param must lowercase with underbar"
  },
]

Matched result

"<error line='{$line_pos}' column='{$column_pos}'  source='RIDI.LINT' severity='5' fixable='1'>{$reason}</error>"

rule.json

  • type (required)
    • use, class, const, property, param, function, var
  • must (or must not) (required)
    • regexes
  • if (optional) (string or string[])
    • regexes
  • if not (optional) (string or string[])
    • regexes

Rule case study

[
  {
    "type": "use",
    "must": "use .+External.+",
    "if": [
      "namespace Calsule"
    ],
    "if not" : [
      "namespace SafeZoneA",
      "namespace SafeZoneB"
    ]
    "reason": "`Capsuled namspace` must not use `External` namespace"
  },
  {
    "type": "class",
    "must": "class [\\w]+Model",
    "if": "extends\\s+BaseModel",
    "reason": "`Extends BaseModel` must postfix `Model`"
  },
  {
    "type": "var",
    "must": "\\$[a-z0-9_]+",
    "reason": "var must lowercase with underbar"
  },
  {
    "type": "param",
    "must": "\\$[a-z0-9_]+",
    "reason": "param must lowercase with underbar"
  },
  {
    "type": "property",
    "must": "\\$[a-z0-9_]+",
    "reason": "property must lowercase with underbar"
  },
  {
    "type": "const",
    "must": "[A-Z0-9_]+",
    "reason": "const must uppercase"
  },
  {
    "type": "class",
    "must": "class [A-Z][a-zA-Z0-9]+",
    "reason": "class must camel cap"
  },
  {
    "type": "class",
    "must not": "class .+Object",
    "reason": "class must not ends with `Object`"
  },
  {
    "type": "function",
    "must": "function [a-z][a-zA-Z0-9]+",
    "reason": "function must camel"
  }
]

统计信息

  • 总下载量: 128
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-01-12

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固