adrosoftware/laravel-model-presenter
Composer 安装命令:
composer require adrosoftware/laravel-model-presenter
包简介
A simple and elegant way to separate presentation logic from Laravel Eloquent models
README 文档
README
A simple and elegant way to separate presentation logic from your Laravel Eloquent models.
Introduction
The Presenter pattern helps keep your models clean by extracting presentation and formatting logic into dedicated presenter classes. Instead of cluttering your models with display-related methods, you can organize them in presenters.
Installation
composer require adrosoftware/laravel-model-presenter
Since version 1.2.0, the package is auto-discovered by Laravel, so no manual service provider registration is required.
Requirements
- PHP 8.2+
- Laravel 11, 12, or 13
Version Compatibility
| PHP | Laravel 11 | Laravel 12 | Laravel 13 |
|---|---|---|---|
| 8.2 | ✅ | ✅ | ❌ |
| 8.3 | ✅ | ✅ | ✅ |
| 8.4 | ✅ | ✅ | ✅ |
| 8.5 | ✅ | ✅ | ✅ |
Laravel 13 requires PHP 8.3 or higher.
Quick Start
1. Create a Presenter
Create a presenter class that extends ModelPresenter:
<?php namespace App\Presenters; use AdroSoftware\LaravelModelPresenter\Presenter\Model\ModelPresenter; class UserPresenter extends ModelPresenter { public function fullName(): string { return "{$this->model->first_name} {$this->model->last_name}"; } public function formattedCreatedAt(): string { return $this->carbon($this->model->created_at)->format('F j, Y'); } }
2. Configure Your Model
Add the PresentModel trait and implement ModelPresentable interface:
<?php namespace App\Models; use AdroSoftware\LaravelModelPresenter\Presenter\Model\ModelPresentable; use AdroSoftware\LaravelModelPresenter\Presenter\Model\PresentModel; use App\Presenters\UserPresenter; use Illuminate\Database\Eloquent\Model; class User extends Model implements ModelPresentable { use PresentModel; protected string $presenter = UserPresenter::class; }
3. Use the Presenter
$user = User::find(1); // Access presenter methods echo $user->present()->fullName(); echo $user->present()->formattedCreatedAt(); // Access model attributes through the presenter echo $user->present()->email;
AI-Assisted Development
This package includes Laravel Boost guidelines for AI coding assistants. After installing, run php artisan boost:install to enable intelligent code suggestions.
Documentation
For detailed documentation, see the docs directory:
Testing
composer test
Static Analysis
composer analyse
Code Style
composer lint # Check code style composer lint:fix # Fix code style
License
MIT License. See LICENSE for more information.
统计信息
- 总下载量: 1.35k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 1
- 推荐数: 1
其他信息
- 授权协议: MIT
- 更新时间: 2025-10-03