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

3
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 17 грудня, 2025
Вам цікаво дізнатися, як зробити свої 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 ознайомтеся з документацією, а вихідний код доступний на GitHub за адресою dshafik/bag.

Популярні

Logomark Logotype

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

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

Logomark Logotype

Журнал аудиту в Laravel

Хочете забезпечити повну прозорість у своїх Laravel-додатках? Пакет Laravel Audit Log допоможе вам детально відстежувати всі зміни моделей Eloquent та відповідати вимогам регуляторів. Читайте далі, щоб дізнатися, як цей потужний інструмент може підвищити надійність вашого проєкту

Logomark Logotype

Laravel Boost — ваш стартовий набір для програмування з використанням штучного інтелекту

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