Нерухомі значення об’єктів у PHP та Laravel за допомогою пакету Bags

Перекладено ШІ 3 Laravel News 02 червня, 2026

Вам цікаво дізнатися, як зробити свої PHP-об'єкти незмінними та безпечними за типами? У нашій статті про пакет Bag для Laravel ви знайдете корисні поради та приклади, як просто реалізувати ці можливості у вашому коді

Bag — це пакет для PHP та Laravel, призначений для незмінних значень об'єктів. Він був створений з натхненням від пакету laravel-data від Spatie. Цей інструмент дозволяє створювати незмінні об'єкти, які безпечно обробляють дані, використовуючи типізацію, кастинг даних і вбудовану валідацію. Bag може слугувати заміною звичайним масивам у вашому коді, забезпечуючи типову безпеку.

use Bag\Bag;

readonly class MyValue extends Bag {
    public function __construct(public string $name, public int $age) {}
}
 
$value = MyValue::from([
    'name' => 'Davey Shafik',
    'age' => 40,
]);
 
// Створюємо новий екземпляр з іншим значенням
$newValue = $value->with(age: 41);

Bag також інтегрується з Laravel, використовуючи стандартні Collection і Validation у значеннях об'єктів, а також Eloquent кастинг та можливість впроваджувати Bag об'єкти в контролери з валідацією:

use Bag\Attributes\Laravel\FromRouteParameter;
use Bag\Bag;

class MyValue extends Bag
{
    #[FromRouteParameter()]
    public string $id;
}
 
// MyValue $value буде мати заповнений параметр маршруту `id`
class MyController extends Controller {
    public function store(MyValue $value) {
        // $value є валідованим MyValue об'єктом
    }
}

Цей пакет також включає команду Artisan для генерації Bag, використовуючи команду make:bag.

# Основні характеристики

  • Незмінні та строго типізовані
  • Кастинг значень — для введення та виведення
  • Підтримка колекцій
  • Комбінованість — вкладення об'єктів і колекцій Bag
  • Вбудована валідація

Для початку роботи з Bag ознайомтеся з документацією, а вихідний код доступний на GitHub за адресою dshafik/bag.

Популярні

Інше, що варто прочитати

14 Оновлено 01 червня, 2026

Як задокументувати кілька API в Laravel за допомогою Scramble

Ви знали, що в одному додатку Laravel можна реалізувати кілька API? У нашій статті ви дізнаєтеся, як за допомогою Scramble легко документувати різні версії API та налаштувати доступ до документації, щоб зробити її публічною або приватною. Читайте далі, щоб дізнатися більше

83 Оновлено 01 червня, 2026

Все, що потрібно знати про Laravel 13

Laravel 13 вийде в березні 2026 року й вимагатиме мінімум PHP 8.3. Хочете дізнатися, як PHP‑атрибути для моделей, нові налаштування черг і метод Cache::touch() вплинуть на вашу розробку?

10 Оновлено 01 червня, 2026

Генерація документації в Laravel за допомогою штучного інтелекту

Docudoodle — це потужний пакет для генерації документації в Laravel, який допомагає легко аналізувати вашу кодову базу та створювати документацію за допомогою обраного вами AI. Чи готові ви дізнатися, як цей інструмент може спростити вашу роботу з документуванням коду? Читайте далі!