Язык программирования php
TRANSCRIPT
Язык
программирования
PHP
О докладчике
○ Василий Гудошников, веб-разработчик.
○ Компания Virtual Frameworks LLC.
○ PHP Background: Drupal, Yii, Laravel.
Тема для разговора
○ Особенности языка.
○ О популярности.
○ Прошлое. Настоящее. Будущее.
○ Сообщество разработчиков.
Особенности
○ Мультипарадигменный. Преобладает ООП.
○ Динамическая система типов.
○ Интерпретируемый. Компилируется в опкод.
○ Создавался для веб-разработки.
○ Создан чтобы умирать: приложение запускается на
каждый HTTP-запрос и живет до отдачи ответа
клиенту.
О популярности
○ PHP используется на ~80% всех веб-сайтов, язык
программирования которых известен.
○ PHP считается простым языком для начинающих.
○ PHP разработчиков много… но трудно найти
хорошего специалиста.
○ WordPress, Drupal, Joomla, Magento, MODX, TYPO3...
○ Facebook, VK, WikiPedia, Badoo...
○ Устанавливаем сборку веб-сервера (denwer, xampp,
open server).
○ Создаем index.php.
○ <h1><?php echo ‘Hello World!’; ?></h1>
○ Открываем браузер.
○ PROFIT.
Низкий порог входа
Прошлое
○ Бардак в глобальном пространстве имен.
○ Текстовые ошибки вместо исключений.
○ Обратная совместимость с предыдущей версией.
○ Процедурный стиль программирования.
○ Все в одном файле: смешивание обработки HTTP-
запроса, бизнес-логики и представления.
«PHP был разработан в середине 90-х годов, в том время, когда никто не мог себе представить веб так, как он выглядит сегодня. Некоторые из интересных функций того времени превратились
в кошмар сегодня. Существует много того что требует улучшения»
© Frank Karlitschek
Настоящее
○ Namespaces, Lambdas, Generators (yield).
○ HHVM - JIT-компилятор и виртуальная машина.
○ Java-style OOP.
○ Аннотации (через Reflection).
○ Cтандарты PSR от PHP-FIG.
○ Единый Dependency Manager - Composer.
○ Путь к унификации экосистемы.
PSR-2 (coding style)
+
PSR-4 (autoloader)
+
Composer
Основа для
современных php-
проектов⇒
Будущее
○ ReactPHP - платформа для разработки серверных/сетевых
приложений. Аналог NodeJS.
○ Hacklang - новый язык для HHVM.
○ Zephir - статический язык для разработки PHP-расширений.
○ PHPNG, JIT.
○ Исключения вместо вывода ошибок на экран.
○ Удаление устаревшей функциональности.
○ Более удобная работа с юникодом.
○ Более богатый и выразительный синтаксис.
Интрументарий
○ Фреймворки-монстры: Symfony, Zend, Phalcon.
○ RAD-фреймворки: Yii, Laravel.
○ Микрофреймворки: Silex, Slim, Phalcon.
○ ORM: Doctrine, PHP ActiveRecord.
○ Testing: PHPUnit, Codeception, Behat.
○ Dependency management: Composer.
○ IDE: PhpStorm, Eclipse PDT.
○ Task managers: Phing, Robo.
○ Отладка: Xdebug, PHPDBG, forp.
○ ...тысячи их
Спасибо за внимание
○ Официальный сайт: http://php.net/
○ Стандарты: http://www.php-fig.org/
○ Composer: https://getcomposer.org/
○ HipHop VM: http://hhvm.com/
○ Hacklang: http://hacklang.org/
○ Zephir: http://zephir-lang.com/
○ Обсуждение нововведений: https://wiki.php.net/rfc
Были использованы материалы из доклада Михаила Боднарчука.