PHP Profi

Пакеты

ПакетыSlack. Отправка простого сообщения.

Недавно я писал пост о реинкарнации популярного PHP-пакета для Slack, в котором рассказывалось о форке популярного пакета и возобновлении поддержки оного. Однако, в статье нет ни слова о том как его использовать. Кроме того, на русском языке нет ни слова об использовании этого пакета. Да и об отправке сообщений в Slack в целом практически нет информации. Я решил исправить эту ситуацию и рассказать о том как можно быстро реализовать на PHP простейшую отправку сообщений в Slack.

Отправка Slack-сообщения на PHP

Сначала давайте взглянем в целом на реализацию отправки. Что бы мы могли отправить сообщение из PHP, нам необходимо сделать 3 небольших и простых пункта:

2018-01-24 alek13

ПакетыРеинкарнация популярного PHP-пакета для Slack

Всем привет!

Сегодня я хочу рассказать о небольшом, но популярном open source пакете и попросить у вас помощи и поддержки.

Slack

Все вы наверняка использовали Slack в своих командах для упрощения работы над проектом. В этом плане Slack - очень удобная штука.

2018-01-10 alek13

ПакетыАсинхронный параллельный запуск кода в PHP на примере Laravel Collection

Фреймворк Laravel имеет отличный класс для работы с коллекциями, который имеет много полезных операций. Класс также является macroable. Это означает, что к нему можно добавлять функции во время выполнения путем вызова его метода macro и передачи названия и замыкания. В наших проектах мы, как правило, пишем один и тот же макрос снова и снова. Вот почему мы вынесли эти макросы в пакет laravel-collection-macros, так что вы можете их использовать, котоый основан на amphp/parallel.

В этом посте я хотел бы поговорить немного о новом макросе,  называемом parallelMap. parallelmap идентична map`у, но каждый элемент в коллекции будут обрабатываться параллельно.

Давайте взглянем на пример:

2017-12-25 irul

ПакетыПроизводительность AMQP-клиентов на PHP. Benchmark`и всех!

Рост популярности AMQP interop вызвал волну вопросов относительно того, какой адаптер является самым быстрым. В этом посте я хочу поделиться своими выводами о производительности постановки сообщений в очередь. Позже будет подобный пост о "разгребании" очереди.

Рассмотрим:

а также их адаптеры с имплементацией AMQP interop:

и один из мира Golang:

2017-12-22 alek13

ПакетыMockery: разные возвращаемые значения при разных аргументах

Иногда при работе с mock объектами библиотеки Mockery, мы хотим сообщить фейковому методу, чтобы он возвращал разные значения для разных аргументов. Это редкий случай, когда мне нужна эта функциональность, но каждый раз, когда мне это нужно, я счастлив, что она есть.

2017-12-21 alek13

Пакеты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