Um dos recursos mais interessantes do PhpStorm IDE é a inspeção de código . A inspeção de código verifica seu código em segundo plano e destaca dezenas de erros e avisos diferentes. Antes de comprometer, PhpStorm irá avisá-lo sobre problemas em seu código. O editor de código mostra o status de inspeção do código (vermelho, amarelo, verde) no canto superior direito e indica a posição e a mensagem de erros e avisos:
O escopo da inspeção (quais arquivos verificar) e as configurações de inspeção são altamente configuráveis para várias linguagens (PHP, Javascript, CSS, SASS, LESS, SQL, XML, …). Essas configurações podem ser compartilhadas em sua equipe de desenvolvedores como arquivos XML para garantir um padrão de qualidade consistente. A qualidade do nosso código melhorou muito devido à inspeção do código e certamente evitou que vários bugs entrassem em nossa base de código.
PhpStorm é realmente inteligente quando se trata de deduzir tipos de variáveis de comentários PHPDoc como @param ou @return. Para obter todos os benefícios do controle de qualidade da inspeção de código, às vezes é necessário digitar variáveis com uma instrução @var:
class Module
{
public function onBootstrap(MvcEvent $mvcEvent)
{
$sm = $mvcEvent->getApplication()->getServiceManager();
// Initialize the ZendDiCompiler
/** @var ZendDiCompiler $zendDiCompiler */
$zendDiCompiler = $sm->get('ZendDiCompiler');
$zendDiCompiler->init($mvcEvent);
}
}
A /** @var ZendDiCompiler $zendDiCompiler */
declaração permite ao PhpStorm saber o tipo de $zendDiCompiler
. Portanto, o método é reconhecido, o que nos dá um hiperlink para a fonte do método, assistência de código e inspeção de código. Caso os argumentos para o método mudem e a chamada do método não seja atualizada, uma inspeção completa do código apontará o problema. Este é um exemplo de resultado de inspeção de código completo, onde os problemas são agrupados por gravidade e idioma:init()
init()
A inspeção de código PhpStorm incentiva o uso consistente de dicas de tipo PhpDocumentor, uma vez que recebemos avisos de commit para chamadas de métodos em objetos não reconhecidos. Além de prevenir bugs, isso também leva a melhores hiperlinks e assistência de código.