Недавний релиз Laravel 11.4 ввел фасад Exceptions, упрощающий проверку исключений в обработчике исключений. Теперь вместо withoutExceptionHandling() можно использовать Exceptions::fake(). Это избавляет от необходимости ручного захвата исключений при проверке.
👍2🤮2
👩💻Функция
🔸Эта полезная функция заменяет после 4 символов и оставляет последние 4 символа в строке на символы «*». Таким образом, конфиденциальная информация остается скрытой, но при этом сохраняется достаточно информации, чтобы использовать ее для нужных действий, например для проверки транзакций.
@phpshka
Str::mask
в Laravel может использоваться для замены конфиденциальной информации, например номера кредитной карты, на символы-заменители. Это позволяет сохранять безопасность конфиденциальных данных клиентов.🔸Эта полезная функция заменяет после 4 символов и оставляет последние 4 символа в строке на символы «*». Таким образом, конфиденциальная информация остается скрытой, но при этом сохраняется достаточно информации, чтобы использовать ее для нужных действий, например для проверки транзакций.
@phpshka
👍6❤1
Как реализовать паттерн проектирования «Адаптер» на PHP, и какие распространенные случаи его использования?
В PHP вы можете реализовать паттерн «Адаптер», чтобы обеспечить работу несовместимых интерфейсов вместе.
В нашем примере:
Adaptee — класс с несовместимым интерфейсом.
Target — интерфейс, ожидаемый клиентом.
Adapter — класс, который адаптирует Adaptee к интерфейсу Target.
Распространенные случаи использования паттерна Адаптер включают:
🟢Интеграция с легаси-кодом: Когда у вас есть старый код с другим интерфейсом, который нужно использовать в новой системе.
🟢Использование сторонних библиотек: Когда вы хотите использовать стороннюю библиотеку, которая не соответствует требуемому интерфейсу.
🟢Мокирование объектов при тестировании: Когда нужно создать мок-объекты, которые реализуют определенный интерфейс для целей тестирования.
🟢Масштабируемость системы: Когда нужно переключаться между различными реализациями функциональности без изменения кода клиента.
#вопросы_с_собеседований
В PHP вы можете реализовать паттерн «Адаптер», чтобы обеспечить работу несовместимых интерфейсов вместе.
В нашем примере:
Adaptee — класс с несовместимым интерфейсом.
Target — интерфейс, ожидаемый клиентом.
Adapter — класс, который адаптирует Adaptee к интерфейсу Target.
Распространенные случаи использования паттерна Адаптер включают:
🟢Интеграция с легаси-кодом: Когда у вас есть старый код с другим интерфейсом, который нужно использовать в новой системе.
🟢Использование сторонних библиотек: Когда вы хотите использовать стороннюю библиотеку, которая не соответствует требуемому интерфейсу.
🟢Мокирование объектов при тестировании: Когда нужно создать мок-объекты, которые реализуют определенный интерфейс для целей тестирования.
🟢Масштабируемость системы: Когда нужно переключаться между различными реализациями функциональности без изменения кода клиента.
#вопросы_с_собеседований
🔥6
Полезные практики написания поддерживаемого кода на PHP
https://habr.com/ru/articles/814995/
https://habr.com/ru/articles/814995/
Хабр
Полезные практики написания поддерживаемого кода на PHP
Привет, меня зовут Алексей и я должен признаться, я PHP разработчик. Последние несколько лет плотно занимаюсь проектами на symfony и решил поделиться с сообществом практиками, которые стараюсь...
❤3
Книга: «Laravel. Полное руководство. 3-е издание»
https://habr.com/ru/companies/piter/articles/814805/
https://habr.com/ru/companies/piter/articles/814805/
Хабр
Книга: «Laravel. Полное руководство. 3-е издание»
Привет, Хаброжители! Что отличает Laravel от других PHP-фреймворков? Скорость и простота. Стремительная разработка приложений, обширная экосистема и набор инструментов Laravel позволяют быстро...
Лучшие практики Laravel для разработчиков в 2024 году
https://habr.com/ru/articles/814843/
https://habr.com/ru/articles/814843/
Хабр
Лучшие практики Laravel для разработчиков в 2024 году
Для чистого, тестируемого и масштабируемого кода в фреймворке Laravel нужно использовать определенные практики. PHP очень гибкий, но любые отклонения усложняют код и снижают скорость обнаружения...
👍1
6 главных типов веб-уязвимостей, о которых должен знать каждый бэкендер
https://habr.com/ru/companies/spaceweb/articles/814725/
https://habr.com/ru/companies/spaceweb/articles/814725/
Хабр
6 главных типов веб-уязвимостей, о которых должен знать каждый бэкендер
Привет, Хабр! На связи Виталий Киреев, руководитель R&D SpaceWeb. В статье я расскажу про главные уязвимости Server Side, покажу примеры и объясню, как защищать данные. Принцип отбора...
👍1🤡1
Как отладить любую команду Symfony, просто передав '-x'
Подход позволяет запускать любую Symfony команду в режиме отладки, даже если она не принадлежит вашему приложению, например, команды Doctrine или стандартные команды Symfony.
Это более быстрый и удобный способ отладки команд через добавление флага -x или --xdebug при вызове команды. После обнаружения этого флага слушатель событий перезапускает команду с необходимыми переменными среды для работы xDebug, используя функцию passthru().
Структура слушателя событий детально объяснена далее. Он реализует интерфейс ConsoleEvents::COMMAND и прослушивает событие configure для всех команд. Если обнаруживается флаг -x, команда перезапускается с установленными переменными среды для xDebug.
Код слушателя включает проверки типов и корректное перезапускание команды, а также учитывает ситуации, когда команда вызывается через HelpCommand.
Такой подход делает отладку Symfony команд более удобной и быстрой, особенно при работе в командной строке.
Подход позволяет запускать любую Symfony команду в режиме отладки, даже если она не принадлежит вашему приложению, например, команды Doctrine или стандартные команды Symfony.
Это более быстрый и удобный способ отладки команд через добавление флага -x или --xdebug при вызове команды. После обнаружения этого флага слушатель событий перезапускает команду с необходимыми переменными среды для работы xDebug, используя функцию passthru().
Структура слушателя событий детально объяснена далее. Он реализует интерфейс ConsoleEvents::COMMAND и прослушивает событие configure для всех команд. Если обнаруживается флаг -x, команда перезапускается с установленными переменными среды для xDebug.
Код слушателя включает проверки типов и корректное перезапускание команды, а также учитывает ситуации, когда команда вызывается через HelpCommand.
Такой подход делает отладку Symfony команд более удобной и быстрой, особенно при работе в командной строке.
DEV Community
How to debug ANY Symfony command simply passing `-x`
Debugging a Symfony console command requires setting some environment variables (depending on your...
👍3
Совет по Laravel 💡
Данные загружаются быстрее, если целевое значение является целым числом.
Используйте
@phpshka
Данные загружаются быстрее, если целевое значение является целым числом.
Используйте
𝘄𝗵𝗲𝗿𝗲𝗜𝗻𝘁𝗲𝗴𝗲𝗿𝗜𝗻𝗥𝗮𝘄()
вместо метода 𝘄𝗵𝗲𝗿𝗲𝗜𝗻()
, чтобы быстрее загружать данные, когда целевое значение является целым числом.@phpshka
👍6❤1
Как реализовать паттерн проектирования «Адаптер» на PHP, и какие распространенные случаи его использования?
В PHP вы можете реализовать паттерн «Адаптер», чтобы обеспечить работу несовместимых интерфейсов вместе.
В нашем примере:
Adaptee — класс с несовместимым интерфейсом.
Target — интерфейс, ожидаемый клиентом.
Adapter — класс, который адаптирует Adaptee к интерфейсу Target.
Распространенные случаи использования паттерна Адаптер включают:
🟢Интеграция с легаси-кодом: Когда у вас есть старый код с другим интерфейсом, который нужно использовать в новой системе.
🟢Использование сторонних библиотек: Когда вы хотите использовать стороннюю библиотеку, которая не соответствует требуемому интерфейсу.
🟢Мокирование объектов при тестировании: Когда нужно создать мок-объекты, которые реализуют определенный интерфейс для целей тестирования.
🟢Масштабируемость системы: Когда нужно переключаться между различными реализациями функциональности без изменения кода клиента.
#вопросы_с_собеседований
В PHP вы можете реализовать паттерн «Адаптер», чтобы обеспечить работу несовместимых интерфейсов вместе.
В нашем примере:
Adaptee — класс с несовместимым интерфейсом.
Target — интерфейс, ожидаемый клиентом.
Adapter — класс, который адаптирует Adaptee к интерфейсу Target.
Распространенные случаи использования паттерна Адаптер включают:
🟢Интеграция с легаси-кодом: Когда у вас есть старый код с другим интерфейсом, который нужно использовать в новой системе.
🟢Использование сторонних библиотек: Когда вы хотите использовать стороннюю библиотеку, которая не соответствует требуемому интерфейсу.
🟢Мокирование объектов при тестировании: Когда нужно создать мок-объекты, которые реализуют определенный интерфейс для целей тестирования.
🟢Масштабируемость системы: Когда нужно переключаться между различными реализациями функциональности без изменения кода клиента.
#вопросы_с_собеседований
👏6👍2
TransformersPHP
Инструментарий для PHP-разработчиков, позволяющий легко добавлять возможности машинного обучения в свои проекты. Пост-интро.
Инструментарий для PHP-разработчиков, позволяющий легко добавлять возможности машинного обучения в свои проекты. Пост-интро.
GitHub
GitHub - CodeWithKyrian/transformers-php: Transformers PHP is a toolkit for PHP developers to add machine learning magic to their…
Transformers PHP is a toolkit for PHP developers to add machine learning magic to their projects easily. - GitHub - CodeWithKyrian/transformers-php: Transformers PHP is a toolkit for PHP developer...
👍3❤2
4 сайта с бесплатными шаблонами для Laravel
HTMLrev: Огромная коллекция бесплатных HTML-шаблонов, в том числе множество для панелей управления Laravel. Часто обновляются и позволяют легко просматривать по категориям.
Creative Tim: Известный своими готовыми к использованию шаблонами, Creative Tim предоставляет UI-киты, административные панели и системы дизайна для нескольких архитектур, включая Laravel. Их шаблоны поставляются с высококачественным кодом и документацией.
ThemeSelection: Предлагает как бесплатные, так и платные UI-киты и шаблоны панелей управления. Хотя доступно всего несколько бесплатных вариантов, они отличаются замечательным качеством и сравнимы с премиальными пакетами.
JustBoil: JustBoil специализируется на шаблонах панелей управления для различных библиотек, включая Bulma и Tailwind. Их бесплатные шаблоны профессионально разработаны, написаны и документированы, предлагая множество компонентов для создания панелей управления.
HTMLrev: Огромная коллекция бесплатных HTML-шаблонов, в том числе множество для панелей управления Laravel. Часто обновляются и позволяют легко просматривать по категориям.
Creative Tim: Известный своими готовыми к использованию шаблонами, Creative Tim предоставляет UI-киты, административные панели и системы дизайна для нескольких архитектур, включая Laravel. Их шаблоны поставляются с высококачественным кодом и документацией.
ThemeSelection: Предлагает как бесплатные, так и платные UI-киты и шаблоны панелей управления. Хотя доступно всего несколько бесплатных вариантов, они отличаются замечательным качеством и сравнимы с премиальными пакетами.
JustBoil: JustBoil специализируется на шаблонах панелей управления для различных библиотек, включая Bulma и Tailwind. Их бесплатные шаблоны профессионально разработаны, написаны и документированы, предлагая множество компонентов для создания панелей управления.
👍7❤2🙏1💔1
Media is too big
VIEW IN TELEGRAM
Pest-плагин для стресс-тестирования
Стресс-тестирование - это тип тестирования, который проверяет стабильность и надежность вашего приложения в реалистичных или экстремальных условиях - в зависимости от заданного сценария. Например, вы можете использовать стресс-тестирование для проверки того, что ваше приложение может обрабатывать большое количество запросов или что оно может обрабатывать большой объем данных.
https://pestphp.com/docs/stress-testing
Стресс-тестирование - это тип тестирования, который проверяет стабильность и надежность вашего приложения в реалистичных или экстремальных условиях - в зависимости от заданного сценария. Например, вы можете использовать стресс-тестирование для проверки того, что ваше приложение может обрабатывать большое количество запросов или что оно может обрабатывать большой объем данных.
https://pestphp.com/docs/stress-testing
👍5❤2🔥2
Forwarded from Kali Linux
Эксплойт доступен каждому, поэтому для защиты нужно срочно обновить 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
👍7❤4😱2🔥1🤡1
ComposerRequireChecker
Инструмент CLI для проверки того, использует ли конкретный пакет composer импортированные символы, которые не входят в его прямые зависимости от composer.
Инструмент CLI для проверки того, использует ли конкретный пакет composer импортированные символы, которые не входят в его прямые зависимости от composer.
GitHub
GitHub - maglnet/ComposerRequireChecker: A CLI tool to check whether a specific composer package uses imported symbols that aren't…
A CLI tool to check whether a specific composer package uses imported symbols that aren't part of its direct composer dependencies - maglnet/ComposerRequireChecker
👍4❤3🔥3
⚡️ Совет по Laravel
Данные загружаются быстрее, если целевое значение является целым числом.
Используйте
@phpshka
Данные загружаются быстрее, если целевое значение является целым числом.
Используйте
𝘄𝗵𝗲𝗿𝗲𝗜𝗻𝘁𝗲𝗴𝗲𝗿𝗜𝗻𝗥𝗮𝘄()
вместо метода 𝘄𝗵𝗲𝗿𝗲𝗜𝗻()
, чтобы быстрее загружать данные, когда целевое значение является целым числом.@phpshka
❤14🤔6👍5🔥1