PHP-BE1
302 subscribers
397 photos
12 videos
19 files
689 links
Канал по PHP, полезный и интересный контент для всех уровней.
По вопросам сотрудничества @cyberJohnny
Download Telegram
Сегодня хочу показать вам, как магические методы в 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
Когда вы заменяете кучу проверок isset() на optional chaining (?->):

Это умное решение или удар по читаемости?

👉 [|@php_be1]
Релизы PHP 8.4.14 и 8.3.27
https://www.php.net/

@php_be1
Голосование по дизайну сайта для PHP 8.5
https://github.com/php/web-php/issues/1563

@php_be1
This media is not supported in your browser
VIEW IN TELEGRAM
Nimbus — браузерный API-клиент для Laravel

Традиционные инструменты тестирования API требуют ручной настройки для каждой конечной точки. Nimbus устраняет эту проблему, автоматически обнаруживая маршруты Laravel, генерируя схемы на основе правил валидации и обрабатывая аутентификацию, файлы cookie и тестовые данные. Всё это можно сделать, не выходя из среды разработки.

https://github.com/sunchayn/nimbus

@php_be1
📕Делаем тонкие контроллеры на Symfony. Валидация - PHP-разработчикам; Junior/Middle разработчикам, строящим API на Symfony; начинающим специалистам в асинхронной архитектуре

На открытом уроке 5 ноября в 20:00 мск мы разберёмся в принципах и методах разработки тонких контроллеров:

📗 На вебинаре:
1. Получите практические примеры построения эффективной архитектуры приложения.
2. Познакомитесь с базовыми механизмами валидации.

📘 В результате на практике изучите и освоите создание собственных constraint, а также сможете централизованно обрабатывать ошибки с помощью EventDispatcher/EventListener.

👉 Регистрация на урок и подробности о курсе Symfony Framework: https://clck.ru/3Q8Pq5

Все участники открытого урока получат скидку на курс "Symfony Framework"

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Совет по Laravel💡

Schedule Shell Commands

Знаете ли вы, что Laravel Scheduler позволяет выполнять команды в операционной системе?

📲 Мы в MAX https://max.ru/php_be1

👉 [|@php_be1]
Профилирование PHP (Laravel) приложений с xhprof. Учимся искать ботлнеки

Вам знакомо то чувство, когда ваш PHP-код отрабатывает за дофига миллисекунд, а иногда и секунд, и вы не можете понять, в чём дело и где тот говнокод, который я (или не я, а мой коллега) когда-то написал? В этой статье хочу немного рассказать на примере профайлинга PHP-кода, как перестать гадать и начать выявлять боттлнеки, которые всё тормозят. Короче, помочь поискать говнокод. После этого у многих из вас появится понимание, как дать своему приложению прирост производительности с помощью крутых инструментов профайлинга, таких как xhprof и Buggregator.

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

📲 Мы в MAX https://max.ru/php_be1

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

Знаете ли вы, что метод whereAny(), может осуществлять поиск по нескольким столбцам, используя логику OR.

📲 Мы в MAX https://max.ru/php_be1

👉 [|@php_be1]
📕CQRS и идемпотентность в Symfony: пишем надёжные API - PHP-разработчикам; Junior/Middle разработчикам, строящим API на Symfony; начинающим специалистам в асинхронной архитектуре

На открытом уроке 11 ноября в 20:00 мск мы разберёмся в паттернах CQRS в Symfony и поговорим об идемпотентности HTTP-методов:

📗 На вебинаре:
1. Поймете, как применять CQRS в Symfony без лишней сложности.
2. Научитесь проектировать идемпотентные эндпоинты и реализовывать их средствами фреймворка.

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

👉 Регистрация на урок и подробности о курсе Symfony Framework: https://clck.ru/3QENpv

Все участники открытого урока получат скидку на курс "Symfony Framework"

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Совет по Laravel💡

Знаете ли вы... В Laravel есть метод withProgressBar(), который позволяет добавлять прогресс-бары к консольным командам.

📲 Мы в MAX https://max.ru/php_be1

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

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

#Laravel

📲 Мы в MAX https://max.ru/php_be1

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

Уникальные идентификаторы запросов

Вам когда-нибудь требовалось создать код уникального идентификатора для запроса, например, для целей кэширования? Laravel поставляется с методом «fingerprint», который позволяет вам генерировать уникальный идентификатор для ваших запросов 🚀

#laravel

📲 Мы в MAX https://max.ru/php_be1

👉 [|@php_be1]