Skeletor: Створення та налаштування проєктів

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 13 лютого, 2025
Вам цікаво, як спростити налаштування ваших Laravel-додатків? У нашій статті ми розглядаємо Skeletor — потужний пакет, який дозволяє автоматизувати процес створення та налаштування проектів, економлячи ваш час і зусилля. Читайте далі, щоб дізнатися, як використання Skeletor може змінити вашу роботу!

Skeletor — це пакет для створення шаблонів, розроблений Джошем Мандерсом. Цей пакет дозволяє додавати нові функції до будь-якого проєкту, який ви можете налаштувати за допомогою composer create-project. Він чудово працює з Laravel, але не обмежується лише цими додатками.

Щоб встановити цей пакет, скористайтеся Composer:

composer install --dev aniftyco/skeletor

Після цього оновіть секцію scripts у файлі composer.json:

"post-create-project-cmd": [
    "NiftyCo\\Skeletor\\Runner::execute"
],

Створіть файл Skeletorfile.php у кореневій директорії вашого проєкту з наступним вмістом:

<?php
 
use NiftyCo\Skeletor\Skeletor;
 
return function (Skeletor $skeletor) {
    // Додайте команди, які ви хочете виконати у новому додатку.
};

Skeletor пропонує різні методи для збору введених даних, відображення інформації, виконання операцій з файлами та запуску команд, включаючи пошук і заміну в файлах. Ось кілька прикладів:

// Відображення повідомлень та сповіщень
$skeletor->intro('Ласкаво просимо до майстра налаштування програми!');
 
// Введення тексту за замовчуванням
$appName = $skeletor->text('Введіть назву вашої програми:', 'laravel_news');
 
// Заміна рядка у файлі
// наприклад, $skeletor->replaceInFile('search string', 'replace string', 'path/to/file.txt');
$skeletor->replaceInFile('APP_NAME=Laravel', 'APP_NAME=' . $appName, '.env');
 
// Підтвердження вибору користувача за замовчуванням
if ($skeletor->confirm('Чи хочете ви встановити AcmeUIKit?', true)) {
    // Виконання деяких завдань і відображення індикатора
    $skeletor->spin(
            message: 'Встановлення AcmeUIKit і залежностей',
            success: 'AcmeUIKit встановлено.',
            error: 'Не вдалося встановити AcmeUIKit та одна або більше залежностей.',
            callback: function () use ($skeletor) {
                    $skeletor->exec(['npm', 'install', '@acme/ui']);
            }
    );
}
 
$skeletor->outro('Налаштування вашої програми завершено!');

З цим налаштуванням ви можете опублікувати свій шаблон на Packagist. Після виконання composer create-project з шаблоном програми Skeletor, система автоматично підключиться до події post-create-project-cmd і виконає команди налаштування, визначені у файлі Skeletorfile.php.

Наприклад, Джош уже створив шаблон для Laravel, який відображає його власні уподобання при створенні нових додатків Laravel.

composer create-project starter/laravel my-new-app

Якщо вам потрібен більший контроль над налаштуванням вашого додатку, Skeletor спрощує процес кастомізації. Ви можете інтегрувати бібліотеки UI з макетом за замовчуванням, налаштувати Inertia з React або Vue.js, додати ваші облікові дані бази даних у файл .env або автоматизувати інші налаштування. Ці кроки можна прописати один раз і застосувати до кожного нового проєкту, що зекономить час і сили.

Щоб дізнатися більше про Skeletor, ви можете переглянути вихідний код і документацію на GitHub.