Вы, наверное, уже знакомы с трэйтом Prunable, который есть в Laravel.
Этот трэйт позволяет настроить периодическое удаление ненужных моделей из вашей таблицы.
Но знали ли вы, что можно добавить метод pruning() в ваш класс модели? Он будет автоматически вызываться при удалении модели в процессе очистки.
Это может быть полезно, если вам нужно выполнить дополнительные операции вместе с удалением.
Например, вы можете вызвать API стороннего сервиса, чтобы удалить ресурс там же
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1
VK, как НЕ НАДО собеседовать middle разработчиков
Автор подчеркивает проблемы с организацией интервью: вопросы не соответствовали должности, например, задавались вопросы по указателям в C++, которые не имели отношения к PHP.
Также интервью не было четко структурировано, и не было ясно, какие именно навыки ожидаются от кандидата.
В статье критикуется отсутствие ясности и предсказуемости в процессе собеседования, что создает разочарование у кандидатов.
👉 Читать
➡️ @PHPgx | #cтатья
Автор подчеркивает проблемы с организацией интервью: вопросы не соответствовали должности, например, задавались вопросы по указателям в C++, которые не имели отношения к PHP.
Также интервью не было четко структурировано, и не было ясно, какие именно навыки ожидаются от кандидата.
В статье критикуется отсутствие ясности и предсказуемости в процессе собеседования, что создает разочарование у кандидатов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Please open Telegram to view this post
VIEW IN TELEGRAM
😁21❤4👍3
В PHP переменная
Есть ли рекомендуемый стандарт?
Согласно PSR-1, выбор стиля именования переменных — это личное предпочтение, главное, чтобы стиль был последовательным в коде проекта.
Цитата из PSR-1 (раздел 4.2) о свойствах классов (что можно применить и к обычным переменным):
Таким образом, оба варианта допустимы, но важно, чтобы стиль был единообразным в коде.
Подробнее можно прочитать здесь: PSR-1 (пункт 4.2)
Также прочитайте эту тему на Reddit: Какой стандарт именования вы используете для переменных?
👉 @PHPgx | #tips
$preference_type соответствует стилю snake_case, а $preferenceType — camelCase.Есть ли рекомендуемый стандарт?
Согласно PSR-1, выбор стиля именования переменных — это личное предпочтение, главное, чтобы стиль был последовательным в коде проекта.
Цитата из PSR-1 (раздел 4.2) о свойствах классов (что можно применить и к обычным переменным):
Этот стандарт намеренно избегает рекомендаций по использованию $StudlyCaps, $camelCase или $under_score для имен свойств.
Какой бы стиль именования ни использовался, он ДОЛЖЕН применяться последовательно в разумных пределах. Эти пределы могут быть на уровне вендора, пакета, класса или метода.
Таким образом, оба варианта допустимы, но важно, чтобы стиль был единообразным в коде.
Подробнее можно прочитать здесь: PSR-1 (пункт 4.2)
Также прочитайте эту тему на Reddit: Какой стандарт именования вы используете для переменных?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1
Тестирование маршрутизации поддоменов в Laravel — это довольно сложная задача. Вы не можете просто жестко задать корневой домен, так как, очевидно, у вас не будет доступа к этому домену локально.
Вместо этого рассмотрите возможность добавления макроса "subdomain" в фасад Route, чтобы автоматически устанавливать корневой домен, используя URL из конфигурации вашего приложения.
👉 @PHPgx | #tips
Вместо этого рассмотрите возможность добавления макроса "subdomain" в фасад Route, чтобы автоматически устанавливать корневой домен, используя URL из конфигурации вашего приложения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Топ-6 стратегий для снижения задержек в системах
В высоконагруженных приложениях каждое миллисекундное улучшение имеет значение. Вот ключевые подходы, которые помогут сократить задержки и улучшить пользовательский опыт.
🔹 Caching
🔹 CDN
🔹 Load Balancers
🔹 Asynchronous Task Processing
🔹 Database Indexing
🔹 Pre-caching
👉 @PHPgx
В высоконагруженных приложениях каждое миллисекундное улучшение имеет значение. Вот ключевые подходы, которые помогут сократить задержки и улучшить пользовательский опыт.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1
Представь, что тебе нужно создать 5 000 PDF-счетов в Laravel 😵
Очереди, да?
Но сколько времени это займет? Не зависнет ли сервер?
Наткнулся на эксперимент — Тест производительности очередей в Laravel: Отправка 5 000 PDF
Бесплатный туториал (8 минут на прочтение), с множеством цифр и скриншотов.
🔹 Без очереди: приведет ли генерация PDF к сбою сервера?
🔹 Переход к очередям и измерение времени
🔹 Оптимизация 1: Увеличение количества рабочих очереди
🔹 Оптимизация 2: Повышение характеристик сервера
🔹 Оптимизация 3: Снижение числа рабочих очереди (что? подожди!)
🔹 Заключение
➡️ @PHPgx | #cтатья #en
Очереди, да?
Но сколько времени это займет? Не зависнет ли сервер?
Наткнулся на эксперимент — Тест производительности очередей в Laravel: Отправка 5 000 PDF
Бесплатный туториал (8 минут на прочтение), с множеством цифр и скриншотов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Ловите лайфхак: GitHub + VS Code - быстрое редактирование кода в вашем репозитории прямо в браузере
Для этого нужно заменить в ссылке
Редактор будет абсолютно идентичен вашему редактору на локальной машине (если у вас включена синхронизация с GitHub аккаунтом): цветовая палитра, подсветка синтаксиса, плагины и т.д.
Пользуемся и делимся с теми, кто не в теме👍
👉 @PHPgx | #tips
Для этого нужно заменить в ссылке
.com на .dev. Или просто нажать на клавиатуре «.».Редактор будет абсолютно идентичен вашему редактору на локальной машине (если у вас включена синхронизация с GitHub аккаунтом): цветовая палитра, подсветка синтаксиса, плагины и т.д.
Пользуемся и делимся с теми, кто не в теме
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥2
Если два трейта содержат метод с одинаковым именем, используйте insteadof, чтобы выбрать один, или as, чтобы задать алиас для другого
Держите код чистым и без конфликтов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Создание одностраничного приложения с помощью HTMX и Symfony
Данная статья представляет собой учебное пособие или руководство по использованию библиотеки htmx в сочетании с Symfony для создания веб-приложения с улучшенным UX.
Здесь рассматриваются различные аспекты разработки, включая навигацию, отправку форм, отображение данных, динамический поиск и аутентификацию.
➡️ @PHPgx | #cтатья #en
Данная статья представляет собой учебное пособие или руководство по использованию библиотеки htmx в сочетании с Symfony для создания веб-приложения с улучшенным UX.
Здесь рассматриваются различные аспекты разработки, включая навигацию, отправку форм, отображение данных, динамический поиск и аутентификацию.
Please open Telegram to view this post
VIEW IN TELEGRAM
JoliCode
Making a Single-Page Application with HTMX and Symfony
With the plethora of Javascript frameworks available today, web pages became smoother and smoother in terms of User Experience, a field Symfony has been trying to improve too with initiatives
👍3
PHP Cookie Stealer
Этот проект представляет собой простой PHP-скрипт, демонстрирующий, как злоумышленник может похищать куки. Он захватывает куки жертвы, IP-адрес, user agent (идентификатор браузера и ОС), а также географические данные, после чего сохраняет эту информацию в лог.
👉 https://github.com/noxvix/Xss-Exploitation
👉 @PHPgx | #ресурсы
Этот проект представляет собой простой PHP-скрипт, демонстрирующий, как злоумышленник может похищать куки. Он захватывает куки жертвы, IP-адрес, user agent (идентификатор браузера и ОС), а также географические данные, после чего сохраняет эту информацию в лог.
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - noxvix/Xss-Exploitation: A PHP script demonstrating cookie stealing by capturing and logging request information, including…
A PHP script demonstrating cookie stealing by capturing and logging request information, including the victim's cookie, IP address, HTTP referer, user agent, and geographical details. This ...
👍8❤1🌚1
JetBrains выпустили отчет о состоянии PHP в 2024 году
В этом году в опросе приняли участие 2 660 PHP-разработчиков со всего мира. По уровню опыта преобладают мидлы. 86% уже используют PHP 8, но его распространение идёт медленнее, чем в своё время у PHP 7.
Среди фреймворков Laravel безоговорочно лидирует, а его популярность продолжает расти. В плане инструментов PhpStorm остаётся главным выбором разработчиков, однако VS Code набирает обороты, особенно среди начинающих.
Полный отчет — на JetBrains Blog
➡️ @PHPgx
В этом году в опросе приняли участие 2 660 PHP-разработчиков со всего мира. По уровню опыта преобладают мидлы. 86% уже используют PHP 8, но его распространение идёт медленнее, чем в своё время у PHP 7.
Среди фреймворков Laravel безоговорочно лидирует, а его популярность продолжает расти. В плане инструментов PhpStorm остаётся главным выбором разработчиков, однако VS Code набирает обороты, особенно среди начинающих.
Полный отчет — на JetBrains Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
Понимание сериализации в PHP
Сериализация (или serialization) - это процесс преобразования данных в формат, который можно сохранить или передать. В PHP сериализация выполняется с использованием специального формата, который представляет различные типы данных, такие как булевы значения, null, целые числа, числа с плавающей запятой, строки, массивы и объекты.
Булевы значения сериализуются так:
🔹 "b:0;" для false и "b:1;" для true.
🔹 Null представляется как "N;".
🔹 Целые числа сериализуются как "i:значение;",
🔹 числа с плавающей запятой как "d:значение;".
🔹 Сериализованные строки содержат информацию о длине строки и выглядят так: "s:[длина]:"[значение]"".
Массивы сериализуются с использованием "a:[количество элементов]:{...элементы}", где каждый элемент представлен в формате "ключ;значение;". Объекты сериализуются с использованием "O:[длина класса]:"[класс]":[количество свойств]:{...свойства}". Сериализация может также обрабатывать защищенные и приватные свойства объектов, добавляя специальные символы к их именам.
Этот процесс позволяет сохранять данные в формате, который можно легко передавать или хранить, и восстанавливать их обратно в их первоначальное состояние.
👉 Подробнее
➡️ @PHPgx | #cтатья #en
Сериализация (или serialization) - это процесс преобразования данных в формат, который можно сохранить или передать. В PHP сериализация выполняется с использованием специального формата, который представляет различные типы данных, такие как булевы значения, null, целые числа, числа с плавающей запятой, строки, массивы и объекты.
Булевы значения сериализуются так:
Массивы сериализуются с использованием "a:[количество элементов]:{...элементы}", где каждый элемент представлен в формате "ключ;значение;". Объекты сериализуются с использованием "O:[длина класса]:"[класс]":[количество свойств]:{...свойства}". Сериализация может также обрабатывать защищенные и приватные свойства объектов, добавляя специальные символы к их именам.
Этот процесс позволяет сохранять данные в формате, который можно легко передавать или хранить, и восстанавливать их обратно в их первоначальное состояние.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤1