Далее о тестировании. Мы с командой используем Laravel Sail для локальной разработки. По умолчанию он уже включает в себя все инструменты для отладки (XDebug) и тестирования (PHPUnit, PCOV) Столкнулись с проблемой то что при выполнении команды sail artisan test --coverage В случае если какой то код находится за пределами папки 'app', то покрытие кода тестами не считается от слова совсем. После некоторого изучения документации выяснилось, что внутри докера (sail) PCOV считает покрытие только внут...
Жизнь разработчика
Пишу о том что происходит в жизни разработчика (Laravel, PHP, JS, Vue, Unity и Unreal для души)
Графики
📊 Средний охват постов
📉 ERR % по дням
📋 Публикации по дням
📎 Типы контента
Лучшие публикации
13 из 13Привет, Laravel-разработчики! Сегодня мы поговорим о ресурсах (Resources), которые представляют собой мощный инструмент для трансформации данных в Laravel. Ресурсы Laravel позволяют нам легко и удобно преобразовывать модели Eloquent и коллекции в JSON. Это особенно полезно при построении API, где вам нужно представить данные в структурированном формате. Допустим, у нас есть API, который возвращает информацию о пользователях. Вместо того чтобы возвращать все поля модели User, мы можем использоват...
Всем привет! Сегодня поговорим о ресурсе в Laravel и о том, как он может упростить нашу работу с API и преобразованием данных. Представьте, что вы управляете библиотекой. У вас есть множество книг, и каждая из них имеет много информации: автор, жанр, год издания и так далее. Но когда посетитель просит информацию о книге, вы не предоставляете ему все данные, а только те, которые ему действительно нужны. Так и в программировании: ресурс в Laravel помогает нам преобразовать модель или коллекцию мод...
Всем доброго времени суток. Совсем недавно, при написании тестов на Laravel, решили использовать Pest. Изучив его документацию мы поняли что он выглядит гораздо лаконичнее и проще чем PHPUnit. Но мы столкнулись с одной проблемой, когда делаешь Mocking фасадов Laravel, в частности Http::fake() и Http::preventStrayRequests(). Получали следующую ошибку Call to a member function {function} on null Такая ошибка появлялась только в Unit тестах, в Feature же такого не наблюдалось Потратив какое то врем...
Довольно недооценённая функция в Laravel: tap() Есть в Laravel небольшая, практически незаметная функция tap(). Многие её видели, но используют редко, а зря. Если коротко — она позволяет выполнить какое-то действие над объектом и вернуть его дальше, не разрывая цепочку и не создавая лишних переменных. Простейший пример. Допустим, нужно создать запись и залогировать её: Обычный вариант: $user = User::create($data); Log::info('User created', ['id' => $user->id]); return $user; ...
Всем привет! Сегодня поговорим о паттерне "Фабрика" (Factory Pattern) и как он помогает нам в Laravel. Представьте, что вы строите конвейер игрушек. Вместо того, чтобы каждый раз собирать игрушку с нуля, вы настраиваете машину (фабрику), которая будет это делать за вас. Так и в программировании: фабрика это класс или метод, который создаёт объекты другого класса. В Laravel мы часто используем фабрики для создания экземпляров моделей при тестировании или заполнении базы данных тестовыми данными. ...
Вышел PHP 8.5 — коротко о главных фишках PHP 8.5 официально релизнулся. Версия не «космос переписали», но апдейты реально рабочие и приятные для everyday-кода. Разберём самые полезные штуки с примерами. 1. Pipe-оператор |> — читаемые цепочки Теперь можно писать цепочки вызовов слева направо, без матрёшки из вложенных функций. До: $title = ' PHP 8.5 Released '; $slug = strtolower( str_replace('.', '', str_replace(' ', '-', trim($title) ) ) ); С PHP 8.5: $title = ' PHP 8.5 Rele...
Mutators и Accessors в Laravel 10+ Многие знают классические getSomethingAttribute() и setSomethingAttribute(), но Laravel 10 принес обновлённый, более читаемый синтаксис. Пример Допустим, у нас есть поле price, хранящееся в базе в копейках: // app/Models/Product.php class Product extends Model { protected function price(): Attribute { return Attribute::make( get: fn ($value) => $value / 100, set: fn ($value) => $value * 100, ); } } Что теперь происходит? $product->price...
Используем касты (Casts) в Laravel, чтобы держать данные в порядке Привет, разработчики! Сегодня поговорим про касты в Laravel — одну из тех фич, о которых все знают, но используют далеко не всегда. А зря. Зачем нужны касты? У модели есть поля — строки, числа, даты, JSON. Но Eloquent сам по себе не всегда может привести их к удобному формату. Например: - settings хранится как JSON в базе - is_active хранится как tinyint - created_at нужен в конкретном формате Laravel позволяет автоматически каст...
Channel name was changed to «Жизнь разработчика»