После года разработки официально представлен (http://php.net/archive/2017.php#id2017-11-30-1) релиз языка программирования PHP 7.2 (http://php.net/). Новая ветка включает порцию новых возможностей (http://php.net/manual/en/migration72.new-features.php) и изменений (http://php.net/manual/en/migration72.incompatible.php), нарушающих совместимость.
Ключевые улучшения (http://php.net/manual/en/migration72.php) в PHP 7.2:
- Новый тип object (http://php.net/manual/en/language.types.object.php), при помощи которого можно передавать, преобразовывать и возвращать объекты
function test(object $obj) : object
{
return new SplQueue();
}
test(new StdClass());
$obj = (object) array('1' => 'foo');
- Поддержка загрузки дополнений по их имени, без явного указания расширения файла (.so или .dll) в php.ini или при вызове функции dl();
- Возможность переопределения абстрактных методов, когда один абстрактный класс наследует другой абстрактный класс.
abstract class A
{
abstract function test(string $s);
}
abstract class B extends A
{
abstract function test($s) : int;
}- Возможность явно не указывать типы параметров в переопределяемых методах.
interface A
{
public function Test(array $input);
}
class B implements A
{
public function Test($input){} // пропущено указание типа для $input
}- Интеграция (http://php.net/manual/en/book.sodium.php) в основной состав криптографической библиотеки Libsodium (https://www.opennet.ru/opennews/art.shtml?num=40674). По сравнению с OpenSSL, Libsodium предоставляют существенно более простой API (https://download.libsodium.org/doc/), совместимый с библиотекой NaCl (http://nacl.cr.yp.to/), а также применяет по умолчанию безопасные методы шифрования и хэширования. Функции Libsodium будут доступны (https://wiki.php.net/rfc/libsodium) разработчикам на языке PHP с префиксом "sodium_*", в отличие от ранее применяемого в расширении pecl/libsodium (https://pecl.php.net/package/libsodium) префикса "Sodium*".
Благодаря Libsodium разработчики на PHP получили возможность использования современных криптографических средств без необходимости установки дополнений, что позволит реализовать в web-приложениях более надёжные криптографические методы, даже в условиях использования хостинга, не допускающего установки своих дополнений. В том числе в базовой поставке доступны цифровые подписи Ed25519, обмен ключами ECDH+Curve25519, шифрование ChaCha20-Poly1305 и AES-256-GCM.
- В число поддерживаемых методов хэширования паролей добавлен (http://php.net/manual/en/book.password.php) алгоритм Argon2 (https://password-hashing.net/#argon2), победитель конкурса Password Hashing Competition;
- Удалена (https://wiki.php.net/rfc/mcrypt-viking-funeral) поддержка дополнения Mcrypt из-за прекращения развития библиотеки libmcrypt и накопления большого числа неисправленных проблем;
- Проведена (https://wiki.php.net/rfc/improved-tls-constants) работа по приведению в порядок констант для TLS (STREAM_CRYPTO_METHOD_TLS_* = TLSv1.0 + TLSv1.1 + TLSv1.2), значения которых теперь нацелены на обеспечения лучшей безопасности. Раньше константы были настроены для обеспечения максимальной обратной совместимости и допускали применение устаревших и ненадёжных методов шифрования.
- Возможность оставлять запятую в конце сгруппированного списка пространств имён в директиве use:
use Foo\Bar\{
Foo,
Bar,
Baz,
};
- Строковый тип для PDO (http://php.net/manual/en/book.pdo.php) (PHP Data Objects) расширен возможностью использования символов национальных алфавитов при эмуляции предварительно формируемых запросов (prepared statement). Для совместного использования с константой PDO::PARAM_STR предложены новые парметры PDO::PARAM_STR_NATL, PDO::PARAM_STR_CHAR и PDO::ATTR_DEFAULT_STR_PARAM.$db->quote('über', PDO::PARAM_STR | PDO::PARAM_STR_NATL);
- Реализованы дополнительные средства отладки при эмуляции предварительно формируемых запросов (prepared statement): через метод
PDOStatement::debugDumpParams() теперь можно получить сведения об отправленном в СУБД SQL-запросе, после подстановки заменяемых значений;- В дополнение для взаимодействие с LDAP добавлена поддержка расширенных операций (EXOP), для работы с которыми предлагаются новые функции и константы:
ldap_parse_exop(), ldap_exop(), ldap_exop_passwd(), ldap_exop_whoami(), LDAP_EXOP_START_TLS, LDAP_EXOP_MODIFY_PASSWD, LDAP_EXOP_REFRESH, LDAP_EXOP_WHO_AM_I, LDAP_EXOP_TURN.- В дополнение Sockets добавлены функции для получения информации об IP-адресе или Unix-сокете: socket_addrinfo_lookup(), socket_addrinfo_connect(), socket_addrinfo_bind(), socket_addrinfo_explain();
- Расширение возможностей дополнения EXIF (http://php.net/manual/en/book.exif.php), в котором добавлена поддержка дополнительных форматов тегов, в том числе поддержка обработки специфичных тегов Samsung, DJI, Panasonic, Sony, Pentax, Minolta, Sigma/Foveon,
AGFA, Kyocera, Ricoh и Epson.
- В функциях pack() и unpack() добавлена поддержка типов float и double с порядком байтов как от младшего к старшему (little-endian), так и от старшего к младшему (big-endian).
URL: http://php.net/archive/2017.php#id2017-11-30-1
Новость: https://www.opennet.ru/opennews/art.shtml?num=47652
>>изменений, нарушающих совместимость.Идеальный момент спрыгнуть с php, на что-то более адекватное и современное.
Ага, на питон. Только решить на 2-й или 3-й.
Второй уже испускает последнее дыхание. С разморозкой
А третий настолько же стабилен, как и похапе.Вот и неясно, что выбрать.
Существенных нарушений совместимости в трешке нет. И не надо путать отсутствие развития второй версии со стабильностью.
Берите GO и не ибите всем мозг.
Rust же )
Слушайте, такой выбор уже не стоит года как 3-4. 2 используется в основном легаси, а 3 когда-то боялись использовать не из-за нестабильности (хотя как-то раз я и сегфолт умудрился словит... на 2 версии), в из-за отсутствия библиотек. Сейчас проблема с библиотеками ушла (причем уже как года 3 данная проблема решена), но легаси никуда не делся. И вот эти некроманты и поддерживают легенды, что 2 версия рулит. Как написали выше, по факту она мертва. Ее поддержка скоро будет официально прекращена.
Java/Tomcat на мощном серваке? Или webmonkeyJS?
Трудно найти по этим двум условиям сразу.
Когда хотел познать AngularJS, был удивлён, что примеры из руководства уже устарели.
Да у них с каждым релизом такой момент настаёт.
На shell под httpd.
Haskell рулит!
Ruby круче всех!
Да не то слово.- О, появилась нужная фича в одном из гемов.
- Черт, он требует новых версий еще пары гемов.
- Это что, теперь делать рефакторинг всех 100+ гемов в проекте?! Да ну нафиг.- Блин, нужен гем для работы с ****, чтобы самому не писать. Самое простое gem list ****. Опа, тут 50 гемов, половина из которых не работает и не обновлялось уже Дцать лет, оставшиеся 30% имеют стремные имена, и лишь часть с виду нормальные, но либо не работают с текущей версией ruby, либо требуют слишком новых/старых версий других геммов, а значит снова рефакторинг. Да ну нафиг, проще самому написать.
Справедливости ради, этими же проблемами страдает nodejs и др. Ruby нифига не панацея. Лишь с языком, где достаточно долго не ломается совместимость от версии к версии, удобно работать.
Только опакеченые гемы и стабильный дистр спасут от безумия. Но уменьшат список доступных гемов, да.
> Только опакеченые гемы и стабильный дистр спасут от безумия. Но уменьшат список
> доступных гемов, да.Таких дистров нет*. Их ментейнеров от безумия не спасти.
*в "широкой" перспективе
> Только опакеченые гемы и стабильный дистр спасут от безумия. Но уменьшат список
> доступных гемов, да.Опять же, руби - как подарок от бывшей на ДР. Может быть вкусняшка, а может оказаться и какaшка.
Пример1.
В Ubuntu 14.04 базовым был ruby1.8(в дальнейшем вроде 1.9 сделали, не скажу уже точно). Дальше начинались чудеса. Если 1.8, то проблем до поры до времени не было. Если 1.9, то apt install rubygems могла закончится ошибкой. И приходилось плясать с бубном, то отключая brightbox/ruby-ng, то снова его подключая. И это я не говорю о том, что, даже имея ruby2.х, система упорно хочет ruby1.x-dev, иначе не может установить гемы.
Пример2.
Вы когда-нибудь пробовали разделять установить руби/гемы в зависимости от пользователя в его homedir? Вещь в себе, скажу я вам. Я проклял все на свете, пока нашел, что нужен ключ --user-install и все действия необходимо выполнять из-под пользователя. Слава богу, что мне не нужно делать это каждый день, либо для 10+ пользователей.Итог: Сам руби - одно большое безумие. Сам язык мне нравится, сильно больше Питона. Но его слишком быстрое развитие, трэш в базе гемов, неплохо так от него отталкивают.
> Лишь с языком, где достаточно долго не ломается совместимость от версии к версии, удобно работать.Всем Perl5 посоны!
Только perl, только хардкор!
На С++
Perl!
>function test(object $obj) : objectДо сих пор ломаю голову, как же так надо додуматься делать: всё огораживать в функции и присваивать им значение, которое они должны возвращать, вместо того, чтобы просто сделать тип данных, как в C, например, int test(), или тот же obeject test().
facepalm
Подход "ворочу как хочу" не очень годится для синтаксиса. Хотя Си и плюсы это очень любят. А потом ты гадаешь, объявление это или...
Для персональной домашней страницы должно быть норм
На большее он и не годится.
> На большее он и не годится.Расскажите фейсбуку и вконтакту :)
Там нечто модифицированное, что имеет мало отношения к стоковому пыху.
сложно найти что-то более уродливое чем фейсбук, видно, что писали апологеты пхп
Уродливость да. Но уродливость != язык. Язык есть у всех во рту, но используют его люди по-разному.
Язык определяет бытие
Духовненько!
не проще писать "мова"?
Лингвоинвалиды не поймут.
Линкедин :)
> сложно найти что-то более уродливое чем фейсбук, видно, что писали апологеты пхптоли дело ЖэЖэ, да?:-)
ЗЫЖ фейсбуком не пользуюсь, если чо. оценивать ЯП по сайтикам это зачёт, я считаю.
> толи дело ЖэЖэ, да?глядя на вполне уверенно набирающий обороты dream - понимаешь, что в общем да, вполне можно, оказывается, и на перле писать достаточно большие проекты. Наверное, при размере еще побольше, оно бы все таки сдохло, но лучше до таких и не отрастать - опять мордокнига получится.
А проблемы жыжы были и есть не в языке, а сперва в нежелании платить зарплаты техническому персоналу, все пошло менеджерам по рыгламе, а потом уже и [censored, не будем о грустном]> оценивать ЯП по сайтикам
s/сайтик/один из крупнейших проектов как по числу пользователей, так и по числу перемалываемых данных/
Что вы понимаете под размером — количество юзеров?
Которые только им известно сколько раз уже пожалели об инвестировании в пых. Конечно, при том количестве капитала что они туда засунули метаться им уже поздняк, но вот те, кто еще не сделал эту глупость, имеют все шансы ее не делать - для этого нужно всего лишь чутка подумать.
Знаете какой то другой язык для веб разработки?
Да
> Знаете какой то другой язык для веб разработки?Java?
Java хороший язык, но подходит ли он для веб разработки?
> Java хороший язык, но подходит ли он для веб разработки?Безусловно - да. Хотя стоимость такой разработки как правило оказывается запредельная - использовать явовцев чисто для веба, все равно что забивать гвозди нейтронным микроскопом. Но в отдельных случаях этот вариант оказывается очень и очень востребованным.
Да, в плане отказоустойчивости и производительности у джава мало конкурентов НО удобно ли разрабатывать веб приложение на Джаве? Я имею в виду что придется писать огромное число различных библиотек, или вы имеете в виду jsp?
Вот только я не встречал еще ни одного приложения на Java, которое бы нормально работало.
> Вот только я не встречал еще ни одного приложения на Java, которое бы нормально работало.Ну то есть для веба - самое то.
ЛОР же.
Ну, Atlassian Jira же. Очень даже стабильно работает, я бы сказал. Жрет память, конечно, как поросенок помои, но работает.
клиент 700 ест.
чтобы потрекать задачку.
Да ну ладно, тысячи их™.Не для веба, но пример хороший: http://www.jedit.org/
Приложений-то хороших полно. Тот же эластик со всеми прибамбасами типа логстэша и др. Но проблема в том, что крутость нередко "компенсируется" утечками памяти, внезапным пожиранием процессора и др. невеселыми "ништяками". Может язык и хороший, но что-то с качеством программ все совсем печально.
Как только заработают реакторы промышленной утилизации гoвнокодеров, так сразу же дело пойдёт на лад.Учитывая, что дешевый* кремний, дающий беззаботный и лёгкий хлеб миллионам обезьян с клавиатурой и книжкой «Как стать Дейкстрой за три недели», фактически уже закончился и завершил этим эпоху, то скоро программеры либо (меньшинство) таки научатся работать как надо, либо (большинство) пойдут грузить ящики и подметать улицы.
-----
* Точнее сказать — постоянно дешевеющий в изделиях той же производительности.
> Как только заработают реакторы промышленной утилизации гoвнокодеров так и останутся одни сишники (и то далеко не все).-- очевидный фикс
NullPointerException
Таких языков полно.Если говорить о бакенде, то выбор весьма широк: от Ruby и Python до Rust и Go. Для бакенда так же можно использовать и js/Node. Есть и функциональные языки работающие в вебе. Например, Erlang. Ну, а если у вас все в порядке с головой, алгеброй и абстрактным мышлением, то вас может заинтересовать Haskell, у которого, как я слышал, есть весьма впечатляющие решения вроде Yesod. И да, конечно же есть Java, весьма популярная в мире финансистов и банков.
С фронендом сложнее, потому что в 95 случаев из 100 это все же будет js. Но и в мире js есть из чего выбрать: как минимум стоит обратить внимание на js/React и js/Vue, которые по праву считаются флагманами разработки.
Кроме того, если вы работаете с js, вы можете писать изоморфные приложения, используя JS и для френтенда и бакенда одновременно. Я, лично не уверен что это лучший вариант, но сторонников этого подхода очень не мало в этом мире, и доводы они приводят очень убедительные.
>[оверквотинг удален]
> абстрактным мышлением, то вас может заинтересовать Haskell, у которого, как я
> слышал, есть весьма впечатляющие решения вроде Yesod
> С фронендом сложнее, потому что в 95 случаев из 100 это все
> же будет js. Но и в мире js есть из чего
> выбрать: как минимум стоит обратить внимание на js/React и js/Vue, которые
> по праву считаются флагманами разработки.
> Кроме того, если вы работаете с js, вы можете писать изоморфные приложения,
> используя JS и для френтенда и бакенда одновременно. Я, лично не
> уверен что это лучший вариант, но сторонников этого подхода очень не
> мало в этом мире, и доводы они приводят весьма убедительные.Что за фантазии? Где вакансии по руби питону? Erlang,Rust,Go - мертвые языки, популярность - 0
нода - не покрывает 100% задач решаемых при помощи пхп(а как на мой взгляд так и вовсе нисколько не покрывает), js/React и js/Vue - и так юзаю, выбора то нет, а если бы и был то предпочел бы нативный ес6
>[оверквотинг удален]
>> Кроме того, если вы работаете с js, вы можете писать изоморфные приложения,
>> используя JS и для френтенда и бакенда одновременно. Я, лично не
>> уверен что это лучший вариант, но сторонников этого подхода очень не
>> мало в этом мире, и доводы они приводят весьма убедительные.
> Что за фантазии? Где вакансии по руби питону? Erlang,Rust,Go - мертвые языки,
> популярность - 0
> нода - не покрывает 100% задач решаемых при помощи пхп(а как на
> мой взгляд так и вовсе нисколько не покрывает), js/React и js/Vue
> - и так юзаю, выбора то нет, а если бы и
> был то предпочел бы нативный ес6Уважаемый, прежде чем писать такие гм... неумные фразы, зайдите на hh.ru и поищите вакансии по этим языкам для локаций Москва/Питер. Вы будете удивлены, как количеством предложений о работе, так и размером гонорара.
Но вообще-то я не могу не отметить что от вопроса "на чем разрабатывать" вы очень плавно перешли к вопросу "как качественно разрабатываемое продавать". Это вещи, конечно, связанные, но вовсе не тождественные, я бы сказал))
Посмотрел, прослезился, вакансий мало, зп еще ниже. Это вещи, конечно, связанные, но вовсе не тождественные, я бы сказал)) - мне все равно чем заниматься, хоть бурить хоть колоть, лишь бы платили.
>мне все равно чем заниматься, хоть бурить хоть колоть, лишь бы платили.Тогда удаленная модератором фраза про таксопарк (хорошо сказано) - она для вас. Если вам все равно что делать, лишь бы платили, то идите в чиновники или топ-манагеры. Там с ЗП все норм. Ну, а программирование оставьте тем, кто этим живет.
>>мне все равно чем заниматься, хоть бурить хоть колоть, лишь бы платили.
> Тогда удаленная модератором фраза про таксопарк (хорошо сказано) - она для вас.
> Если вам все равно что делать, лишь бы платили, то идите
> в чиновники или буровики. Там с ЗП все норм. Ну, а
> индустрию IT оставьте тем, кто любит ее как она есть.Мало любить, еще нужно понимать...
>>>мне все равно чем заниматься, хоть бурить хоть колоть, лишь бы платили.
>> Тогда удаленная модератором фраза про таксопарк (хорошо сказано) - она для вас.
>> Если вам все равно что делать, лишь бы платили, то идите
>> в чиновники или буровики. Там с ЗП все норм. Ну, а
>> индустрию IT оставьте тем, кто любит ее как она есть.
> Мало любить, еще нужно понимать...Не поспоришь. Однако, "понимание" и "пых" вещи, как правило, мало совместимые. Низкий уровень вхождения в ЯП весьма этому способствует.
Да, есть такая проблема(я о низком уровне вхождения), с пониманием лично у меня проблем нет, главное нормально спроектировать и тогда все будет ок
>>мне все равно чем заниматься, хоть бурить хоть колоть, лишь бы платили.
> Тогда удаленная модератором фраза про таксопарк (хорошо сказано) - она для вас.вы точно работали таксистом, или так, слышали?
> Если вам все равно что делать, лишь бы платили, то идите
> в чиновники или топ-манагеры. Там с ЗП все норм. Ну, авас и тут кинули. Работа у чиновника среднего звена - хуже чем у девопа, с отпусками тоже хуже чем у девопа, зарплата, как правило, ниже. Еще и могут задержать. Ошибка может стоить карьеры (в отличие от девопа, каста замкнутая, никуда больше тебя не возьмут), а то и чего похуже. На выходе копеечная пенсия без всяких бонусов.
В топ-манагеры - "посмотрел тут на хехе, что-то и вакансий мало, и условия непонятные". А то б сразу пошел. (собственно, чиновники-топы такой же штучный товар, с улицы туда не берут, "дорасти" внутри системы не получится, "у генерала свои дети есть".)
> программирование оставьте тем, кто этим живет.
рекомендую тем кто "этим живет" забыть о своей особой важности как можно быстрее. Вы не нужны. Вот уже двадцать лет программирование само по себе - не важнее и не сложнее работы таксиста. Даже, наверное, проще - таксисту хотя бы стаж нужен, а не одно "уверенное владение коробкой на ручке".
это у вас просто такое хобби. Повезло, что совпадающее с работой. Вам. Тому кто вас нанял - очень может быть что и не повезло, и тот, для кого это просто работа, за деньги, работал бы эффективнее, потому что делает что требуют, а не к чему душа лежит.
> Erlang,Rust,Go - мертвые языки, популярность - 0Доооо...
> Если говорить о бакенде, то выбор весьма широк: от RubyГде версии гемов прибиты гвоздями и обновление какого-то гема в большинстве случаев приведет к рефакторингу всего проекта, где могут быть сотни гемов.
Именно поэтому некоторые еще сидят на 1.9 и третьих рельсах, потому что обновление равносильно написанию приложению с нуля.> Для бакенда так же можно использовать и js/Node.
Та же самая проблема с версиями. Любой шаг в сторону, и море боли и унижения вам гарантировано.
дык это же критерий прогресса смена цифр в версиях (сарказм)
Ну дык в том же критикуемом похапе такого головняка нет.
устаревшний проект, чего с них взять. У них даже первая цифра версии не двузначная, кто этим вообще пользоваться собирался?
> если у вас все в порядке с головой [...] то вас может заинтересовать HaskellЕсли у вас всё в порядке с головой, то вас может заинтересовать уединённая палата, в которой вы сможете отстраниться от повседневной суеты и посвятить себя размышлениям о жизни, своей роли в мире и чём-то более высоком, нежели как заработать денег и как от них избавиться.
Python же!
ASP.NET/C#
> ASP.NET/C#C# хорош, а вот ASP гуано
>> ASP.NET/C#
> C# хорош, а вот ASP гуанокак человек, поддерживавший тяжелые проекты на mono еще когда это не стало модным, уверенно заявляю - наоборот.
(там все те же болезни, что у жабы, включая и "что-то гигабайт памяти быстро кончился", только жабу-то писали в Сан, а это придумано microsoft. Угадайте, кто из них для какой платформы более подходит.)
Попробуйте Go.
Нет, серьёзно - попробуйте.
Вопрос перестанет возникать.
Пробовали GraphQL и Rest на Go. Не понравилось. По сравнению с тем же Apigility на Zend2 или Symfony3, не катит для серьёзных проектов; Хотя сам язык Go мне лично понравился. Но как по мне, так он не для вёба, а для системщиков.
> он не для вёба, а для системщиковПолагаю, разрабы докера с Вами согласятся.
Недвано пробовал Go, он пока еще совсем маленький, до джаваскрипта даже не дорос еще пока что, не то что до языка программирования.
> Которые только им известно сколько раз уже пожалели об инвестировании в пых.
> Конечно, при том количестве капитала что они туда засунули метаться им
> уже поздняк, но вот те, кто еще не сделал эту глупость,
> имеют все шансы ее не делать - для этого нужно всего
> лишь чутка подумать./me подумать: "не пейсбук ли я? Чур меня, чур! Уфф, нет, конечно, приснится же такое. Спокойно, ребята, продолжаем пользовать пехепе, нам ТЕ проблемы ни разу не грозят."
Они и так знают про свою ошибку с выбором PHP. Сколько лет уже с ним мучаются.
> Они и так знают про свою ошибку с выбором PHP. Сколько лет
> уже с ним мучаются.Они уже давно сделали из него яву и не мучаются. Но это не серьёзный пример. Мы писали вполне себе вменяемую систему на современных версиях PHP. Прекрасно оно всё скейлится. По крайней мере до какого-то определённого уровня, в который мы, не будучи фейсбуком, не упёрлись. Могли бы сделать и на яве, но вышло бы заказчику в разы дороже, а зачем?
> вышло бы заказчику в разы дороже, а зачем?Сам ответил, сам спросил :) Никогда в ява-компаниях не работал?
> Сам ответил, сам спросил :) Никогда в ява-компаниях не работал?В крупной C++ контре работал когда-то. На Qt писали крупные проекты. В ява-команде работал в небольшой. Уровень менеджмента и впаривания клиентам ява-решений представляю. Так вот обманывать людей нехорошо, так что вопрос вполне рациональный. Ну не нужна ява всем и везде. А те, кто вам скажут иное, либо хотят развести на деньги, либо работают 1-3 года на яве и хвалят её, потому что им её уже 1-3 года на работе впаривают, не забывая недоплачивать (они ведь великой вещи учатся, какие высокие ставки: осёл-морковка, корпоративная лестница), что ведёт к отсутствию кругозора и нежелания смотреть на другие технологии.
>зачем?Потому что сопровождать яву в разы дешевле чем эксклюзивчик на пыхе, не?
> Потому что сопровождать яву в разы дешевле чем эксклюзивчик на пыхе, не?Чем "эксклюзивчик" на пыхе будет отличаться от "эксклюзивчика" на яве? И откуда вообще возбмётся "эксклюзивчик"? Если вы имеете в виду самописное г-но без стандартов, адекватной архитектуры и тп, на которое потом не найдёшь разработчика, потому что это нечто самописное, то так нормальные люди не делают. Уверен, на яве таких проектов тоже хватает. А какого-нибудь Symfony developer можно найти без проблем.
Та ну, у фб hack а не пхп. И похож он на пых только затем чтобы не переучивать программеров. Ну и hhvm.
1) Реализованы дополнительные средства отладки при эмуляции предварительно формируемых запросов (prepared statement): через метод PDOStatement::debugDumpParams() теперь можно получить сведения об отправленном в СУБД SQL-запросе, после подстановки заменяемых значений;
2)Новый тип object, при помощи которого можно передавать объекты в качестве параметров и возвращаемых значений функций, а также проводить проверку соответствия типов;
3)Возможность переопределения абстрактных методов, когда один абстрактный класс наследует другой абстрактный класс.
4) Возможность явно не указывать типы параметров в переопределяемых методах.
Лично мне этих вещей давно нехватало.
> ... Libsodium ... Ed25519 ... ECDH+Curve25519 ... ChaCha20-Poly1305 ...Просто красота! :-)
> ... алгоритм Argon2, победитель конкурса Password Hashing Competition;
Надо бы про него почитать, как он в сравнении с sha512?
А ещё осталось дождаться, когда https://pecl.php.net/package/xdebug 2.6.0 выпустится, который будет совместим с сабжем.
> Надо бы про него почитать, как он в сравнении с sha512?sha512, конечно, хороший криптографический хеш, но этого недостаточно для парольного хеша. В случаях, когда данные на входе хеш-функции короче по длине с тем, что на выходе, становится также важно обеспечить защиту от подбора исходных данных, потому на парольные хеши налагаются дополнительные требования, которые противоречат требованиям к криптохешам общего назначения.
Теперь лепить гостевухи сьанет еще проще.
> Теперь лепить гостевухи сьанет еще проще.тебе ТАК не хватало в гостевухе абстрактных объектов и у нее настолько еба...интересные запросы к базе, что понадобилась их ОТЛАДКА внутри кода?
давай мы всем опеннетом скинемся тебе на оплату первого семестра курсов для эффективных менеджеров, мир явно улучшится.
Да там большая часть вышеотписавшихся такие же, не представляет что такое php современный...
> Да там большая часть вышеотписавшихся такие же, не представляет что такое php
> современный...да ты еще скажи, что эти отписатели видели какой-то несовременный, четвертый, хотя бы (который, в поздних версиях, уже был давным-давно не инструментом для тяпляпанья гостевух). Большинство из них скорее всего даже к пресловутой истории с foreach() опоздали родиться.
В отличии от Golang и Rust не умеет в юникоды из коробки.
"в отличие от модных-современных поделок - знает о существовании кодировок, отличных от utf8 (которая тоже еще не весь юникод) и умеет с ними работать"поправил, не благодари.
> utf8 (которая тоже еще не весь юникод)А вот тут можно поподробнее?
Да дай ты ему выговориться. Что же так к словам цепляются.
Unicode can be implemented by different character encodings. The Unicode standard defines UTF-8, UTF-16, and UTF-32, and several other encodings are in use. The most commonly used encodings are UTF-8, UTF-16 and UCS-2
Не отвечает на вопрос. Всё пространство юникота может быть представлено в UTF-8.