Laravel Pint — гаряча новинка від команди Laravel. Чудова обгортка PHP CS Fixer, яка є моїм інструментом стандартизації коду.
Раніше я писав про випуск Laravel Pint коли він був уперше випущений. За замовчуванням він слідуватиме за laravel
стандарт із коробки, спеціальний стандарт від команди Laravel.
Але що ми робимо, якщо хочемо чогось іншого? Давайте трохи зануримося.
Якщо ви прочитаєте документацію, вона дуже інформативна щодо того, що ви можете робити з Laravel Pint. Ви можете реалізувати багато правил у зручному файлі JSON, але які з них працюють добре, і що потрібно робити?
Я збираюся провести вас через мою особисту конфігурацію Laravel Pint і поясню, що і чому я вибираю ці налаштування.
Вирівняти багаторядкові коментарі
Це правило align_multiline_comment
will всеow you to fix any comments that I call "borked". They have all gone out of alignment and look weird. It is ні a significant thing in terms of your code, but it is an annoyance when reading through it as your eyes will be drawn to it instead of what you want to focus on.
Відступ масиву
Правило відступ_масиву
дозволить вам виправити будь-які масиви, які ви створюєте, які знову ж таки з певної причини стали «забитими». Ще одне правило очищення коду, яке прибере місця, де пробіли можуть використовуватися не в тому місці тощо тощо.
Синтаксис масиву
The синтаксис_масиву
це правило, яке вам може не знадобитися, залежно від віку вашого коду. Це правило змінить старе масив()
синтаксис до нового []
синтаксис. Я зберігаю це на випадок, якщо у мене є старий код або я працюю з кількома розробниками, які можуть увійти в старі звички.
Порожній рядок після простору імен
The порожній_рядок_після_простір_імен
rule — це правило господарювання, яке я використовую, щоб переконатися, що під оголошенням простору імен у будь-якому класі завжди є порожній рядок.
Порожній рядок після початкового тегу
The blank_line_after_opening_tag
правило подібне до попереднього правила, але вимагає порожнього рядка після початкового тегу PHP. Мені подобається, щоб мій код був упорядкованим та одноманітним – ці правила дозволяють це.
Об’єднайте послідовні елементи
The combine_consecutive_issets
це те правило, яке навчило мене, що я можу використовувати більше ніж один аргумент у перевірці isset, що було для мене чимось новим. Це перетворить будь-який код, який поєднує одну або більше перевірок isset, в одну чисту перевірку.
// before
if (isset($a) && isset($b))
// after
if (isset($a, $b))
Об'єднати послідовні скасування
The combine_consecutive_unsets
правило схоже на наведене вище правило, про те, про що я не знав, що можу зробити - і змушує мене використовувати кращий код.
// before
unset($a);
unset($b);
// after
unset($a, $b);
Concat Space
The concat_space
правило одне з моїх улюблених. Це примусово створює пробіли між будь-якими конкатенаціями рядків - це одна з речей, яку я ненавиджу не бачити. Мені подобається, щоб у моєму коді було місце, а не було здавлено, як простір уповільнює його.
// before
$name = $request->get('name');
$message = 'Hello '.$name;
// after
$message = 'Hello ' . $name;
Оголошення круглих дужок
The заявляти_parentheses
Правило є майже протилежним до наведеного вище правила. Скрізь, де я використовую a declare
я хочу переконатися, що навколо нього немає непотрібних прогалин.
// before
declare( strict_type = 1 );
// after
declare(strict_types=1);
Оголошення строгих типів
The declare_strict_types
правило для мене є обов'язковим. Зважаючи на кількість використання типів, які я використовую у своєму коді, я також хочу переконатися, що суворе введення ввімкнено. Це зручне правило, щоб закріпити це у вашій кодовій базі, не пам’ятаючи про те, щоб додавати його кожного разу. Чудово підходить для Laravel, оскільки вам не потрібно змінювати свої заглушки, щоб додати їх!
declare(strict_types=1);
Явна рядкова змінна
The явна_рядкова_змінна
це те правило, яке я люблю додавати, оскільки це робить мій код набагато легшим для читання. Скрізь, де ви використовуєте неявні змінні у своєму коді, це зробить їх явними, як показано нижче:
$name = 'Steve';
$implicit = "Hello, $name";
$explicit = "Hello {$name}";
Підсумковий клас
The випускний_клас
я буду переслідувати Майкла Дайринду. Це змушує all ваші заняття будуть остаточними у вашій заявці. Проте будьте обережні, оскільки це зробить кожен клас остаточним, що може призвести до поломок у разі використання pest або розширення базового контролера в Laravel. На моє щастя, я не дуже про це хвилююся, тому що я не використовую багато спадковості.
Підсумкове внутрішнє заняття
The кінцевий_внутрішній_клас
правило - це спосіб боротьби з вищезгаданим правилом. Якщо ви не хочете, щоб клас був остаточним, оскільки ви плануєте його розширити, переконайтеся, що для цього правила встановлено значення помилковий
у вашій конфігурації. Це вкаже остаточному правилу ігнорувати це правило, а внутрішні класи повинні not бути остаточним.
{
"final_internal_class": false
}
Повністю кваліфіковані строгі типи
The fully_qualified_strict_types
правило змусить вас імпортувати клас як оператор використання у вашому коді замість того, щоб оголошувати повне ім’я класу як тип у методах тощо. Це зберігає код чистим, а чистий код є щасливим кодом.
// before
public function __invoke(\Illuminate\Http\Request $request)
// after
public function __invoke(Request $request)
Є багато інших правил, якими я користуюся, щоб не набридати вам кожен Я поділюся своєю конфігурацією, також подивіться на Веб-сайт налаштування PHP CS щоб ви могли бачити, що таке правила і що вони роблять.
Ось моя поточна конфігурація, але майте на увазі, що я часто налаштовую це, оскільки вважаю, що стандарти коду мають бути живою істотою. Це має бути те, що ви постійно переоцінюєте та перевіряєте, чи воно все ще відповідає вашим потребам.