TGViewer
Channel Public Channel
PHP Portal | Программирование

PHP Portal | Программирование

@phpgx

Присоединяйтесь к нашему каналу и погрузитесь в мир для PHP-разработчика

Связь: @devmangx
Subscribers
4.64K
Photos
426
Videos
20
Links
212

Showing posts older than #370 · Back to latest

Older Posts 16 shown
Post #368 1.81K
Потратил часы на отладку, чтобы тебе не пришлось:

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

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

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

👉 @PHPgx
  • 👍 16
  • ❤ 3
  • 🔥 1
Post #367 1.87K
Интересная вещь про PHP, которую я недавно узнал: что если вы хотите сделать continue в нескольких foreach-циклах?

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

👉 @PHPgx
  • 👍 20
  • 😁 10
  • ❤ 3
Post #365 1.96K
Мне нравится эта новая фича в Laravel

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

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

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

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

Круто.

👉 @PHPgx
  • ❤ 13
  • 👍 6
Post #364 2.49K
👩‍💻 Шпаргалка по 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
  • 👍 7
  • ❤ 6
Post #362 2.1K
Вы можете сериализовать объекты #php для удобной передачи или хранения.

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

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


👉 @PHPgx
  • ❤ 7
Post #361 2.01K
Теперь PHPUnit по умолчанию использует in-memory SQLite базу данных для тестов

Ранее эти настройки в файле phpunit.xml были закомментированы. Теперь они будут активны по умолчанию

👉 @PHPgx
  • ❤ 9
  • 👍 3
  • 🔥 1
Post #355 2.24K
Подборка 5 полезных шпаргалок по верстке и гиту

Сохраняй, чтобы не потерять

👉 @PHPgx
  • 👍 14
  • ❤ 4
Post #354 1.8K
Laravel Wayfinder

На той неделе команда Laravel выпустила новый инструмент — Wayfinder — в бета-версии:
https://github.com/laravel/wayfinder

Он генерирует TypeScript-функции, которые можно импортировать на фронтенде для ваших контроллеров и маршрутов

👉 @PHPgx
  • 🔥 5
  • ❤ 3
Post #352 1.73K
Пример HTTP-сервера на PHP с использованием файберов. Улучшенная версия

Статья показывает, как сделать быстрый HTTP-сервер на PHP с файберами и расширением ev, обходя ограничения socket_select() и добиваясь лучшей производительности

👉 Подробнее

➡️ @PHPgx | #cтатья
  • ❤ 10
Post #351 1.77K
Laravel использует Cron\CronExpression для определения времени выполнения запланированных задач.

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

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

👉 @PHPgx
  • 👍 7
  • ❤ 2
  • 🌭 1
Post #349 2.41K
Ваш файл laravel.log слишком большой? Трудно читать/искать нужную информацию?

ЧЕТЫРЕ возможных решения ☕️

РЕШЕНИЕ 1: Команды в терминале

Если нужно что-то найти ОДИН РАЗ, используйте одну из этих команд:
🔹tail -n 100 storage/logs/laravel.log – показать последние 100 строк
🔹tail -f storage/logs/laravel.log – потоковое обновление лога в реальном времени
🔹grep -i "error" storage/logs/laravel.log – поиск ошибок (без учета регистра)

РЕШЕНИЕ 2: Изменение режима логирования на "daily"

В файле .env установите:
LOG_CHANNEL=daily

Это заставит Laravel создавать новый лог-файл каждый день (например, laravel-2025-01-01.log).

РЕШЕНИЕ 3: Пакет Log Viewer

Пакет opcodesio/log-viewer предоставляет удобную панель для просмотра логов.

РЕШЕНИЕ 4: Внешние платные инструменты

Сервисы ОТСЛЕЖИВАНИЯ ОШИБОК, которые автоматически собирают и организуют ошибки:
🔹Sentry
🔹Bugsnag
🔹Flare

Сервисы ДЛЯ УПРАВЛЕНИЯ ЛОГАМИ:
🔹Papertrail
🔹Loggly
🔹LogDNA

Есть что-то, что вы бы добавили в этот список?

👉 @PHPgx
  • 👍 9
  • ❤ 2
  • 🔥 1
Post #347 2.32K
Ещё один клёвый тренажёр+учебник по SQL

Тут можно потренироваться в хитрых джойнах, агрегациях и понабивать руку. Интерфейс очень приятный и позволяет потыкать схему БД, даёт подсказки как в коде, так и непосредственно по решению

В более сложные штуки (к примеру, в оконные функции) этот ресурс не лезет. Ну и запросы даже в самых сложных задачках получаются не сказать чтобы громоздкие

👉 https://sql-academy.org/ru/trainer

👉 @PHPgx | #ресурсы
  • ❤ 6
  • 👍 3
Post #346 2.06K
Совет по Laravel Eloquent

Если вам нужно добавить условие в запрос на основе некоторого условия в PHP, используйте метод when() в Eloquent.

Вы предпочитаете A или B?

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

👉 @PHPgx | #tips
  • 👍 15
  • ❤ 3
  • 🔥 3
Post #344 3.07K
Большая актуальная базу бесплатных API, которая обновляется ежедневно

Тут собрано аж 363 бесплатных API на все случаи жизни: от игр и погоды до финансов и здоровья.

Алгоритмы присваивают рейтинг каждому API на основе надежности, частоты ошибок и времени отклика

Если API перестает работать или становится платным, он теряет рейтинг и удаляется с сайта

Переходите и смотрите сами: https://www.freepublicapis.com/

👉 @PHPgx | #ресурсы
  • 👍 13
  • ❤ 2
  • 🔥 2
Post #343 2.66K
Знали ли вы, что PHP переподключается к Redis при каждом запросе?

В Laravel 12 появилась новая переменная окружения REDIS_PERSISTENT, которая позволяет сохранять соединения с Redis между запросами.

👉 @PHPgx | #tips
  • ❤ 16
  • 👍 6
Post #341 2.33K
Совет по PHP: First-Class Callables

PHP 8.1 представил first-class callables, которые упрощают синтаксис, особенно при работе с коллекциями Laravel, где часто используются замыкания

👉 @PHPgx | #tips
  • 👍 7
  • 🔥 2
  • ❤ 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →