isayalcintr/baseobjects
最新稳定版本:v1.0.0
Composer 安装命令:
composer require isayalcintr/baseobjects
包简介
Base object structures for Laravel
README 文档
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());
统计信息
- 总下载量: 4
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-03-05