PHP-BE1
302 subscribers
399 photos
12 videos
19 files
691 links
Канал по PHP, полезный и интересный контент для всех уровней.
По вопросам сотрудничества @cyberJohnny
Download Telegram
Часто используемые способы взаимодействия с релейшенами Laravel и их улучшение

1) Первый
Product::query()
- ->with([
- 'attribute' => fn (Builder $query) => $query->select(['id', 'title'])
- ])
- ->whereHas('attribute');
+ ->withWhereHas('attribute:id,title')

2) Второй
Product::query()
- ->whereHas('attribute', fn (Builder $query) => $query
- ->where('id', $id)
- );
+ ->whereRelation('attribute', 'id', $id)

3) Третий
Product::query()
- ->with([
- 'attribute' => fn (Builder $query) => $query->select(['id', 'title'])
- ])
- ->whereHas('attribute', fn (Builder $query) => $query
- ->where('id', $id)
- );
+ ->with('attribute:id,title')
+ ->whereRelation('attribute', 'id', $id)

@php_be1
💡Совет по Laravel

Определение языка пользователя

Laravel использует компонент HttpFoundation из Symfony, который предоставляет полезные возможности. Если вы работаете с локализацией и нужно определить предпочитаемый язык пользователя, просто вызовите метод getPreferredLanguage 🚀

👉 [|@php_be1]
Использование файберов в PHP

PHP и асинхронность. Такая комбинация долгие годы казалась невозможной, ведь PHP прочно ассоциировался с блокирующим подходом и синхронным выполнением скриптов «от запроса до ответа». С выходом PHP 8.1 ситуация несколько изменилась — появилась возможность реализовать асинхронность в PHP на основе файберов. Но есть нюанс — вопрос о том, действительно ли PHP с приходом файберов стал асинхронным, по-прежнему для многих остается открытым.

@php_be1

