Статьи

Новости PHP, которые вы могли пропустить — сентябрь, октябрь 2014

В уже знакомом формате, вот больше новостей PHP, которые вы, возможно, пропустили за последний месяц или около того. Как обычно, дайте мне знать, если я что-то пропустил!

Drupal 8 — бета 1

Наконец-то вышла долгожданная версия 8 Drupal, хотя и в бета-формате. Теперь вы можете взять его на пробу и протестировать некоторые из его новейших функций.

Полный текст публикации см. Здесь , а чтобы узнать, как можно быстро и легко получить собственный экземпляр и запустить его, см. Наш быстрый совет .

Жрать 5 и кольцо PHP

« Если вам понравилось, тогда вам следует надеть кольцо »
— Иисус

Если серьезно, то Guzzle 5 уже вышел. Насколько это безумие? Это было не так давно, что мы все еще знакомились с ним, и здесь он уже может похвастаться версией 5 и асинхронными запросами .

Короче говоря, после получения большого количества запросов на асинхронную поддержку в Guzzle, плодовитый Майкл Даулинг создал Ring PHP , новый драйвер для запросов Guzzle:

RingPHP будет новой системой обработки в Guzzle 5 (дата выпуска TBD). RingPHP дает Guzzle возможность отправлять асинхронные запросы, значительно снижает сложность создания новых обработчиков и дает гораздо более простые и более явные переходы состояний запросов в Guzzle.

На RingPHP сильное влияние оказывают Clojure, Clojure Ring и HTTP Kit Clojure, и поэтому он использует различные концепции функционального программирования и использует ассоциативные массивы PHP в качестве основной структуры данных. Использование функциональной композиции и простых ассоциативных массивов позволяет RingPHP быть легко понятным, быстрым и простым для добавления поведения во время выполнения через промежуточное ПО.

Остальное вы можете прочитать здесь, если вам интересно, но в двух словах, Guzzle теперь может выполнять асинхронные запросы, практически не нарушая совместимость с версией 4. Пользователи старого API не должны заметить никакой разницы, за исключением огромной производительности увеличивается из-за неблокирующих перенаправлений и всей остальной магии, о которой говорится в посте, о котором я говорил выше.

Обновления PHP

В общем, мир PHP набирает обороты. Среди наиболее интересных:

Исет Тернары

Теперь у нас есть «троичный isset» (см. Здесь ), который избавляет нас от кода, подобного этому:

$a = isset($_GET['mykey']) ? $_GET['mykey'] : ""

… и давайте напишем то же самое, как это:

 $a = $_GET['mykey'] ?? ""

Альтернативное удаление тегов

Альтернативные теги, такие как "ASP tags (<%) and script tags (<script language=php>) as a means of entering or leaving PHP mode

Смотрите RFC здесь .

Что удивило меня в этом голосовании, так это то, что больше, чем 0 человек проголосовали «нет». Я не могу представить, почему кто-то проголосовал бы против, кроме как по той причине, о которой я говорил выше.

PSR 6 и 7

Примечание. Раздел отредактирован в соответствии с пояснениями Мэтью ниже.

Два PSR, с которыми мало кто знаком, находятся в процессе переопределения и редактирования PHP-FIG, каждый из которых очень важен для дальнейшей стандартизации популярных пакетов и библиотек.

PSR 6 фокусируется на кэшировании и определении общего интерфейса для него. Начало мета-документа говорит само за себя:

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

PSR 7 будет реализовывать общий интерфейс HTTP-сообщений. Группа «[…] добавляет IncomingRequestInterface, который расширяет RequestInterface, для описания доступа к общим источникам входящих данных (например, аргументы строки запроса, куки, метаданные файла загрузки и т. Д.). Цель состоит в том, чтобы сделать пару IncomingRequest / Response вездесущим, и цель для сред MVC и промежуточного программного обеспечения (вместо пользовательских реализаций, реализации для проекта или для платформы); это будет способствовать написанию кода, который может быть разделен между различными структурами. Узнайте больше здесь .

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

Вам может быть интересно, что случилось с PSR 5. PSR 5 — это стандарт PhpDoc, предложенный командой PhpDocumentor, хотя из-за хаотичной природы группы Google, которую использует PHP-FIG, и в целом фрагментарного подхода к обсуждению PSR, я не был в состоянии определить его текущее состояние или когда он будет реализован, если вообще будет. Если вы хотите изучить стандартизацию докблоков, посмотрите здесь .

Расписание PHP 7

Наконец, команда внутренних разработчиков определилась с расплывчатым графиком выпуска PHP 7 — он запланирован на ноябрь 2015 года. Посмотрим, смогут ли они уложиться в этот срок!

Расписание PHP 7: https://wiki.php.net/rfc/php7timeline

HHVM в усадьбе Ларавел

Усадьба Ларавела была немного улучшена. Сам блок был улучшен, чтобы содержать HHVM, предустановленную в версии 3.3.0 (долгосрочная поддержка), и активировать удаленную отладку Xdebug по умолчанию. Файлы репозитория Homestead также были обновлены для возможности активации HHVM.

Естественно, это также означает, что я синхронизировал Homestead Improved с его исходной версией, поглощая все оригинальные изменения Homestead, но сохраняя вещи настолько простыми и эффективными, насколько вы привыкли к ним.

Чтобы активировать HHVM в Homestead или Homestead Improved, см. Оригинальную официальную документацию .

Symfony2 — DX ++

За последние несколько месяцев Symfony2 изгибался назад, чтобы стать более доступным для разработчиков. Это обновление опыта разработчика не только сделало работу с фреймворком гораздо более приятной, но и обратило внимание нескольких скептиков на веру в полезность и эффективность фреймворка.

Например, более умная команда assets: install теперь будет обеспечивать точное копирование файлов, а не символьных ссылок в системах, которые не поддерживают символические ссылки — все по умолчанию. Больше никаких проблем с установкой символической ссылки, подобных тем, которые встречаются здесь . В контроллеры добавлены новые ярлыки , панель отладки сможет отлаживать Ajax-запросы и многое, многое другое.

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

И последнее, но не менее важное: есть официальная (и бесплатная) книга о лучших практиках Symfony2 — захватите ее здесь !

Composer — виртуальные пакеты и правильные требования

В сети появилось три очень интересных сообщения о композиторе. Первый рассказывал нам о виртуальных пакетах и ​​ключевом слове provides Второй ответ на первый пост и несколько исправляет его, объясняя вопросы немного глубже.

Наконец, третий пост — отличное руководство по правильному требованию ваших пакетов.

AuraPHP 2 — Стабильно!

Веб-пакеты Aura Di и Aura стали стабильными, что позволило сопровождающим обновить все остальные пакеты Aura до версии 2.0 стабильной, тем самым подтолкнув весь проект к версии 2.0. Эта большая веха означает, что не только компоненты имеют новую основную версию, но и автоматически все фреймворки, использующие их (Aura стремится сначала к компонентам, а затем к фреймворкам).

Полный отчет об этом прогрессе можно найти в посте Пола Джонса здесь, а краткий обзор Aura 2 — в учебнике Хари .

Themosis 1.0

Themosis, платформа для WordPress, о которой мы уже писали , достигла версии 1.0. Для более глубокого взгляда, следите за обновлениями — учебники скоро.

Проект Themosis также преобразовал себя в агентство, специализирующееся на разработке WP, и зарезервировал поддомен framework.themosis.com как дом для фреймворка. Прочитайте об изменениях на их домашней странице и дайте нам знать, если вы использовали Themosis для чего-либо — мы будем рады опубликовать вашу работу.

Yii 2

Говоря о новых выпусках — Yii 2 наконец-то вышел и вышел из бета-версии. Мы обсудили преимущества новой версии в предыдущем посте и недавно вернулись к этой теме, перечислив 7 причин выбора Yii 2 для вашего следующего проекта . Если вы создали что-то с Yii и хотели бы продемонстрировать это, или просто заинтересованы в обучении и распространении информации, свяжитесь с нами!

Phalcon 2 beta 3

Платформа Phalcon достигла статуса бета 3 . Говорят, что это может быть последняя бета-версия перед общедоступной, так как все тесты в настоящее время проходят в полном объеме и достигнут паритет API. Если вы еще не попробовали Phalcon 2, убедитесь, что вы приняли его за спин. Для действительно быстрой установки, посмотрите наш быстрый совет по его запуску и запуску в кратчайшие сроки.

Вывод

Без сомнения, продуктивный месяц в мире PHP! Я что-то пропустил? Дайте мне знать в комментариях ниже, и давайте обсудим это там! Если у вас есть какие-либо советы для следующего поста новостей (примерно через месяц, дайте или возьмите), просто отправьте мне электронное письмо, и я решу, достаточно ли он недостаточно освещен, чтобы быть включенным в список новостей, которые могут иметь люди. пропущенный. Спасибо за прочтение!