Tôi đến từ C# và tôi đang cố gắng tìm ra cách làm cho mã của tôi có thể mở rộng được.Sử dụng giao diện trong PHP
Ví dụ: tôi có chức năng tính trợ cấp hàng ngày được đề nghị của tôi về lượng thức ăn. Nó nhìn vào các vitamin, calo, khoáng chất, vv ...
Tôi muốn có nhiều đối tượng thực phẩm khác nhau mà tôi sử dụng trong ứng dụng của mình và các chức năng khác nhau nhìn vào các khía cạnh khác nhau của thực phẩm. các lớp thực phẩm mà tôi muốn tương thích với chức năng của tôi thực hiện nó. sau đó tôi tuyên bố rằng chức năng của tôi mất nó như một arg
function GetRda(IFoodNutrition $food){}
Trong C# tôi sẽ xác định tất cả các tài sản mà tôi cần phải sử dụng trong giao diện vì vậy tôi biết bất kỳ lớp mà thực hiện này sẽ tương thích với chức năng này.
Điều khiến đầu tôi bị tổn thương là PHP chỉ cho phép chữ ký phương thức trong giao diện.
Vấn đề của tôi rõ ràng là sự thay đổi mô hình. Tôi không chắc mô hình tương đương là gì trong PHP. Tôi đã đọc các tài liệu và tôi không thể nhìn thấy giống như cho thay thế trừ khi bạn kế thừa từ một lớp trừu tượng nhưng sau đó bạn chỉ có thể kế thừa từ một lớp để không hoạt động theo cùng một cách.
Vì PHP không an toàn nên tôi không phải tạo giao diện. Ai đó chỉ có thể gửi bất kỳ đối tượng nào cho phương thức và nếu nó có các thuộc tính cần thiết ở định dạng đúng, nó sẽ hoạt động. Điều này dường như không phù hợp với tôi mặc dù tôi đã quen với việc đặt ra cách mọi thứ nên được tương tác với nhau trong các giao diện. Tôi cảm thấy như ít nhất phải có thêm một số bước ở giữa, nơi đối tượng được xác nhận và một số cấu trúc rõ ràng mà một nhà phát triển có thể xem và sau đó thực hiện lớp của mình một cách trực quan và xem lỗi trước khi chạy.
Có một mẫu cụ thể trong PHP như thế này không?
PHP (kể từ phiên bản 5.1) cho phép [gợi ý kiểu cho đối tượng, mảng, giao diện và cuộc gọi] (http://php.net/manual/en/language.oop5.typehinting.php), không chỉ cho giao diện. Có [là một gợi ý để thêm gợi ý kiểu cho các loại vô hướng tới PHP 7] (https://wiki.php.net/rfc/scalar_type_hints), nhưng nó đã được rút ra. Hiện tại, không có cách nào an toàn để đảm bảo an toàn kiểu trong PHP. Ghi lại các kiểu được chấp nhận cho các tham số của bạn, sử dụng các gợi ý kiểu nếu có thể, và kiểm tra xem hàm của bạn có các kiểu mong đợi và ném các ngoại lệ cho phù hợp hay không. – Carsten