ancor/yii2-code-syntax

检查某些编程语言的语法

dev-master 2016-02-22 18:00 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:53:01 UTC


README

检查某些编程语言的代码以查找语法错误。

当前支持的语言

欢迎通过以下方式告诉我您还想添加哪些内容:

安装

安装此扩展的首选方式是通过 composer

运行以下命令之一:

$ php composer.phar require ancor/yii2-code-syntax

或添加以下内容到您的 composer.json 文件的 require 部分:

"ancor/yii2-code-syntax": "dev-master"

验证器

Sql 语法验证器

验证过程如下

  1. 从字段模型获取数据
  2. 包装器包装
  3. 在开始处添加 EXPLAIN
  4. 执行 SQL 查询
  5. 如果返回错误,将这些错误添加到验证消息中
基本用法
use ancor\codeSyntax\SqlSyntaxValidator;
public function rules()
{
    return [
        [['sqlCodeField'], SqlSyntaxValidator::className()],
    ];
}
带选项的高级用法
use ancor\codeSyntax\SqlSyntaxValidator;
public function rules()
{
    return [
        [
            ['sqlCodeField'],
            SqlSyntaxValidator::className(),
            // 'wrapper' => '...{{part}}...',
            // 'makeSql' => function($validator, $partSql) { ... }
            'message' => 'Field {attribute} is invalid',
        ],
    ];
}

Php 语法验证器

警告:此验证器使用 php cli。如果 php 没有添加到 $PATH,则验证器将不会工作。

基本用法
use ancor\codeSyntax\PhpSyntaxValidator;

public function rules()
{
    return [
       [['phpCodeField'], PhpSyntaxValidator::className()],
    ];
}
带选项的高级用法
use ancor\codeSyntax\PhpSyntaxValidator;

public function rules()
{
    return [
       [
           ['phpCodeField'],
           PhpSyntaxValidator::className(),
           'isWrapPhp' => true,
           'message' => 'Field {attribute} is invalid',
       ],
    ];
}

Json 语法验证器

警告:此验证器使用 json_decode() php 函数。并且依赖于 php-json 扩展。

基本用法
use ancor\codeSyntax\JsonSyntaxValidator;

public function rules()
{
    return [
       [['jsonCodeField'], JsonSyntaxValidator::className()],
    ];
}
带选项的高级用法
use ancor\codeSyntax\JsonSyntaxValidator;

public function rules()
{
    return [
       [
           ['jsonCodeField'],
           JsonSyntaxValidator::className(),
           'message' => 'Field {attribute} has invalid json. Code: {errCode}, Msg: {errMsg}',
       ],
    ];
}