SlideShare ist ein Scribd-Unternehmen logo
1 von 29
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

Weitere ähnliche Inhalte

Was ist angesagt?

Павел Пушкарев — «Развертывание верстки»
Павел Пушкарев — «Развертывание верстки»Павел Пушкарев — «Развертывание верстки»
Павел Пушкарев — «Развертывание верстки»
Yandex
 
Platypus platform ivbit
Platypus platform ivbitPlatypus platform ivbit
Platypus platform ivbit
jskonst
 
#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...
#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...
#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...
Nikolay Samokhvalov
 
Shytikov on git Magic
Shytikov on git MagicShytikov on git Magic
Shytikov on git Magic
shytikov
 

Was ist angesagt? (19)

Как писать на PHP и не стать быдло-кодером
Как писать на PHP и не стать быдло-кодеромКак писать на PHP и не стать быдло-кодером
Как писать на PHP и не стать быдло-кодером
 
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6
 
Павел Пушкарев — «Развертывание верстки»
Павел Пушкарев — «Развертывание верстки»Павел Пушкарев — «Развертывание верстки»
Павел Пушкарев — «Развертывание верстки»
 
Повышаем и следим за качеством PHP кода
Повышаем и следим за качеством PHP кодаПовышаем и следим за качеством PHP кода
Повышаем и следим за качеством PHP кода
 
Данил Ильиных и Владимир Иванов, «Велогосипед»
Данил Ильиных и Владимир Иванов, «Велогосипед»Данил Ильиных и Владимир Иванов, «Велогосипед»
Данил Ильиных и Владимир Иванов, «Велогосипед»
 
1. видеоуроки по php
1. видеоуроки по php1. видеоуроки по php
1. видеоуроки по php
 
BeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демоновBeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демонов
 
Сравнение технологий aiopg & asyncpg, Алексей Фирсов. 22 июня, 2019
Сравнение технологий aiopg & asyncpg, Алексей Фирсов. 22 июня, 2019Сравнение технологий aiopg & asyncpg, Алексей Фирсов. 22 июня, 2019
Сравнение технологий aiopg & asyncpg, Алексей Фирсов. 22 июня, 2019
 
Platypus platform ivbit
Platypus platform ivbitPlatypus platform ivbit
Platypus platform ivbit
 
курс Java 2016. занятие 03. интерфейсы, generic, исключения
курс Java 2016. занятие 03. интерфейсы, generic, исключениякурс Java 2016. занятие 03. интерфейсы, generic, исключения
курс Java 2016. занятие 03. интерфейсы, generic, исключения
 
Anton Bolshakov - Joint anti-crime. Open source security
Anton Bolshakov - Joint anti-crime. Open source securityAnton Bolshakov - Joint anti-crime. Open source security
Anton Bolshakov - Joint anti-crime. Open source security
 
Ігор Карпиленко — PHPStorm for drupal developer
Ігор Карпиленко — PHPStorm for drupal developerІгор Карпиленко — PHPStorm for drupal developer
Ігор Карпиленко — PHPStorm for drupal developer
 
Как не подавиться большим старым проектом. Юрий Минаев ➠ CoreHard Autumn 2019
Как не подавиться большим старым проектом. Юрий Минаев ➠  CoreHard Autumn 2019Как не подавиться большим старым проектом. Юрий Минаев ➠  CoreHard Autumn 2019
Как не подавиться большим старым проектом. Юрий Минаев ➠ CoreHard Autumn 2019
 
#noBackend, или Как выжить в эпоху толстеющих клиентов
#noBackend, или Как выжить в эпоху толстеющих клиентов#noBackend, или Как выжить в эпоху толстеющих клиентов
#noBackend, или Как выжить в эпоху толстеющих клиентов
 
REPL в Node.js: улучшаем быт разработчик
REPL в Node.js: улучшаем быт разработчикREPL в Node.js: улучшаем быт разработчик
REPL в Node.js: улучшаем быт разработчик
 
#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...
#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...
#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...
 
Shytikov on git Magic
Shytikov on git MagicShytikov on git Magic
Shytikov on git Magic
 
Контроль за стилем кода — Кирилл Борисов
Контроль за стилем кода — Кирилл БорисовКонтроль за стилем кода — Кирилл Борисов
Контроль за стилем кода — Кирилл Борисов
 
#PostgreSQLRussia 2015.09.15 - Максим Трегубов, CUSTIS - Миграция из Oracle в...
#PostgreSQLRussia 2015.09.15 - Максим Трегубов, CUSTIS - Миграция из Oracle в...#PostgreSQLRussia 2015.09.15 - Максим Трегубов, CUSTIS - Миграция из Oracle в...
#PostgreSQLRussia 2015.09.15 - Максим Трегубов, CUSTIS - Миграция из Oracle в...
 

Ähnlich wie Php and frameworks

Highload2009 Rybak Badoo Os
Highload2009 Rybak Badoo OsHighload2009 Rybak Badoo Os
Highload2009 Rybak Badoo Os
HighLoad2009
 
HappyDev`12 - Александр Чистяков - Большой веб-проект: развитие, рост, пробле...
HappyDev`12 - Александр Чистяков - Большой веб-проект: развитие, рост, пробле...HappyDev`12 - Александр Чистяков - Большой веб-проект: развитие, рост, пробле...
HappyDev`12 - Александр Чистяков - Большой веб-проект: развитие, рост, пробле...
etarasenko
 
Big web project @happydev Omsk
Big web project @happydev OmskBig web project @happydev Omsk
Big web project @happydev Omsk
Alex Chistyakov
 
Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...
Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...
Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...
HappyDev
 
Демонизированный PHP - before it was cool
Демонизированный PHP - before it was coolДемонизированный PHP - before it was cool
Демонизированный PHP - before it was cool
Andrey Tokarchuk
 
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Anthony Marchenko
 
AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012
Roman Pavlushko
 
ekbpy'2012 - Марк Коренберг - Системное программирование на Питоне
ekbpy'2012 - Марк Коренберг - Системное программирование на Питонеekbpy'2012 - Марк Коренберг - Системное программирование на Питоне
ekbpy'2012 - Марк Коренберг - Системное программирование на Питоне
it-people
 
История проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей ШетухинИстория проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей Шетухин
Ontico
 

Ähnlich wie Php and frameworks (20)

Язык программирования PHP
Язык программирования PHPЯзык программирования PHP
Язык программирования PHP
 
Opensource на .NET
Opensource на .NETOpensource на .NET
Opensource на .NET
 
Разработка декстопных приложений для linux (Владимир Яковлев)
Разработка декстопных приложений для linux (Владимир Яковлев)Разработка декстопных приложений для linux (Владимир Яковлев)
Разработка декстопных приложений для linux (Владимир Яковлев)
 
Machine learning c использованием нейронных сетей, Дмитрий Лапин
Machine learning c использованием нейронных сетей, Дмитрий ЛапинMachine learning c использованием нейронных сетей, Дмитрий Лапин
Machine learning c использованием нейронных сетей, Дмитрий Лапин
 
Flame graph: новый взгляд на старое профилирование
Flame graph: новый взгляд на старое профилированиеFlame graph: новый взгляд на старое профилирование
Flame graph: новый взгляд на старое профилирование
 
Highload2009 Rybak Badoo Os
Highload2009 Rybak Badoo OsHighload2009 Rybak Badoo Os
Highload2009 Rybak Badoo Os
 
HappyDev`12 - Александр Чистяков - Большой веб-проект: развитие, рост, пробле...
HappyDev`12 - Александр Чистяков - Большой веб-проект: развитие, рост, пробле...HappyDev`12 - Александр Чистяков - Большой веб-проект: развитие, рост, пробле...
HappyDev`12 - Александр Чистяков - Большой веб-проект: развитие, рост, пробле...
 
Big web project @happydev Omsk
Big web project @happydev OmskBig web project @happydev Omsk
Big web project @happydev Omsk
 
Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...
Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...
Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...
 
Демонизированный PHP - before it was cool
Демонизированный PHP - before it was coolДемонизированный PHP - before it was cool
Демонизированный PHP - before it was cool
 
Serghei Iakovlev "Chaos engineering in action"
Serghei Iakovlev "Chaos engineering in action"Serghei Iakovlev "Chaos engineering in action"
Serghei Iakovlev "Chaos engineering in action"
 
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
 
Viacheslav Eremin about DOT NET (rus lang)
Viacheslav Eremin about DOT NET (rus lang)Viacheslav Eremin about DOT NET (rus lang)
Viacheslav Eremin about DOT NET (rus lang)
 
Invisible
InvisibleInvisible
Invisible
 
AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012
 
Плюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовПлюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
 
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
 
php frameworks
php frameworksphp frameworks
php frameworks
 
ekbpy'2012 - Марк Коренберг - Системное программирование на Питоне
ekbpy'2012 - Марк Коренберг - Системное программирование на Питонеekbpy'2012 - Марк Коренберг - Системное программирование на Питоне
ekbpy'2012 - Марк Коренберг - Системное программирование на Питоне
 
История проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей ШетухинИстория проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей Шетухин
 

Php and frameworks

  • 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
  • 5. TIOBE Index for June 2018 5
  • 6. Возвращаясь в прошлое 6 ❏ легкий порог вхождения = много плохого кода ❏ много плохого кода = плохое всеобщее мнение ❏ отсутствие инфраструктуры и архитектуры организации приложений и инструментов ❏ узконаправленность использования языка ❏ “относительно” медленная скорость работы(по сравнению с версией 7.x)
  • 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 ❏ nullable types ❏ 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
  • 16. 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Надо Федя, надо...
  • 27. ❏ PHP уже не тот что был и это хорошо! Никаких тебе .php3 =) ❏ Хорошее направление развития приносит свои плоды ❏ Разделение Frontend’a и Backend’a расширило границы использования PHP (IoT) ❏ Фреймворки были, есть и будут, но возможно без фронта ❏ Промышленное программирование на PHP уже не прикол ❏ ... 27