PHP Portal | Программирование
4.85K subscribers
408 photos
20 videos
2 files
209 links
Присоединяйтесь к нашему каналу и погрузитесь в мир для PHP-разработчика

Связь: @devmangx
Download Telegram
Разработчики, возьмите на заметку: чему нас могут научить хакеры при ревью PHP-кода

Вот на что часто обращают внимание хакеры при ревью PHP-кода — $this->db->query

Этот простой паттерн помогает находить уязвимости типа SQL-инъекция буквально за минуты. Такие конструкции часто встречаются в небезопасных реализациях, особенно без параметризации запросов

Попробуйте сами: поищите это выражение в open-source проектах на GitHub — многие уязвимости видны сразу

Безопасный код — это ваш лучший контрприём

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍4
Совет по PHP

Функция parse_url() вернёт части URL, например, имя домена, если указать PHP_URL_HOST.

Документация: https://php.net/manual/ru/function.parse-url.php

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍194
Phptop — это простой профилировщик ресурсов PHP, безопасный для использования на продуктивных сайтах. Помогает отслеживать использование CPU и памяти на каждый запрос.

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

https://github.com/bearstech/phptop

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍4👎1
Совет по Laravel

Нужно сгенерировать защищённые ссылки для скачивания, которые истекают через определённое время?

Используйте temporaryUrl(), чтобы создать временный доступ к приватным файлам.

Отлично подходит для платного контента или конфиденциальных документов.

Ссылка на документацию: https://laravel.com/docs/12.x/filesystem#temporary-urls

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
14👍11
Нашёл пакет, о котором раньше не знал:

LarsWiegers/laravel-maps
https://github.com/LarsWiegers/laravel-maps

Этот пакет позволяет легко использовать leaflet.js или Google Maps для создания карты в Laravel-проекте

А ты используешь какие-нибудь альтернативы для отображения карты объектов на сайте на Laravel?

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍3👀1
Forwarded from IT Portal
Чуть не пропустил, вчера PHP отметил своё 30-летие

8 июня 1995 года, программист родом из Гренландии, Расмус Лердорф, публикует в usenet анонс набора CGI-скриптов, который он назвал PHP Tools

Сегодня PHP обеспечивает работу 74,2% серверной части веба. Далее идут: Ruby — 6,2%, Java — 5,2%, ASP.NET — 5,1% и JavaScript на стороне сервера — 4,5% (по данным W3Techs)

С днём рождения, PHP! 😇

@IT_Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
29🎉21🔥5👍2
Прекрати использовать массивы PHP для обработки данных

Создавай свои DTO — классы со свойствами

или используй spatie/laravel-data

Также не забудь про неизменяемость. Убедись, что твои DTO являются immutable (записываются один раз), чтобы можно было быть уверенным, что объект не был где-либо изменён.

Ключевое слово readonly тебе в этом поможет

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍6😁2
Разработчики на PHP, вы знали о Ticks в PHP?

Вы можете написать небольшой скрипт, чтобы остановить долго выполняющийся код по тайм-ауту — без использования pcntl!

Подходит не везде, но отлично заходит в циклах, плагинах или в песочнице.

https://gist.github.com/MrPunyapal/b3909ab20872bd8e1d39bcaf03f52351

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍5
Нашел для вас шпаргалку, чтобы не путались

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
😁393
Это не задокументировано, но в Laravel можно подписаться на событие MessageSending и предотвратить отправку письма, если выполняется определённое условие.

Это очень полезно, если нужно реализовать блоклист — например, чтобы не отправлять письма на адреса, которые ранее дали bounce в SES, и таким образом сохранить репутацию отправителя.

Можно изменить email «на лету» и убрать из него адреса, попавшие в блоклист. Если после этого не остаётся ни одного адреса для отправки, достаточно вернуть false — письмо будет тихо отброшено и не уйдёт

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍7
Совет по Laravel: хватит писать кастомную логику повторных попыток для нестабильных API

Используйте Http::retry() — он автоматически повторяет неудачные запросы с экспоненциальной задержкой между попытками.

Ссылка на документацию: https://laravel.com/docs/12.x/http-client#retries

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍185🔥1
strlen() vs mb_strlen(): Почему 71% PHP-разработчиков ошибаются

В этой статье разберем, как PHP работает со строками и почему даже простой вызов strlen() может привести к неожиданным результатам.

На примере крайне простой задачи "что выведет echo strlen('привет!');" посмотрим, что и как влияет на подсчет длины строки, заглянем внутрь реализации strlen() и развенчаем миф о строках как массивах.

https://habr.com/ru/articles/919192/

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍183
Удобный шпаргалка с самыми полезными константами языка PHP

От DIR до UPLOAD_ERR_NO_FILE — всё аккуратно сгруппировано и готово к версии 8.4

Сохраняйте. Используйте. Делитесь

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍124🤔2🔥1
Совет по Laravel

Делаешь несколько API-запросов? Не отправляй их по очереди!

Вместо этого используй Http::pool() — он позволяет запускать запросы параллельно и прокачать производительность, выполнив их все одновременно.

Ссылка на документацию: https://laravel.com/docs/12.x/http-client#concurrent-requests

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
16👍12🔥6
Совет по PHP

Вы можете проверять файлы на синтаксические ошибки без запуска кода — и валидировать весь проект одной командой.

🔹 Быстрая проверка на ошибки
🔹 Валидация проекта в одну строку

Чище код — быстрее разработка

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍148
Очередной годный сайт для прокачки навыков SQL-запросов

На платформе вам предстоит решать задачи, используя базу данных больницы. Задачи разделены по уровням сложности, начиная с простых запросов с SELECT и постепенно переходя к более сложным

Есть подсказки и возможность получить готовый запрос, если застряли 👍

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍117🔥1🎉1
Как использовать сервисные классы в контроллере Laravel?

А точнее — где их определять или внедрять?

Моё правило:

🔹Если сервис используется в одном методе контроллера — внедрение в метод

🔹Если в нескольких методах — внедрение через конструктор с использованием property promotion

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍86
PHP-разработчики, пишущие на JavaScript, после того как у них челюсть отвисает от того, что аналогичный функционал не идет из коробки в JS. 🤣

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁10👍42