Skip to content

v2.0.0

Choose a tag to compare

@ReallifeKip ReallifeKip released this 20 Jul 05:00
· 74 commits to main since this release

🎉 新功能

  • 新增屬性標註系統:
    • #[Relaxed] - 鬆散模式,不強制要求填寫 #[Reason]
    • #[Reason] - 屬性非 private 時強制使用此標註說明設計原因

✨ 功能改進

  • 優化 with() 方法:
    • 現已支援嵌套 ImmutableBase 物件的部分更新

🔧 重構

  • 屬性管理強化:
    • 移除 $lock 屬性和 HIDDEN 常數機制
    • 新增屬性訪問控制檢查(禁止非 readonly 的 public 屬性)
    • 新增 isRelaxed() 方法檢查類別是否為鬆散模式

🔄 API 變更

  • with() 方法:現在支援嵌套物件的部分更新
  • toArray() 方法:移除 $lock 檢查,簡化邏輯
  • 屬性管理:引入新的屬性標註系統取代舊的隱藏機制

📚 範例

// 支援嵌套更新
$user = $user->with([
    'profile' => [
        'address' => [
            'city' => '新城市'
        ]
    ]
]);