https://habr.com/ru/companies/docdoc/articles/941364/
Podlodka Crew 29 сентября запускает новую конференцию — Podlodka AI Crew (https://podlodka.io/aicrew?utm_campaign=early_bird_ai_crew_1&utm_source=telegram&utm_medium=paid&utm_content=laravel_it&erid=2SDnjcnF3ka)🥳

Если вы ищете практические знания без воды — это оно. Подлодка собрала экспертов, которые покажут, что реально работает в коде, пайплайнах и командных процессах.

В программе:

📊«AI, ML, DS, нейросети: без хайпа в терминах» — разберём границы применимости подходов, чтобы отличать пользу от шума (Алексей Шаграев, ex-Google, ex-Yandex).

👥 Круглый стол «AI-культура в команде» — инструменты и практики, сопротивление/принятие, влияние на эффективность и безопасность (Макс Сальников / Microsoft, Владимир Иванов / Supplied, Михаил Левченко / Яндекс Вертикали, Павел Герасимов / Wrike).

💻 Мастер-класс «Project-aware ассистенты: RAG + MCP» — живая документация, контекст кода для LLM и интерфейс запросов в мессенджере; как это ускоряет онбординг и разработку (Григорий Сухоруков, Яндекс).

⚡️«Эффективный промптинг» — техники, которые убирают типовые страхи и реально ускоряют разработку (Евгений Сатуров, Surf).

Почему это важно: AI уже часть рабочего стека — от IDE до CI/CD. Здесь — практики с измеримым эффектом: меньше рутины, быстрее процессы.

Кому будет полезно: разработчикам, архитекторам и техлидам, платформенным/DevOps-инженерам - всем, кто внедряет AI-процессы и ждёт измеримого результата.

🗓 29 сентября - 3 октября
🔗 Подробности и регистрация: https://podlodka.io/aicrew (https://podlodka.io/aicrew?utm_campaign=early_bird_ai_crew_1&utm_source=telegram&utm_medium=paid&utm_content=laravel_it&erid=2SDnjcnF3ka)

@php_be1
Денди-код

Краткая и практичная книга о том, как писать понятный и аккуратный код с примерами на PHP. Книга не уходит в теоретические дебри, не спорит о вкусе и не переоценивает значение философии чистоты. Она фокусируется на самом первом шаге к хорошему коду — его визуальной читаемости. Здесь вы найдёте рекомендации, которые можно и нужно применять сразу на практике.

Бесплатно: https://github.com/tabuna/dandy-code

@php_be1
Релизы PHP 8.4.13 и 8.3.26
https://www.php.net/ChangeLog-8.php

@php_be1
Вы когда-нибудь импортировали несколько классов из одного пространства имён вот так?

Это изящный ход или грязная ошибка? Делись мнением в комментариях!

#Laravel

👉 [|@php_be1]
Совет по Laravel💡

Знаете ли вы .... tap() = Tweak and Return 🪄

Да, в Laravel метод tap() позволяет изменить объект и вернуть его обратно — идеально для чистого и читаемого кода.

👉 [|@php_be1]
Тестировщики не у дел, штат сокращается, а пробиться через сотню откликов нереально – что делать?

Леся Набока и Карьерный Цех (https://careerfactory.ru/career-support?utm_source=telegram&utm_medium=laravel_it&utm_campaign=native_support_07102025&erid=2W5zFGAmXTN) уже много лет держат руку на пульсе и помогают тестироващикам сохранять свои позиции на рынке. За КЦшниками выстраивается очередь, а все потому, что они умеют в самопрезентацию и точно знают, что главный продукт в их жизни — это собственная карьера.

Кроме этого, их выпускники:
— жестко качают нетворк и обзаводятся нужными подвязами;
— умеют в переговоры (знают, что это не они продают себя, а компания предлагает им свою вакансию)
— получают пожизненный навык трудоустройства (а значит никакой шторм на рынке им больше не страшен).

Их выпускники повсюду, они работают во всех топовых компаниях нашей страны.

Хотите перестать паниковать перед сотнями откликов? Приходите на бесплатную консультацию (https://careerfactory.ru/career-support?utm_source=telegram&utm_medium=laravel_it&utm_campaign=native_support_07102025&erid=2W5zFGAmXTN) и узнавайте подробнее о программе.

@php_be1
В документацию добавлена страница с обновлениями
https://laravel.com/docs/changelog

@php_be1
Совет по Laravel💡

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

👉 [|@php_be1]
Сегодня хочу поговорить о теме, которая часто мешает PHP-разработчикам писать красивый и устойчивый код - магические методы.

Да, те самые __get, __set, __call, __toString и компания. Они вроде бы удобные: можно ловко обращаться к несуществующим свойствам, вызывать методы, которых нет, и всё работает. Но вот вопрос — а как это тестировать и поддерживать?

Когда код полагается на магию, отладка превращается в игру «угадай, откуда взялось это значение». IDE не подсказывает типы, автодополнение не работает, а дебаггер видит лишь хаос. Я не говорю, что магические методы нужно запретить. Они бывают полезны, например, в паттерне Proxy или для ленивой загрузки. Но использовать их стоит осознанно, с понятным контрактом.

👉 Советы от меня:

- Если хочешь гибкости — лучше внедри __call через интерфейс или трейт с чёткой логикой.
- Если используешь __get / __set — документируй все «виртуальные» свойства в phpdoc.
- И главное - не прячь логику под магию. Пусть код говорит сам за себя.

👉 [|@php_be1]
Сегодня хочу показать вам, как магические методы в PHP могут упростить жизнь, если использовать их с умом.

Многие знают о __construct() и __destruct(), но PHP предлагает целый арсенал магических методов - от __get() и __set() до __invoke() и __callStatic().

Например, рассмотрим кейс с динамическими свойствами:

class Config {
private array $data = [];

public function __get($name) {
return $this->data[$name] ?? null;
}

public function __set($name, $value) {
$this->data[$name] = $value;
}
}

$config = new Config();
$config->appName = 'MyApp';

echo $config->appName; // MyApp
Мы не определяли свойство appName, но с помощью __get() и __set() сделали объект гибким, почти как массив. Это удобно для конфигов, DTO и API-ответов.

Но!
Если переусердствовать - код становится магическим не только для PHP, но и для вас самого 😄
Отладка, автодополнение и читаемость страдают. Поэтому правило простое:
используйте магию осознанно.

👉 [|@php_be1]
🚀 Не стройте ракету, пока не собрали бумажный самолёт

Один из главных рисков в запуске IT-продукта — застрять в бесконечной доработке и не выйти на рынок.

В комьюнити Короче, Капитан делают по-другому.

Челлендж: 12 запусков за 12 месяцев.

Разработка и запуск — за 1 месяц
Минимальные вложения (средний бюджет на продвижение — $150)
Честный разбор: что получилось, а что — нет

Формула проста:
1 запуск = 1 функция = решение 1 проблемы

Три главных правила:
⚡️Проверенный спрос, а не догадки
⚡️ Быстрый запуск без перфекционизма
⚡️ Только США и ЕС — там платят за удобство

Канал Короче, Капитан показывает запуск, продвижение и доход по каждому продукту в реальном времени.

Без иллюзий, без теорий — только работающие подходы и реальные цифры.

👉 Подписаться: @its_capitan

@php_be1