Pull to refresh

Следующая версия PHP будет называться PHP 7

Website development *PHP *
imageДолгий спор вокруг названия следующей версии PHP сегодня наконец-то закончился: итак, следующая версия будет иметь порядковый номер 7.

В основу PHP7 ляжет PHPng. Многие из свежих предложений и патчей делаются уже на его базе — в том числе такие интересные вещи, как uniform variable syntax, native big integers и abstract syntax tree. Из-за изменений во внутренних API, многие сторонние расширения (например, xdebug, расширения для mongodb и memcached, php-protocolbuffers) должны быть переработаны, поэтому в PHP 5.7 PHPng войти уже не сможет. Казалось бы, проблема не так велика — но, например, Yahoo в своих разработках использует около 400 различных PHP-расширений, поэтому процесс должен занять некоторое время.
Читать дальше →
Total votes 90: ↑82 and ↓8 +74
Views 53K
Comments 62

PHP 7 получит в два раза более эффективный Hashtable

Website development *PHP *
Recovery mode

Начатый процесс переписывания ядра PHP идет семимильными шагами. Эта статья вольный пересказ поста одного из авторов кода ядра PHP о достигнутых значительных успехах в оптимизации такой структуры данных, как hashtable. Больше технических подробностей под катом.
Читать дальше →
Total votes 49: ↑46 and ↓3 +43
Views 39K
Comments 58

Революция PHP7: Типы возвращаемых значений и удаление артефактов

PHP *
Translation
Планируемая дата выпуска PHP7 стремительно приближается, внутренняя группа усиленно работает, пытаясь исправить наш любимый язык, сделать его как можно лучше, будут удалены артефакты прошлых версий и добавлено несколько столь желанных фич. Есть много RFC, которые можно изучить и обсудить, но в этом посте я хотел бы сосредоточиться на трех самых важных.

PHP 5.7 vs. PHP7


Как я уже говорил в прошлом письме, 5.7 был отклонен в пользу перехода непосредственно к PHP7. Это означает, что не будет новой версии между 5.6 и 7 — даже если она и появилась бы, то просто служила бы сигналом тем, кто все еще погряз в устаревшем коде. Первоначально, 5.7 не должна была иметь новые функции, но должна была выбросить уведомления и предупреждения об устаревании кода, который скоро изменится в v7.

Также необходимо предупредить о некоторых ключевых словах, которые будут зарезервированы в PHP7, чтобы люди могли быстро привести свой код в соответствие с помощью какой-нибудь «автоматической» проверки совместимости версий PHP. Однако, как я писал в рассылке, большинство людей, которые достаточно компетентны, чтобы соблюдать совместимость своего кода с последней версией PHP, на самом деле и не используют конструкции, которые может сломать PHP7.
Читать дальше →
Total votes 59: ↑50 and ↓9 +41
Views 53K
Comments 60

Чего ждать, когда ждешь ребенка: PHP 7, часть 1

Website development *PHP *
Translation
Это первая часть нашей минисерии статей «Чего ждать от PHP7». Читать часть 2

Как многие из вас, вероятно, знают, было принято RFC о согласовании названия следующей основной версии PHP, которая будет называться PHP7. Вы можете почитать об этом в моем PHP5 timeline.

Независимо от ваших чувств по поводу этой темы, PHP7 — это свершившийся факт, и он придет в этом году! RFC с таймлайном выпуска PHP7.0 прошло практически единогласно (32 к 2), сейчас разработчики подошли к стадии заморозки фич, а первый релиз-кандидат (RC) мы увидим уже в середине июня.

Но что все это значит для нас, обычных разработчиков? Сейчас мы видим огромное нежелание веб-хостеров двигаться в направлении новых версий 5.x. Не приведет ли крупное обновление, ломающее обратную совместимость, к еще более медленному движению?

Ответ: посмотрим. Продолжайте читать и узнаете подробности.

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

Давайте углубимся в детали.
Читать дальше →
Total votes 41: ↑41 and ↓0 +41
Views 78K
Comments 91

Чего ждать, когда ждешь ребенка: PHP 7, часть 2

Website development *PHP *
Translation
Это вторая часть нашей минисерии статей «Чего ждать от PHP7». Читать часть 1

Как вы наверное уже знаете, PHP7 придет в этом году! И сейчас самое время узнать что же нового он нам принесет.

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

Новый экранирующий символ для Unicode


Добавление нового escape-символа \u позволяет нам указывать специфические unicode символы внутри PHP-строк (да-да, те самые emoji и не только).

Синтаксис выглядит так — \u{CODEPOINT}, например, зеленое сердце, , может быть выражено как PHP-строка: "\u{1F49A}".
Читать дальше →
Total votes 42: ↑39 and ↓3 +36
Views 35K
Comments 88

DevConf 2015: 38 попугаев или как конференция сообществ разработчиков пытается выжить в блокаде импортозамещения

DevConf corporate blog Website development *Ruby *PHP *Python *

Коллеги по WEB-цеху! Мы рады пригласить Вас на 6-ю DevConf 2015 — которая пройдет 19 июня в Москве.
Многие злопыхатели — говорят, что конференции разработчиков загнутся. Работодатели зажимают бюджеты на развитие разработчиков и т.д.
Но мы не сдаемся — и будем проводить мероприятия — несмотря ни на что. Мы верим — за нами «правда» — а «в чем сила брат?»
Читать дальше →
Total votes 41: ↑33 and ↓8 +25
Views 13K
Comments 21

Подкаст «Пятиминутка PHP»

Self Promo
Пятиминутка PHP — еженедельный подкаст о новостях из мира PHP, интересных постах в блогах и современных подходах к разработке.

Послушайте первые два выпуска и вы узнаете про:
  • SPL структуры данных (стек, очередь, массив) против классического array и что нам принесёт PHP 7
  • эффективное пересечение массивов, поиск элемента или проверку вхождения в массив
  • проблему с хешами паролей, даже если вы используете новые функции хеширования из PHP 5.5
  • Russia Laravel Meetup и DevConf 2015
  • сравнение производительности Golang, Scala, Elixir, Ruby, Python 3 и PHP в сферических попугаях в вакууме
  • оптимизацию использования памяти и как написать свой сборщик мусора на PHP
  • почему Doctrine ORM не подходит для PHP
  • рендеринг ReactJS шаблонов на сервере с помощью PHP
  • пример использования генераторов (yield)
  • прошлое, настоящее и будущее Code Coverage от автора PHPUnit
  • проблемы Zephir с PHP 7
  • хорошие статьи о PHP 7, которые уже есть на хабре
  • написание и тестирование API на PHP, Rails и Go от Phil Sturgeon
  • TDD — Train Driven Development

Читать дальше →
Total votes 33: ↑21 and ↓12 +9
Views 9.4K
Comments 2

DevConf 2015: Интервью с автором — PHP6 не будет! Встречаем PHP7

DevConf corporate blog Website development *PHP *Programming *

На вопросы оргкомитета DevConf 2015 отвечает Дмитрий Стогов - лидер проекта PHPNG и один из основных разработчиков PHP; ведущий инженер в Zend Technologies.

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

Последние лет 10 работаю в Zend, где 2/3 времени занимаюсь развитием Open Source PHP, и, в основном, усовершенствованиями связанными с производительностью. Собственно, почти все что связано с производительностью в PHP-7 (да и в PHP-5) придумано или заимствовано и реализовано мной.
Читать дальше →
Total votes 25: ↑19 and ↓6 +13
Views 18K
Comments 19

Сравнение систем типов PHP7 и Hack

Website development *PHP *System Analysis and Design *Designing and refactoring *
Translation

Одной из интересных вещей в PHP7, кроме невероятной производительности, является введение скалярного type-hinting'а в сочетании с опциональным «strict» режимом. При чтении RFC я заметил, что PHP код в примерах выглядит очень похожим на Hack. Что если выполнить один и тот же код и в PHP7 и в Hack? Какая разница между ними? Вот что я узнал.
Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Views 21K
Comments 17

DevConf 2015 — финальное голосование за доклады. Сделаем программу лучше и полезней

DevConf corporate blog Website development *PHP *Python *Ruby on Rails *
Коллеги — до конференции DevConf 2015 осталось меньше 2-х недель — помогите выбрать достойные доклады.



В этом году у нас добавилась секция DevOps — было много заявок на нее — решили вынести в отдельный поток.

Список секций: DevOps, Storage, PHP, Python, Ruby, Javascript, Common
ГОЛОСУЕМ ЗА ДОКЛАДЫ ДО 8 ИЮНЯ!
Читать дальше →
Total votes 23: ↑16 and ↓7 +9
Views 3.9K
Comments 23

DevConf::PHP уже в эту пятницу — программа сформирована, в кулуарах расскажем как переносили сайт конференции на Laravel 5

DevConf corporate blog Website development *PHP *Zend Framework *Laravel *
Релиз PHP7 — что нас ждет в октябре 2015

imageДмитрий Стогов — Лидер проекта PHPNG и один из основных разработчиков PHP; ведущий инженер в Zend Technologies.

PHPNG успешно добрался до основной ветки PHP, и релиз PHP7 уже не за горами. Помимо производительности, появилось множество нововведений призванных сделать PHP более пригодным для написания больших проектов и избавиться от «детских болезней». Помимо несомненных плюсов, новшества несут головную боль связанную с переходом на новую версию. Доклад содержит обзор основных нововведений и некоторые рецепты по портированию.

Полная программа секции PHP
Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Views 5.9K
Comments 6

DevConf 2015 — сформирована программа конференции

DevConf corporate blog Website development *Ruby *PHP *Python *

Крупнейшая конференция DevConf 2015 пройдет в эту пятницу в Москве (конгресс центр Измайлово Бета).
20 июня пройдут эксклюзивные мастер-классы: Sphinx 3.0, MySQL 5.7, Docker, cоздание мобильных игр и архитектуры социальной сети
62 докладчика — 7 потоков: Python, PHP, Ruby, Javascript, Storage, DevOps, Commonкаждый Веб-разработчик найдет что-то интересное для повышения своей квалификации!
Читать дальше →
Total votes 33: ↑26 and ↓7 +19
Views 6.5K
Comments 12

Throwable exception и ошибки в php7

Website development *PHP *
Translation
В прошлом, обрабатывать фатальные ошибки было практически невозможно. Обработчик, установленный set_error_handler вызван не будет, скрипт просто будет завершен.
В PHP 7 при возникновении фатальных ошибок (E_ERROR) и фатальных ошибок с возможностью обработки (E_RECOVERABLE_ERROR) будет выброшен exception, а не произойдет завершение скрипта. Но определенные ошибки, например «out of memory», по прежнему приведут к остановке. Не перехваченные ошибки в PHP 7, будут «фатальны», так же как и в php 5.*.
Обратите внимание, что другие виды ошибок, такие как warinng и notice остаются без изменения в php 7.

Исключения выброшенные из E_ERROR и E_RECOVERABLE_ERROR не наследуются от Exception. Это разделение было сделано, чтобы предотвратить обработку этих ошибок кодом, написанным под 5.*. Исключения для фатальных ошибок теперь являются экземпляром нового класса: Error. Как и любые другие исключения, Error может отловлен, обработан и выполнен finally блок.
Читать дальше →
Total votes 19: ↑17 and ↓2 +15
Views 35K
Comments 8

Новый PHP, часть 1: Return types

Website development *PHP *
Translation
Tutorial
Каждый мажорный релиз PHP добавляет ряд новых возможностей, некоторые из которых действительно имеют значение. Для PHP 5.3 — это были пространства имен и анонимные функции. Для PHP 5.4 — трейты. Для PHP 5.5 — генераторы. Для 5.6 — списки аргументов переменной длины.

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

Почему поддержка строгой типизации так важна? Она предоставляет программе — компилятору или рантайму и другим разработчикам ценную информацию о том, что вы пытались сделать, без необходимости исполнять код. Это дает три типа преимуществ:
Читать дальше →
Total votes 41: ↑36 and ↓5 +31
Views 42K
Comments 38

Новый PHP, часть 2: Scalar types

Website development *PHP *
Translation
Tutorial

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

До сих пор мы говорили о типах только в отношении классов и интерфейсов. В течение многих лет мы только их (и массивы) и могли использовать. Однако же, PHP 7 добавляет возможность использовать и скалярные величины тоже, такие как int, string и float.

Но постойте. В PHP большинство примитивов являются взаимозаменяемыми. Мы можем передать "123" в функцию, которая хочет int, и довериться PHP, который все сделает «правильно». Так для чего же тогда нужны скалярные типы?
Читать дальше →
Total votes 27: ↑23 and ↓4 +19
Views 44K
Comments 94

Мой опыт миграции на PHP 7

Website development *PHP *
image
Несколько дней назад я переключил свой сервер с порядка 30-ти сайтами на PHP 7. Некоторые из них были достаточно старыми и составляли широкий набор с различных фреймворков и CMS. Вот несколько советов для тех кто еще не решил переходить на PHP 7 или нет.

Начнем с того что я понимаю что есть много людей которые не считают стабильную версию действительно «стабильной» пока она чуть-чуть не повзрослела, ожидая что еще найдутся какие-то баги или несовместимости. С того что я пока видел, пробуя каждый release candidate как только он выходил, совсем безопасно переключиться на PHP 7 как только он выйдет. Я ни разу не заметил какого-то непонятного поведения или вылета которому виной не был бы я сам. Несмотря на то что это новая версия она не несет много несовместимых изменений, то есть по большому счету можете относиться к ней как к просто PHP 5.7 только существенно быстрее.
Читать дальше →
Total votes 35: ↑22 and ↓13 +9
Views 75K
Comments 56

История PHP: инфографика

DataArt corporate blog Website development *PHP *

PHP7 Elephant created by Walker Cahall

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

Но многие ли из нас помнят, каким был PHP 10 или 20 лет назад? В честь релиза «семерки» коллеги из PHP User Group подготовили инфографику истории языка. Давайте вместе окунемся в прошлое и немножко поностальгируем.

Читать далее
Total votes 52: ↑43 and ↓9 +34
Views 35K
Comments 41

Случайность в PHP7 – Повезет ли мне?

Website development *Cryptography *PHP *
Translation
Криптографическая рандомизация в PHP

В этой статье мы проанализируем проблемы, относящиеся к генерации случайных чисел, используемых в криптографии. PHP5 не обеспечивает простой механизм генерации криптостойких случайных чисел, в то время как PHP7 решает эту проблему путем введения CSPRNG-функций.

Что такое CSPRNG?


Цитируя википедию, криптографически стойкий генератор псевдослучайных чисел (англ. Cryptographically secure pseudorandom number generator, CSPRNG) — это генератор псевдослучайных чисел с определёнными свойствами, позволяющими использовать его в криптографии.

CSPRNG в основном используется для следующих целей:
  • Генерация ключей (в том числе, генерация public/private ключей)
  • Создание случайных паролей для аккаунтов пользователей
  • Системы шифрования

Главным аспектом сохранения высокого уровня безопасности является высокое качество случайности.

CSPRNG в PHP7


PHP7 вводит две новых функции, которые могут быть использованы для CSPRNG: random_bytes и random_int.
Читать дальше →
Total votes 27: ↑20 and ↓7 +13
Views 18K
Comments 5

Сравнение производительности PHP 7.0 и HHVM

NIX corporate blog PHP *
Translation


В течение довольно продолжительного времени о нём не было никаких новостей, но, после долгого ожидания, PHP 7 наконец-то вышел 3 декабря 2015 года. Мы решили протестировать самые популярные CMS, основанные на PHP, чтобы проверить как они работают с PHP 7.
Читать дальше →
Total votes 22: ↑19 and ↓3 +16
Views 23K
Comments 29