PHP Profi

Чеклист, чтоб ваш продукт был хорошо принят сообществом php

php package пакет

Для того, чтобы продукт PHP стал успешным, нужно не только содержание в нем полезного кода. Данный чеклист поможет вашему продукту PHP быть быть серьезно воспринятым сообществом PHP.

Перевод этого чеклиста

Выбирайте название с умом

  •  Убедитесь, что имя еще не используется в другом проекте
  •  Следите за соответствием между названием  и используемым пространством имен
  •  Избегайте использования ников и фамилий в ваших пространствах имен

Делайте исходники открытыми

  • Для открытых проектов в свободном использовании GitHub
  • GitHub полезен для управления багами, фичами и pull request-ами
  • Альтернатива: bitbucket

Дружественный автозагрузчик

  • Используйте psr-4-совместимые пространства имен для автозагрузчиков
  • Размещайте код в папке src

Распростаняйте через composer

  • Сделайте свои библиотеки доступными через composer
  • Разместите продукт в Packagist   (самый распространенный репозиторий composer-а)

Будьте критичны к фреймвокам

  • Не ограничивайтесь только одним фреймворком в своём проекте
  • Предлагайте поддержку специфичного фреймворка путем предоставления Service Provider-ов

Придерживайтесь стандартов написания кода

  • Очень рекомендуется PSR-2 стиль
  • Быстро писать с автоматическим корректором кода можно при помощи чего-то вроде:PHP Coding Standards Fixer
  • Проверять с помощью такого:PHP Code Sniffer

Пишите юнит-тесты

  • Ставьте цель покрыть бОльшую часть вашего кода
  • Фреймворк де-факто для php юнит-тестов PHPUnit
  • Альтернатива: phpspec, Behat, atoum, Codeception

Пишите докблоки

  • Докблоки - это готовая встроенная документация
  • Также они могут улучшить код-completion в таких средах разработки как PhpStorm
  • Возможна автоматическая конвертация в API-документацию, см phpDocumentor

Семантическое версионирование

  • Используйте Semantic Versioning для управления номерами весрий вашего продукта
  • Придерживайтесь системы MAJOR.MINOR.PATCH
  • СВ позволит разработчикам безопасно обновляться
  • Не забывайте помечать релизы своевременно

Поддерживайте логи измений

  • Показывайте значимые изменения между релизами
  • Рассмотрите возможность следования формату Keep a CHANGELOG

Используйте непрерывную интеграцию

  • Используйте средства автоматической проверки стандартов кодирования и запуска тестов
  • Хороший вариант - запускать тесы для разных версий PHP
  • Можно автоматически запускать при отправке pull-request
  • Посмотрите: Travis-CI, Scrutinizer, Circle-CI

Пишите обширную документацию

  • Хорошая документация имеет жизненно важное значение для любого пакета
  • Как минимум создайте детальный README в вашем репозитории
  • Рассмотрите возможность размещения документации на GitHub Pages
  • Альтернативный вариант:Read the Docs

Укажите лицензию

  • Лицензия - простой способ обезопасить работу, которую вы уже сделали
  • См choosealicense.com.  Большинство проектов на php используют MIT License.
  • Как минимум сделайте файл LICENSE в вашей библиотеке
  • Подумайте над тем, чтобы включать лицензию в докблок

Сторонняя помощь

  • Если вы хотите помощи, не забудьте попросить об этом
  • Создайте файл CONTRIBUTING приветсвуя вклад в реализацию проекта
  • Используйте этот файл для объяснения требований проекта (например тесты)
2014-11-30 irul Поделиться: