PHP FIG решили убить переводы PSR и сделали это. Я не мог спокойно наблюдать за тем, как пропадает столько труда, поэтому сделал форк с русским переводом:
Все заметки с тегом «PHP»
-
Русский перевод PHP стандартов FIG
29 декабря 2015
-
wnmp-dev 1.1.0
16 декабря 2015
Обновил набор для PHP-разработки под Windows. Удалось найти нормальный менеджер процессов без зависимостей и закрыть им проблему параллельной обработки нескольких скриптов.
Написал его Пичулин Дмитрий уже давно, но выложил в OpenSource недавно. Утилита проверена им в продакшне. Менеджер стартует заданное количество php-cgi на одном порту. В случае умирания одного из php-cgi стартует новый. Кода там очень мало и им, кстати, заинтересовались в команде PHP for Windows. Надеюсь, PHP научится так делать из коробки.
Кроме этого, поправил конфиги nginx и немного причесал батники.
-
Выложил исходники intl.rmcreative.ru
12 декабря 2015
Выложил на GitHub исходники intl.rmcreative.ru, который я написал после копания во внутренностях intl, ICU и CLDR.
-
Yii 2.0 AR сделал все PHP ORM в независимом тесте
6 декабря 2015
Carsten из команды Yii добавил в тесты kenjis AR Yii 1.1 и Yii 2.0. Получились вот такие результаты. Yii 2.0 рвёт в клочья всех, кроме Phalcon.
Сюрпризом это не стало, но, всё же, приятно.
-
PHP 7.0.0
1 декабря 2015
Несколько часов назад Anatol Belski, релиз менеджер PHP, тегнул стабильный релиз PHP 7.0.0. Это значит, что сегодня-завтра мы увидим официальный анонс на php.net. Наконец, можно будет пользоваться новыми прекрасными возможностями: строгой типизацией, оператором ??, анонимными классами, безопасным рандомом и многим другим. Как приличный бонус все перешедшие получат значительный прирост производительности.
Кстати, результаты опроса там очень и очень радуют.
UPD: официальный анонс.
-
Составные части хеш-строки bcrypt
26 ноября 2015
Хороший способ хранения данных для аутентификации — хеш-строки bcrypt. В PHP это реализуется при помощи crypt с алгоритмом blowfish. В более поздних версиях PHP — при помощи password_hash. В Yii для этого есть Security::generatePaswordHash(). Выглядит строка на выходе вот так:
$2y$13$YUUgrko03UmNU/fe6gNcO.Hka4lrdRlkq0iJ5d4bv4fK.sKS.6jXu
Длина в случае пароля всегда 60 символов.
- 2y - версия алгоритма bcrypt. Мы используем blowfish, так что в новых версиях PHP должна быть всегда
2y
. - 13 - cost. Стоимость вычислений. 2^13 итераций функции формирования ключа.
- Оставшееся — конкатенированные соль и хеш, закодированные через base64 с немного нестандартным набором символов. Первые 22 символа — 16 байт соли. Оставшееся — хеш.
При сравнении пароля bcrypt достаёт версию алгоритма, cost и соль из хеш-строки сохранённого пароля. Далее, используя их, вычисляет хеш нового пароля и сравнивает с сохранённым хешем.
- 2y - версия алгоритма bcrypt. Мы используем blowfish, так что в новых версиях PHP должна быть всегда
-
Вернулся из Риги с WebConf
17 ноября 2015
Как и планировалось, попал на WebConf в Ригу.
Как это было (приличную часть) можно частично посмотреть в официальном twitter и по хештегу. Фото и, возможно, видео будут доступны на официальном сайте через какое-то время.
Слайды моих выступлений (листать стрелками):
Спасибо всем, слушателям, докладчикам и, конечно, организаторам за отличную конференцию и замечательную компанию.
-
Видео с PHP frameworks day 2015
29 октября 2015
Организаторы PHP frameworks day очень оперативно порадовали видео с конференции.
-
realpath() cache size tuner
24 октября 2015
Месяц назад сделал небольшой скриптик, помогающий настроить значения кеша realpath в php.ini.
Важно это потому как частые вызовы
realpath()
без чтения из кеша выливаются вstat
, то есть в чтение с диска, который чаще всего — самое узкое место в системе. -
Уязвимость dev/random и других UNIX-устройств под Windows
20 октября 2015
12 комментариев