Всех с пятницей!
Наконец, получилось закончить пост, который начал еще до отпуска недели 2 назад)
Надеюсь он будет полезен как новичкам, так и бывалым разработчикам для поднятия #docker контейнеров #Redis кластера.
https://sergeymukhin.com/blog/kak-ispolzovat-redis-cluster-dlia-keshirovaniia
Наконец, получилось закончить пост, который начал еще до отпуска недели 2 назад)
Надеюсь он будет полезен как новичкам, так и бывалым разработчикам для поднятия #docker контейнеров #Redis кластера.
https://sergeymukhin.com/blog/kak-ispolzovat-redis-cluster-dlia-keshirovaniia
Sergeymukhin
Как использовать Redis Cluster для кэширования
В этом посте мы рассмотрим, как мы можем использовать Redis в качестве провайдера кеша для нашего приложения, и по мере дальнейшего изучения мы увидим, как кластер Redis может обеспечить нам большую масштабируемость и надежность
👍4🐳1
С началом недели!
Итак, Новая функция mb_str_pad в PHP 8.3.
В PHP различные строковые функции доступны в двух вариантах: один для байтовых строк, а другой для многобайтовых строк (mb). Однако заметным отсутствием среди многобайтовых строковых функций mbstring является эквивалент str_pad(). В функции str_pad() отсутствует поддержка многобайтовых символов, что вызывает проблемы при работе с языками, использующими многобайтовые кодировки, такие как UTF-8. Этот RFC предлагает добавить в PHP такую функцию, которую мы будем называть mb_str_pad():
Итак, Новая функция mb_str_pad в PHP 8.3.
В PHP различные строковые функции доступны в двух вариантах: один для байтовых строк, а другой для многобайтовых строк (mb). Однако заметным отсутствием среди многобайтовых строковых функций mbstring является эквивалент str_pad(). В функции str_pad() отсутствует поддержка многобайтовых символов, что вызывает проблемы при работе с языками, использующими многобайтовые кодировки, такие как UTF-8. Этот RFC предлагает добавить в PHP такую функцию, которую мы будем называть mb_str_pad():
function mb_str_pad(
string $string,
int $length,
string $pad_string = " ",
int $pad_type = STR_PAD_RIGHT,
?string $encoding = null,
): string {}
var_dump(str_pad('Проверка', 10, '_', STR_PAD_RIGHT)); // Выведет: string(8) "Проверка"
// Тут же посчитается все верно и выведет два конечных __ после слова
var_dump(mb_str_pad('Проверка', 10, '_', STR_PAD_RIGHT));// string(10) "Проверка__"👍5👏2
Впереди вечер пятницы и выходные!
И можно почитать небольшой пост, по решению ошибки ERR_HTTP2_PROTOCOL_ERROR
Если у вас на сайте периодически стали выдаваться ошибки ERR_HTTP2_PROTOCOL_ERROR по запросу ресурса, и погуглить в интернете то многие сайты выдают стандартный набор советов, для простого пользователя, которые никак не касаются разработки.
Выполнить их, конечно можно, и проблема как пользователя возможно будет решена, но если вы разработчик/девопс и после деплоя приложения на сервере у вас возникает данная проблема, то одними такими действиями вы себе не поможете.
В конфиге вашего виртуального хоста nginx скорее всего есть такие директивы (или определены по умолчанию):
Как обычно с картинками и более подробным описанием в новом посте https://sergeymukhin.com/blog/kak-ispravit-osibku-err-http2-protocol-error-v-brauzere
И можно почитать небольшой пост, по решению ошибки ERR_HTTP2_PROTOCOL_ERROR
Если у вас на сайте периодически стали выдаваться ошибки ERR_HTTP2_PROTOCOL_ERROR по запросу ресурса, и погуглить в интернете то многие сайты выдают стандартный набор советов, для простого пользователя, которые никак не касаются разработки.
Выполнить их, конечно можно, и проблема как пользователя возможно будет решена, но если вы разработчик/девопс и после деплоя приложения на сервере у вас возникает данная проблема, то одними такими действиями вы себе не поможете.
В конфиге вашего виртуального хоста nginx скорее всего есть такие директивы (или определены по умолчанию):
fastcgi_buffer_size 4k;Вот как раз нехватка размера буфера и приводит к данной ошибке ERR_HTTP2_PROTOCOL_ERROR в ответ на запрос ресурсов. Следовательно увеличив размера буфера, например x2:
fastcgi_buffers 8 4k;
fastcgi_buffer_size 16k;В принципе все)
fastcgi_buffers 8 16k;
Как обычно с картинками и более подробным описанием в новом посте https://sergeymukhin.com/blog/kak-ispravit-osibku-err-http2-protocol-error-v-brauzere
Sergeymukhin
Как исправить ошибку ERR_HTTP2_PROTOCOL_ERROR в браузере
Если у вас на сайте периодически стали выдаваться ошибки ERR_HTTP2_PROTOCOL_ERROR по запросу ресурса, то милости прошу под кат
👍3🔥1
Всем привет и с 1 сентября!
Хоть и прошло много лет, а в груди все еще ёкает при наступлении первого числа осени!)
Итак, можно сказать уже последние RFC перед релизом
PHP 8.3: PHP CLI Lint (php -l) поддерживает проверку нескольких файлов одновременно
Как вы знали (или узнаете сейчас) PHP в CLI предоставляет функцию Linting, которая проверяет переданное имя файла на наличие синтаксических ошибок. Это полезно для быстрой проверки PHP-файла или фрагмента перед выполнением.
До PHP 8.3 было невозможно выполнить анализ нескольких файлов PHP за один вызов; независимо от количества предоставленных файлов, PHP CLI анализирует только первый файл:
- Если файл был недоступен, код выхода будет 1.
- Если какой-либо из файлов не удалось валидировать, код выхода будет 255.
- Если присутствуют оба условия ошибки, код выхода будет 1.
Помимо передачи нескольких имен файлов по отдельности, также можно использовать шаблон glob для проверки нескольких файлов:
Хоть и прошло много лет, а в груди все еще ёкает при наступлении первого числа осени!)
Итак, можно сказать уже последние RFC перед релизом
PHP 8.3: PHP CLI Lint (php -l) поддерживает проверку нескольких файлов одновременно
Как вы знали (или узнаете сейчас) PHP в CLI предоставляет функцию Linting, которая проверяет переданное имя файла на наличие синтаксических ошибок. Это полезно для быстрой проверки PHP-файла или фрагмента перед выполнением.
До PHP 8.3 было невозможно выполнить анализ нескольких файлов PHP за один вызов; независимо от количества предоставленных файлов, PHP CLI анализирует только первый файл:
php -l somefile.phpНачиная с PHP 8.3, можно передавать несколько файлов PHP, и PHP CLI проверяет их все за один вызов:
// No syntax errors detected in somefile.php
php -l somefile.php otherfile.phpЕсли линтер обнаруживает какие-либо ошибки в любом из предоставленных файлов, он показывает ошибку и переходит к остальной части списка. Если какой-либо из файлов не прошел проверку, он выдает ошибку:
// No syntax errors detected in somefile.php
// No syntax errors detected in otherfile.php
- Если файл был недоступен, код выхода будет 1.
- Если какой-либо из файлов не удалось валидировать, код выхода будет 255.
- Если присутствуют оба условия ошибки, код выхода будет 1.
Помимо передачи нескольких имен файлов по отдельности, также можно использовать шаблон glob для проверки нескольких файлов:
php -l src/*.php src/**/*.php
🎉4👍2❤1
Всем большой привет!
Итак, первое, поздравляю всех с профессиональным праздником Днем Программиста (как вы помните это 256 день)
Второе, сегодня мой день рождения, потому праздную я вдвойне можно сказать 😄 и у меня для вас есть интересная информация напрямую от одного из главных контрибьюторов PHP Дмитрия Стогова о новом JIT-движке, который будет использоваться в следующих версиях PHP.
Как вы знаете JIT появился в PHP 8.0 и представлял из себя компиляцию "на лету" - Just In Time, так же вы вероятно знаете, что PHP является интерпретируемым языком, он не компилирует программы в прямом смысле этого значения, как, например это делают C или Rust.
Чтобы включить JIT нужно было указать несколько параметров конфига php.ini.
Новый JIT движок PHP
Дмитрий Стогов поделился информацией в internal рассылках PHP о новом JIT-движке, который будет использоваться в следующих мажорных версиях PHP. Теперь это настоящий оптимизирующий компилятор с промежуточным представлением, аналогичный серверному компилятору Java HotSpot.
Он создает основу для будущих улучшений и устраняет многие низкоуровневые детали существующего PHP JIT. Вместо поддержки ассемблерного кода для разных процессоров теперь PHP генерирует один IR и передает его независимому от PHP JIT-движку.
Новая реализация JIT основана на IR-Lightweight JIT Compilation Framework и в отличии от старого JIT-подхода в PHP 8.*, который генерирует собственный код непосредственно из байт-кода PHP, эта реализация генерирует промежуточное представление (IR) и делегирует все задачи более низкого уровня в IR Framework. IR для JIT похож на абстрактное синтаксическое дерево (AST) для компилятора.
По сравнению с классическими оптимизирующими компиляторами (такими как GCC и LLVM), IR Framework использует очень короткий конвейер оптимизации. В сочетании с компактным IR-представлением это делает его чрезвычайно быстрым и позволяет генерировать довольно хороший машинный код за разумное время.
Более подробно и с примерами в новом посте https://sergeymukhin.com/blog/novyi-jit-dvizok-dlia-php-84-i-php-9
Итак, первое, поздравляю всех с профессиональным праздником Днем Программиста (как вы помните это 256 день)
Второе, сегодня мой день рождения, потому праздную я вдвойне можно сказать 😄 и у меня для вас есть интересная информация напрямую от одного из главных контрибьюторов PHP Дмитрия Стогова о новом JIT-движке, который будет использоваться в следующих версиях PHP.
Как вы знаете JIT появился в PHP 8.0 и представлял из себя компиляцию "на лету" - Just In Time, так же вы вероятно знаете, что PHP является интерпретируемым языком, он не компилирует программы в прямом смысле этого значения, как, например это делают C или Rust.
Чтобы включить JIT нужно было указать несколько параметров конфига php.ini.
Новый JIT движок PHP
Дмитрий Стогов поделился информацией в internal рассылках PHP о новом JIT-движке, который будет использоваться в следующих мажорных версиях PHP. Теперь это настоящий оптимизирующий компилятор с промежуточным представлением, аналогичный серверному компилятору Java HotSpot.
Он создает основу для будущих улучшений и устраняет многие низкоуровневые детали существующего PHP JIT. Вместо поддержки ассемблерного кода для разных процессоров теперь PHP генерирует один IR и передает его независимому от PHP JIT-движку.
Новая реализация JIT основана на IR-Lightweight JIT Compilation Framework и в отличии от старого JIT-подхода в PHP 8.*, который генерирует собственный код непосредственно из байт-кода PHP, эта реализация генерирует промежуточное представление (IR) и делегирует все задачи более низкого уровня в IR Framework. IR для JIT похож на абстрактное синтаксическое дерево (AST) для компилятора.
По сравнению с классическими оптимизирующими компиляторами (такими как GCC и LLVM), IR Framework использует очень короткий конвейер оптимизации. В сочетании с компактным IR-представлением это делает его чрезвычайно быстрым и позволяет генерировать довольно хороший машинный код за разумное время.
Более подробно и с примерами в новом посте https://sergeymukhin.com/blog/novyi-jit-dvizok-dlia-php-84-i-php-9
🎉7👍2
Ребят, привет!
Сегодня четверг и пара интересных новостей:
- Выпущен второй релиз кандидат для PHP 8.3
Как вы помните первый релиз кандидат PHP 8.3 был выпущен 31 августа, теперь же и второй кандидат доступен для тестирования, осталось еще 4 кандидата для финального выпуска.
Обратите внимание, что версии-кандидаты PHP 8.3 предназначены только для тестирования будущей версии PHP и не готовы для производственных систем.
Сегодня четверг и пара интересных новостей:
- Выпущен второй релиз кандидат для PHP 8.3
Как вы помните первый релиз кандидат PHP 8.3 был выпущен 31 августа, теперь же и второй кандидат доступен для тестирования, осталось еще 4 кандидата для финального выпуска.
Обратите внимание, что версии-кандидаты PHP 8.3 предназначены только для тестирования будущей версии PHP и не готовы для производственных систем.
31 Августа RC 1- Стали подготавливать список устаревших функции для PHP 8.4
14 Сентября RC 2
28 Сентября RC 3
12 Октября RC 4
26 Октября RC 5
9 Ноября RC 6
23 Ноября GA
👍4🐳1
Доброе утро, бодро работаем в пятницу и все те же пара новостей!
- Выпущен третий релиз кандидат для PHP 8.3 от
И к новостям о следующей версии PHP 8.4:
Вывод phpinfo() в PHP 8.4 будеть показывать размер целого числа, поддерживаемый текущей настройкой PHP в битах, также включается в выходные данные PHP CLI. Как вы помните, ранее все предыдущие версии (начиная с PHP 5.0.5) поддерживают константу PHP_INT_SIZE для определения размера целого числа.
- Выпущен третий релиз кандидат для PHP 8.3 от
28 Сентября RC 3Выше в посте можно увидеть график выхода всех релизов.
И к новостям о следующей версии PHP 8.4:
Вывод phpinfo() в PHP 8.4 будеть показывать размер целого числа, поддерживаемый текущей настройкой PHP в битах, также включается в выходные данные PHP CLI. Как вы помните, ранее все предыдущие версии (начиная с PHP 5.0.5) поддерживают константу PHP_INT_SIZE для определения размера целого числа.
❤3👍2
Всем отличной пятницы, друзья!
Я тут немного расслабился в отпуске и пока не могу от него еще отойти, но давайте быстро наверстаем упущенное по текущим новостям:
1. Во-первых 12 и 26 Октября прошли 4 и 5 Релиз Кандидаты PHP 8.3
2. Как вы знаете интернет (те же сервисы Гугла и клиенты Cloudflare) потрясла HTTP/2 атака Rapid Reset (быстрого сброса)
При определенных условиях эту уязвимость можно использовать для выполнения атаки типа "отказ в обслуживании" в nginx или других продуктах, реализующих серверную часть спецификации HTTP/2. Чтобы защитить ваши системы от этой атаки, рекомендуется немедленно обновить конфигурацию NGINX или другого веб-сервера.
3. В PHP 8.4 стали появляться первые RFC, направленные на изменение текущего функционала, в частности
Алгоритмическая сложность хеширование паролей Bcrypt по умолчанию изменена с 10 на 12, чтобы сделать пароли более устойчивыми и сложными.
Это изменение по существу эквивалентно:
Я тут немного расслабился в отпуске и пока не могу от него еще отойти, но давайте быстро наверстаем упущенное по текущим новостям:
1. Во-первых 12 и 26 Октября прошли 4 и 5 Релиз Кандидаты PHP 8.3
2. Как вы знаете интернет (те же сервисы Гугла и клиенты Cloudflare) потрясла HTTP/2 атака Rapid Reset (быстрого сброса)
При определенных условиях эту уязвимость можно использовать для выполнения атаки типа "отказ в обслуживании" в nginx или других продуктах, реализующих серверную часть спецификации HTTP/2. Чтобы защитить ваши системы от этой атаки, рекомендуется немедленно обновить конфигурацию NGINX или другого веб-сервера.
3. В PHP 8.4 стали появляться первые RFC, направленные на изменение текущего функционала, в частности
Алгоритмическая сложность хеширование паролей Bcrypt по умолчанию изменена с 10 на 12, чтобы сделать пароли более устойчивыми и сложными.
Это изменение по существу эквивалентно:
password_hash("some password", PASSWORD_BCRYPT, ["cost" => 12]);👍5❤1
Доброе утро!
За окном пятница, впереди выходные, давайте немного пробежимся по новостям:
1. 9 ноября вышел предпоследний релиз кандидат PHP 8.3 RC6
а это означает что следующий выпуск будет финальный, и по плану он 23 ноября, что уже довольно скоро)
2. Я продолжаю цикл статей о следующей версии HTTP/3 и здесь вы можете почитать о том, как подключить 3 версию http на Nginx
пример хоста nginx для подключения http3:
За окном пятница, впереди выходные, давайте немного пробежимся по новостям:
1. 9 ноября вышел предпоследний релиз кандидат PHP 8.3 RC6
а это означает что следующий выпуск будет финальный, и по плану он 23 ноября, что уже довольно скоро)
2. Я продолжаю цикл статей о следующей версии HTTP/3 и здесь вы можете почитать о том, как подключить 3 версию http на Nginx
пример хоста nginx для подключения http3:
server
{
# для лучшей совместимости рекомендуется использовать один порт для quic и https
# указываем протокол quic и параметр reuseport для правильной работы с несколькими рабочими процессами
listen 443 quic reuseport;
listen 443 ssl;
# включаем поддержку http2
http2 on;
# включаем поддержку http3
http3 on;
# разрешаем GSO
quic_gso on;
# разрешаем проверку адреса
quic_retry on;
# Для работы QUIC требуется версия протокола TLSv1.3.
ssl_protocols TLSv1.2 TLSv1.3;
ssl_certificate /path_certs/fullchain.pem;
ssl_certificate_key path_certs/privkey.pem;
# для перенаправления браузеров в quic-порт
add_header Alt-Svc 'h3=":443";max=86400';
...
}
👍5🔥2
Релиз PHP 8.3
Ну вот и настало 23 ноября 2023 года, а с ним релиз следующей версии PHP 8.3.
Были небольшие проблемы с выпуском в планируемый срок, но официально он все же состоялся.
В PHP 8.3 есть улучшения классов только для чтения, новая функция json_validate(), дополнения к недавно добавленному классу Randomizer, обнаружение переполнения стека и многое другое.
Как установить можно почитать в последнем посте Как установить PHP 8.3 в Ubuntu/Debian.
Для Windows бинарники как обычно можно скачать https://windows.php.net/download/
Ну вот и настало 23 ноября 2023 года, а с ним релиз следующей версии PHP 8.3.
Были небольшие проблемы с выпуском в планируемый срок, но официально он все же состоялся.
В PHP 8.3 есть улучшения классов только для чтения, новая функция json_validate(), дополнения к недавно добавленному классу Randomizer, обнаружение переполнения стека и многое другое.
Как установить можно почитать в последнем посте Как установить PHP 8.3 в Ubuntu/Debian.
Для Windows бинарники как обычно можно скачать https://windows.php.net/download/
👍5🔥3
Forwarded from Пых (Валентин Удальцов)
Затусим в конце года, как обычно! Обсудим PHP 8.3, заслушаем доклады, запустим опрос сообщества и наверняка похоливарим на разные темы.
Что будет:
• Евгений Прохоров прямо на наших глазах ускорит PHP,
• Кирилл Несмеянов докажет, что никто, кроме него, не знает PHP,
• шеф-повар Александр Макаров приготовит Composer под новым соусом,
• Валентин Удальцов (это я) покажу вам PHP 8.3 во всей красе.
Проведёт мероприятие Михаил Каморин, а подсказывать текст из-за кулис будет наш бессменный режиссёр и продюсер — Алиса Круглова!
Залетайте в трансляцию на PHP Point, будет весело, как мне сейчас! Всех ждём в 12 по Москве.
https://youtu.be/JyxGieyBj3k
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉4
Ребята, привет, всех с наступающим Новым Годом!
Я тут немного пропадал, но в любом случае, у меня есть для вас новости, итак что у нас нового в PHP 8.4:
1. В PHP 8.4 появится поддержка AEGIS-128L и AEGIS256 в Sodium
AEGIS - это семейство алгоритмов шифрования с проверкой подлинности на основе AES, которые работают быстрее, чем AES-GCM. Расширение Sodium в PHP 8.4 поддерживает алгоритмы шифрования AEGIS-128L и AEGIS256, если расширение Sodium скомпилировано с версией libsodium 1.0.19 или новее. Расширение Sodium в PHP 8.4 добавляет шесть новых функций и четыре новые константы PHP для AEGIS-128L и AEGIS-256AEAD.
2. Новый метод DateTime createFromTimestamp
До PHP 8.4, чтобы создать экземпляр DateTime или DateTimeImmutable из временной метки UNIX, его нужно было создать с помощью createFromFormat:
С PHP 8.4 классы DateTime и DateTimeImmutable в PHP 8.4 имеют новый метод createFromTimeStamp, позволяющий легко создать экземпляр из заданной временной метки UNIX в виде целого числа или значения с плавающей запятой.
Далее, если вы разработчик своих пакетов PHP, то возможно вам будет полезна информацию о предложении Composer установки девтулсов в require-dev в новом посте
https://sergeymukhin.com/blog/composer-zastavit-ustanovku-paketa-require-dev
Ну и напоследок, спасибо что вы были со мной в этом году, и я хочу подарить вот этого синего красавца одному из подписчиков (только без колпака, это от другой игрушки :) ), для этого, достаточно будет написать к этому посту любой комментарий, после нового года я запущу рандомайзер, он выберет комментарий и я отправлю слона счастливчику.
Всем удачи и хорошего Нового Года!!!
Я тут немного пропадал, но в любом случае, у меня есть для вас новости, итак что у нас нового в PHP 8.4:
1. В PHP 8.4 появится поддержка AEGIS-128L и AEGIS256 в Sodium
AEGIS - это семейство алгоритмов шифрования с проверкой подлинности на основе AES, которые работают быстрее, чем AES-GCM. Расширение Sodium в PHP 8.4 поддерживает алгоритмы шифрования AEGIS-128L и AEGIS256, если расширение Sodium скомпилировано с версией libsodium 1.0.19 или новее. Расширение Sodium в PHP 8.4 добавляет шесть новых функций и четыре новые константы PHP для AEGIS-128L и AEGIS-256AEAD.
2. Новый метод DateTime createFromTimestamp
До PHP 8.4, чтобы создать экземпляр DateTime или DateTimeImmutable из временной метки UNIX, его нужно было создать с помощью createFromFormat:
$dt = DateTimeImmutable::createFromFormat('U', (string) 1703485481);
$dt->format('Y-m-d'); // "2023-12-25"С PHP 8.4 классы DateTime и DateTimeImmutable в PHP 8.4 имеют новый метод createFromTimeStamp, позволяющий легко создать экземпляр из заданной временной метки UNIX в виде целого числа или значения с плавающей запятой.
$dt = DateTimeImmutable::createFromTimeStamp(1703485481);
$dt->format('Y-m-d'); //"2023-12-25"
Далее, если вы разработчик своих пакетов PHP, то возможно вам будет полезна информацию о предложении Composer установки девтулсов в require-dev в новом посте
https://sergeymukhin.com/blog/composer-zastavit-ustanovku-paketa-require-dev
Ну и напоследок, спасибо что вы были со мной в этом году, и я хочу подарить вот этого синего красавца одному из подписчиков (только без колпака, это от другой игрушки :) ), для этого, достаточно будет написать к этому посту любой комментарий, после нового года я запущу рандомайзер, он выберет комментарий и я отправлю слона счастливчику.
Всем удачи и хорошего Нового Года!!!
🎄12👍4❤3
🎄С НОВЫМ 2024 ГОДОМ!🎄
Итак, новый год настал, но расслабляться не будем, ну разве что чуть-чуть)
Как заметили в комментариях к предыдущему посту в дайджесте PHP 8.4 я не упомянул про новый движок JIT, про него есть более подробный пост выше.
А вот в продолжении к нему, недавно принятый RFC, про cпособ отключения/включения JIT по умолчанию:
До PHP 8.4 JIT был как был и включен и отключен по умолчанию, используя значение по умолчанию
В этом RFC предлагается изменить эти значения по умолчанию на выключенный jit и размер буфера на 64 мегабайт:
Еще одна интересная новость, Валентин Удальцов автор канала Пых опубликовал RFC в котором пасрер PHP может пренебрегать скобками при обращении к объектам, созданным через
можно будет писать:
В данный момент это невозможно сделать, т.к. парсер PHP выдаст ошибку синтаксиса. Будем следить за развитием этого RFC.
Ну и как обещал разыграл слона и он уезжает к @Drummi, поздравляю! @Drummi напишите мне в личку адрес, куда я отправлю слона.
Надеюсь 2024 год будет насыщен на новые интересные и полезные RFC PHP.
Итак, новый год настал, но расслабляться не будем, ну разве что чуть-чуть)
Как заметили в комментариях к предыдущему посту в дайджесте PHP 8.4 я не упомянул про новый движок JIT, про него есть более подробный пост выше.
А вот в продолжении к нему, недавно принятый RFC, про cпособ отключения/включения JIT по умолчанию:
До PHP 8.4 JIT был как был и включен и отключен по умолчанию, используя значение по умолчанию
opcache.jit_buffer_size=0 вместо opcache.jit=disable. Это фактически отключает JIT не потому, что jit=disable, а потому что размер буфера установлен равный 0.В этом RFC предлагается изменить эти значения по умолчанию на выключенный jit и размер буфера на 64 мегабайт:
opcache.jit=disable
opcache.jit_buffer_size=64m
Еще одна интересная новость, Валентин Удальцов автор канала Пых опубликовал RFC в котором пасрер PHP может пренебрегать скобками при обращении к объектам, созданным через
new, т.е. вместо(new Class())->method()
можно будет писать:
new Class()->method()
В данный момент это невозможно сделать, т.к. парсер PHP выдаст ошибку синтаксиса. Будем следить за развитием этого RFC.
Ну и как обещал разыграл слона и он уезжает к @Drummi, поздравляю! @Drummi напишите мне в личку адрес, куда я отправлю слона.
Надеюсь 2024 год будет насыщен на новые интересные и полезные RFC PHP.
Telegram
The Fly's PHP - Делаем из Мухи Слона
Всем большой привет!
Итак, первое, поздравляю всех с профессиональным праздником Днем Программиста (как вы помните это 256 день)
Второе, сегодня мой день рождения, потому праздную я вдвойне можно сказать 😄 и у меня для вас есть интересная информация напрямую…
Итак, первое, поздравляю всех с профессиональным праздником Днем Программиста (как вы помните это 256 день)
Второе, сегодня мой день рождения, потому праздную я вдвойне можно сказать 😄 и у меня для вас есть интересная информация напрямую…
🎄7👍3
Всем привет и хороших праздничных выходных!)
Ребят, тут phpcommunity.ru сделало свой ежегодный опрос среди разработчиков, можно неспеша пройти его — до закрытия осталось 3 дня.
Что интересно, там тоже можно будет выиграть php слона)
Ну и как обычно результаты будут в конце января, из них мы узнаем какой сейчас современный пхп разработчик, чем он "дышит" и интересуется.
https://forms.gle/n9QErGz5iGYrWEzj9
Ребят, тут phpcommunity.ru сделало свой ежегодный опрос среди разработчиков, можно неспеша пройти его — до закрытия осталось 3 дня.
Что интересно, там тоже можно будет выиграть php слона)
Ну и как обычно результаты будут в конце января, из них мы узнаем какой сейчас современный пхп разработчик, чем он "дышит" и интересуется.
https://forms.gle/n9QErGz5iGYrWEzj9
👍3
Интересные события произошли в рейтинге TIOBE.
Впервые в истории индекса TIOBE C# получил награду «Язык программирования года». На втором месте Scratch (+0,83%) и Fortran (+0,64%). C# отнимает долю рынка у Java и становится все более популярным в таких областях, как серверная часть веб-приложений и игры (спасибо Unity). C# можно использовать бесплатно, и он постоянно развивается, делая язык более выразительным с каждой новой версией. C# никуда не денется и, возможно, вскоре он сможет даже превзойдет Java.
Помимо C#, в прошлом году в индексе TIOBE произошло много интересных изменений. Fortran и Kotlin навсегда вошли в топ-20 игроков, заменив старых фаворитов R и Perl. Фортран очень хорошо подходит для вычислений с помощью хороших библиотек и остается фаворитом университетов во многих областях. Kotlin — простой в изучении/написании конкурент Java.
Что интересно Julia ненадолго коснулась индекса TIOBE в 2023 году, но не смогла удержать эту позицию.
JavaScript поднялся на 6 место, а PHP на 7-ое.
Впервые в истории индекса TIOBE C# получил награду «Язык программирования года». На втором месте Scratch (+0,83%) и Fortran (+0,64%). C# отнимает долю рынка у Java и становится все более популярным в таких областях, как серверная часть веб-приложений и игры (спасибо Unity). C# можно использовать бесплатно, и он постоянно развивается, делая язык более выразительным с каждой новой версией. C# никуда не денется и, возможно, вскоре он сможет даже превзойдет Java.
Помимо C#, в прошлом году в индексе TIOBE произошло много интересных изменений. Fortran и Kotlin навсегда вошли в топ-20 игроков, заменив старых фаворитов R и Perl. Фортран очень хорошо подходит для вычислений с помощью хороших библиотек и остается фаворитом университетов во многих областях. Kotlin — простой в изучении/написании конкурент Java.
Что интересно Julia ненадолго коснулась индекса TIOBE в 2023 году, но не смогла удержать эту позицию.
JavaScript поднялся на 6 место, а PHP на 7-ое.
👍7🔥3
Привет всем!
Ежегодный пост со статистикой версии PHP из открытых данных экосистемы composer. Статистика версий PHP - выпуск январь 2024.
Похоже, что внедрение PHP 8.3 происходит немного быстрее по сравнению с PHP 8.2: 6,4% проектов используют PHP 8.3 в течение первых двух месяцев после его выпуска, для PHP 8.2 этот показатель в свое время составил 4,7%.
Более того, доля PHP 7.* продолжает сокращаться - и это хорошо, учитывая, что поддержка серии 7.* закончилась более года назад. На данный момент PHP 8.1 является самой старой поддерживаемой версией, обновления безопасности которой будут получать только до 25 ноября этого года. Это важно обновить ваши версии PHP!
А вы уже обновились до PHP 8.3?)
Более подробно, с табличками и графиками https://sergeymukhin.com/blog/statistika-versii-php-vypusk-20241
Ежегодный пост со статистикой версии PHP из открытых данных экосистемы composer. Статистика версий PHP - выпуск январь 2024.
Похоже, что внедрение PHP 8.3 происходит немного быстрее по сравнению с PHP 8.2: 6,4% проектов используют PHP 8.3 в течение первых двух месяцев после его выпуска, для PHP 8.2 этот показатель в свое время составил 4,7%.
Более того, доля PHP 7.* продолжает сокращаться - и это хорошо, учитывая, что поддержка серии 7.* закончилась более года назад. На данный момент PHP 8.1 является самой старой поддерживаемой версией, обновления безопасности которой будут получать только до 25 ноября этого года. Это важно обновить ваши версии PHP!
А вы уже обновились до PHP 8.3?)
Более подробно, с табличками и графиками https://sergeymukhin.com/blog/statistika-versii-php-vypusk-20241
👍10🔥3😢2
Врываемся в пятницу! Ребята, всем привет!
Каждый день собираюсь "запоститься" и что-нибудь да отвлекает, итак что имеем на сегодня?
Изменения:
1. Тип констант PHP_ZTS и PHP_DEBUG изменен с int на bool.
PHP_ZTS и PHP_DEBUG - две глобальные константы PHP, которые предоставляют информацию о текущей среде выполнения PHP.
- PHP_ZTS: Указывает, является ли текущая сборка PHP потокобезопасной.
- PHP_DEBUG: Указывает, является ли текущая сборка PHP отладочной сборкой.
До PHP 8.4 эти две константы содержали целочисленные значения: 0 когда отключено и 1 когда включено. Начиная с PHP 8.4 и более поздних версий, они изменились на логические значения.
Устаревшие функции:
2. Константа CURLOPT_BINARYTRANSFER, предоставляемая расширением Curl, устарела в PHP 8.4. Эта константа не имела никакого эффекта, начиная с PHP 5.1.2.
Удаленные функции:
Pspell было перенесено из PHP Core в PECL
Расширение Pspell предоставляет из себя PHP функции проверки орфографии с помощью Pspell или Aspell. Зависимости этого расширения не получали никаких обновлений за последние несколько лет, в результате чего было принято решение расширение Pspell перенести из ядра PHP в расширение PECL в PHP 8.4.
IMAP было перенесено из PHP Core в PECL
В PHP 8.4 расширение IMAP больше не является частью PHP Core и перешло в PECL, рекомендуется перейти на альтернативные библиотеки, например Webklex/php-imap.
OCI8 и PDO-OCI были перенесены из PHP Core в PECL
Расширения oci8 и pdo_oci8 предоставляют функциональные возможности для использования баз данных Oracle в PHP. Эти расширения основаны на собственных библиотеках коммерческого поставщика Oracle. Эти расширения прошли длительный период накопления неисправленных ошибок и требуют значительных усилий для миграции их resource объектов в объекты классов. Учитывая зависимость этих расширений от сторонних проприетарных библиотек и необходимость усилий по их обслуживанию, расширения больше не являются частью ядра PHP и перешли на PECL как oci8 и pdo_oci.
Из всего этого, конечно жаль расширение imap, в силу специфики нашей работы - большая часть затрагивает работу именно с почтой, огорчает прекращения его поддержки, но опять же, все что не развивается - умирает, но появляются новые лучшие библиотеки или расширения.
Кстати кто не смотрел вчерашнюю трансляцию LivePHP советую к ознакомлению, почерпнете много чего интересного для себя)
https://www.youtube.com/watch?v=DhkTJcjJouc
Всем хороших выходных!
Каждый день собираюсь "запоститься" и что-нибудь да отвлекает, итак что имеем на сегодня?
Изменения:
1. Тип констант PHP_ZTS и PHP_DEBUG изменен с int на bool.
PHP_ZTS и PHP_DEBUG - две глобальные константы PHP, которые предоставляют информацию о текущей среде выполнения PHP.
- PHP_ZTS: Указывает, является ли текущая сборка PHP потокобезопасной.
- PHP_DEBUG: Указывает, является ли текущая сборка PHP отладочной сборкой.
До PHP 8.4 эти две константы содержали целочисленные значения: 0 когда отключено и 1 когда включено. Начиная с PHP 8.4 и более поздних версий, они изменились на логические значения.
if (PHP_ZTS === 1) {} //было
if (PHP_ZTS) {} //сталоУстаревшие функции:
2. Константа CURLOPT_BINARYTRANSFER, предоставляемая расширением Curl, устарела в PHP 8.4. Эта константа не имела никакого эффекта, начиная с PHP 5.1.2.
Удаленные функции:
Pspell было перенесено из PHP Core в PECL
Расширение Pspell предоставляет из себя PHP функции проверки орфографии с помощью Pspell или Aspell. Зависимости этого расширения не получали никаких обновлений за последние несколько лет, в результате чего было принято решение расширение Pspell перенести из ядра PHP в расширение PECL в PHP 8.4.
IMAP было перенесено из PHP Core в PECL
В PHP 8.4 расширение IMAP больше не является частью PHP Core и перешло в PECL, рекомендуется перейти на альтернативные библиотеки, например Webklex/php-imap.
OCI8 и PDO-OCI были перенесены из PHP Core в PECL
Расширения oci8 и pdo_oci8 предоставляют функциональные возможности для использования баз данных Oracle в PHP. Эти расширения основаны на собственных библиотеках коммерческого поставщика Oracle. Эти расширения прошли длительный период накопления неисправленных ошибок и требуют значительных усилий для миграции их resource объектов в объекты классов. Учитывая зависимость этих расширений от сторонних проприетарных библиотек и необходимость усилий по их обслуживанию, расширения больше не являются частью ядра PHP и перешли на PECL как oci8 и pdo_oci.
Из всего этого, конечно жаль расширение imap, в силу специфики нашей работы - большая часть затрагивает работу именно с почтой, огорчает прекращения его поддержки, но опять же, все что не развивается - умирает, но появляются новые лучшие библиотеки или расширения.
Кстати кто не смотрел вчерашнюю трансляцию LivePHP советую к ознакомлению, почерпнете много чего интересного для себя)
https://www.youtube.com/watch?v=DhkTJcjJouc
Всем хороших выходных!
👍7❤🔥3🔥2