Melhore seus padrões de codificação do Laravel usando GrumPHP
Não importa se você é um desenvolvedor experiente ou novato, você deve melhorar seus padrões de codificação para se tornar um desenvolvedor melhor. Quer você esteja trabalhando sozinho ou em equipe, é sempre uma boa prática ter as mesmas convenções de codificação em todo o projeto. Mas manter os mesmos padrões em todos os lugares não é fácil se estivermos verificando manualmente. Pode acontecer de você ter perdido o padrão, mesmo que decida segui-lo. É um erro humano, às vezes perdemos coisas que não deveríamos. Para evitar esses problemas, devemos automatizar nosso fluxo de trabalho. Fazendo isso, nosso sistema automatizado cuidará da tarefa que lhe atribuímos e em 99,99% das vezes nunca falha.
GrumPHP é uma biblioteca que fica de olho em cada commit do git. Se o seu código não segue os padrões fornecidos, a biblioteca não permite que você confirme o código. Você deve corrigir seu código primeiro e só então você pode se comprometer com o Git.
Soa bem? Vamos ver em ação.
Começando
Como estamos falando sobre os padrões de codificação do Laravel, você deve ter uma configuração de projeto do Laravel. Se você não tiver, instale-o pelo comando:
composer create-project --prefer-dist laravel/laravel laravel-dev
Aqui, ‘laravel-dev’ é o nome do seu projeto. Abra o terminal no diretório raiz do seu projeto e inicialize o git.
git init
É obrigatório ter Git em seu projeto para aproveitar as vantagens do GrumPHP. É aqui que funciona. Quando instalamos o GrumPHP, ele cria um gancho dentro da .git
pasta e, em seguida, vigia cada commit.
Agora, adicione e envie seus arquivos atuais para o git usando os comandos abaixo um por um.
git add -A
git commit -m 'initial commit'
Melhore o padrão de codificação do Laravel usando GrumPHP
Assim que tivermos configurado o git em nosso projeto Laravel, estamos prontos para instalar a biblioteca GrumPHP. Para instalá-lo, execute o comando abaixo:
composer require --dev phpro/grumphp
Assim que o pacote for instalado, você deverá ver a mensagem abaixo no terminal:
Atenção! GrumPHP está farejando seus commits!
Isso significa que o pacote foi instalado com sucesso. Em seguida, abra o grumphp.yml
arquivo e adicione o código abaixo nele.
parameters:
git_dir:. bin_dir: vendor/bin
tasks: {
phpcs: {
standard: PSR2
}
}
No código acima, a parte importante é a linha standard: PSR2
. Aqui, estamos dizendo ao GrumPHP para verificar as convenções de codificação do PSR2 em relação aos arquivos que serão confirmados. Usamos PSR2 aqui porque o Laravel segue os padrões de codificação PSR2. Depois disso, o GrumPHP iria realizar sua tarefa e nos informar sobre o erro em um console se encontrado.
Se você não instalou a biblioteca padrão de codificação, execute o comando abaixo para instalá-la:
composer require "squizlabs/php_codesniffer=*"
Esta biblioteca possui padrões de codificação PSR2 incluídos em seu núcleo. Então, GrumPHP irá verificar seu código Laravel contra o PSR2 e sugerir mudanças se você não estiver seguindo os padrões PSR2.
Digamos que temos um ImageController.php
arquivo em nosso projeto e o seguinte trecho de código nele.
public function store(Request $request)
{
if($request->hasFile('profile_image')) {
//get filename with extension
$filenamewithextension = $request->file('profile_image')->getClientOriginalName();
//get filename without extension
$filename = pathinfo($filenamewithextension, PATHINFO_FILENAME);
//get file extension
$extension = $request->file('profile_image')->getClientOriginalExtension();
//filename to store
$filenametostore = $filename.'_'.time().'.'.$extension;
//Upload File
$request->file('profile_image')->storeAs('public/profile_images', $filenametostore);
if(!file_exists(public_path('storage/profile_images/crop'))) {
mkdir(public_path('storage/profile_images/crop'), 0755);
}
// crop image
$img = Image::make(public_path('storage/profile_images/'.$filenametostore));
$croppath = public_path('storage/profile_images/crop/'.$filenametostore);
$img->crop($request->input('w'), $request->input('h'), $request->input('x1'), $request->input('y1'));
$img->save($croppath);
// you can save crop image path below in database
$path = asset('storage/profile_images/crop/'.$filenametostore);
return redirect('image')->with(['success' => "Image cropped successfully.", 'path' => $path]);
}
}
Em seguida, tente confirmar o código acima e você deverá ver uma saída semelhante a abaixo:
Ele fornece o erro de codificação em detalhes, juntamente com o número da linha e a descrição. Você também pode notar a linha:
PHPCBF PODE FIXAR AS 2 VIOLAÇÕES DE SNIFF MARCADAS AUTOMATICAMENTE
Como usar o comando PHPCBF
Ao executar um comando PHPCBF, podemos corrigir alguns erros automaticamente. Vá para o diretório ‘vendor / bin’ do terminal e execute o comando abaixo para corrigir os erros usando PHPCBF.
PHPCBF --standard=PSR2 PATH_TO_YOUR_CONTROLLER
Substitua o marcador pelos valores reais. Provavelmente, se você estiver executando este comando no Git bash, obterá o erro ‘bash: phpcbf: command not found’. Nesse caso, execute este comando no prompt de comando do Windows. Em nosso caso, vemos a seguinte saída no terminal.
Observe que nem todos os erros são resolvidos por PHPCBH. Às vezes, você também precisa resolver o erro manualmente. Agora, quando você tenta confirmar o código, deve obter a mensagem de sucesso e o código também é confirmado.
Pensamentos finais
Neste tutorial, discutimos como melhorar os padrões de codificação do Laravel usando o GrumPHP. Mas não se limita apenas ao Laravel. Você também pode usar esta biblioteca em seus outros CMS, Frameworks. Estamos usando a biblioteca GrumPHP para nossos projetos Laravel, WordPress e PHP. Isso realmente nos ajuda a manter nosso estilo de codificação de forma consistente.
Artigos relacionados
- PHP_CodeSniffer – uma biblioteca para melhorar seus padrões de codificação PHP
- Um guia sobre como melhorar os padrões de codificação do WordPress