Производительность PHP: Дополнительные ядра процессора против более быстрых ядер процессора
Некоторое время назад я получил письмо от клиента, испытывающего проблемы с медленной производительностью веб-сервера LEMP (Linux, Nginx, MySQL и PHP). Во время полного аудита я обнаружил, что средняя нагрузка на сервер была довольно низкой (см. скриншот выше). Однако сайт действительно работал очень медленно. Были некоторые неправильные конфигурации, но одним из основных узких мест в производительности PHP была низкая однопоточная производительность процессора.
https://haydenjames.io/php-performance-additional-cpu-cores-vs-faster-cpu-cores/
👉 @php_lib
Некоторое время назад я получил письмо от клиента, испытывающего проблемы с медленной производительностью веб-сервера LEMP (Linux, Nginx, MySQL и PHP). Во время полного аудита я обнаружил, что средняя нагрузка на сервер была довольно низкой (см. скриншот выше). Однако сайт действительно работал очень медленно. Были некоторые неправильные конфигурации, но одним из основных узких мест в производительности PHP была низкая однопоточная производительность процессора.
https://haydenjames.io/php-performance-additional-cpu-cores-vs-faster-cpu-cores/
👉 @php_lib
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
💡Советы и хитрости PhpStorm - Узнайте об опциях коммита
Опции коммита позволяют вам определить действия, которые нужно выполнить перед коммитом, например:
* Переформатировать код
* Проверить TODO
* Проанализировать код
* и т.д.
👉 @php_lib
Опции коммита позволяют вам определить действия, которые нужно выполнить перед коммитом, например:
* Переформатировать код
* Проверить TODO
* Проанализировать код
* и т.д.
👉 @php_lib
👍2
Эффективная неизменяемость с помощью PHPStan
https://matthiasnoback.nl/2022/07/effective-immutability-with-phpstan/
👉 @php_lib
https://matthiasnoback.nl/2022/07/effective-immutability-with-phpstan/
👉 @php_lib
Релиз Laravel 10.14 от 27.06.2023
https://github.com/laravel/framework/releases/tag/v10.14.0
👉 @php_lib
https://github.com/laravel/framework/releases/tag/v10.14.0
👉 @php_lib
GitHub
Release v10.14.0 · laravel/framework
[10.x] Add test for withCookies method in RedirectResponse by @milwad-dev in #47383
[10.x] Add new error message "SSL: Handshake timed out" handling to PDO Dete… by @yehorherasymchuk in #...
[10.x] Add new error message "SSL: Handshake timed out" handling to PDO Dete… by @yehorherasymchuk in #...
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
💡Советы и хитрости PhpStorm - Представление проекта
Помимо функций поиска, мне нравится работать и с представлением проекта. В этом могут помочь 3 важных сочетания клавиш:
1️⃣ Открыть файл в представлении проекта (мой любимый)
2️⃣ Развернуть дерево
3️⃣ Свернуть дерево
👉 @php_lib
Помимо функций поиска, мне нравится работать и с представлением проекта. В этом могут помочь 3 важных сочетания клавиш:
1️⃣ Открыть файл в представлении проекта (мой любимый)
2️⃣ Развернуть дерево
3️⃣ Свернуть дерево
👉 @php_lib
👍3
Миниатюрное десктопное GUI приложение на PHP — 2 МБ хватит для всех
Я часто заморачиваюсь на тему минимизации размера своих GUI приложений. Прошлая моя статья была про Nuklear. Но сейчас захотелось более современных технологий. Чтоб HTML5, CSS3 и PHP. Чтоб приложение ни от чего не зависело, т.е. построено по принципу "всё включено". И чтоб конечный размер приложения не превысил 2 мегабайта. Получится ли?
В Linux я часто пользуюсь утилитой df. Мне её очень не хватает в Windows, а искать аналоги лень. А уж тем более было лень запускать всякие там Explorer, Powershell и т.п. - это слишком нормально :-). Так что было сделано волевое решение сделать свою утилиту, на РНР 5, с бутстрапом и JQuery.
https://habr.com/ru/articles/674192/
👉 @php_lib
Я часто заморачиваюсь на тему минимизации размера своих GUI приложений. Прошлая моя статья была про Nuklear. Но сейчас захотелось более современных технологий. Чтоб HTML5, CSS3 и PHP. Чтоб приложение ни от чего не зависело, т.е. построено по принципу "всё включено". И чтоб конечный размер приложения не превысил 2 мегабайта. Получится ли?
В Linux я часто пользуюсь утилитой df. Мне её очень не хватает в Windows, а искать аналоги лень. А уж тем более было лень запускать всякие там Explorer, Powershell и т.п. - это слишком нормально :-). Так что было сделано волевое решение сделать свою утилиту, на РНР 5, с бутстрапом и JQuery.
https://habr.com/ru/articles/674192/
👉 @php_lib
👍3❤1
Удобочитаемое форматирование чисел в PHP
Числа - сложная штука. Числа сложны тем, что они используются в качестве метрики для многих вещей. Валюта, масштаб, погода, наука - и это лишь некоторые из них. И поскольку числа связаны с разными вещами, важно представлять их в понятном для человека виде.
https://www.amitmerchant.com/human-readable-number-formatting-in-php/
👉 @php_lib
Числа - сложная штука. Числа сложны тем, что они используются в качестве метрики для многих вещей. Валюта, масштаб, погода, наука - и это лишь некоторые из них. И поскольку числа связаны с разными вещами, важно представлять их в понятном для человека виде.
https://www.amitmerchant.com/human-readable-number-formatting-in-php/
👉 @php_lib
Amit Merchant - A blog on PHP, JavaScript, and more
Human readable number formatting in PHP
Numbers are tricky. Numbers are tricky because they have been used as a metric for a lot of things. Currency, scale, weather, science to name a few. And since numbers are associated with several different things, it’s important to represent them in a way…
👍2
Библиотека PHP для поиска видео по скриншоту
Перед всеми нами ежедневно встаёт задача поиска информации. Требуется найти текст, изображения, аудио или видео информацию. Чаще всего для поискового запроса используется текст. Реже - изображения. Есть сервисы вроде "Shazam", которые ищут музыку используя запись звука. Мы сосредоточились на создании поискового сервиса, который осуществляет поиск видео. В качестве параметров для запроса мы используем изображения.
https://habr.com/ru/articles/653371/
👉 @php_lib
Перед всеми нами ежедневно встаёт задача поиска информации. Требуется найти текст, изображения, аудио или видео информацию. Чаще всего для поискового запроса используется текст. Реже - изображения. Есть сервисы вроде "Shazam", которые ищут музыку используя запись звука. Мы сосредоточились на создании поискового сервиса, который осуществляет поиск видео. В качестве параметров для запроса мы используем изображения.
https://habr.com/ru/articles/653371/
👉 @php_lib
👍3
Как правильно проверять сложность пароля пользователя при регистрации
За десятилетия айтишки сложилась практика ограничивать пользователей в сложности их паролей. Сейчас пароль пользователя должен:
быть не меньше N символов;
&& быть не больше M символов (чуть реже встречается такое правило);
Содержать хотя бы одну большую букву;
Содержать хотя бы одну маленькую букву;
Содержать хотя бы одну цифру;
Содержать хотя бы один спецсимвол;
https://habr.com/ru/post/714478/
👉 @php_lib
За десятилетия айтишки сложилась практика ограничивать пользователей в сложности их паролей. Сейчас пароль пользователя должен:
быть не меньше N символов;
&& быть не больше M символов (чуть реже встречается такое правило);
Содержать хотя бы одну большую букву;
Содержать хотя бы одну маленькую букву;
Содержать хотя бы одну цифру;
Содержать хотя бы один спецсимвол;
https://habr.com/ru/post/714478/
👉 @php_lib
👍3
При использовании «сырых» запросов не забывайте передавать в него параметры через привязку.
Это защитит от SQL-инъекций.
👉 @php_lib
Это защитит от SQL-инъекций.
👉 @php_lib
👍3
Статический анализ кода PHP — держите свой код под контролем
https://tsh.io/blog/php-static-code-analysis/
👉 @php_lib
https://tsh.io/blog/php-static-code-analysis/
👉 @php_lib
👍3
Size-sorter
Удобная сортировка размеров одежды, роста, размеров бюстгальтера, размеров мебели и т.д.
При вызове сортировки с общими значениями каждый элемент будет отнесен к одной из пяти групп:
Буквенные размеры одежды (XXS, XS, M, L и т.д.)
Числовой размер одежды и обуви (9, 10, 44-46, 48 и т.д.)
Размер бюстгальтера (70B, 75A, 80C и т.д.)
Габаритные размеры предметов (40x38x19 см и т.д.)
Другие значения
https://github.com/TheDragonCode/size-sorter
👉 @php_lib
Удобная сортировка размеров одежды, роста, размеров бюстгальтера, размеров мебели и т.д.
При вызове сортировки с общими значениями каждый элемент будет отнесен к одной из пяти групп:
Буквенные размеры одежды (XXS, XS, M, L и т.д.)
Числовой размер одежды и обуви (9, 10, 44-46, 48 и т.д.)
Размер бюстгальтера (70B, 75A, 80C и т.д.)
Габаритные размеры предметов (40x38x19 см и т.д.)
Другие значения
https://github.com/TheDragonCode/size-sorter
👉 @php_lib
👍6🔥1
Sla-timer
PHP-пакет для расчета и отслеживания сроков выполнения соглашения об уровне обслуживания
Пример использования
https://github.com/sifex/sla-timer
👉 @php_lib
PHP-пакет для расчета и отслеживания сроков выполнения соглашения об уровне обслуживания
Пример использования
require 'vendor/autoload.php';
use Sifex\SlaTimer\SLA;
use Sifex\SlaTimer\SLABreach;
use Sifex\SlaTimer\SLASchedule;
/**
* Create a new SLA between 9am and 5:30pm weekdays
*/
$sla = SLA::fromSchedule(
SLASchedule::create()->from('09:00:00')->to('17:30:00')
->onWeekdays()
);
https://github.com/sifex/sla-timer
👉 @php_lib
👍4
PHP. Как увеличить потребление памяти в 3 и более раз при работе с массивами
Известно, что PHP активно использует механизм copy-on-write. Это означает, что при попытке внутри функции что-то записать в переданные ей параметры, вначале будет сделана копия этой переменной, а уж затем в неё что-то запишется. Такая же ситуация наблюдается с итерацией массива с помощью foreach. Отсюда следует, что вам потребуется увеличить количество памяти для создания копии переменной и времени (ресурсов ЦП), чтобы всё это проделать. Т.е. возникнет пауза, прежде чем PHP перейдёт к следующей строчке вашей программы.
https://habr.com/ru/articles/746868/
👉 @php_lib
Известно, что PHP активно использует механизм copy-on-write. Это означает, что при попытке внутри функции что-то записать в переданные ей параметры, вначале будет сделана копия этой переменной, а уж затем в неё что-то запишется. Такая же ситуация наблюдается с итерацией массива с помощью foreach. Отсюда следует, что вам потребуется увеличить количество памяти для создания копии переменной и времени (ресурсов ЦП), чтобы всё это проделать. Т.е. возникнет пауза, прежде чем PHP перейдёт к следующей строчке вашей программы.
https://habr.com/ru/articles/746868/
👉 @php_lib
👍6
Media is too big
VIEW IN TELEGRAM
Полный курс Laravel Swagger. REST API Laravel
00:00:00 Введение
00:04:25 Делаем заготовку
00:16:20 Установка Swagger
00:22:18 Общие аннотации и настройки Swagger
00:28:01 CRUD со Swagger
01:03:03 Установка JWT Auth
01:13:08 Авторизация и защищенные роуты в Swagger
01:20:20 Бонус. Нестандартные тело запроса и ответа
источник
👉 @php_lib
00:00:00 Введение
00:04:25 Делаем заготовку
00:16:20 Установка Swagger
00:22:18 Общие аннотации и настройки Swagger
00:28:01 CRUD со Swagger
01:03:03 Установка JWT Auth
01:13:08 Авторизация и защищенные роуты в Swagger
01:20:20 Бонус. Нестандартные тело запроса и ответа
источник
👉 @php_lib
👍4
Список альтернативных интерпретаторов и компиляторов PHP и JS
https://github.com/gakowalski/alternative-interpreters
👉 @php_lib
https://github.com/gakowalski/alternative-interpreters
👉 @php_lib
GitHub
GitHub - gakowalski/alternative-interpreters: List of alternative PHP nad JS interpreters and compilers
List of alternative PHP nad JS interpreters and compilers - gakowalski/alternative-interpreters
👍3
Релиз Laravel Prompts
Laravel Prompts - это PHP-пакет для добавления красивых и удобных форм в приложения командной строки с функциями, подобными браузерным, включая текст-заполнитель и валидацию.
https://laravel.com/docs/10.x/prompts
👉 @php_lib
Laravel Prompts - это PHP-пакет для добавления красивых и удобных форм в приложения командной строки с функциями, подобными браузерным, включая текст-заполнитель и валидацию.
https://laravel.com/docs/10.x/prompts
👉 @php_lib
👍2