Удосконалюйте свої стандарти кодування Laravel за допомогою GrumPHP
Незалежно від того, досвідчений ви розробник чи свіжіший, вам слід вдосконалити свої стандарти кодування, щоб стати кращим розробником. Якщо ви працюєте самостійно або з командою, завжди є гарною практикою мати однакові правила кодування протягом усього проекту. Але підтримка однакових стандартів у всіх місцях непроста, якщо ми перевіряємо це вручну. Може статися, що ви пропустили стандарт, навіть якщо вирішили його дотримуватися. Це людська помилка, ми інколи пропускали те, чого не повинні. Щоб запобігти таким проблемам, нам слід автоматизувати наш робочий процес. Роблячи це, наша автоматизована система подбає про завдання, яке ми їй призначили, і в 99,99% випадків вона ніколи не справляється.
GrumPHP – це бібліотека, яка стежить за кожним вашим git-комітом. Якщо ваш код не відповідає заданим стандартам, тоді бібліотека не дозволяє вам фіксувати код. Спочатку слід виправити свій код, а потім лише ти зможеш зробити коміт у Git.
Звучить добре? Побачимо це в дії.
Починаємо
Оскільки ми говоримо про стандарти кодування Laravel, ви повинні налаштувати проект Laravel. Якщо у вас його немає, встановіть його за допомогою команди:
composer create-project --prefer-dist laravel/laravel laravel-dev
Тут ‘laravel-dev’ – це назва вашого проекту. Відкрийте термінал у кореневому каталозі проекту та ініціалізуйте git.
git init
Для того, щоб скористатися перевагами GrumPHP, обов’язково мати Git у своєму проекті. Тут це працює. Коли ми встановлюємо GrumPHP, він створює гачок всередині .git
папки, а потім стежить за кожним комітом.
Тепер додайте та зафіксуйте ваші поточні файли у git, використовуючи команди нижче одну за одною.
git add -A
git commit -m 'initial commit'
Покращити стандарт кодування Laravel за допомогою GrumPHP
Після того, як ми налаштували git у нашому проекті Laravel, ми готові перейти до встановлення бібліотеки GrumPHP. Щоб встановити його, виконайте команду нижче:
composer require --dev phpro/grumphp
Після встановлення пакету ви побачите нижче повідомлення в терміналі:
Стережись! GrumPHP нюхає ваші коміти!
Це означає, що пакет успішно встановлений. Далі відкрийте grumphp.yml
файл і додайте в нього код нижче.
parameters:
git_dir:. bin_dir: vendor/bin
tasks: {
phpcs: {
standard: PSR2
}
}
У наведеному вище коді важливою частиною є рядок standard: PSR2
. Тут ми повідомляємо GrumPHP, що перевіряють правила кодування PSR2 щодо файлів, які збираються зробити. Тут ми використовували PSR2, оскільки Laravel відповідає стандартам кодування PSR2. Після цього GrumPHP виконував своє завдання та повідомляв нам про помилку в консолі, якщо виявив.
Якщо ви не встановили стандартну бібліотеку кодування, виконайте наведену нижче команду, щоб встановити її:
composer require "squizlabs/php_codesniffer=*"
Ця бібліотека містить стандарти кодування PSR2, включені в її основу. Отже, GrumPHP перевірить ваш код Laravel на відповідність PSR2 та запропонує вам змінити, якщо ви не дотримуєтесь стандартів PSR2.
Скажімо, у нас є ImageController.php
файл у нашому проекті, і в ньому є такий фрагмент коду.
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]);
}
}
Далі, спробуйте зафіксувати код вище, і ви побачите вивід приблизно так, як показано нижче:
Це дає помилку кодування в деталях разом із номером рядка та описом. Ви також можете помітити рядок:
PHPCBF МОЖЕ АВТОМАТИЧНО ВИПРАВИТИ 2 ПОЗНАЧЕНІ ПОРУШЕННЯ НУХУ
Як користуватися командою PHPCBF
Запустивши команду PHPCBF, ми можемо автоматично виправити деякі помилки. Перейдіть до каталогу ‘vendor / bin’ з терміналу та запустіть наведену нижче команду, щоб виправити помилки за допомогою PHPCBF.
PHPCBF --standard=PSR2 PATH_TO_YOUR_CONTROLLER
Замініть заповнювач фактичними значеннями. Можливо, якщо ви виконуєте цю команду в Git bash, ви отримаєте помилку "bash: phpcbf: команду не знайдено". У цьому випадку виконайте цю команду в командному рядку Windows. У нашому випадку ми бачимо наступний вихід на терміналі.
Зверніть увагу, що PHPCBH не всі помилки вирішує. Іноді вам також потрібно усунути помилку вручну. Тепер, коли ви намагаєтеся зафіксувати код, ви повинні отримати повідомлення про успіх і код також зафіксувати.
Заключні думки
У цьому підручнику ми обговорили вдосконалення стандартів кодування Laravel за допомогою GrumPHP. Але це не обмежується лише Laravel. Ви також можете використовувати цю бібліотеку в інших своїх CMS, Frameworks. Ми використовуємо бібліотеку GrumPHP для наших проектів Laravel, WordPress та основних PHP. Це дійсно допомагає нам постійно підтримувати наш стиль кодування.
Пов’язані статті
- PHP_CodeSniffer – Бібліотека для вдосконалення Ваших стандартів кодування PHP
- Посібник із покращення стандартів кодування WordPress