Комментарии 27
OMG, когда же это все читать/учить.
Спасибо.
Спасибо.
Понимаю, что хотите охватить бОльшую аудиторию, размещая эти подборки в хабе «веб-разработка», но (дальше сугубо ИМХО) кому интересно – подпишутся на соответствующий хаб «PHP». У вас в подборках нет ничего, что требовало бы дополнительного хаба, всё исключительно про пых.
RFC: Return Type Declarations — Обновленное предложение по type hinting для возвращаемых значений. Предлагаемый синтаксис: function getUser(): User { return new User(); }
Вот такой подход к описанию возвращаемых значений меня несколько раздражал в ActionScript. На мой взгляд более логичным было бы задействовать описание типов в стиле Java или C. Мне кажется более удобным первый вариант (могут быть методы и с большим количеством параметров):
integer public function someParametricMethod($param1, array $param2, array $param 3) {
// ...
return $integerValue;
}
public function someParametricMethod($param1, array $param2, array $param 3) : integer {
// ...
return $integerValue;
}
Это и логичнее, если выбирать второй, тогда должно быть:
Но почему-то все склоняются именно к нему.
public function someParametricMethod($param1, $param2: array, $param: array) : integer {
// ...
return $integerValue;
}
Но почему-то все склоняются именно к нему.
со стандартными типами да — так более красиво, но из стандартных типов мб только array, а если там будет указан длиннющий класс да еще с неймспейсом? название метода будет уже нелегко найти-прочитать
public static static function foo() { return new static; }
и
public static function foo(): static { return new static; }
вот…
С другой стороны, если ради удобства парсинга вводится типизация в другом стиле (к вопросу единообразия) то получается двоякая ситуация: вроде уже и так понамешано, особенно в именах функций PHP, так что стиль задания типизации роли не сыграет, а если задуматься — уж если делать, то следовать какой-то общей парадигме развития языка. Если конечно имеется таковая.
Возвращаемый функцией тип в первом случае логичнее писать всегда после ключевого слова function.
Этот дайджест сегодня оказался очень познавательным, в частности из-за:
Покапавшись побольше, нарыл то, что мне захочется проверить в ближайшее время: github.com/simpl/ngx_mongo
Это должно быть невероятно быстрое решение для простых вещей, вроде логера или сборщика статистики/метрик.
Простое API на Nginx и PostgreSQL — Идея интересна тем, что API реализовано только на Nginx и PostgreSQL без использования каких-либо языков программирования.Не думал, что так можно делать!)
Покапавшись побольше, нарыл то, что мне захочется проверить в ближайшее время: github.com/simpl/ngx_mongo
Это должно быть невероятно быстрое решение для простых вещей, вроде логера или сборщика статистики/метрик.
RFC: Exceptions in the engine, RFC: Readonly Properties, RFC: UString — давно пора.
Удаление deprecated функций тоже как нельзя кстати. PHP меняется в лучшую сторону, что не может не радовать.
Ещё бы все стандартные функции привести к единообразному именованию, camelCase и запрятать в пространство имён и/или распределить по тематическим классам.
Есть же RFC от Попова с методами для скаляров в стиле js.
Я как-то баловался с подобным в качестве модуля.
Str\padL('bar', 20);
Вы считаете что это симпатичнее чем
str_pad('bar', 20, 'foo', STR_PAD_LEFT);
Тогда уж можно было бы делать как-то так:
std\str\padLeft('bar', 20, 'foo');
Что до падения производительности, вы делали замеры с opcache? Было бы любопытно к слову. А так, если в 7-ом пыхе добавят JIT, есть шанс что все будет инлайниться и падение производительности будет незначительным.
Но в целом я не считаю что это добавит красоту языку. Мне кажется что текущие RFC которые фиксят странности в поведении таких вещей как инкремент/декремент намного важнее.
Я вообще делал «use UnifiedPHP\Str as S» и потом «S\padL()». Компактный 2х символьный префикс получался.
С именами да, padLeft возможно и понятнее => лучше.
По скорости там, где просто другое название метода — нет падения (просто алиасы), где перестановка параметров и прочие небольшие изменения — есть, но ощутимо меньше, чем при вызове через call_user_func*. Инлайн/JIT моему исполнению не поможет — у меня ж сишный модуль.
Основная проблема в неоднородности как названий так и порядка следования параметров. Это и исправлял)
С именами да, padLeft возможно и понятнее => лучше.
По скорости там, где просто другое название метода — нет падения (просто алиасы), где перестановка параметров и прочие небольшие изменения — есть, но ощутимо меньше, чем при вызове через call_user_func*. Инлайн/JIT моему исполнению не поможет — у меня ж сишный модуль.
Основная проблема в неоднородности как названий так и порядка следования параметров. Это и исправлял)
JIT/opcache должны помочь если это будет php-шный модуль. То есть оптимизации на уровне опкодов/байткода.
В качестве транспортного слоя отныне выступает RingPHP, а cURL является опциональным.
Для тех, кто прочитал это и подумал, будто в RingPHP cURL не используется: внутри RingPHP используется тот же самый cURL.
Спасибо вам!
Спасибо!
Однако по Zend маловато будет.
Однако по Zend маловато будет.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Дайджест интересных новостей и материалов из мира PHP № 50 (6 октября – 26 октября 2014)