cleaniquecoders/profile
Composer 安装命令:
composer require cleaniquecoders/profile
包简介
Common Profile Information
README 文档
README
A Laravel package for managing profile information (addresses, emails, phone numbers, websites, and bank accounts) using polymorphic relationships.
Features
- Polymorphic Design - Reusable profile tables for any model
- Trait-Based - Use only what you need (addresses, emails, phones, websites, bank accounts)
- Type-Safe - Query scopes for phone types and other filters
- Configurable - Customize models and polymorphic type names
- UUID Support - Unique identifiers for external integrations
- Soft Deletes - Maintain audit trail of changes
Requirements
- PHP ^8.3 | ^8.4
- Laravel ^11.0 | ^12.0
Quick Start
Installation
composer require cleaniquecoders/profile php artisan vendor:publish --tag=profile-migrations php artisan migrate php artisan profile:seed
Basic Usage
Add the HasProfile trait to your model:
use CleaniqueCoders\Profile\Concerns\HasProfile; use Illuminate\Database\Eloquent\Model; class User extends Model { use HasProfile; }
Create profile information:
use CleaniqueCoders\Profile\Models\PhoneType; // Create address $user->addresses()->create([ 'primary' => '123 Main Street', 'city' => 'Kuala Lumpur', 'postcode' => '50088', 'country_id' => 1, ]); // Create phone numbers $user->phones()->create([ 'phone_number' => '+60123456789', 'phone_type_id' => PhoneType::MOBILE, 'is_default' => true, ]); // Create email $user->emails()->create([ 'email' => 'john@example.com', 'is_default' => true, ]); // Create website $user->websites()->create([ 'url' => 'https://example.com', 'is_default' => true, ]);
Query profile information:
// Get all addresses $addresses = $user->addresses; // Get mobile phones only $mobilePhones = $user->phones()->mobile()->get(); // Get default email $email = $user->emails()->where('is_default', true)->first();
Available Traits
| Trait | Purpose |
|---|---|
HasProfile |
Includes Addressable, Emailable, Phoneable, Websiteable |
Addressable |
Manage physical addresses |
Emailable |
Manage email addresses |
Phoneable |
Manage phone numbers (with types: home, mobile, office, fax, other) |
Websiteable |
Manage website URLs |
Bankable |
Manage bank account information |
Use individual traits for specific needs:
use CleaniqueCoders\Profile\Concerns\Addressable; use CleaniqueCoders\Profile\Concerns\Phoneable; class Company extends Model { use Addressable, Phoneable; }
Documentation
📚 Complete Documentation - Comprehensive guides and API reference
Quick Links
- Installation Guide
- Configuration
- Quick Start Examples
- Architecture Overview
- Usage Guides
- API Reference
- Best Practices
Use Cases
Corporate Profiles
class Company extends Model { use HasProfile, Bankable; } // Headquarters address $company->addresses()->create([...]); // Contact information $company->phones()->create(['phone_type_id' => PhoneType::OFFICE, ...]); $company->emails()->create(['email' => 'info@company.com', ...]); $company->websites()->create(['url' => 'https://company.com', ...]); // Banking details $company->banks()->create([...]);
Employee Management
class Employee extends Model { use HasProfile, Bankable; } // Home address for shipping $employee->addresses()->create([...]); // Multiple contact numbers $employee->phones()->create(['phone_type_id' => PhoneType::MOBILE, ...]); $employee->phones()->create(['phone_type_id' => PhoneType::HOME, ...]); // Payroll bank account $employee->banks()->create([...]);
Customer Records
class Customer extends Model { use HasProfile; } // Billing and shipping addresses $customer->addresses()->create(['type' => 'billing', ...]); $customer->addresses()->create(['type' => 'shipping', ...]); // Multiple contact methods $customer->emails()->create([...]); $customer->phones()->mobile()->create([...]);
Testing
composer test
Contributing
Contributions are welcome! Please see our contribution guidelines for details.
License
This package is open-sourced software licensed under the MIT license.
cleaniquecoders/profile 适用场景与选型建议
cleaniquecoders/profile 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 3.02k 次下载、GitHub Stars 达 14, 最近一次更新时间为 2018 年 01 月 25 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 cleaniquecoders/profile 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 cleaniquecoders/profile 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 3.02k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 14
- 点击次数: 5
- 依赖项目数: 6
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2018-01-25