Các ứng dụng PHP của tôi thường sử dụng các lớp để tạo các không gian tên. Các phương thức trong các lớp này được định nghĩa là tĩnh.PHP: Khi nào nên sử dụng Traits và khi nào nên sử dụng các phương thức tĩnh?
Bây giờ PHP đã giới thiệu Đặc điểm, tôi đang cố gắng quấn quanh đầu khi sử dụng chúng. Tôi đã thấy một số ví dụ về việc sử dụng các đặc điểm, nhưng tôi nghĩ điều này có thể dễ dàng được thực hiện thông qua một phương thức lớp tĩnh.
Một ví dụ khá triệt để sử dụng một logger được liệt kê ở đây: Traits in PHP – any real world examples/best practices?
Nhưng tại sao sử dụng một Trait, nếu bạn cũng có thể sử dụng một Logger tĩnh :: log()? Điều duy nhất tôi có thể nghĩ đến ngay bây giờ, là dễ dàng truy cập vào $ này. Một ví dụ khác mà tôi đang đối mặt ngay bây giờ, là một hàm người dùng tồn tại. Trait nó, hoặc phương pháp tĩnh không?
Có ai có thể làm sáng tỏ điều này không?
Cả hai đều khá crap để sử dụng trong một imho codebase. – PeeHaa
@PeeHaa xin hãy giải thích? – Greggg
Cả hai làm cho nó khó khăn để đơn vị kiểm tra mã của bạn, vì khớp nối chặt chẽ. Cũng như duy trì/gỡ lỗi nó bởi vì bằng cách nào đó một số ma thuật "bên ngoài" mảnh mã được "nhập khẩu" vào lớp. – PeeHaa