isayalcintr / baseobjects
Base object structures for Laravel
v1.0.0
2025-03-05 17:12 UTC
Requires
- php: >=8.1
- illuminate/support: ^10.0|^11.0|^12.0
This package is auto-updated.
Last update: 2025-07-05 18:36:24 UTC
README
isayalcintr/baseobjects
paketi, Laravel projelerinde kullanılmak üzere BaseObject ve BaseFilterObject sınıflarını sağlar. Bu sınıflar, repository pattern ve filtreleme işlemleri için yapı taşları oluşturur.
🚀 Kurulum
Paketinizi projenize eklemek için:
composer require isayalcintr/baseobjects
Daha sonra, aşağıdaki komutu çalıştırarak sınıfları App/Objects
dizinine kopyalayabilirsiniz:
php artisan vendor:publish --tag=base-objects
📚 Kullanım
BaseObject Kullanımı
BaseObject
sınıfı, temel nesne işlemleri için kullanılabilir. Örneğin, bir kullanıcı nesnesi oluşturmak ve bu nesneyi bir diziden başlatmak için:
use isayalcintr\BaseObjects\BaseObject; class UserObject extends BaseObject { private ?string $name = null; private ?string $email = null; public function getName(): ?string { return $this->name; } public function setName(?string $name): self { $this->name = $name; return $this; } public function getEmail(): ?string { return $this->email; } public function setEmail(?string $email): self { $this->email = $email; return $this; } } // Kullanım $user = (new UserObject())->initFromArray([ 'name' => 'John Doe', 'email' => 'john.doe@example.com' ]); print_r($user->toArray());
use isayalcintr\BaseObjects\BaseFilterObject; use Illuminate\Database\Eloquent\Builder; class UserFilter extends BaseFilterObject { protected ?string $name = null; public function getName(): ?string { return $this->name; } public function setName(?string $name): self { $this->name = $name; return $this; } public function filterToName(Builder $query): Builder { return $query->where('name', 'like', '%' . $this->name . '%'); } public function isFilterableName(): bool { return !is_null($this->name); } } // Kullanım $query = \App\Models\User::query(); $filter = (new UserFilter())->setName('John'); $query = $filter->apply($query); $users = $query->get(); print_r($users->toArray());