#Собес #Laravel
🤔 Что такое защита от CSRF и CSRF токен?
CSRF (Cross-Site Request Forgery) - это атака, при которой вредоносный сайт может отправить запросы от имени авторизованного пользователя. Laravel защищает от таких атак, автоматически генерируя CSRF токен для каждой активной сессии. Этот токен необходимо включать в формы и AJAX запросы, чтобы подтвердить, что запросы приходят от авторизованных пользователей. B Laravel можно использовать директиву @csrf для добавления токена в Формы.
👉 Новости 👉 База вопросов
CSRF (Cross-Site Request Forgery) - это атака, при которой вредоносный сайт может отправить запросы от имени авторизованного пользователя. Laravel защищает от таких атак, автоматически генерируя CSRF токен для каждой активной сессии. Этот токен необходимо включать в формы и AJAX запросы, чтобы подтвердить, что запросы приходят от авторизованных пользователей. B Laravel можно использовать директиву @csrf для добавления токена в Формы.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🥺 LarsWiegers/laravel-maps
https://github.com/LarsWiegers/laravel-maps
Этот пакет позволяет легко использовать leaflet.js или Google Maps для создания карты в Laravel-проекте
👉 Новости 👉 База вопросов
https://github.com/LarsWiegers/laravel-maps
Этот пакет позволяет легко использовать leaflet.js или Google Maps для создания карты в Laravel-проекте
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 776. Split BST
Дан корень бинарного дерева поиска (BST) и целое число target, разделите дерево на два поддерева, где первое поддерево содержит узлы, которые меньше или равны значению target, а второе поддерево содержит узлы, которые больше значения target. Не обязательно, чтобы дерево содержало узел со значением target.
Кроме того, большая часть структуры исходного дерева должна сохраниться. Формально, для любого потомка c с родителем p в исходном дереве, если они оба находятся в одном поддереве после разделения, то узел c все еще должен иметь родителя p.
Верните массив из двух корней двух поддеревьев в порядке.
Пример:
👨💻 Алгоритм:
1⃣ Базовый случай: Если корень равен null, верните массив, содержащий два указателя null. Это необходимо для обработки случая, когда дерево пустое.
2⃣ Проверьте, больше ли значение корня целевого значения. Если да, рекурсивно разделите левое поддерево, вызвав splitBST(root->left, target). Прикрепите правую часть разделенного к левому поддереву корня. Верните массив, содержащий левую часть разделенного и текущий корень.
3⃣ Если значение корня меньше или равно целевому значению, рекурсивно разделите правое поддерево, вызвав splitBST(root->right, target). Прикрепите левую часть разделенного к правому поддереву корня. Верните массив, содержащий левую часть разделенного и текущий корень.
😎 Решение:
👉 Новости 👉 База вопросов
Задача: 776. Split BST
Дан корень бинарного дерева поиска (BST) и целое число target, разделите дерево на два поддерева, где первое поддерево содержит узлы, которые меньше или равны значению target, а второе поддерево содержит узлы, которые больше значения target. Не обязательно, чтобы дерево содержало узел со значением target.
Кроме того, большая часть структуры исходного дерева должна сохраниться. Формально, для любого потомка c с родителем p в исходном дереве, если они оба находятся в одном поддереве после разделения, то узел c все еще должен иметь родителя p.
Верните массив из двух корней двух поддеревьев в порядке.
Пример:
Input: root = [4,2,6,1,3,5,7], target = 2
Output: [[2,1],[4,3,6,null,null,5,7]]
class TreeNode {
public $val;
public $left;
public $right;
function __construct($val = 0, $left = null, $right = null) {
$this->val = $val;
$this->left = $left;
$this->right = $right;
}
}
class Solution {
function splitBST($root, $target) {
if ($root === null) {
return [null, null];
}
if ($root->val > $target) {
list($left, $right) = $this->splitBST($root->left, $target);
$root->left = $right;
return [$left, $root];
} else {
list($left, $right) = $this->splitBST($root->right, $target);
$root->right = $left;
return [$root, $right];
}
}
}
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
🛞 Как ускорить массовую отправку HTTP-запросов в PHP
Постановка задачи:
Есть скрипт на PHP, который должен отправлять множество HTTP-запросов. Нужно сделать это как можно быстрее. Очевидное решение — параллельная отправка.
1⃣ последовательная обработка
Простой цикл с
2⃣ повторное использование curl-хэндла
Инициализируем
3⃣ параллельная отправка с curl_multi_
Используем
4⃣ отправка батчами (batching)
Если запросов сотни или тысячи, одновременно всё не потянет даже мощный сервер. Решение — отправка пакетами, например по 3. Это позволяет контролировать нагрузку. В нашем примере — ~0.8 секунды на 10 запросов.
Читать статью
👉 Новости 👉 База вопросов
Постановка задачи:
Есть скрипт на PHP, который должен отправлять множество HTTP-запросов. Нужно сделать это как можно быстрее. Очевидное решение — параллельная отправка.
Простой цикл с
curl_init()
и curl_exec()
на каждый URL. Результат: 10 запросов выполняются за ~4.4 секунды.Инициализируем
curl
один раз и переиспользуем. Время выполнения снижается до ~1.7 секунды.Используем
curl_multi_init()
и запускаем запросы одновременно. Итог: всего 0.5 секунды на 10 запросов. Почти в 9 раз быстрее, чем изначально.Если запросов сотни или тысячи, одновременно всё не потянет даже мощный сервер. Решение — отправка пакетами, например по 3. Это позволяет контролировать нагрузку. В нашем примере — ~0.8 секунды на 10 запросов.
Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #Laravel
🤔 Объясните валидацию в Laravel
B Laravel валидация используется для проверки данных, полученных от пользователя. Валидация осуществляется с помощью метода
👉 Новости 👉 База вопросов
B Laravel валидация используется для проверки данных, полученных от пользователя. Валидация осуществляется с помощью метода
validate()
объекта Request
. Если данные не проходят проверку, Laravel автоматически генерирует ошибку и возвращает ответ с ошибкой. Для валидации можно использовать встроенные правила, такие как required
, unique
, max
, и другие. Также можно определить кастомные правила для более сложных проверок.Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
#полезное
🤓 Phptop — это простой профилировщик ресурсов PHP, безопасный для использования на продуктивных сайтах. Помогает отслеживать использование CPU и памяти на каждый запрос.
Отличный инструмент для разработчиков, стремящихся оптимизировать свои PHP-приложения.
Гитхаб
👉 Новости 👉 База вопросов
Отличный инструмент для разработчиков, стремящихся оптимизировать свои PHP-приложения.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
📞 FastExcelWriter: Лёгкое и быстрое создание Excel-файлов на PHP
Если вы сталкивались с генерацией больших Excel-файлов на PHP, вы, вероятно, знакомы с PhpSpreadsheet. Хотя она функциональна, при работе с большими данными возможны проблемы с производительностью и потреблением памяти.
FastExcelWriter — альтернатива PhpSpreadsheet с упором на скорость и экономию ресурсов. Вместо хранения данных в памяти, библиотека пишет строки напрямую в файл, снижая нагрузку на систему.
Преимущества FastExcelWriter:
🔵 Генерация файлов в 7–9 раз быстрее PhpSpreadsheet
🔵 Минимальное потребление памяти благодаря построчной записи
🔵 Поддержка стилей, форматирования, изображений, диаграмм и примечаний
🔵 Простой и лаконичный API для разработчиков
Хабр
👉 Новости 👉 База вопросов
Если вы сталкивались с генерацией больших Excel-файлов на PHP, вы, вероятно, знакомы с PhpSpreadsheet. Хотя она функциональна, при работе с большими данными возможны проблемы с производительностью и потреблением памяти.
FastExcelWriter — альтернатива PhpSpreadsheet с упором на скорость и экономию ресурсов. Вместо хранения данных в памяти, библиотека пишет строки напрямую в файл, снижая нагрузку на систему.
Преимущества FastExcelWriter:
Хабр
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Как РНР обрабатывает загрузку файлов?
PHP обрабатывает загрузку файлов через суперглобальный массив
👉 Новости 👉 База вопросов
PHP обрабатывает загрузку файлов через суперглобальный массив
$_FILES
. Файл отправляется через форму с атрибутом enctype="multipart/form- data"
, и РНР сохраняет информацию о загружаемом файле в #_FILES, включая имя файла, тип и путь.Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Прекрати использовать массивы PHP для обработки данных
Создавай свои DTO — классы со свойствами
или используй
Также не забудь про неизменяемость. Убедись, что твои DTO являются immutable (записываются один раз), чтобы можно было быть уверенным, что объект не был где-либо изменён.
Ключевое слово
👉 Новости 👉 База вопросов
Создавай свои DTO — классы со свойствами
или используй
spatie/laravel-data
Также не забудь про неизменяемость. Убедись, что твои DTO являются immutable (записываются один раз), чтобы можно было быть уверенным, что объект не был где-либо изменён.
Ключевое слово
readonly
тебе в этом поможетPlease open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😵 Разработчики на PHP, вы знали о Ticks в PHP?
Вы можете написать небольшой скрипт, чтобы остановить долго выполняющийся код по тайм-ауту — без использования pcntl!
Подходит не везде, но отлично заходит в циклах, плагинах или в песочнице.
Тык сюда
👉 Новости 👉 База вопросов
Вы можете написать небольшой скрипт, чтобы остановить долго выполняющийся код по тайм-ауту — без использования pcntl!
Подходит не везде, но отлично заходит в циклах, плагинах или в песочнице.
Тык сюда
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #mongoDB
🤔 Что такое коллекция в MongoDB?
Коллекция в MongoDB - это группа документов, связанных между собой по смыслу. В отличие от таблиц в реляционных базах данных, коллекции не имеют жесткой схемы, что позволяет хранить документы с разной структурой в одной коллекции.
👉 Новости 👉 База вопросов
Коллекция в MongoDB - это группа документов, связанных между собой по смыслу. В отличие от таблиц в реляционных базах данных, коллекции не имеют жесткой схемы, что позволяет хранить документы с разной структурой в одной коллекции.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 CRUD на PHP с использованием файберов и пула соединений с PostgreSQL
В новой статье на Хабре автор делится опытом создания прототипа CRUD-приложения, использующего файберы и пул соединений с PostgreSQL. Результаты впечатляют: один процесс PHP CLI обрабатывает 10 параллельных запросов за 2 секунды, благодаря асинхронной обработке и неблокирующему вводу-выводу.
🔍 Ключевые моменты:
Файберы позволяют обрабатывать несколько запросов в одном процессе, улучшая производительность.
Неблокирующий драйвер PostgreSQL обеспечивает асинхронное взаимодействие с базой данных.
Сравнение с сервером на базе PHP-FPM показало значительное преимущество в
производительности при использовании файлов.
Для кого это будет полезно:
🟠 Разработчикам, стремящимся повысить производительность своих приложений.
🟠 Тем, кто интересуется асинхронным программированием в PHP.
🟠 Специалистам, работающим с PostgreSQL и желающим оптимизировать взаимодействие с базой данных.
Хабр
👉 Новости 👉 База вопросов
В новой статье на Хабре автор делится опытом создания прототипа CRUD-приложения, использующего файберы и пул соединений с PostgreSQL. Результаты впечатляют: один процесс PHP CLI обрабатывает 10 параллельных запросов за 2 секунды, благодаря асинхронной обработке и неблокирующему вводу-выводу.
🔍 Ключевые моменты:
Файберы позволяют обрабатывать несколько запросов в одном процессе, улучшая производительность.
Неблокирующий драйвер PostgreSQL обеспечивает асинхронное взаимодействие с базой данных.
Сравнение с сервером на базе PHP-FPM показало значительное преимущество в
производительности при использовании файлов.
Для кого это будет полезно:
Хабр
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
CRUD на PHP с использованием файберов и пула соединений с PostgreSQL
В этой статье я подготовил для вас прототип CRUD-приложения, которое использует файберы и неблокирующие(асинхронные) возможности драйвера PostreSQL . Вместе они дают любопытные результаты по...
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
🥺 Релиз Laravel Nightwatch
Веб-сервис для мониторинга Laravel-приложений. Есть бесплатный план.
https://blog.laravel.com/announcing-laravel-nightwatch
👉 Новости 👉 База вопросов
Веб-сервис для мониторинга Laravel-приложений. Есть бесплатный план.
https://blog.laravel.com/announcing-laravel-nightwatch
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #mongoDB
🤔 Что такое BSON в MongoDB?
BSON (Binary JSON) - это бинарный формат сериализации, используемый MongoDB для хранения документов. Он расширяет JSON, добавляя поддержку дополнительных типов данных, таких как
👉 Новости 👉 База вопросов
BSON (Binary JSON) - это бинарный формат сериализации, используемый MongoDB для хранения документов. Он расширяет JSON, добавляя поддержку дополнительных типов данных, таких как
Date
, ObjectId
, и бинарные данные, а также оптимизирует производительность операцийPlease open Telegram to view this post
VIEW IN TELEGRAM
#статьи
😘 Как проект на Laravel набрал 1000+ звёзд на GitHub
История Laravel Workflow от идеи до популярности
Разработчик Райан МакДэниел поделился историей своего open-source проекта Laravel Workflow. Он начал его как внутренний тул для визуализации бизнес-процессов, а спустя несколько месяцев — получил более 1000 звёзд на GitHub.
В статье:
🟠 Как появилась идея проекта
🟠 Почему MVP важен даже для open-source
🟠 Как он получил первый фидбек и начал собирать аудиторию
🟠 Что сработало: Twitter, документация и честный storytelling
🟠 Какие уроки он вынес для себя как разработчик и автор OSS
Если вы тоже мечтаете запустить что-то своё — обязательно прочтите. Много практики и честных инсайтов.
Читаем
👉 Новости 👉 База вопросов
История Laravel Workflow от идеи до популярности
Разработчик Райан МакДэниел поделился историей своего open-source проекта Laravel Workflow. Он начал его как внутренний тул для визуализации бизнес-процессов, а спустя несколько месяцев — получил более 1000 звёзд на GitHub.
В статье:
Если вы тоже мечтаете запустить что-то своё — обязательно прочтите. Много практики и честных инсайтов.
Читаем
Please open Telegram to view this post
VIEW IN TELEGRAM
DEV Community
From Idea to 1,000+ Stars: How Laravel Workflow Took Off
I was working at a fintech company, wrestling with long-running processes that felt like a constant...
#полезное
👍 AI-агент Junie для PhpStorm
https://blog.jetbrains.com/phpstorm/2025/06/discover-junie-for-phpstorm/
👉 Новости 👉 База вопросов
https://blog.jetbrains.com/phpstorm/2025/06/discover-junie-for-phpstorm/
Please open Telegram to view this post
VIEW IN TELEGRAM
The JetBrains Blog
Discover Junie for PhpStorm: A Game-Changing AI Coding Agent for PHP Development | The PhpStorm Blog
Explore how you can benefit from Junie, the AI coding agent by JetBrains, for your PHP development.