Después de una hora de leer el informe, se me ocurrió la siguiente lista, podría ser útil para todos los que pienso.
Intentaré mantenerlo actualizado tan pronto como encuentre más advertencias / errores:
Advertencias
La línea excede los 80 caracteres; contiene X caracteres
O
La línea excede el límite máximo de 100 caracteres; contiene X caracteres
Esos son los que más he visto, se explican por sí mismos, es una buena práctica mantener pequeñas las líneas de codificación para mantener un código limpio y legible.
No se encontró espacio después de la coma en la llamada a la función
Ha llamado a una función que recibe parámetros y no ha agregado un espacio después de la coma. Ejemplo: strrchr($bla,".")
debería serstrrchr($bla, ".")
Se esperaba \ "while (...) {\ n \"; encontrado \ "while (...) \ n {\ n \"
Esperado \ "foreach (...) {\ n \"; encontrado \ "foreach (...) \ n {\ n \"
Se esperaba \ "if (...) {\ n \"; encontrado \ "if (...) \ n {\ n \"
Se esperaba \ "} más {\ n \"; encontrado \ "} \ n más {\ n \"
Eso significa que ha devuelto una línea antes del paréntesis de apertura de esas declaraciones PHP.
Ejemplo de una sintaxis incorrecta con una instrucción if / else:
if (true)
{
}
else
{
}
Debiera ser
if (true) {
} else {
}
El paréntesis de cierre y la llave de apertura de una declaración de función de varias líneas deben estar en la misma línea
La mayoría de las veces, sucede en el constructor donde declaras algo como esto:
public function __construct(
ProductFactory $productFactory,
Test $test
)
{
}
Mientras que debería ser:
public function __construct(
ProductFactory $productFactory,
Test $test
) {
}
El carácter de final de línea no es válido; esperado \ "\ n \" pero encontrado \ "\ r \ n \"
Ocurre la mayor parte del tiempo al comienzo del archivo, es causado por la forma en que su IDE codifica el carácter de retorno.
La variable \ "su_variable \" no está en un formato de camello válido
Cada variable debe usar el formato de camel caps, por lo que $your_variable
debe ser$yourVariable
La variable \ "one2Three \" contiene números pero no se recomienda
Evita usar números en tus variables
No se permiten estructuras de control en línea.
No debe usar estructuras de control en línea como:
else $test = true;
Deberías usar:
else {
$test = true;
}
La llave de apertura de una clase debe estar en la línea después de la definición
Has devuelto una línea al declarar una clase:
class Test
{
Debe mantener la llave de apertura en la misma línea:
class Test {
La variable de miembro privado \ "yourVariable \" debe contener un guión bajo
La variable miembro protegida \ "yourVariable \" debe contener un guión bajo
Debe agregar un guión bajo a sus variables de miembros protegidos y privados: $_yourVariable
Como opuesto a esos dos, si agrega un guión bajo en su variable pública, puede obtener:
La variable miembro público \ "_ yourVariable \" no debe contener un guión bajo inicial.
El parámetro de método $ bla nunca se usa
Has pasado un parámetro a un método pero nunca lo usas.
La declaración de función multilínea no está sangrada correctamente; esperaba 8 espacios pero encontró X
Ha agregado demasiada sangría a sus parámetros de declaración de función:
public function __construct(ProductRepository $productRepository,
ListsInterface $listsInterface,
Data $helper
) {
Debiera ser:
public function __construct(ProductRepository $productRepository,
ListsInterface $listsInterface,
Data $helper
) {
Posible anulación de método inútil detectada
Está anulando un método sin agregar modificaciones, por ejemplo:
public function __construct(Context $context) {
parent::__construct($context);
}
Modelo LSD método load () detectado en bucle
Está utilizando el load()
método dentro de un bucle que no se recomienda y debe evitarse.
Lo más probable es que su código se vea así:
foreach(...) {
$model->load();
}
Si está cargando un modelo en un bucle, es bastante malo en términos de rendimiento. Si solo necesita recuperar algunos atributos, debe usar colecciones en su lugar.
La complejidad ciclomática de la función (X) excede 10; considere refactorizar la función
Si no está familiarizado con la complejidad ciclomática, le sugiero que lea esta publicación: https://pdepend.org/documentation/software-metrics/cyclomatic-complexity.html . Esta advertencia básicamente significa que hay demasiados bucles y condiciones en su función.
La instanciación directa de objetos es desalentadora en Magento 2
Se debe al hecho de que está creando una instancia de un objeto directamente llamando a la clase, por ejemplo:
new \Zend_Filter_LocalizedToNormalized
Debe usar la inyección de dependencia o un último recurso, el administrador de objetos.
Los comentarios se refieren a una tarea TODO
Uno de sus comentarios contiene la siguiente @TODO
bandera.
Evite las declaraciones IF que siempre son verdaderas o falsas
Ha creado una condición que parece ser siempre verdadera o falsa.
Por ejemplo:
$variable = "6";
...
// More code that doesn't change $variable
...
if ($variable)
Errores
El espacio de nombres para la clase \ "Clase \" no está especificado.
Te estás perdiendo la use Path\To\Class;
declaración al comienzo de tu clase.