PHP Profi

Пакеты

ПакетыPHP GraphQL пакеты и интеграции с Symfony

GraphQL продолжает набирать обороты в 2017 году. Хотя он и не является заменой для REST, он обеспечивает пользователей контентных API и т. п. лучшей эргономикой, чем RESTful-интерфейсы общего назначения. Для PHP существуют две популярные библиотеки, и обе имеют бандлы для интеграции с Symfony.

Реализация GraphQL-совместимого сервера — не тривиальная задача, да и создавать с нуля свой собственный не рекомендуется (на любом языке). Для PHP на данный момент есть две библиотеки, которые предлагают прочную основу для построения реализаций GraphQL:

2017-11-23 alek13

ПакетыWhoops! Наглядное отображение ошибок в PHP

Когда мы сталкиваемся с ошибками в PHP, каждый раз это, мягко говоря, тихий ужас. А если вы вспомните как вы в первый раз смотрели на это сообщение и пытались понять, что "от вас вообще хотят" и как это чудо читать и понимать, то вы точно со мной согласитесь. Не то чтобы эти сообщения об ошибках не информативны, — нет там достаточно информации, — но читать их практически невозможно. Ну как минимум очень неудобно, а как следствие — долго, что прямо влияет на скорость разработки. Конечно, если у вас стоит и настроен xDebug, это немного спасает ситуацию, но не особо.

В довершение к тому, что эти сообщения не читабельны и плохо воспринимаются, добивает то, что на поиск места в коде в вашем любимом IDE уходит достаточно много времени (ну больше, чем хотелось бы). Ну и напоследок, в тот момент, когда вы открыли нужное место в коде, вы тут же поняли, что ошибка явно произошла не здесь, а где-то выше или ниже по стеку. И нужно вновь открывать станицу с ошибкой, изучать сек вызова и вновь искать нужный фрагмент кода. Неприятное и муторное занятие.

И вот тут решить все эти проблемы нам поможет Whoops!

Что такое Whoops

2017-11-15 alek13

ПакетыМногопоточное программирование в PHP с помощью Pthreads

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

В этой статье мы взглянем на то, как многопоточность может быть достигнута в PHP с помощью расширения pthreads. Для этого потребуется установленная ZTS (Zend Thread Safety) версия PHP 7.x, вместе с установленным расширением pthreads v3. (На момент написания статьи, в PHP 7.1 пользователям нужно будет установить из ветки master в репозитории pthreads  – см. подробнее как установить (en) стороннее расширение.)

2017-04-04 alek13

ПакетыУвеличение производительности памяти при помощи Generators и Nikic/Iter

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

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

2015-10-29 irul

ПакетыМонолитные репозитории для PHP и Composer

Монолитные репозитории предоставляют множество преимуществ. Я создал прототип Fiddler - дополнение для Composer, добавляющее управление зависимостями для монолитных репозиториев в PHP.

2015-05-05 irul