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.