#статьи
😎 Пример HTTP-сервера на PHP с использованием файберов. Улучшенная версия
Статья показывает, как сделать быстрый HTTP-сервер на PHP с файберами и расширением ev, обходя ограничения socket_select() и добиваясь лучшей производительности
Подробнее
👉 Новости 👉 База вопросов
Статья показывает, как сделать быстрый HTTP-сервер на PHP с файберами и расширением ev, обходя ограничения socket_select() и добиваясь лучшей производительности
Подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
🛞 PHP под капотом: как работает генерация случайных чисел
Вы когда-нибудь задумывались, как компьютер, эта идеальная детерминированная машина, выполняющая команды с математической точностью, умудряется генерировать «случайные» числа? Ведь в его цифровом мире нет места настоящему хаосу — только чёткие алгоритмы и предсказуемые состояния.
Сегодня мы заглянем под капот PHP и разберёмся, как устроена эта иллюзия случайности!
Хабр
👉 Новости 👉 База вопросов
Вы когда-нибудь задумывались, как компьютер, эта идеальная детерминированная машина, выполняющая команды с математической точностью, умудряется генерировать «случайные» числа? Ведь в его цифровом мире нет места настоящему хаосу — только чёткие алгоритмы и предсказуемые состояния.
Сегодня мы заглянем под капот PHP и разберёмся, как устроена эта иллюзия случайности!
Хабр
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Что такое миграции базы данных на примере Laravel?
Миграции - это способ описания изменений схемы базы данных в виде кода. Они помогают отслеживать версии изменений, легко разворачивать базу данных на новых средах и управлять откатами. Этот подход делает процесс работы. модификации базы данных более упорядоченным и удобным для командной
👉 Новости 👉 База вопросов
Миграции - это способ описания изменений схемы базы данных в виде кода. Они помогают отслеживать версии изменений, легко разворачивать базу данных на новых средах и управлять откатами. Этот подход делает процесс работы. модификации базы данных более упорядоченным и удобным для командной
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
👍 Laravel Wayfinder
На той неделе команда Laravel выпустила новый инструмент — Wayfinder — в бета-версии: тыкГитхаб
Он генерирует TypeScript-функции, которые можно импортировать на фронтенде для ваших контроллеров и маршрутов
👉 Новости 👉 База вопросов
На той неделе команда Laravel выпустила новый инструмент — Wayfinder — в бета-версии: тыкГитхаб
Он генерирует TypeScript-функции, которые можно импортировать на фронтенде для ваших контроллеров и маршрутов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👨💻 Теперь PHPUnit по умолчанию использует in-memory SQLite базу данных для тестов
Ранее эти настройки в файле
👉 Новости 👉 База вопросов
Ранее эти настройки в файле
phpunit.xml
были закомментированы. Теперь они будут активны по умолчаниюPlease open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Подборка 5 полезных шпаргалок по верстке и гиту
Сохраняй, чтобы не потерять
👉 Новости 👉 База вопросов
Сохраняй, чтобы не потерять
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Как использовать РНР с функциями HTML5?
PHP используется для динамического генерирования HTML5 контента, включая создание мультимедийных элементов, работу с localStorage, и обработку форм. PHP может генерировать HTML5 элементы, такие как формы, видео или аудио теги, и передавать данные в JavaScript для работы с новыми функциями HTML5, такими как местное хранилище.
👉 Новости 👉 База вопросов
PHP используется для динамического генерирования HTML5 контента, включая создание мультимедийных элементов, работу с localStorage, и обработку форм. PHP может генерировать HTML5 элементы, такие как формы, видео или аудио теги, и передавать данные в JavaScript для работы с новыми функциями HTML5, такими как местное хранилище.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤓 что если вы хотите сделать continue в нескольких foreach-циклах?
Сначала я попробовал
👉 Новости 👉 База вопросов
Сначала я попробовал
continue; continue;
, что (очевидно) не сработало — потом узнал, что в PHP можно передать число как {level}
, указав, сколько уровней вложенности нужно пропустить.Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😴 Ищете API-клиенты, альтернативы Postman?
Вот три инструмента, которые особенно нравятся разработчикам:
🟠 HTTPie — подсветка синтаксиса и удобное переключение между CLI и GUI
🟠 Yaak — организация рабочих пространств и низкое потребление памяти
🟠 Insomnia — поддержка GraphQL и чистый интерфейс
👉 Новости 👉 База вопросов
Вот три инструмента, которые особенно нравятся разработчикам:
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 Метод «skip» у планировщика
Иногда вы можете захотеть пропустить выполнение команды, основываясь на определенном условии. Laravel включает метод «
👉 Новости 👉 База вопросов
Иногда вы можете захотеть пропустить выполнение команды, основываясь на определенном условии. Laravel включает метод «
skip
» для выполнения этого Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
📞 В Laravel появилась новая функция — мемоизация кэша
Теперь с помощью метода
Это позволяет временно сохранять значения, извлечённые из кэша, прямо в памяти во время одного запроса или выполнения задания. В результате — никаких повторных обращений к кэшу в рамках одного выполнения.
Подробнее в документации
👉 Новости 👉 База вопросов
Теперь с помощью метода
Cache::memo
можно обернуть любое хранилище кэша в обёртку с мемоизацией. Это позволяет временно сохранять значения, извлечённые из кэша, прямо в памяти во время одного запроса или выполнения задания. В результате — никаких повторных обращений к кэшу в рамках одного выполнения.
Подробнее в документации
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Как РНР взаимодействует с JavaScript?
PHP взаимодействует с JavaScript, генерируя JavaScript-код, который затем выполняется на клиентской стороне. РНР может передавать данные в vaScript через HTML или создавать асинхронные запросы с помощью AJAX, позволяя динамично обновлять страницы без перезагрузки.
👉 Новости 👉 База вопросов
PHP взаимодействует с JavaScript, генерируя JavaScript-код, который затем выполняется на клиентской стороне. РНР может передавать данные в vaScript через HTML или создавать асинхронные запросы с помощью AJAX, позволяя динамично обновлять страницы без перезагрузки.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Выпущена документация для нового fluent-класса URI в Laravel, который значительно упрощает анализ и манипулирование URI.
Теперь можно даже возвращать экземпляры этого класса из маршрутов, чтобы автоматически генерировать ответы с перенаправлением на указанный адрес.
Документация Laravel 12.x – URI
👉 Новости 👉 База вопросов
Теперь можно даже возвращать экземпляры этого класса из маршрутов, чтобы автоматически генерировать ответы с перенаправлением на указанный адрес.
Документация Laravel 12.x – URI
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 711. Number of Distinct Islands II
Вам дана двоичная матричная сетка m x n. Остров - это группа 1 (представляющая сушу), соединенных в четырех направлениях (горизонтальном или вертикальном). Можно предположить, что все четыре края сетки окружены водой. Остров считается одинаковым с другим, если они имеют одинаковую форму, или имеют одинаковую форму после поворота (только на 90, 180 или 270 градусов) или отражения (влево/вправо или вверх/вниз). Верните количество разных островов.
Пример:
👨💻 Алгоритм:
1⃣ Пройдите по каждому элементу матрицы, если найдена земля (1), выполните DFS для обнаружения всех связанных с этим островом земель и сохраните форму острова.
2⃣ Нормализуйте форму острова, применив все возможные повороты и отражения, чтобы найти каноническую форму.
3⃣ Используйте множество для хранения всех уникальных канонических форм и верните размер этого множества.
😎 Решение:
👉 Новости 👉 База вопросов
Задача: 711. Number of Distinct Islands II
Вам дана двоичная матричная сетка m x n. Остров - это группа 1 (представляющая сушу), соединенных в четырех направлениях (горизонтальном или вертикальном). Можно предположить, что все четыре края сетки окружены водой. Остров считается одинаковым с другим, если они имеют одинаковую форму, или имеют одинаковую форму после поворота (только на 90, 180 или 270 градусов) или отражения (влево/вправо или вверх/вниз). Верните количество разных островов.
Пример:
Input: grid = [[1,1,0,0,0],[1,0,0,0,0],[0,0,0,0,1],[0,0,0,1,1]]
Output: 1
function numDistinctIslands2($grid) {
$uniqueIslands = [];
for ($i = 0; $i < count($grid); $i++) {
for ($j = 0; $j < count($grid[0]); $j++) {
if ($grid[$i][$j] == 1) {
$shape = [];
dfs($grid, $i, $j, $i, $j, $shape);
$uniqueIslands[normalize($shape)] = true;
}
}
}
return count($uniqueIslands);
}
function dfs(&$grid, $i, $j, $baseI, $baseJ, &$shape) {
if ($i < 0 || $i >= count($grid) || $j < 0д
Задача
:
711. Number of Di$grid[$i][$j]
== 0) {
return;
}
$grid[$i][$j] = 0;
$shape[] = [$i - $baseI, $j - $baseJ];
dfs($grid, $i + 1, $j, $baseI, $baseJ, $shape);
dfs($grid, $i - 1, $j, $baseI, $baseJ, $shape);
dfs($grid, $i, $j + 1, $baseI, $baseJ, $shape);
dfs($grid, $i, $j - 1, $baseI, $baseJ, $shape);
}
function normalize($shape) {
$shapes = array_fill(0, 8, []);
foreach ($shape as $p) {
$x = $p[0];
$y = $p[1];
$shapes[0][] = [$x, $y];
$shapes[1][] = [$x, -$y];
$shapes[2][] = [-$x, $y];
$shapes[3][] = [-$x, -$y];
$shapes[4][] = [$y, $x];
$shapes[5][] = [$y, -$x];
$shapes[6][] = [-$y, $x];
$shapes[7][] = [-$y, -$x];
}
foreach ($shapes as &$s) {
sort($s);
}
$minShape = implode(",", array_map(function($p) { return implode(",", $p); }, $shapes[0]));
foreach ($shapes as $s) {
$sStr = implode(";", array_map(function($p) { return implode(",", $p); }, $s));
$minShape = min($minShape, $sStr);
}
return $minShape;
}
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Как реализовать AJAX в РНР?
AJAX в PHP реализуется с помощью JavaScript, который отправляет асинхронные запросы на сервер через объект XMLHttpRequest . На сервере PHP-скрипт обрабатывает запрос, выполняя необходимые операции (например, доступ к базе данных), и отправляет ответ в формате JSON или XML. Затем JavaScript обрабатывает этот ответ и обновляет веб-страницу без перезагрузки.
👉 Новости 👉 База вопросов
AJAX в PHP реализуется с помощью JavaScript, который отправляет асинхронные запросы на сервер через объект XMLHttpRequest . На сервере PHP-скрипт обрабатывает запрос, выполняя необходимые операции (например, доступ к базе данных), и отправляет ответ в формате JSON или XML. Затем JavaScript обрабатывает этот ответ и обновляет веб-страницу без перезагрузки.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
В Laravel появилась новая функция — мемоизация кэша
Теперь с помощью метода
Это позволяет временно сохранять значения, извлечённые из кэша, прямо в памяти во время одного запроса или выполнения задания. В результате — никаких повторных обращений к кэшу в рамках одного выполнения.
Подробнее в документации
👉 Новости 👉 База вопросов
В Laravel появилась новая функция — мемоизация кэша
Теперь с помощью метода
Cache::memo
можно обернуть любое хранилище кэша в обёртку с мемоизацией. Это позволяет временно сохранять значения, извлечённые из кэша, прямо в памяти во время одного запроса или выполнения задания. В результате — никаких повторных обращений к кэшу в рамках одного выполнения.
Подробнее в документации
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤯 Вы когда-нибудь сталкивались с проблемами или головной болью при попытке поддерживать документацию API в актуальном состоянии во время разработки?
Не переживайте — позвольте представить Scramble — генератор документации OpenAPI (Swagger) для Laravel.
Этот пакет после установки автоматически генерирует документацию для ваших API, анализируя ваш код.
Он работает лучше всего, когда вы используете классы Form Request и API Resources в своих API.
Этот пакет умеет очень многое
Вот несколько базовых шагов для установки пакета и запуска документации:
👉 Новости 👉 База вопросов
Не переживайте — позвольте представить Scramble — генератор документации OpenAPI (Swagger) для Laravel.
Этот пакет после установки автоматически генерирует документацию для ваших API, анализируя ваш код.
Он работает лучше всего, когда вы используете классы Form Request и API Resources в своих API.
Этот пакет умеет очень многое
Вот несколько базовых шагов для установки пакета и запуска документации:
Please open Telegram to view this post
VIEW IN TELEGRAM