The class Parser has 11 public methods. Consider refactoring Parser to keep number of public methods under 10. Open
abstract class Parser
{
use Parselet;
public $input;
- Read upRead up
- Exclude checks
TooManyPublicMethods
Since: 0.1
A class with too many public methods is probably a good suspect for refactoring, in order to reduce its complexity and find a way to have more fine grained objects.
By default it ignores methods starting with 'get' or 'set'.
Example
Source https://phpmd.org/rules/codesize.html#toomanypublicmethods
Function match
has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring. Open
public function match($tag)
{
$hint = null;
if ($this->lookahead->getTag() === $tag) {
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Avoid using short method names like Parser::is(). The configured minimum method name length is 3. Open
public function is($tag)
{
return $this->lookahead->getTag() === $tag;
}
- Read upRead up
- Exclude checks
ShortMethodName
Since: 0.2
Detects when very short method names are used.
Example
class ShortMethod {
public function a( $index ) { // Violation
}
}
Source https://phpmd.org/rules/naming.html#shortmethodname
The property $scope_level is not named in camelCase. Open
abstract class Parser
{
use Parselet;
public $input;
- Read upRead up
- Exclude checks
CamelCasePropertyName
Since: 0.2
It is considered best practice to use the camelCase notation to name attributes.
Example
class ClassName {
protected $property_name;
}
Source
The variable $provided_lexeme is not named in camelCase. Open
public function match($tag)
{
$hint = null;
if ($this->lookahead->getTag() === $tag) {
- Read upRead up
- Exclude checks
CamelCaseVariableName
Since: 0.2
It is considered best practice to use the camelCase notation to name variables.
Example
class ClassName {
public function doSomething() {
$data_module = new DataModule();
}
}
Source
The variable $provided_lexeme is not named in camelCase. Open
public function match($tag)
{
$hint = null;
if ($this->lookahead->getTag() === $tag) {
- Read upRead up
- Exclude checks
CamelCaseVariableName
Since: 0.2
It is considered best practice to use the camelCase notation to name variables.
Example
class ClassName {
public function doSomething() {
$data_module = new DataModule();
}
}
Source
The variable $expected_lexeme is not named in camelCase. Open
public function match($tag)
{
$hint = null;
if ($this->lookahead->getTag() === $tag) {
- Read upRead up
- Exclude checks
CamelCaseVariableName
Since: 0.2
It is considered best practice to use the camelCase notation to name variables.
Example
class ClassName {
public function doSomething() {
$data_module = new DataModule();
}
}
Source
The variable $expected_lexeme is not named in camelCase. Open
public function match($tag)
{
$hint = null;
if ($this->lookahead->getTag() === $tag) {
- Read upRead up
- Exclude checks
CamelCaseVariableName
Since: 0.2
It is considered best practice to use the camelCase notation to name variables.
Example
class ClassName {
public function doSomething() {
$data_module = new DataModule();
}
}
Source
The variable $expected_lexeme is not named in camelCase. Open
public function match($tag)
{
$hint = null;
if ($this->lookahead->getTag() === $tag) {
- Read upRead up
- Exclude checks
CamelCaseVariableName
Since: 0.2
It is considered best practice to use the camelCase notation to name variables.
Example
class ClassName {
public function doSomething() {
$data_module = new DataModule();
}
}
Source
The variable $provided_lexeme is not named in camelCase. Open
public function match($tag)
{
$hint = null;
if ($this->lookahead->getTag() === $tag) {
- Read upRead up
- Exclude checks
CamelCaseVariableName
Since: 0.2
It is considered best practice to use the camelCase notation to name variables.
Example
class ClassName {
public function doSomething() {
$data_module = new DataModule();
}
}