DevConf
Компания
62,95
рейтинг
21 мая 2014 в 09:08

Разработка → Отдай свой PHP на прокачку — PHPNG — движок нового поколения

Дмитрий Стогов — автор идеи нового движка PHPNG выступит с докладом на DevConf 2014.


Предлагаем Вашему вниманию интервью с докладчиком:

— Расскажите пару слов о себе?

С PHP работаю лет 12, из них уже более 10 в Zend.
Автор MMCache, ext/soap, pecl/perl.
Майнтэйнер Zend OPCache.
Один из основных разработчиков php.net.
Участвовал в разработке компонентов Zend Server, Zend Framework, phpcloud.com…

— Можете сказать пару слов о своём докладе помимо того, что есть в описании?

Доклада еще нет — то что я подготовлю сегодня может устареть уже через неделю.
phpng — экспериментальная и очень динамично развивающаяся ветка PHP.
Объем изменений в коде, сделанных за 5 месяцев, превышает 9MB.

Уже поддерживается большинство стандартных расширений (на сегодняшний день только 17 еще не адаптированы).
Мы уже тестировали phpng с wordpress, drupal, SugarCRM, ZF2 и везде отмечали как минимум 10% (а то и до 30%) увеличение производительности и значительное уменьшение потребления памяти. На самом деле мы делаем только первые шаги, но уже сейчас всем в PHP community понятно, что это основной претендент на ядро следующей версии PHP. Ну а все пользователи получат более быстрый инструмент.

— На кого ориентирован ваш доклад?

В первую очередь на разработчиков, знакомых с С (в докладе будут некоторые технические подробности реализации).
Надеюсь, он так же будет интересен и представителям компаний с web приложениями с высокой нагрузкой.
Ну и всем кто интересуется будущим PHP.

— Что нового узнает слушатель вашего доклада?

Ключевые архитектурные изменения в ядре PHP, которые позволят существенно поднять производительность, возможно, история его разработки и планы на будущее.

Голосуйте за заявку Дмитрия Стогова на DevConf 2014

Автор: @phpclub
DevConf
рейтинг 62,95
Компания прекратила активность на сайте

Комментарии (8)

  • +3
    Можно будет и послушать. Весьма занятно.
  • 0
    По-моему, в новой версии PHP хотят задействовать наработки PHPNG
    • 0
      но уже сейчас всем в PHP community понятно, что это основной претендент на ядро следующей версии PHP
  • 0
    Интересно, phpng позволит делать типизированные скалярные параметры функции и автоподгрузку функций? Голосую, в общем, за доклад!
    • 0
      Нет. Изменения в phpng относятся только к нутру рантайма (я так понял оптимизированы zval контейнеры, управление памятью, переписана виртуальная машина). Тайп хинтинг для скаляров уже существовал и до этого в виде отдельного патча и даже расширения (было даже предложение запилить это дело в php 5,5 но отказались). Автоподгрузка функций — вопрос только автоподгрузки, это слабо связано с runtime (с его реализацией). Ну и это так же предложение было отклонено. Возможно если предложат более приличную реализацию — то может и появится, но в таком виде это в php не нужно. Да и кейс сомнительный.
      • 0
        Жаль.
        Да и кейс сомнительный.

        Сразу скажу, не ради холивара, но…
        Вызывать функцию из библиотеки удобно. Например, как библиотека Math. Да это реализуется статическими методы, но, во-первых, в PHP нет partial class, а значит нельзя разнести библиотеку по разным файлам, во-вторых, в PHP есть разница между обращением к namespace и к статическим методам (да да, paamayim nekudotayim). И синтаксис страдает из-за этого: \Math\Trigonometry::cos, но \Math::sum, к примеру. Второй пункт дело вкуса, конечно же.
        В-третьих, не все такие ярые поклонники ООП и lisp-way мне лично ближе по духу. Но видимо, мнение большинства важнее, так что остается только мечтать, ну ничего без автодополнений тоже живут и жили люди.
        • 0
          без автоподгрузки, вы хотели сказать.

          Вопрос в том, что на данный момент небыло предложено ни одного адекватного примера реализации (даже просто на уровне предложения, без конкретно реализации) автоподгрузки функций. Все что я пока видел в обсуждениях либо выглядело ужасно, либо ломало обратную совместимость со всеми стандартными автозагрузчиками. Никто не мешает выдвинуть на обсуждение идею реализации, если она есть. Если есть объективные prof/cons и т.д.

          Что до разнесения функций по неймспейсам — такая возможность есть, причем с версии 5,6 даже относительно полноценная. Разве что вопрос автоподгрузки посчитали лишним для этого обсуждения. Да и очень много сложностей, скажем у вас есть такая структура:
          src/
             |-  Math/
                     | - trigonomerty.php // Math\cos(), Math\sin()
                     | - common.php // Math\max(), Math\min()
          


          Как бы вы организовали автоподгрузку при таком случае?

          В контексте этого вопроса намного выгоднее иметь какой-то механизм модулей, что бы все было аккуратненько инкапсулировано в него, как это делается допустим в python.

          Собственно так же и с тайп хинтингом для скаляров. Слишком много нюансов изза системы типов PHP, а точнее нюансы с приведением типов.
          • 0
            Как бы вы организовали автоподгрузку при таком случае?

            Видимо:
            Точно так же как и подгрузку классов, т.е. перебираем файлы пока не найдется нужна функция, а уж как мы реализуем autoload чтобы эффективно работало — наше дело. Разнесение функций по разным файлам. Благо компиляторы байт-кода прекрасно справляются с большим количеством файлов.
            без автоподгрузки, вы хотели сказать.

            Нет, я про autocomplete. Сейчас приходится создавать файл с анонимными функциями, что-то вроде
            <?php
            return array(
            'func' => function($a, $b, $c){}
            );
            

            Соответственно при вызове такой функции, подстветки параметров нет.

            Вопрос в том, что на данный момент небыло предложено ни одного адекватного примера реализации (даже просто на уровне предложения, без конкретно реализации) автоподгрузки функций. Никто не мешает выдвинуть на обсуждение идею реализации, если она есть. Если есть объективные prof/cons и т.д.

            Предложения по принципу работы или по способу реализации этого в исходниках PHP?

            Все что я пока видел в обсуждениях либо выглядело ужасно, либо ломало обратную совместимость со всеми стандартными автозагрузчиками.

            Хм, странно, казалось бы, никакой связи с загрузкой классов нет.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разработка