PHP
и фреймворки
Докладчик: Дробышевский А.Н. ITSM,
2018
Что нам известно о PHP?
2
❏ Более 80% сайтов в мире использует PHP, из которых 27,5% сделано
на WordPress, 3,3% на Joomla, 2,2% - Drupal, 1,2% Magento. То есть
даже если убрать CMS платформы, почти половина интернета
нуждается в помощи PHP-специалистов.
❏ За последние 8 лет рост доли влияния PHP составил более, чем 10%.
❏ PHP в качестве серверной базы используют Facebook, Wikipedia,
Yahoo, Flickr, SourceForge, Tumblr и т.д. Они кое-что понимают в
трендах.
❏ Согласно свежему рейтингу TIOBE, PHP – 7-й по популярности язык в
мире, он “круче” чем Swift, Ruby и Go =)
Немного фактов о PHP
3
w3techs statistics
4
TIOBE Index for June 2018
5
Возвращаясь в прошлое
6
❏ легкий порог вхождения = много плохого кода
❏ много плохого кода = плохое всеобщее
мнение
❏ отсутствие инфраструктуры и архитектуры
организации приложений и инструментов
❏ узконаправленность использования языка
❏ “относительно” медленная скорость
работы(по сравнению с версией 7.x)
Развитие PHP
7
Сравнительная статистика версий PHP
8
Jordi Boggiano
from composer
9
А где же PHP 6?
Как это было
❏ PHP 5.6 => начало эпохи фреймворков => нужна производительность!
❏ синтетические тесты => ”пилим” собственный JIT компилятор
❏ LLVM => увеличение производительности в 10 раз на синт.тестах
❏ никакого “профита”, на реальных приложениях (~ 2 мин. на реквест
Wordpress)
❏ Скажи “НЕТ” синтетическим тестам!
❏ оптимизируй работу с внутренними структурами данных
❏ добавь промежуточный слой Abstract Syntax Tree перед компиляцией
❏ получи профит в 30% ускорения производительности.
❏ Начало нового проекта PHP NG
❏ Так куда же делась 6 версия?
❏ Направление ветки PHP 6 в основном заключалось в добавлении
поддержки нативного Юникода в PHP
❏ На ранних этапах проектирования были приняты неверные решения по
архитектуре ядра, проект заморозили.
❏ Учитывая наработки PHP NG => от версии 6 решили отказаться 10
PHP 7.0
❏ Производительность и безопасность
❏ Больше исключений для обработки фатальных ошибок
❏ Type hint скаляров и return-типы
❏ assert()
❏ Анонимные классы
❏ Синтаксический сахар (??, ⇔)
11
PHP 7.1
❏ nullable types
❏ void return
❏ добавлен псевдотип iterable
❏ область видимости для констант
❏ обработка нескольких Exception в одном блоке (Exception |
MyException)
12
PHP 7.2
❏ object как type hint
❏ возможность перегружать абстрактные методы (ломаем SOLID, привет
Барбара Лисков)
❏ В ядро добавлена поддержка Libsodium(шифрование) и
Argon2(создание хеша)
❏ синтаксический сахарок(запятая в неймспейсах)
13
PHP 7.3
❏ is_countable()
❏ добавили последнюю запятую где только можно
❏ предположительно, типы для свойств
14
Так PHP норм?
15
16
И Таааак ….
❏ Сейчас PHP актуален как для мелких задач, так и для Enterprise
решений
❏ Развитие фреймворков помогают ускорить и поместить в
ограниченные рамки разработку
❏ Тимлиды и инструменты не дремлют(gitlab, CI, docker, gitflow ….)
❏ Инфраструктура и Composer - супер круты, привет Jordi =)
❏ PHP-FIG (PHP Framework Interop Group)
❏ Скалинг приложения написанного на PHP гораздо проще чем на
др.
17
Какие фреймворки есть сейчас
❏ Laravel
❏ Symfony
❏ Yii 2
❏ CakePHP
❏ Codeigniter
❏ Zend Framework
❏ ReactPHP
❏ Phalcon
❏ FuelPHP
❏ Slim, Silex (от
SensioLabs) ...
18
Laravel
❏ Крутейший маркетинг. На данный момент самый популярный
❏ Документация годная (англ. и рус.)
❏ Секретные фичи, о которых говорят только на конференциях
❏ На мой взгляд попытка копировать тот же Symfony (Xbox, PS)
19
Symfony
❏ Сильные рамки. Плюс тяжеловесность
❏ Хорошие бест практис и комьюнити
❏ Под капотом много встроенного + панель профайлер
❏ Идет в ногу со временем, не успеваешь переходить на новые
версии (2.8-4.1) =)
❏ Очень похож по стилю на Java и Spring
20
Phalcon
❏ Рвет всех по производительности
❏ Поставляется как С-расширение и внутрь путь закрыт
❏ Что-то отдебажить очень трудно
❏ Документации мне показалось маловато
21
ReactPHP
❏ Асинхронный PHP Юхууу. Отличный вариант для асинхронных
демонов.
❏ Реактивный не в смысле как ракета - от слова “реакция”
❏ Promise ….
22
CodeIgniter
❏ Да, он все еще жив
❏ Легковесный, не требует движка шаблонов ….
❏ Установка = распакуйте ZIP, в 2018 то году ….
❏ MVC
❏ Беглый взгляд на новую версию, напомнил мне старую…
❏ Документация не очень
23
А может ну их эти фреймворки?
24
А может ненадо?
❏ Либы отдельно может и норм, но как они уживутся вместе?
❏ Поддержка всего этого зоопарка
❏ Как обучить команду(новых людей)?
❏ Нужно писать доку, кто любит?
❏ Сроки … вчера?
❏ Один в поле не воин
25Надо Федя, надо...
Подытожить нужно бы
26
❏ PHP уже не тот что был и это хорошо! Никаких тебе .php3 =)
❏ Хорошее направление развития приносит свои плоды
❏ Разделение Frontend’a и Backend’a расширило границы
использования PHP (IoT)
❏ Фреймворки были, есть и будут, но возможно без фронта
❏ Промышленное программирование на PHP уже не прикол
❏ ...
27
Аплодисменты
(с) K.Litvinov
28
Вопросы?
29

