isayalcintr/baseobjects 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-03-05