Представлен (http://php.net/index.php#id2014-01-23-1) вервый альфа-выпуск новой значительной ветки языка программирования PHP 5.6.0.
Наиболее заметные улучшения (http://docs.php.net/manual/en/migration56.new-features.php):- Константные скалярные выражения (constant scalar expressions), допускающие применение операций над числовыми или строковыми литералами и константами в контексте, предусмотренном для статических значений, таком как определение констант или значений по умолчанию аргументов функций. Например, "const ONE = 1; const TWO = ONE + 2;"
- Функции с переменным числом аргументов (Variadic function (http://en.wikipedia.org/wiki/Variadic_functions)), при определении которых явно не указывается число передаваемых аргументов. Например, функцию "function f($req, $opt = null, ...$params)" можно вызывать как f(1, 2), f(1, 2, 3, 4, 5) и т.п., где $req является обязательным аргументом, $opt - опциональным, а все дополнительные аргументы передаются в форме массива $params.
- Распаковка массивов или перечисляемых объектов в вид набора аргументов при вызове функции, используя оператор "...". Например, "$operators = [2, 3]; echo add(1, ...$operators);", где add является функцией трёх аргументов;
- Возможность использования оператора use для импорта функций и констант, в дополнение к импорту классов. Например, "namespace { use function Name\Space\f;...." для импорта в текущее пространство имён функции f, определённой в пространстве имён Name\Space;
- Возможность повторного использования ввода php://input, который теперь может быть переоткрыт и прочитан более одного раза. Изменение также привело к значительному сокращению потребления памяти при обработке данных, переданных через метод POST;
- Для объектов GMP (http://docs.php.net/manual/en/book.gmp.php) обеспечена возможность перегрузки оператора и приведения скалярных типов;
- Поддержка загрузки файлов, размером больше 2GiB;
- Улучшение поддержки SSL/TLS. В частности, в расширении OpenSSL добавлена возможность извлечения и проверки подписи (fingerprint) сертификатов. Для извлечения подписи из сертификатов X.509 добавлена функция openssl_x509_fingerprint(). Для SSL-потоков добавлены две контекстные опции: capture_peer_cert для захвата сертификата X.509 и peer_fingerprint для проверки его соответствия заданной подписи. Кроме того, добавлена поддержка выбора криптографических методов, таких как SSLv3 и TLS, через установку контекстной опции crypto_method, поддерживающей значения STREAM_CRYPTO_METHOD_SSLv2_CLIENT, STREAM_CRYPTO_METHOD_SSLv3_CLIENT, STREAM_CRYPTO_METHOD_SSLv23_CLIENT (по умолчанию) и STREAM_CRYPTO_METHOD_TLS_CLIENT;
- Добавлена поддержка алгоритма хэширования gost-crypto;
li class=l> Новый интерактивный отладчик phpdbg (http://phpdbg.com/docs), выполненный в форме модуля SAPI.URL: http://php.net/index.php#id2014-01-23-1
Новость: http://www.opennet.me/opennews/art.shtml?num=38920
Я им пользуюсь. И желаю ему развития и улучшения :)
Кстати уважаемые, скажите а в PHP много дырок которые могут эксплуатироваться вне зависимости от кривости написанного php кода?
Ну типа таких что например вне зависимости от php файла, если ему передаёшь определённым образом оформленный get запрос, то происходит эксплуатация уязвимости.
Серьезный coming out.
> Серьезный coming out.Тут скоре всего шизофрения.
зависит от версии, "определённым образом оформленный get запрос, то происходит эксплуатация уязвимости" известных нет. А вот "определенным образом оформленный документ/сертификат/картинку итп" - да, фиксят,регулярно, нефик сидеть на старой версии
Зачем было правду про Node VS PHP удалять?
А что там было?
Там было про то, что скоро node (и нод-апи) и серверный JS доведут до ума, и про то, что PHP станет просто не нужен в таком случае.
Потому что скорость работы одна и таже, но на JS проще писать.
> Там было про то, что скоро node (и нод-апи) и серверный JS
> доведут до ума, и про то, что PHP станет просто не нужен в таком случае."Не говори "гоп!" пока не перепрыгнешь!"
> Там было про то, что скоро node (и нод-апи) и серверный JS
> доведут до ума, и про то, что PHP станет просто не
> нужен в таком случае.
> Потому что скорость работы одна и таже, но на JS проще писать.Чем именно проще? тем что субъективно вам больше нравится?
> Чем именно проще? тем что субъективно вам больше нравится?Ну оно так всегда и определялось, вообще-то.
>> Чем именно проще? тем что субъективно вам больше нравится?
> Ну оно так всегда и определялось, вообще-то.Ну вообще говоря нет. Если я мельком наслышан или "пришлось, но не осилил" какой-нибудь ruby или что-то типа, то заявлять, что ruby сложный, не буду.
А если работал много с обоими языками, то вполне ожидаемо обосную свою позицию
как то например
- более простую настройку окружения (как для разработки так и для работы)
- большой выбор литературы и другого образовательно-познавательного материала.
- наличие готовых библиотек
- наличие сообщества
- наличие каких-то уникальных конструкций языка, позволяющих решать задачи быстрее/надежнее/меньше в конкретной проблемной области.Что из этого ЗАМЕТНО проседает в php по сравнению со средней температурой по больнице?
>>> Чем именно проще? тем что субъективно вам больше нравится?
>> Ну оно так всегда и определялось, вообще-то.
> Ну вообще говоря нет. Если я мельком наслышан или "пришлось, но не
> осилил" какой-нибудь ruby или что-то типа, то заявлять, что ruby сложный,
> не буду.
> А если работал много с обоими языками, то вполне ожидаемо обосную свою
> позицию
> как то например
> - более простую настройку окружения (как для разработки так и для работы)Опять хрень какая-то. Команды апт-гета для окружения изучаются один раз, а потом используются всю жизнь. Выбирать на основе этого...
> - большой выбор литературы и другого образовательно-познавательного материала.
да, хелп более вменяемый. почти все библиотеки документированы сфинксом - это удобно и ридзедокно! :)
> - наличие готовых библиотек
Ну, когда в php будет хотя бы 20% библиотек python, тогда и приходите. :)
> - наличие сообщества
не знаю, это в php, наверное, нужно куда-то бегать...
> - наличие каких-то уникальных конструкций языка, позволяющих решать задачи быстрее/надежнее/меньше в конкретной проблемной области.
Именно. только если понимать парадигму. и ущербность питоновского "что вижу, то и пою", которая ПОТРЕБУЕТ обходных костылей для того, для сего. Или каких-нибудь фреймворков, сделанных в python-стиле, но без python.
В любом случае - пыхер манкейкодит и манкейкодит, а на языках более высокого уровня сначала подумал, потом придумал, а в итоге оно может и меньше ста строчек занять, понятного и читаемого кода, где манкипыхер на манкикодил уже 1000, которые. скажем так, не такие поддерживаемые... :)
> Что из этого ЗАМЕТНО проседает в php по сравнению со средней температурой по больнице?Как можно это цифрами измерить? Просто берёшь, пишешь на двух трёх языках несколько проектов разной степени сложности, и смотришь, где язык решает твои проблемы, а где ты - его. Объяснить словами вкус пряников - невозможно.
Вообще-то, python, ruby и ещё десяток языков уже давно готовы. Node будет, в лучшем случае, 11-м.На php надо тем, кто пишет на php. Тем, кто пишет для веба, а не для php - уже давно перешли :) Кто нет, тем и nodejs небольшой помощник - и в 2334 году будут те, кто будет писать под php 5.2, и думать, не мигрировать ли на php 5.3
> Вообще-то, python, ruby и ещё десяток языков уже давно готовы.И у каждого есть свои недостатки, сопоставимые с недостатками php.
настолько сопастовимых с пыхом недостатков нет нигде.
Можете продолжать считать себя элитой и рок-звездами программирования.
Ведь это так круто не быть мейнстримом.
Причём здесь мейнстрейм и не мейнстрейм вообще? Чушь какая-то, рок-звёзды за рок-окном.У php есть вполне конкретные и вполне дикие проблемы, которые создают проблемы и разработчику. Если в слепом неведении этим пользоваться ещё можно, то посмотрев на нормальные средства, к php не захочется ни под каким соусом, за редким исключением. :)
И это уже не исправишь никакими версиями :)
Там колбэк на колбэке, ужос же
Определять прогресс загрузки файла на стороне сервера уже можно? Или опять костыли нужно городить?
Goto читать гугл. С 5.4 можно, но лучше костыли на bash делать, чтобы процессами можно было рулить нормально.
Сама модель работы любого HTTP-сервера слегка усложняет данный процесс :)
"Функции с переменным числом аргументов..." - довольно долго до PHP доходят возможности доступные в других языках (*args в python)
Они так-то были и есть. Будет просто более удобный синтаксис.
фиг его знает, я вот последовательность более 5 аргументов уже не помню, либо смотреть каждый раз, либо сразу в массив пихать.сто лет в обед в пхп есть get_func_args()
Перепутали с func_get_args? Ничего страшного, бал рэндома в наименовании функций это родовая особенность пыха.
> "Функции с переменным числом аргументов..." - довольно долго до PHP доходят возможности
> доступные в других языках (*args в python)интересно, **kwargs когда появится? :)
php, python ... все они костные по сравнению с Perl, только там настоящая гибкость и свобода :)