PSR-7 фреймворк: Структура и работа с HTTP

Первый урок серии скринкастов по изучению PSR-7 микрофреймворков в PHP. Сегодня рассмотрим создание структуры директорий, написание объектов для взаимодействия с HTTP-протоколом и их тестирование с помощью PHPUnit:

Исходный код на GitHub

  1. Структура и работа с HTTP
  2. Контроллеры и маршрутизация
  3. Middleware и Pipeline
  4. Контейнер внедрения зависимостей
  5. Шаблонизаторы и вёрстка
  6. Обновление до PSR-15, вывод ошибок и логирование

Для более комфортного просмотра откройте скринкаст на YouTube, разверните видео до оригинального размера значком и поставьте скорость 1,25:

Задавайте вопросы в комментариях. Заранее спасибо и до встречи в следующем видео!

Комментарии

 

Sergey

Спасибо! На этот раз даже не 6 часов ;)

Ответить

 

Сергей

И все-равно первые 30 минут видео можно просто выкинуть, а остальное сжать до 30-60 минут

Ответить

 

Серега

Даже в 10 минут. Да и вообще странно что видео о создании собственного фреймворка на php начинается с описания jquery и написания echo 'hello'. Те, кто не знает как писать echo 'Hello' скорее всего даже не слышали о таком слове как "фреймворк"

Ответить

 

Дмитрий Елисеев

Ну так выкиньте, сожмите и выложите к себе на канал. Мы вам все спасибо скажем.

Ответить

 

Сергей

Вот так подарочек на новый год. Спасибо! Здоровья!

Ответить

 

Николай

Круто! Спасибо большое!

Ответить

 

Евгений

Отличный урок! То что надо. Жду продолжения!

Ответить

 

Александр Денисюк

Ещё можно выделить пакет HttpFoundation от Symfony, реализация которого во многом превосходит заявленный функционал в интерфейсах PSR-7. Но если нужно, то можно c помощью symfony/psr-http-message-bridge конвертировать HttpFoundation в Zend Diactoros или любое решение, реализующее PSR-7. Также можно любое решение на PSR-7 интерфейсах преобразовать в HttpFoundation. Может пригодиться разработчика на Symfony, которые притянули какой-нибудь пакет, работающий только с PSR-7.

Ответить

 

Дмитрий Елисеев

Можно. Про них упоминал во второй части при рассмотрении Symfony Router. Но если хотите делать фреймворконезависимые библиотеки - то только PSR-7.

Ответить

 

Александр Денисюк

Либо на своих адаптерах.

Ответить

 

Spirit Absolute

Дмитрий, если использовать chdir(dirname(__DIR__)); phpstorm не определяет файл указанный в пути и подсвечивает предупреждение. У вас видимо эта опция отключена. Но в таком случае, когда будет не правильный путь, подсказки не будет. Верно?

Ответить

 

Дмитрий Елисеев

Да, здесь отключена, чтобы в глаза не бросалась. Подсказки не будет.

Ответить

 

Spirit Absolute

У меня __DIR__ == "xdebug:" :)

Ответить

 

Spirit Absolute

Переопределение не помогает: $dir = __DIR__;
Потому что там далее в классах автозагрузчиков composer тоже используется константа __DIR__ который переопрёделен xdebug ом...

Ответить

 

Rafa

Добрый день, Дмитрий. Скажите, пожалуйста, какую тему (Color Scheme) для PhpStorm вы используете?

Ответить

 

Кирилл

Вроде Darcula стандартная

Ответить

 

Дмитрий Елисеев

Доработанная Darcula.

Ответить

 

Андрей

Спасибо, очень интересно...

Ответить

 

Сергей Шурьяков

Благодарю, шикарный материал. Особенно нравится слушать историю развития языков. Ты лучший!

Ответить

 

Виталий

Хотелось бы чтобы вы делали краткий письменный конспект к своим длинным видео.

А сами видео уроки хорошие, спасибо за информацию

Ответить

 

Леша Тимков

Дима, а можно попросить файлы после каждой части по PSR-7 фреймворку. Так как это на ваших интенсивах было.

Ответить

 

Дмитрий Елисеев

Можно. Либо клонируете репозиторий к себе и переключаетесь через git checkout, либо:

1. Заходите в историю коммитов
2. Справа от нужного коммита кликаете Browse the repository.
3. Смотрите файлы или скачиваете архив через Clone or download.

Ответить

 

Андрей

Дмитрий, спасибо! Узнал кое-что новое :)

Ответить

 

Леонид

для генерации phpunit.xml можно выполнить команду
vendor/bin/phpunit --generate-configuration
, а не копировать из каких-то других проектов

Ответить

 

Владимир

Просто шикарный урок, расставил все по полочкам, успехов тебе, лучший преподаватель которого я знаю)

Ответить

Оставить комментарий

Войти | Завести аккаунт


(никто не увидит)



Можно использовать теги <p> <ul> <li> <b> <i> <a> <pre>