Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PSR编码标准-PHP_Php - Fatal编程技术网

PSR编码标准-PHP

PSR编码标准-PHP,php,Php,刚刚开发了一个简单的CLI php代码,用于计算所选大小的乘法表,但当我检查文件以确保它们符合PSR编码标准时,它给出了四个错误/违规。经过几次尝试和几天的工作,我不知道文件中的错误在哪里 有两个文件: cliVersion.php和generateCLITable.php 第一个文件给我1个PSR错误,第二个文件给我3个PSR错误 这就是我如何在命令行上生成大小为12的乘法表: php cliVersion.php 12 有人能帮我找出文件中的PSR错误吗 以下是文件和错误报告: cliV

刚刚开发了一个简单的CLI php代码,用于计算所选大小的乘法表,但当我检查文件以确保它们符合PSR编码标准时,它给出了四个错误/违规。经过几次尝试和几天的工作,我不知道文件中的错误在哪里

有两个文件: cliVersion.php和generateCLITable.php

第一个文件给我1个PSR错误,第二个文件给我3个PSR错误

这就是我如何在命令行上生成大小为12的乘法表:

  • php cliVersion.php 12
有人能帮我找出文件中的PSR错误吗

以下是文件和错误报告:

cliVersion.php
我强烈建议在这种情况下使用

我猜您正在尝试对代码进行单元测试。我可能会首先集中精力尝试对代码进行深思熟虑。以cliVersion为例,我认为通过创建一个方法来处理输入,可以大大简化它。我发现你的评论、变量和过度设计也有很多问题

修订版:

<?php
//declare(strict_types=1); // I'm using php 5 so I don't have this (but ok for you)
require_once 'generateCLITable.php';
require_once '../model/validateInput.php';

$must_be_gtr_than = 1; // set floor val for validation
$inputData = new ValidateInput($must_be_gtr_than);
$multTable = new MultTable();

if ($inputData->isValidIntegerData($argv[1])) {
    $tableSize = (int) $argv[1];
    $multTable->generateTable($tableSize);
} else {
    echo "Error: Please enter a valid argument (a whole number greater than ".$must_be_gtr_than.")";
    die();
}
更新: 我可能会这样做:

<?php
//declare(strict_types=1); // PHP5.x Example

class GenerateCLITable
{
    const DEFAULT_BOARD_SIZE = 12;
    public $game_board, $table_size;

    public function __construct($input = self::DEFAULT_BOARD_SIZE)
    {
        $this->game_board = $this->generateTable($input);
    }

    public function generateTable($inputValue = self::DEFAULT_BOARD_SIZE)
    {
        $table = "";
        // Create first row of table headers - green colour
        for ($col=1; $col <= $inputValue; $col++) {
            $table .= "\033[35m \t$col \033[0m";
        }
        // Create remaining rows
        for ($row=1, $col=1; $row <= $inputValue; $row++) {
            $table .= "\n";
            // First cell is a table header - green colour
            if ($col == 1) {
                $table .= "\033[35m \n$row \033[0m";
            }
            while ($col <= $inputValue) {
                $table .=  "\t" . $row * $col++ ;
            }
            // Reset $col at the end of the row
            $col = 1;
        }
        $this->game_board = $table;
        $this->table_size = $inputValue;
        return $table;
    }

    public function isValidInputValue($input = '', $size = 0)
    {
        return (!empty($input) && $input > $size) ? (is_int((int) $input)) : false;
    }

}

//require_once 'generateCLITable.php';
$multTable = new GenerateCLITable();
$must_be_gtr_than = 1;

if (!$multTable->isValidInputValue($argv[1], $must_be_gtr_than)) {
    echo "Error: Please enter a valid argument (a whole number greater than ".$must_be_gtr_than.")";
    die();
}
$table = $multTable->generateTable((int) $argv[1]);
echo $table . "\n";

你试过了吗?我试过了,当我修复错误并运行另一个测试时,它又给了我4个未知错误。如果你能看一下的话,我刚刚添加了文件的链接。很多人都感谢一个更好的代码嗅探器,它能告诉你问题所在。试试类似的东西。这个软件包会告诉你问题是什么,它们在哪一行。谢谢Magnus,我已经尝试了PHPC并修复了错误,但是我的教授说你现在有17个错误。所以他说我上传的原始文件只有4个错误,但在用PHPC修复错误后,它们增加到了17个错误。我只是不知道错误在哪里。我使用了它并修复了所有错误,但当我把代码传递给教授时,他说我在两个文件中仍然有4个错误。我已经上传了文件,并提供了一个链接,如果有人可以看看和帮助。谢谢,那是学术作业?如果您获得了需要验证的PSR,则需要配置PHPCSFixer以更新其代码,它们不会全部自动应用。谢谢,我可以在何处以及如何更改PHPCSFixer配置?所有这些都应放入
.php\u cs
文件中。更多详情请参阅。谢谢你,迈克。非常感谢。我记笔记并修改代码。你能检查一下这些代码中的PSR错误吗?请看看它们在哪里?我看到了关于新行和空格的错误,一些小错误。老实说,你真的应该关注代码。将PHP Storm等IDE设置为默认PSR2。我插入了您的代码,选择了重新格式化代码并将其放入WCS,它给了我更多的错误,因为我们使用了“制表符”。无论如何,这些都是次要的东西,关注你的命名、标记变量,以及什么时候应该使用注释,你会有很大的进步。就像我说的,你的代码很好,但太过繁重了。正如我在上一篇文章中所说的,对我来说,声明“$multTable=new multTable();”只是有时候是非常糟糕的做法,而且是你最糟糕的冒犯,因为这对我来说是你的应用程序所必需的。我会看到更多的问题,例如,你需要将你的类命名为与你的文件相同的名称。我提供了一个例子,作为一种改进,我希望你不要生气,也许可以投票给我的答案。。
cliVersion.php
----------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE

generateCLITable.php
----------------------------------------------------------------------
FOUND 3 ERRORS AFFECTING 3 LINES
<?php
//declare(strict_types=1); // I'm using php 5 so I don't have this (but ok for you)
require_once 'generateCLITable.php';
require_once '../model/validateInput.php';

$must_be_gtr_than = 1; // set floor val for validation
$inputData = new ValidateInput($must_be_gtr_than);
$multTable = new MultTable();

if ($inputData->isValidIntegerData($argv[1])) {
    $tableSize = (int) $argv[1];
    $multTable->generateTable($tableSize);
} else {
    echo "Error: Please enter a valid argument (a whole number greater than ".$must_be_gtr_than.")";
    die();
}
CONST_SOMETHING  = xx; //constants
var_x or varx // lowercase for vars
methodX  //camel back 
ClassName // ucwords for classes 
etc..
<?php
//declare(strict_types=1); // PHP5.x Example

class GenerateCLITable
{
    const DEFAULT_BOARD_SIZE = 12;
    public $game_board, $table_size;

    public function __construct($input = self::DEFAULT_BOARD_SIZE)
    {
        $this->game_board = $this->generateTable($input);
    }

    public function generateTable($inputValue = self::DEFAULT_BOARD_SIZE)
    {
        $table = "";
        // Create first row of table headers - green colour
        for ($col=1; $col <= $inputValue; $col++) {
            $table .= "\033[35m \t$col \033[0m";
        }
        // Create remaining rows
        for ($row=1, $col=1; $row <= $inputValue; $row++) {
            $table .= "\n";
            // First cell is a table header - green colour
            if ($col == 1) {
                $table .= "\033[35m \n$row \033[0m";
            }
            while ($col <= $inputValue) {
                $table .=  "\t" . $row * $col++ ;
            }
            // Reset $col at the end of the row
            $col = 1;
        }
        $this->game_board = $table;
        $this->table_size = $inputValue;
        return $table;
    }

    public function isValidInputValue($input = '', $size = 0)
    {
        return (!empty($input) && $input > $size) ? (is_int((int) $input)) : false;
    }

}

//require_once 'generateCLITable.php';
$multTable = new GenerateCLITable();
$must_be_gtr_than = 1;

if (!$multTable->isValidInputValue($argv[1], $must_be_gtr_than)) {
    echo "Error: Please enter a valid argument (a whole number greater than ".$must_be_gtr_than.")";
    die();
}
$table = $multTable->generateTable((int) $argv[1]);
echo $table . "\n";