CEKTA/PHP-PACKAGE-TEMPLATE
Это “стандартный” шаблон для создания пакета для composer, который включает в себя базовый минимум необходимого и удобных инструментов для создания php пакета.
- Настроенная автозагрузка классов в соответствие с PSR-4.
- Проверка code style на соответствие PSR-12 с помощью squizlabs/php_codesniffer.
- Статический анализ phpstan с максимальным уровнем проверки (level 10).
- Запуск автотестов с помощью testo.
- Запуск infection (мутационное тестирование оценивающие ваши автотесты) - можно отключить, опционально.
- Из релизной версии пакета удалено все инструменты разработки, только /src и все необходимое.
- Создание документации в markdown файлах и конвертация их с помощью mdbook.
- Пример pipeline который запускается CI/CD для каждого Merge Request и обновления master (только для github).
- Запрет обновления master ветки, только Merge Request (только для github).
- Окружение в docker для разработки, без необходимости ничего устанавливать.
make test # в текущей версии окружения - Есть возможность изменять версии php (8.2, 8.3, 8.4, 8.5).
make test-8.5 # сменить текущую версию на php 8.5 - Можно расширять поддержку новыми версиями и убирать не актуальные для вас.
- Можно зайти в интерактивный shell разработки.
make shell - Можно смотреть рендеринг документации до публикации.
Далее следуем инструкции открываем http://localhost:3000make docs - Установлен и настроек xdebug (вам надо лишь настроить IDE).
Getting started
- Для пользователей github.com используем шаблон проекта.
- Открываем страницу проекта https://github.com/cekta/php-package-template.
- Нажимаем
Use this template. - Выбираем
Create a new repository. - Создаем репозиторий в нужном пользователи или организации.
- Кастомизируем composer.json
- Указываем name вашего пакета vendor/package.
- Указываем description, license, authors и тд. (опционально).
- В разделе autoload и autoload-dev заменяем App на Vendor/Package вашего проекта.
- Удаляем заглушки классов
/src/Example.phpи/tests/ExampleTest.php - Создаем свои классы и разрабатываем свой пакет.
- Остальные настройки по желанию.
Опциональные настройки.
К сожалению не все настройки можно сделать или перенести, а часть не могут иметь дефолтного значения, эти действия являются опциональными:
- Откройте github и выберите свой репозиторий ->
settingsвашего репозитория.- Установите
Default commit message->Pull request title and descriptionв двух местах.
Это позволит merge commit и squash коммит заполнять информации изPull Requestавтоматически. - В левом меню откройте раздел
Branchesдобавьтеadd ruleдля вашейmasterветки - Отметьте
Require status checks to pass before merging. - Отметьте
Require branches to be up to date before merging. - Выберите с помощью строки поиска build (8.2), build (8.3), build(8.4) и тд. Без прохождения этих проверок не удасться влить PR.
- Отметьте
Lock branch. - Остальные настройки на свое усмотрение.
- Установите
- В файле /book.toml хранятся настройки mdbook.
- Задайте authors.
- Укажите TITLE.
- Остальные настройки на свое усмотрение.
- Можно регистрировать пакет на packagist.org.
Обратная связь и помощь проекту.
- GITHUB ISSUE для багов, предложений по улучшениям и тд.
- Чат в telegram.
- Направляйте ваши Pull Request.