// すべてが、常に利用できる public function verifyEmail(); public function login(); public function logout(); public function updateProfile(); public function changePassword(); public function addAddress(); public function removeAddress(); public function addPaymentMethod(); public function removePaymentMethod(); public function addToCart(); public function removeFromCart(); public function addToWishlist(); public function removeFromWishlist(); public function checkout(); public function trackOrder(); public function cancelOrder(); public function requestRefund(); public function writeReview(); 6
{ #[Validate] public function validate(string $email): void { if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { throw new InvalidEmailException(); } } } // どのコンストラクタでも自動検証 public function __construct(string $email) {} 10