@romicohen
Системный Архитектор

Где взять годный туториал по Composer?

Мне нужно сделать приложение, НЕ использующее фреймворки, но при этом, использующее пакеты Composer.

Как-то я там я это уже собрал и оно работает, но не хочу изобретать велосипеды. Хочу сразу организовать файлы как-то внятно. И чтобы с пространствами имен и autoload, и, наверное, даже роутером.

При этом, даже Lumen использовать не хочется. Хочется сделать "с нуля".

Подскажите хороший небольшой туториал.

Т.е. хочется в конечном итоге получить эдакий Laravel, но без вьюх и всего остального.
  • Вопрос задан
  • 374 просмотра
Решения вопроса 1
usdglander
@usdglander Куратор тега PHP
Yipee-ki-yay
Есть очень интересная статья по теме.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
pOmelchenko
@pOmelchenko
php-developer
Композер это пакетный менеджер, ты просто описываешь какие у тебя в проекте будут зависимости. Он так же рулит автозагрузкой классов.

То есть по сути, на минималках. Любой проект будет иметь примерно следующую структуру composer json

{
  "name": "pomelchenko/project",
  "type": "project",
  "description": "description",
  "minimum-stability": "stable",
  "license": "proprietary",
  "require": {
    "php": "^7.4",
    // тут зависимости для продакшена, когда будешь устанавливать приложение с флагом --no-dev
  },
  "require-dev": {
    "phpunit/phpunit": "^9.5"
    // тут зависимости для dev среды, с тестами и прочими инструментами которые несут вспомогательный смысл.
  },
  "autoload": {
    "psr-4": {
      "App\\": "src/"
      // тут перечисляешь нэймспэйсы и пути до директорий с классами этих нэймспэйсов для приложения, которое будет на проде крутиться
    }
  },
  "autoload-dev": {
    "psr-4": {
      "Tests\\": "tests/"
      // тут перечисляешь нэймспэйсы и пути до директорий с классами этих нэймспэйсов для вспомогательных инструментов, как правило для тестов
    }
  }
}


После установки у тебя появится ./vendor/autoload.php который ты во фронтконтроллер подключишь чтобы всё заработало.

По сути всё. Остальное придет по необходимости во время работы.

Нужны тесты? Ставишь в phpunit так, чтобы он оказался в require-dev, то есть composer require --dev ...
Нужны пакеты для работы приложения? Например, роутер или орм, просто ставишь composer require ...

Ничем более как менеджмент зависимостей композер не занимается. В смысле на бизнеслогику и инфраструктуру (ну кроме как автолоад классов и файлов) проекта он никак не влияет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы