The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Релиз языка программирования PHP 7.2

30.11.2017 16:16

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

Ключевые улучшения в PHP 7.2:

  • Новый тип object, при помощи которого можно передавать объекты в качестве параметров и возвращаемых значений функций, а также проводить проверку соответствия типов;
    
       function test(object $obj) : object
       {
           return new SplQueue();
       }
       test(new StdClass());
    
  • Возможность переопределения абстрактных методов, когда один абстрактный класс наследует другой абстрактный класс;
    
       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
       }
    
  • Вывод предупреждения E_WARNING при попытках использования функции count() для неисчисляемых скаляров или объектов, не поддерживающих интерфейс Countable (ранее вызов count() для них всегда выдавал 1, что способствовало появлению скрытых ошибок);
  • Интеграция в основной состав криптографической библиотеки Libsodium. По сравнению с OpenSSL, Libsodium предоставляют существенно более простой API, совместимый с библиотекой NaCl, а также применяет по умолчанию безопасные методы шифрования и хэширования. Функции Libsodium доступны разработчикам на языке PHP с префиксом "sodium_*", в отличие от ранее применяемого в расширении pecl/libsodium префикса "Sodium*".

    Благодаря Libsodium разработчики на PHP получили возможность использования современных криптографических средств без необходимости установки дополнений, что позволит реализовать в web-приложениях более надёжные криптографические методы, даже в условиях использования хостинга, не допускающего установки своих дополнений. В том числе в базовой поставке доступны цифровые подписи Ed25519, обмен ключами ECDH+Curve25519, шифрование ChaCha20-Poly1305 и AES-256-GCM;

  • В число поддерживаемых методов хэширования паролей добавлен алгоритм Argon2, победитель конкурса Password Hashing Competition;
  • Удалена поддержка дополнения Mcrypt из-за прекращения развития библиотеки libmcrypt и накопления большого числа неисправленных проблем;
  • Проведена работа по приведению в порядок констант для TLS, значения которых теперь нацелены на обеспечения лучшей безопасности (tls:// и STREAM_CRYPTO_METHOD_TLS_* = TLSv1.0 + TLSv1.1 + TLSv1.2). Раньше константы были настроены для обеспечения максимальной обратной совместимости и допускали применение устаревших и ненадёжных методов шифрования;
  • Поддержка загрузки дополнений по их имени, без явного указания расширения файла (.so или .dll) в php.ini или при вызове функции dl();
  • Возможность оставлять запятую в конце сгруппированного списка пространств имён в директиве use:
    
       use Foo\Bar\{
           Foo,
           Bar,
           Baz,
    };
    
  • Строковый тип для PDO (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, в котором добавлена поддержка дополнительных форматов тегов, в том числе поддержка обработки специфичных тегов Samsung, DJI, Panasonic, Sony, Pentax, Minolta, Sigma/Foveon, AGFA, Kyocera, Ricoh и Epson;
  • HashContext (ext/hash) переведён на использованием объектов вместо ресурсов в качестве основной структуры для представления внутренних данных (для проверки вместо is_resource() теперь нужно вызывать is_object());
  • В дополнение SQLite3 добавлена поддержка записи блобов (SQLite3::openBlob() теперь может открывать поля BLOB в режиме записи);
  • В дополнение ZIP добавлена поддержка чтения и записи зашифрованных архивов;
  • В функциях pack() и unpack() добавлена поддержка типов float и double с порядком байтов как от младшего к старшему (little-endian), так и от старшего к младшему (big-endian);
  • Изменена обработка цифровых ключей при преобразовании массивов в объекты и объектов в массивы. Например, появилась возможность доступа к ключам в цифровом и строковом виде, присутствовавшим в массиве, преобразованном в объект и наоборот:
    
       $arr = [0 => 1];
       $obj = (object)$arr; // преобразуем массив в объект
       var_dump(
          $obj,
           $obj->{'0'}, // теперь доступен
           $obj->{0} // теперь доступен
       ); 
    
  • Запрещено использования слова object в качестве имён классов, интерфейсов и типажей;
  • Минимальные требования к версии Windows подняты до Windows 7 и Windows Server 2008 R2;
  • Прекращена поддержка платформы NetWare;
  • Прекращена поддержка директивы конфигурации sql.safe_mode.


  1. Главная ссылка к новости (http://php.net/archive/2017.ph...)
  2. OpenNews: В основной состав PHP будет включена криптографическая библиотека Libsodium
  3. OpenNews: В PHPMailer выявлена ещё одна критическая уязвимость, вызванная недоработкой в PHP
  4. OpenNews: Релиз языка программирования PHP 7.1
  5. OpenNews: Релиз языка программирования PHP 7.0
Лицензия: CC-BY
Тип: Интересно / Программы
Короткая ссылка: https://opennet.ru/47652-php
Ключевые слова: php
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (98) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, th3m3 (ok), 16:41, 30/11/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –10 +/
    >>изменений, нарушающих совместимость.

    Идеальный момент спрыгнуть с php, на что-то более адекватное и современное.

     
     
  • 2.16, rshadow (ok), 17:25, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Ага, на питон. Только решить на 2-й или 3-й.
     
     
  • 3.48, Пиони (?), 21:27, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Второй уже испускает последнее дыхание. С разморозкой
     
     
  • 4.54, Аноним (-), 22:47, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    А третий настолько же стабилен, как и похапе.

    Вот и неясно, что выбрать.

     
     
  • 5.74, Аноним (-), 02:54, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Существенных нарушений совместимости в трешке нет. И не надо путать отсутствие развития второй версии со стабильностью.
     
     
  • 6.130, Аноним (-), 21:30, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Берите GO и не ибите всем мозг.
     
     
  • 7.136, mma (?), 05:28, 04/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Rust же )
     
  • 3.86, Вадик (??), 09:41, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Слушайте, такой выбор уже не стоит года как 3-4. 2 используется в основном легаси, а 3 когда-то боялись использовать не из-за нестабильности (хотя как-то раз я и сегфолт умудрился словит... на 2 версии), в из-за отсутствия библиотек. Сейчас проблема с библиотеками ушла (причем уже как года 3 данная проблема решена), но легаси никуда не делся. И вот эти некроманты и поддерживают легенды, что 2 версия рулит. Как написали выше, по факту она мертва. Ее поддержка скоро будет официально прекращена.
     
  • 2.20, Аноним (-), 17:34, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Java/Tomcat на мощном серваке? Или webmonkeyJS?
    Трудно найти по этим двум условиям сразу.
    Когда хотел познать AngularJS, был удивлён, что примеры из руководства уже устарели.
     
  • 2.21, Аноним (-), 17:38, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Да у них с каждым релизом такой момент настаёт.
     
  • 2.29, VINRARUS (ok), 17:57, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    На shell под httpd.
     
  • 2.35, Rodegast (ok), 18:19, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Haskell рулит!
     
  • 2.39, Аноним (-), 19:21, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Ruby круче всех!
     
     
  • 3.53, SubGun (ok), 22:35, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да не то слово.

    - О, появилась нужная фича в одном из гемов.
    - Черт, он требует новых версий еще пары гемов.
    - Это что, теперь делать рефакторинг всех 100+ гемов в проекте?! Да ну нафиг.

    - Блин, нужен гем для работы с ****, чтобы самому не писать. Самое простое gem list ****. Опа, тут 50 гемов, половина из которых не работает и не обновлялось уже Дцать лет, оставшиеся 30% имеют стремные имена, и лишь часть с виду нормальные, но либо не работают с текущей версией ruby, либо требуют слишком новых/старых версий других геммов, а значит снова рефакторинг. Да ну нафиг, проще самому написать.

    Справедливости ради, этими же проблемами страдает nodejs и др. Ruby нифига не панацея. Лишь с языком, где достаточно долго не ломается совместимость от версии к версии, удобно работать.

     
     
  • 4.62, Имярек (?), 23:39, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Только опакеченые гемы и стабильный дистр спасут от безумия. Но уменьшат список доступных гемов, да.
     
     
  • 5.89, Andrey Mitrofanov (?), 09:47, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Только опакеченые гемы и стабильный дистр спасут от безумия. Но уменьшат список
    > доступных гемов, да.

    Таких дистров нет*. Их ментейнеров от безумия не спасти.

    *в "широкой" перспективе

     
  • 5.121, ЫгиПгт (?), 18:04, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Опять же, руби - как подарок от бывшей на ДР Может быть вкусняшка, а может оказ... большой текст свёрнут, показать
     
  • 4.139, ойой (?), 14:01, 08/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Лишь с языком, где достаточно долго не ломается совместимость от версии к версии, удобно работать.

    Всем Perl5 посоны!

     
  • 2.43, Аноним (-), 20:30, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Только perl, только хардкор!
     
  • 2.77, Агроном (?), 04:11, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На С++
     
  • 2.82, Ag (ok), 08:44, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Perl!
     

  • 1.2, Аноним (-), 16:46, 30/11/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    >function test(object $obj) : object

    До сих пор ломаю голову, как же так надо додуматься делать: всё огораживать в функции и присваивать им значение, которое они должны возвращать, вместо того, чтобы просто сделать тип данных, как в C, например, int test(), или тот же obeject test().
    facepalm

     
     
  • 2.63, Имярек (?), 23:42, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Подход "ворочу как хочу" не очень годится для синтаксиса. Хотя Си и плюсы это очень любят. А потом ты гадаешь, объявление это или...
     

  • 1.4, Аноним (-), 16:48, 30/11/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Для персональной домашней страницы должно быть норм
     
     
  • 2.5, th3m3 (ok), 16:50, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    На большее он и не годится.
     
     
  • 3.8, Аноним (-), 16:51, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > На большее он и не годится.

    Расскажите фейсбуку и вконтакту :)

     
     
  • 4.10, Аноним (-), 16:54, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Там нечто модифицированное, что имеет мало отношения к стоковому пыху.
     
  • 4.11, koblin (ok), 16:56, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    сложно найти что-то более уродливое чем фейсбук, видно, что писали апологеты пхп
     
     
  • 5.17, Аноним (-), 17:27, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Уродливость да. Но уродливость != язык. Язык есть у всех во рту, но используют его люди по-разному.
     
     
  • 6.25, koblin (ok), 17:48, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Язык определяет бытие
     
     
  • 7.61, Аноним (-), 23:34, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Духовненько!
     
  • 6.30, VINRARUS (ok), 17:59, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    не проще писать "мова"?
     
     
  • 7.91, Anonymoustus (ok), 09:52, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Лингвоинвалиды не поймут.
     
  • 5.40, Аноним (-), 19:34, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Линкедин :)
     
  • 5.50, тигар (ok), 21:46, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > сложно найти что-то более уродливое чем фейсбук, видно, что писали апологеты пхп

    толи дело ЖэЖэ, да?:-)
    ЗЫЖ фейсбуком не пользуюсь, если чо. оценивать ЯП по сайтикам это зачёт, я считаю.

     
     
  • 6.87, нах (?), 09:46, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > толи дело ЖэЖэ, да?

    глядя на вполне уверенно набирающий обороты dream - понимаешь, что в общем да, вполне можно, оказывается, и на перле писать достаточно большие проекты. Наверное, при размере еще побольше, оно бы все таки сдохло, но лучше до таких и не отрастать - опять мордокнига получится.
    А проблемы жыжы были и есть не в языке, а сперва в нежелании платить зарплаты техническому персоналу, все пошло менеджерам по рыгламе, а потом уже и [censored, не будем о грустном]

    > оценивать ЯП по сайтикам

    s/сайтик/один из крупнейших проектов как по числу пользователей, так и по числу перемалываемых данных/

     
     
  • 7.92, Anonymoustus (ok), 09:53, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Что вы понимаете под размером — количество юзеров?
     
  • 4.12, jOKer (ok), 16:56, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Которые только им известно сколько раз уже пожалели об инвестировании в пых. Конечно, при том количестве капитала что они туда засунули метаться им уже поздняк, но вот те, кто еще не сделал эту глупость, имеют все шансы ее не делать - для этого нужно всего лишь чутка подумать.
     
     
  • 5.14, Гриша (?), 17:06, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Знаете какой то другой язык для веб разработки?
     
     
  • 6.18, . (?), 17:29, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Да
     
  • 6.19, SysA (?), 17:29, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Знаете какой то другой язык для веб разработки?

    Java?

     
     
  • 7.22, Гриша (?), 17:41, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Java хороший язык, но подходит ли он для веб разработки?
     
     
  • 8.27, jOKer (ok), 17:52, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Безусловно - да Хотя стоимость такой разработки как правило оказывается запреде... текст свёрнут, показать
     
     
  • 9.38, Гриша (?), 18:45, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Да, в плане отказоустойчивости и производительности у джава мало конкурентов НО ... текст свёрнут, показать
     
     
  • 10.56, SubGun (ok), 22:52, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Вот только я не встречал еще ни одного приложения на Java, которое бы нормально ... текст свёрнут, показать
     
     
  • 11.59, Аноним (-), 23:04, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Ну то есть для веба - самое то ... текст свёрнут, показать
     
  • 11.64, Имярек (?), 23:43, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • +/
    ЛОР же ... текст свёрнут, показать
     
  • 11.65, jOKer (ok), 00:31, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Ну, Atlassian Jira же Очень даже стабильно работает, я бы сказал Жрет память, ... текст свёрнут, показать
     
     
  • 12.84, Аноним (-), 09:20, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    клиент 700 ест чтобы потрекать задачку ... текст свёрнут, показать
     
  • 11.95, Anonymoustus (ok), 09:58, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да ну ладно, тысячи их 8482 Не для веба, но пример хороший http www jedit ... текст свёрнут, показать
     
     
  • 12.119, ЫгиПгт (?), 17:46, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Приложений-то хороших полно Тот же эластик со всеми прибамбасами типа логстэша ... текст свёрнут, показать
     
     
  • 13.120, Anonymoustus (ok), 17:55, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как только заработают реакторы промышленной утилизации гoвнокодеров, так сразу ж... текст свёрнут, показать
     
     
  • 14.124, Аноним (-), 19:26, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    -- очевидный фикс ... текст свёрнут, показать
     
  • 10.58, Аноним (-), 23:02, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    NullPointerException ... текст свёрнут, показать
     
  • 6.23, jOKer (ok), 17:43, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Таких языков полно Если говорить о бакенде, то выбор весьма широк от Ruby и P... большой текст свёрнут, показать
     
     
  • 7.26, Гриша (?), 17:51, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • –5 +/
    gt оверквотинг удален Что за фантазии Где вакансии по руби питону Erlang,Rus... большой текст свёрнут, показать
     
     
  • 8.28, jOKer (ok), 17:55, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • +/
    gt оверквотинг удален Уважаемый, прежде чем писать такие гм неумные фразы, ... большой текст свёрнут, показать
     
     
  • 9.31, Гриша (?), 18:07, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Посмотрел, прослезился, вакансий мало, зп еще ниже Это вещи, конечно, связанны... текст свёрнут, показать
     
     
  • 10.32, jOKer (ok), 18:13, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Тогда удаленная модератором фраза про таксопарк хорошо сказано - она для вас ... текст свёрнут, показать
     
     
  • 11.33, Гриша (?), 18:15, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Мало любить, еще нужно понимать ... текст свёрнут, показать
     
     
  • 12.34, jOKer (ok), 18:19, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Не поспоришь Однако, понимание и пых вещи, как правило, мало совместимые Н... текст свёрнут, показать
     
     
  • 13.37, Гриша (?), 18:23, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Да, есть такая проблема я о низком уровне вхождения , с пониманием лично у меня... текст свёрнут, показать
     
  • 11.96, пох (?), 10:13, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    вы точно работали таксистом, или так, слышали вас и тут кинули Работа у чинов... большой текст свёрнут, показать
     
  • 8.67, Аноним (-), 00:41, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Доооо ... текст свёрнут, показать
     
  • 7.55, SubGun (ok), 22:47, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Если говорить о бакенде, то выбор весьма широк: от Ruby

    Где версии гемов прибиты гвоздями и обновление какого-то гема в большинстве случаев приведет к рефакторингу всего проекта, где могут быть сотни гемов.
    Именно поэтому некоторые еще сидят на 1.9 и третьих рельсах, потому что обновление равносильно написанию приложению с нуля.

    > Для бакенда так же можно использовать и js/Node.

    Та же самая проблема с версиями. Любой шаг в сторону, и море боли и унижения вам гарантировано.

     
     
  • 8.60, Sw00p aka Jerom (?), 23:22, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • +/
    дык это же критерий прогресса смена цифр в версиях сарказм ... текст свёрнут, показать
     
     
  • 9.103, анонимус (??), 13:05, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Ну дык в том же критикуемом похапе такого головняка нет ... текст свёрнут, показать
     
     
  • 10.107, пох (?), 13:35, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    устаревшний проект, чего с них взять У них даже первая цифра версии не двузначн... текст свёрнут, показать
     
  • 7.57, Аноним (-), 23:00, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > если у вас все в порядке с головой [...] то вас может заинтересовать Haskell

    Если у вас всё в порядке с головой, то вас может заинтересовать уединённая палата, в которой вы сможете отстраниться от повседневной суеты и посвятить себя размышлениям о жизни, своей роли в мире и чём-то более высоком, нежели как заработать денег и как от них избавиться.

     
  • 6.36, Rodegast (ok), 18:22, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Python же!
     
  • 6.72, Gogi (??), 02:25, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    ASP.NET/C#
     
     
  • 7.78, Агроном (?), 04:14, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > ASP.NET/C#

    C# хорош, а вот ASP гуано

     
     
  • 8.93, пох (?), 09:53, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    как человек, поддерживавший тяжелые проекты на mono еще когда это не стало модны... текст свёрнут, показать
     
  • 6.80, leap42 (ok), 05:17, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Попробуйте Go.
    Нет, серьёзно - попробуйте.
    Вопрос перестанет возникать.
     
     
  • 7.99, redwolf (ok), 11:29, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Пробовали GraphQL и Rest на Go. Не понравилось. По сравнению с тем же Apigility на Zend2 или Symfony3, не катит для серьёзных проектов; Хотя сам язык Go мне лично понравился. Но как по мне, так он не для вёба, а для системщиков.
     
     
  • 8.109, Аноним (-), 13:39, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Полагаю, разрабы докера с Вами согласятся ... текст свёрнут, показать
     
  • 7.135, Гриша (?), 03:21, 04/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Недвано пробовал Go, он пока еще совсем маленький, до джаваскрипта даже не дорос еще пока что, не то что до языка программирования.
     
  • 5.90, инвестор (?), 09:49, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Которые только им известно сколько раз уже пожалели об инвестировании в пых.
    > Конечно, при том количестве капитала что они туда засунули метаться им
    > уже поздняк, но вот те, кто еще не сделал эту глупость,
    > имеют все шансы ее не делать - для этого нужно всего
    > лишь чутка подумать.

    /me подумать: "не пейсбук ли я? Чур меня, чур! Уфф, нет, конечно, приснится же такое. Спокойно, ребята, продолжаем пользовать пехепе, нам ТЕ проблемы ни разу не грозят."

     
  • 4.15, th3m3 (ok), 17:13, 30/11/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Они и так знают про свою ошибку с выбором PHP. Сколько лет уже с ним мучаются.
     
     
  • 5.100, redwolf (ok), 11:34, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Они и так знают про свою ошибку с выбором PHP. Сколько лет
    > уже с ним мучаются.

    Они уже давно сделали из него яву и не мучаются. Но это не серьёзный пример. Мы писали вполне себе вменяемую систему на современных версиях PHP. Прекрасно оно всё скейлится. По крайней мере до какого-то определённого уровня, в который мы, не будучи фейсбуком, не упёрлись. Могли бы сделать и на яве, но вышло бы заказчику в разы дороже, а зачем?

     
     
  • 6.125, Аноним (-), 19:28, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > вышло бы заказчику в разы дороже, а зачем?

    Сам ответил, сам спросил :) Никогда в ява-компаниях не работал?

     
     
  • 7.141, redwolf (ok), 20:40, 14/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Сам ответил, сам спросил :) Никогда в ява-компаниях не работал?

    В крупной C++ контре работал когда-то. На Qt писали крупные проекты. В ява-команде работал в небольшой. Уровень менеджмента и впаривания клиентам ява-решений представляю. Так вот обманывать людей нехорошо, так что вопрос вполне рациональный. Ну не нужна ява всем и везде. А те, кто вам скажут иное, либо хотят развести на деньги, либо работают 1-3 года на яве и хвалят её, потому что им её уже 1-3 года на работе впаривают, не забывая недоплачивать (они ведь великой вещи учатся, какие высокие ставки: осёл-морковка, корпоративная лестница), что ведёт к отсутствию кругозора и нежелания смотреть на другие технологии.

     
  • 6.127, jOKer (ok), 19:41, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • –4 +/
    >зачем?

    Потому что сопровождать яву в разы дешевле чем эксклюзивчик на пыхе, не?

     
     
  • 7.140, redwolf (ok), 20:34, 14/12/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Потому что сопровождать яву в разы дешевле чем эксклюзивчик на пыхе, не?

    Чем "эксклюзивчик" на пыхе будет отличаться от "эксклюзивчика" на яве? И откуда вообще возбмётся "эксклюзивчик"? Если вы имеете в виду самописное г-но без стандартов, адекватной архитектуры и тп, на которое потом не найдёшь разработчика, потому что это нечто самописное, то так нормальные люди не делают. Уверен, на яве таких проектов тоже хватает. А какого-нибудь Symfony developer можно найти без проблем.

     
  • 4.142, username (??), 23:38, 01/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Та ну, у фб hack а не пхп. И похож он на пых только затем чтобы не переучивать программеров. Ну и hhvm.
     

  • 1.13, Гриша (?), 16:58, 30/11/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    1) Реализованы дополнительные средства отладки при эмуляции предварительно формируемых запросов (prepared statement): через метод PDOStatement::debugDumpParams() теперь можно получить сведения об отправленном в СУБД SQL-запросе, после подстановки заменяемых значений;
    2)Новый тип object, при помощи которого можно передавать объекты в качестве параметров и возвращаемых значений функций, а также проводить проверку соответствия типов;
    3)Возможность переопределения абстрактных методов, когда один абстрактный класс наследует другой абстрактный класс.
    4) Возможность явно не указывать типы параметров в переопределяемых методах.
    Лично мне этих вещей давно нехватало.
     
  • 1.41, Ilya Indigo (ok), 19:53, 30/11/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > ... Libsodium ... Ed25519 ... ECDH+Curve25519 ... ChaCha20-Poly1305 ...

    Просто красота! :-)

    > ... алгоритм Argon2, победитель конкурса Password Hashing Competition;

    Надо бы про него почитать, как он в сравнении с sha512?

    А ещё осталось дождаться, когда https://pecl.php.net/package/xdebug 2.6.0 выпустится, который будет совместим с сабжем.

     
     
  • 2.75, Аноним (-), 03:09, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Надо бы про него почитать, как он в сравнении с sha512?

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

     

  • 1.45, Аноним (-), 20:42, 30/11/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Теперь лепить гостевухи сьанет еще проще.
     
     
  • 2.94, пох (?), 09:57, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Теперь лепить гостевухи сьанет еще проще.

    тебе ТАК не хватало в гостевухе абстрактных объектов и у нее настолько еба...интересные запросы к базе, что понадобилась их ОТЛАДКА внутри кода?

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

     
     
  • 3.98, Gemorroj (ok), 11:02, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да там большая часть вышеотписавшихся такие же, не представляет что такое php современный...
     
     
  • 4.106, пох (?), 13:30, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Да там большая часть вышеотписавшихся такие же, не представляет что такое php
    > современный...

    да ты еще скажи, что эти отписатели видели какой-то несовременный, четвертый, хотя бы (который, в поздних версиях, уже был давным-давно не инструментом для тяпляпанья гостевух). Большинство из них скорее всего даже к пресловутой истории с foreach() опоздали родиться.

     

  • 1.110, Аноним (-), 14:06, 01/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    В отличии от Golang и Rust не умеет в юникоды из коробки.
     
     
  • 2.111, Аноним (-), 15:21, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    "в отличие от модных-современных поделок - знает о существовании кодировок, отличных от utf8 (которая тоже еще не весь юникод) и умеет с ними работать"

    поправил, не благодари.

     
     
  • 3.126, Аноним (-), 19:29, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > utf8 (которая тоже еще не весь юникод)

    А вот тут можно поподробнее?

     
     
  • 4.129, Аноним (-), 21:08, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да дай ты ему выговориться. Что же так к словам цепляются.
     
  • 4.133, ваша википедия (?), 23:58, 01/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    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

     
     
  • 5.134, Голоса в пустыне (?), 14:24, 03/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Не отвечает на вопрос. Всё пространство юникота может быть представлено в UTF-8.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру