Telegram Web Link
Как отладить любую команду Symfony, просто передав '-x'

Подход позволяет запускать любую Symfony команду в режиме отладки, даже если она не принадлежит вашему приложению, например, команды Doctrine или стандартные команды Symfony.

Это более быстрый и удобный способ отладки команд через добавление флага -x или --xdebug при вызове команды. После обнаружения этого флага слушатель событий перезапускает команду с необходимыми переменными среды для работы xDebug, используя функцию passthru().

Структура слушателя событий детально объяснена далее. Он реализует интерфейс ConsoleEvents::COMMAND и прослушивает событие configure для всех команд. Если обнаруживается флаг -x, команда перезапускается с установленными переменными среды для xDebug.

Код слушателя включает проверки типов и корректное перезапускание команды, а также учитывает ситуации, когда команда вызывается через HelpCommand.

Такой подход делает отладку Symfony команд более удобной и быстрой, особенно при работе в командной строке.
Совет по Laravel 💡

Данные загружаются быстрее, если целевое значение является целым числом.

Используйте 𝘄𝗵𝗲𝗿𝗲𝗜𝗻𝘁𝗲𝗴𝗲𝗿𝗜𝗻𝗥𝗮𝘄() вместо метода 𝘄𝗵𝗲𝗿𝗲𝗜𝗻(), чтобы быстрее загружать данные, когда целевое значение является целым числом.

@phpshka
Как реализовать паттерн проектирования «Адаптер» на PHP, и какие распространенные случаи его использования?

В PHP вы можете реализовать паттерн «Адаптер», чтобы обеспечить работу несовместимых интерфейсов вместе.

В нашем примере:

Adaptee — класс с несовместимым интерфейсом.
Target — интерфейс, ожидаемый клиентом.
Adapter — класс, который адаптирует Adaptee к интерфейсу Target.

Распространенные случаи использования паттерна Адаптер включают:

🟢Интеграция с легаси-кодом: Когда у вас есть старый код с другим интерфейсом, который нужно использовать в новой системе.
🟢Использование сторонних библиотек: Когда вы хотите использовать стороннюю библиотеку, которая не соответствует требуемому интерфейсу.
🟢Мокирование объектов при тестировании: Когда нужно создать мок-объекты, которые реализуют определенный интерфейс для целей тестирования.
🟢Масштабируемость системы: Когда нужно переключаться между различными реализациями функциональности без изменения кода клиента.

#вопросы_с_собеседований
4 сайта с бесплатными шаблонами для Laravel

HTMLrev: Огромная коллекция бесплатных HTML-шаблонов, в том числе множество для панелей управления Laravel. Часто обновляются и позволяют легко просматривать по категориям.

Creative Tim: Известный своими готовыми к использованию шаблонами, Creative Tim предоставляет UI-киты, административные панели и системы дизайна для нескольких архитектур, включая Laravel. Их шаблоны поставляются с высококачественным кодом и документацией.

ThemeSelection: Предлагает как бесплатные, так и платные UI-киты и шаблоны панелей управления. Хотя доступно всего несколько бесплатных вариантов, они отличаются замечательным качеством и сравнимы с премиальными пакетами.

JustBoil: JustBoil специализируется на шаблонах панелей управления для различных библиотек, включая Bulma и Tailwind. Их бесплатные шаблоны профессионально разработаны, написаны и документированы, предлагая множество компонентов для создания панелей управления.
Media is too big
VIEW IN TELEGRAM
Pest-плагин для стресс-тестирования

Стресс-тестирование - это тип тестирования, который проверяет стабильность и надежность вашего приложения в реалистичных или экстремальных условиях - в зависимости от заданного сценария. Например, вы можете использовать стресс-тестирование для проверки того, что ваше приложение может обрабатывать большое количество запросов или что оно может обрабатывать большой объем данных.

https://pestphp.com/docs/stress-testing
Forwarded from Kali Linux
💻 CVE-2024-4577 — сайты на PHP в эпицентре опасности

Эксплойт доступен каждому, поэтому для защиты нужно срочно обновить PHP до последней версии.

Исследователи безопасности из тайваньской компании DEVCORE обнаружили серьёзную уязвимость, затрагивающую установки PHP на Windows в режиме CGI. Получившая идентификатор CVE-2024-4577 (рейтинг CVSS пока не определён), проблема позволяет злоумышленникам производить подстановку аргументов командной строки, что способно привести к удалённому выполнению кода (RCE).

Как сообщают специалисты DEVCORE, проблема «растёт» из другой уязвимости — CVE-2012-1823, так как свежевыявленный баг позволяет обойти внедрённую от неё защиту с помощью определённых последовательностей символов.

CVE-2024-4577 затрагивает все версии PHP, установленные в операционной системе Windows, а именно:
— с версии PHP 8.3 по 8.3.8;
— с версии PHP 8.2 по 8.2.20;
— с версии PHP 8.1 по 8.1.29.

Из-за повсеместного использования PHP в веб-экосистеме, а также простоты использования уязвимости, специалисты классифицировали её как критическую и незамедлительно сообщили о ней официальной команде PHP. Отчёт об уязвимости был опубликован уже после выхода исправленной версии PHP, доступного для скачивания на официальном сайте.

🗄 Подробнее

@linuxkalii
Please open Telegram to view this post
VIEW IN TELEGRAM
ComposerRequireChecker

Инструмент CLI для проверки того, использует ли конкретный пакет composer импортированные символы, которые не входят в его прямые зависимости от composer.
⚡️ Совет по Laravel

Данные загружаются быстрее, если целевое значение является целым числом.

Используйте 𝘄𝗵𝗲𝗿𝗲𝗜𝗻𝘁𝗲𝗴𝗲𝗿𝗜𝗻𝗥𝗮𝘄() вместо метода 𝘄𝗵𝗲𝗿𝗲𝗜𝗻(), чтобы быстрее загружать данные, когда целевое значение является целым числом.

@phpshka
Совет по Laravel 💡

Переменная $loop также содержит множество других полезных свойств:



@phpshka
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое «PHP Extension Community Library» (PECL), и как её использовать для расширения функциональности PHP?

Библиотека сообщества расширений PHP (PECL) служит репозиторием для PHP-расширений. PHP-расширения представляют собой модули, написанные на C, которые могут быть динамически загружены в PHP для предоставления дополнительной функциональности. Эти расширения могут взаимодействовать с PHP на более низком уровне, чем обычные скрипты PHP, позволяя разработчикам использовать системные ресурсы, взаимодействовать с базами данных и выполнять другие задачи, которые могут быть более эффективно реализованы на языке более низкого уровня.

Цель PECL заключается в предоставлении централизованного места для разработчиков, где они могут делиться и распространять PHP-расширения. Это гарантирует, что разработчики PHP могут легко находить, устанавливать и использовать расширения для расширения возможностей PHP.

Чтобы использовать PECL для расширения функциональности PHP, обычно следуют следующим шагам:

Установка PECL: Убедитесь, что PECL установлен на вашей системе. Обычно он поставляется вместе с установками PHP, но в зависимости от вашей конфигурации может потребоваться установить его отдельно.

Поиск расширений: Просмотрите веб-сайт PECL или используйте команду pecl search, чтобы найти расширения, предоставляющие необходимую функциональность.

Установка расширений: После того как вы нашли нужное расширение, вы можете установить его с помощью команды pecl install, за которой следует имя расширения.

Включение расширения: После установки расширения вам нужно включить его в файле конфигурации PHP (php.ini). Вы можете сделать это вручную, добавив строку вроде extension=имя_расширения.so в файл php.ini, или с помощью команды phpenmod, если вы используете систему с хранилищем расширений и приложений PHP (PEAR)

Перезапуск веб-сервера: После включения расширения необходимо перезапустить веб-сервер (например, Apache или Nginx), чтобы изменения вступили в силу.

Тестирование расширения: Наконец, вы можете протестировать функциональность, предоставляемую расширением, в ваших PHP-скриптах. Вы можете использовать функции или классы расширения, как это указано в его документации.

#вопросы_с_собеседований
🖥 Совет по Laravel

Если вы хотите показать «1 comment», но «2 commentS» с формой множественного числа в зависимости от количества, используйте `str()->plural()`.

Вы также можете использовать его с помощником `str()` или с классом `Str::`.
На ваше усмотрение.

https://laravel.com/docs/11.x/strings#method-str-plural
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 corcel

Коллекция классов моделей, которая позволяет вам получать данные непосредственно из базы данных WordPress.

Используйте серверную часть WordPress с Laravel или любым PHP-приложением.

Github

@phpshka
Please open Telegram to view this post
VIEW IN TELEGRAM
Как использовать Eager loading в Laravel?

Eager loading в Laravel — это способ предварительной загрузки связанных моделей, чтобы уменьшить количество запросов к базе данных и повысить производительность приложения. При использовании ленивой загрузки (lazy loading) связанные данные загружаются только тогда, когда к ним обращаются, что может привести к множественным запросам к базе данных (проблема N+1 запросов). В то время как eager loading загружает все необходимые данные заранее, используя объединение (join) или отдельные запросы с использованием ключевого слова with.

Eager loading помогает значительно снизить нагрузку на базу данных и ускорить работу приложения за счет уменьшения количества выполняемых запросов.

#вопросы_с_собеседований
🖥 Один из самых старых советов и подсказок Laravel, но каждый раз, когда я делюсь им, многие люди говорят: «Вау, я не знал этого, так круто».

Цикл «forelse» в Blade.

@phpshka
Please open Telegram to view this post
VIEW IN TELEGRAM
2025/07/06 03:42:34
Back to Top
HTML Embed Code: