Обо мне
Поговорим про
- PHP.
- Его направление.
- Что изучать?
- На какой фреймворк перепрыгнуть?
- Yii.
Рассказывать буду, в основном, для тех, кто учится.
Начнём с PHP
Куда движется язык?
Но сначала немного про языки
Чем один язык отличается от другого?
Пользователи
- Новички.
- Специалисты.
- Профессионалы.
- ...
В бизнесе редко бывают на 100% «звёздные» команды. Нужен ± язык для новичков.
Новичкам нужны
- Рамки.
- Строгость.
- Примеры.
- Java для новичков.
- Python для бывалых.
- JavaScript...
Фичи не так важны
В вебе мы почти всё собираем из готового.
Если надо что-то эдакое — микросервис на golang
поможет.
- Свои проекты для души.
- Свои проекты $.
- Команды $.
- Много команд $.
PHP 7.0
- Производительность.
- Больше исключений.
- Тайпхинты скаляров и return-типы.
- assert().
- Безопасность.
- Всегда кешируется phpdoc = аннотации.
PHP 7.1
- nullable types.
- void return.
- Область видимости для констант.
- pcntl_async_signals.
PHP 7.2
- object как тайпхинт.
- Ещё больше безопасности.
- Сахар.
- Где-то посередине между «для новичков» и «для души».
- Фреймворки могут сместить планку в ту или иную сторону.
- Тимлиды и инструменты не дремлют.
- Позволяет делать годные прототипы очень быстро.
- Инфраструктура хороша! Composer.
- stateless по умолчанию.
Что изучать?
То, что пригодится всегда
- ООП/ООД. Проверка: cohesion/coupling.
- HTTP/HTTPS/REST.
- Безопасность.
- SQL.
- CAP (Consistency-Availability-Partition Tolerance).
- Базовые понятия о сложности алгоритмов.
- Рефакторинг.
- Linux.
Это не значит что фреймворк и язык не надо изучать!
Бизнесу важно
- Предсказуемость.
- Скорость.
- Стоимость.
- Умение выражать мысли.
- Умение резать углы.
- Умение оценивать задачи.
- Любознательность.
На какой фреймворк перепрыгнуть?
- Laravel.
- Symfony.
- Yii 2.
- CakePHP.
- CodeIgniter.
- Zend Framework.
- reactphp.
- Phalcon.
- FuelPHP.
- Slim, F3, ...
Laravel
- Крутейший маркетинг. На данный момент самый популярный.
- Секретные приоритеты. Как у Apple.
- Спорное отношение к сообществу.
- Годный.
Symfony
- Сильные рамки.
- Проблемы производительности решает кешем и компиляцией (OroCRM).
- Лучше чтобы кеш работал. Внутри слои.
- Очень похож по стилю на Java и Spring.
Zend Framework
Похож на Symfony. Слишком.
Phalcon
- Рвёт всех по производительности.
- Во внутренности просто так не полезешь.
ReactPHP
Отличный вариант для асинхронных демонов.
Работа в «студии»
Но некоторые делают себе CMS на фреймворках.
Фреймворк должен нравиться.
А может ну их, фреймворки?
А у вас достаточно опыта и времени?
- Собрать фреймворк так и так придётся.
- Либы отдельно может и норм, но как они вместе?
- Как обучить команду?
- Сроки... вчера?
Попробуйте. У нас вышло ;)
Не зацикливайтесь на одном фреймворке или языке
- PHP MVC.
- Очень быстрая разработка.
- Возможность перейти от MVP к поддержке и развитию.
- Много всего из коробки.
- Гибок, прагматичен.
- Позволяет резать углы.
Чуть статистики
- Slack, 921 пользователь.
- 392 проекта на YiiPowered.
- 11951 звёзда на Github.
- 32027 участников Facebook-группы.
Философия Yii
- Только необходимая сложность.
- API и юзабилити кода прежде всего.
- Документировать всё.
- Обратная совместимость и поддержка — это важно.
- Слушать сообщество.
- OpenSource — совместная работа над общим инструментом.
Как и у любого фреймворка у Yii есть сильные и слабые стороны.
- RAD
- Не очень строг
- Абстракции достаточно тонкие
- Производительность
- ...
Взяли слишком много всего сразу
И засунули слишком много в ядро.
- jQuery.
- PJAX.
- CAPTCHA.
- Masked input.
- Остальной клиентсайд :(
fxp composer plugin
Попил много крови, но вроде стабилизировался.
Не использовали многие PSR в разработке
Их приняли, а у нас обратная совместимость.
- Новый сайт (тоже OpenSource).
- Улучшения в инфраструктуре.
- Перелопачены внутренности AR.
- Собрали много фидбэка.
- Yii 2.0 заморожен по фичам.
- Yii 2.1 пилим.
- yiisoft/di.
- Пока поддерживаем 1.1.
Время вопросов!
Что бы вы хотели увидеть в 3.0?