Php and frameworks

  • 1.
  • 2.
  • 3.
    ❏ Более 80%сайтов в мире использует PHP, из которых 27,5% сделано на WordPress, 3,3% на Joomla, 2,2% - Drupal, 1,2% Magento. То есть даже если убрать CMS платформы, почти половина интернета нуждается в помощи PHP-специалистов. ❏ За последние 8 лет рост доли влияния PHP составил более, чем 10%. ❏ PHP в качестве серверной базы используют Facebook, Wikipedia, Yahoo, Flickr, SourceForge, Tumblr и т.д. Они кое-что понимают в трендах. ❏ Согласно свежему рейтингу TIOBE, PHP – 7-й по популярности язык в мире, он “круче” чем Swift, Ruby и Go =) Немного фактов о PHP 3
  • 4.
  • 5.
    TIOBE Index forJune 2018 5
  • 6.
    Возвращаясь в прошлое 6 ❏легкий порог вхождения = много плохого кода ❏ много плохого кода = плохое всеобщее мнение ❏ отсутствие инфраструктуры и архитектуры организации приложений и инструментов ❏ узконаправленность использования языка ❏ “относительно” медленная скорость работы(по сравнению с версией 7.x)
  • 7.
  • 8.
  • 9.
  • 10.
    Как это было ❏PHP 5.6 => начало эпохи фреймворков => нужна производительность! ❏ синтетические тесты => ”пилим” собственный JIT компилятор ❏ LLVM => увеличение производительности в 10 раз на синт.тестах ❏ никакого “профита”, на реальных приложениях (~ 2 мин. на реквест Wordpress) ❏ Скажи “НЕТ” синтетическим тестам! ❏ оптимизируй работу с внутренними структурами данных ❏ добавь промежуточный слой Abstract Syntax Tree перед компиляцией ❏ получи профит в 30% ускорения производительности. ❏ Начало нового проекта PHP NG ❏ Так куда же делась 6 версия? ❏ Направление ветки PHP 6 в основном заключалось в добавлении поддержки нативного Юникода в PHP ❏ На ранних этапах проектирования были приняты неверные решения по архитектуре ядра, проект заморозили. ❏ Учитывая наработки PHP NG => от версии 6 решили отказаться 10
  • 11.
    PHP 7.0 ❏ Производительностьи безопасность ❏ Больше исключений для обработки фатальных ошибок ❏ Type hint скаляров и return-типы ❏ assert() ❏ Анонимные классы ❏ Синтаксический сахар (??, ⇔) 11
  • 12.
    PHP 7.1 ❏ nullabletypes ❏ void return ❏ добавлен псевдотип iterable ❏ область видимости для констант ❏ обработка нескольких Exception в одном блоке (Exception | MyException) 12
  • 13.
    PHP 7.2 ❏ objectкак type hint ❏ возможность перегружать абстрактные методы (ломаем SOLID, привет Барбара Лисков) ❏ В ядро добавлена поддержка Libsodium(шифрование) и Argon2(создание хеша) ❏ синтаксический сахарок(запятая в неймспейсах) 13
  • 14.
    PHP 7.3 ❏ is_countable() ❏добавили последнюю запятую где только можно ❏ предположительно, типы для свойств 14
  • 15.
  • 16.
  • 17.
    И Таааак …. ❏Сейчас PHP актуален как для мелких задач, так и для Enterprise решений ❏ Развитие фреймворков помогают ускорить и поместить в ограниченные рамки разработку ❏ Тимлиды и инструменты не дремлют(gitlab, CI, docker, gitflow ….) ❏ Инфраструктура и Composer - супер круты, привет Jordi =) ❏ PHP-FIG (PHP Framework Interop Group) ❏ Скалинг приложения написанного на PHP гораздо проще чем на др. 17
  • 18.
    Какие фреймворки естьсейчас ❏ Laravel ❏ Symfony ❏ Yii 2 ❏ CakePHP ❏ Codeigniter ❏ Zend Framework ❏ ReactPHP ❏ Phalcon ❏ FuelPHP ❏ Slim, Silex (от SensioLabs) ... 18
  • 19.
    Laravel ❏ Крутейший маркетинг.На данный момент самый популярный ❏ Документация годная (англ. и рус.) ❏ Секретные фичи, о которых говорят только на конференциях ❏ На мой взгляд попытка копировать тот же Symfony (Xbox, PS) 19
  • 20.
    Symfony ❏ Сильные рамки.Плюс тяжеловесность ❏ Хорошие бест практис и комьюнити ❏ Под капотом много встроенного + панель профайлер ❏ Идет в ногу со временем, не успеваешь переходить на новые версии (2.8-4.1) =) ❏ Очень похож по стилю на Java и Spring 20
  • 21.
    Phalcon ❏ Рвет всехпо производительности ❏ Поставляется как С-расширение и внутрь путь закрыт ❏ Что-то отдебажить очень трудно ❏ Документации мне показалось маловато 21
  • 22.
    ReactPHP ❏ Асинхронный PHPЮхууу. Отличный вариант для асинхронных демонов. ❏ Реактивный не в смысле как ракета - от слова “реакция” ❏ Promise …. 22
  • 23.
    CodeIgniter ❏ Да, онвсе еще жив ❏ Легковесный, не требует движка шаблонов …. ❏ Установка = распакуйте ZIP, в 2018 то году …. ❏ MVC ❏ Беглый взгляд на новую версию, напомнил мне старую… ❏ Документация не очень 23
  • 24.
    А может нуих эти фреймворки? 24
  • 25.
    А может ненадо? ❏Либы отдельно может и норм, но как они уживутся вместе? ❏ Поддержка всего этого зоопарка ❏ Как обучить команду(новых людей)? ❏ Нужно писать доку, кто любит? ❏ Сроки … вчера? ❏ Один в поле не воин 25Надо Федя, надо...
  • 26.
  • 27.
    ❏ PHP ужене тот что был и это хорошо! Никаких тебе .php3 =) ❏ Хорошее направление развития приносит свои плоды ❏ Разделение Frontend’a и Backend’a расширило границы использования PHP (IoT) ❏ Фреймворки были, есть и будут, но возможно без фронта ❏ Промышленное программирование на PHP уже не прикол ❏ ... 27
  • 28.
  • 29.