Сегодня мы рады объявить о доступности новой версии нашей библиотеки помощника для PHP. Библиотека предоставляет новые функции и использует современные возможности языка PHP. Мы полностью переработали её с нуля, основываясь на отзывах разработчиков, полученных от вас.
Ранее в этом году мы представили новые вспомогательные библиотеки Twilio и поделились информацией о том, как Twilio автоматически генерирует все свои библиотеки с помощью внутреннего фреймворка. Цель заключалась в том, чтобы сделать библиотеки более согласованными, ускорить их обновление и улучшить их качество. Общая основа для всех языков обеспечивает единообразие и ускоряет выпуск новых функций и исправление ошибок. Новые функции или исправления, добавленные в базовый фреймворк, становятся доступными для всех библиотек одновременно.
Ещё в 2011 году мы выпустили текущее поколение вспомогательных библиотек. С тех пор PHP значительно эволюционировал, и наша новая библиотека должна отражать эти изменения. Мы обновили способ передачи аргументов в методы. Теперь обязательные параметры метода передаются как отдельные аргументы, а все остальные параметры — через ассоциативный массив. Это делает код более читаемым и позволяет библиотеке обнаруживать отсутствующие параметры до отправки HTTP-запроса. При таком подходе библиотека формирует запрос только при наличии всех обязательных параметров.
Использование пространств имён и улучшение комментариев к классам значительно улучшили работу в вашей IDE. Вот пример более полезного автозаполнения в PHPStorm:
Учитывая ваши отзывы, мы доработали то, что уже хорошо работало, и улучшили то, что можно было сделать лучше. Два самых частых запроса — улучшенная поддержка постраничной навигации и пространств имён — теперь реализованы в новых библиотеках.
Новая библиотека помощника для PHP официально поддерживается и готова к использованию в продакшене.
Лучше всего начать с нового руководства по началу работы, которое охватывает установку и отправку первого сообщения.
Наши примеры кода теперь поддерживают как новые, так и старые библиотеки. Вы можете переключаться между версиями в правом верхнем углу блоков с кодом, чтобы увидеть различия.
Ещё один полезный ресурс — руководство по миграции, особенно если вы знакомы с предыдущей версией. В нём описаны новые функции и основные отличия.
Новые библиотеки выпускаются в двух версиях: основная (mainline), содержащая стабильные продукты, и «edge», включающая новые функции, находящиеся на стадии Developer Preview или Beta. Более подробно о нашей стратегии версионирования можно прочитать здесь.
**Пространства имён**
Новый SDK использует пространства имён PHP для корректной автозагрузки. Вы сможете использовать пространства имён, как в следующем примере.
**Доступ к REST-ресурсам**
Новая библиотека повышает эффективность работы с сетью и вводит два новых понятия:
— Контекст ресурса: ссылка на ресурс в REST API, который ещё не был обработан или получен
— Экземпляр ресурса: представление ресурса, полученного из API после выполнения операции
HTTP-запрос выполняется только после вызова метода fetch().
**Списки и постраничная навигация ресурсов**
Получение списков ресурсов из API происходит по аналогичной схеме. Для постраничной навигации по большим наборам результатов можно использовать метод «stream», который возвращает итератор, автоматически перебирающий все возможные результаты для вашего контекста ресурса.
Более подробный обзор представлен в руководстве по миграции.
В дальнейшем новые функции будут добавляться только в новые библиотеки (PHP 5.x). Старые библиотеки (PHP 4.x) будут официально поддерживаться до 30 ноября 2016 года. После этой даты Twilio перестанет предоставлять исправления ошибок, а служба поддержки может попросить вас обновиться перед началом отладки.
Мы будем рады вашим отзывам о других кандидатах на выпуск. Они уже доступны на GitHub, и мы ждём ваших тикетов с проблемами и запросов на включение изменений.
Следующим языком, для которого мы выпустим библиотеку, станет Java. Следите за обновлениями!