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

Связь: @devmangx
Download Telegram
Вы можете сериализовать объекты #php для удобной передачи или хранения.

В этом примере сериализованный объект будет выглядеть так:

"O:6:\"Config\":2:{s:4:\"host\";s:9:\"localhost\";s:4:\"user\";s:4:\"Gary\";}"


👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
7
👩‍💻 Шпаргалка по 12 Git командам

1. git init – инициализация нового Git-репозитория в текущем каталоге.

2. git add – добавление изменений в индекс (staging area).

3. git commit – фиксация проиндексированных изменений с комментарием.

4. git push – отправка локальных изменений в удалённый репозиторий.

5. git pull – получение изменений из удалённого репозитория и их слияние с локальной веткой.

6. git remote – добавление, просмотр или удаление удалённого репозитория.

7. git branch – вывод списка веток, создание новой ветки и переключение на неё.

8. git fetch – загрузка изменений из удалённого репозитория без их слияния.

9. git checkout – переключение на указанную ветку.

10. git merge – слияние указанной ветки с текущей.

11. git status – отображение текущего состояния репозитория и неподтверждённых изменений.

12. git reset – откат текущей ветки до указанного коммита.

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍76
Мне нравится эта новая фича в Laravel

Автоматическая жадная загрузка связей в Eloquent-моделях

В своём коде я убрал использование $with и with().

На одной из самых тяжёлых страниц количество запросов было 16.

После применения Model::automaticallyEagerLoadRelationships() оно снизилось до 10.

Круто.

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍6
Интересная вещь про PHP, которую я недавно узнал: что если вы хотите сделать continue в нескольких foreach-циклах?

Сначала я попробовал continue; continue;, что (очевидно) не сработало — потом узнал, что в PHP можно передать число как {level}, указав, сколько уровней вложенности нужно пропустить.

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20😁103
Потратил часы на отладку, чтобы тебе не пришлось:

Если колонка в SQL допускает NULL и ты используешь WHERE NOT, обязательно добавь OR IS NULL.

NULL != значение — это не true, это unknown.

Урок, выученный самым тяжёлым способом. 😅

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍163🔥1
Ищете API-клиенты, альтернативы Postman?

Вот три инструмента, которые особенно нравятся разработчикам:

🔹HTTPie — подсветка синтаксиса и удобное переключение между CLI и GUI

🔹Yaak — организация рабочих пространств и низкое потребление памяти

🔹Insomnia — поддержка GraphQL и чистый интерфейс

А каким API-инструментом пользуетесь вы?

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52
Привет, разработчики Laravel

Мы используем сидеры базы данных для генерации тестовых/фейковых данных, с которыми будет работать наше приложение.

Но что, если вам нужно запускать эти сидеры внутри тестов?

Не беспокойтесь — базовый тестовый класс Laravel использует трейт InteractsWithDatabase, который предоставляет метод для запуска сидирования данных внутри тестов.

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

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍4
В Laravel появилась новая функция — мемоизация кэша

Теперь с помощью метода Cache::memo можно обернуть любое хранилище кэша в обёртку с мемоизацией.

Это позволяет временно сохранять значения, извлечённые из кэша, прямо в памяти во время одного запроса или выполнения задания. В результате — никаких повторных обращений к кэшу в рамках одного выполнения.

Подробнее в документации: https://laravel.com/docs/12.x/cache#cache-memoization

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍84
В новой версии PhpStorm появились крутые обновления:

🟣 Улучшения в настройке Xdebug и WordPress.
🟣 Автодополнение для @phpstan-type и @phpstan-import-type.
🟣 Поддержку вложенных переменных в .env файлах.

…а также множество других полезных функций и улучшений: https://jb.gg/phpstorm-251

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥3
Выпущена документация для нового fluent-класса URI в Laravel, который значительно упрощает анализ и манипулирование URI.

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

Документация Laravel 12.x – URI

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍4🔥2
Laravel совет: Отслеживайте неудачные задания

Приходилось ли вам когда-либо следить за неудачными заданиями и получать уведомления, когда это происходит? Метод failing позволяет сделать именно это

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2😁2
Сайт с задачами по SQL — SQL-EX

Пишем запросы, тренируем JOIN, подзапросы, оконные функции и кайфуем от прогресса ✌️

И да, всё на русском

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍2
Вы когда-нибудь сталкивались с проблемами или головной болью при попытке поддерживать документацию API в актуальном состоянии во время разработки?

Не переживайте — позвольте представить Scramble — генератор документации OpenAPI (Swagger) для Laravel.

Этот пакет после установки автоматически генерирует документацию для ваших API, анализируя ваш код.

Он работает лучше всего, когда вы используете классы Form Request и API Resources в своих API.

Этот пакет умеет очень многое

Вот несколько базовых шагов для установки пакета и запуска документации:

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

Когда вы развёртываете изменения, пользователи могут столкнуться с недоступностью сайта.

Вы можете отобразить общую страницу «обслуживания», запустив команду php artisan down перед деплоем и php artisan up после него.

Также флаг --refresh=15 будет автоматически обновлять эту страницу каждые 15 секунд, чтобы проверить, остаётся ли сайт в режиме обслуживания. Если нет — будет отображена обычная страница проекта.

Наконец, вы можете кастомизировать страницу обслуживания, определив свой шаблон в resources/views/errors/503.blade.php.

Подробнее в документации:
https://laravel.com/docs/12.x/configuration#maintenance-mode

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍1
👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
😁302👍1
Новое в Laravel 12: больше не нужно вызывать new Resource() или Resource::collection().

Вместо этого используйте новые методы toResource() и toResourceCollection().

Теперь Laravel автоматически определяет соответствующие классы ресурсов

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

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍4🔥3
Ошибки неизбежны в любом приложении — они всегда будут возникать на вашем пути.

Поэтому все языки программирования предоставляют трассировку стека и сообщение об ошибке, чтобы вы могли отладить код и выяснить коренную причину проблемы.

Но иногда такие сообщения могут непреднамеренно раскрывать конфиденциальные данные вашего приложения.

Именно по этой причине в PHP был введён атрибут SensitiveParameter, чтобы вы могли скрыть такие параметры из трассировки стека и логов ошибок.

Смотрите пример выше

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍143
В сегодняшнем релизе Laravel появилась возможность отображать атрибуты Eloquent, приведённые к коллекции, в конкретный объект

👉 @PHPgx
Please open Telegram to view this post
VIEW IN TELEGRAM
8🤔2