Ký hiệu dấu chấm php
Mảng PHP là công cụ hữu ích (và kỳ quặc) để tổ chức dữ liệu. Chúng có thể dẫn đến mã dài dòng, nếu bạn đang cố gắng lập trình phòng thủ, như trong ví dụ sau $config["app"]["cache"]["provider"] = "redis"; Các nhà phát triển thường thích thay thế loại hành vi này bằng việc sử dụng ký hiệu dấu chấm. Đó là; $config["app.cache.provider"]; Tôi thường cố gắng thực hiện những thứ như thế này, và mặc dù cuối cùng tôi cũng đến đó, nhưng có vẻ như tôi luôn thử một phương pháp khác ít xấu xí hơn phương pháp trước. Vì vậy, đây là những điều chỉnh của tôi trên các ví dụ rõ ràng nhất mà tôi có thể tìm thấy (từ Laravel framework) Triển khai LaravelLaravel framework triển khai các phương thức tĩnh để lấy và đặt các giá trị mảng, sử dụng ký hiệu dấu chấm public static function get($array, $key, $default = null)
Những điều này cho chúng ta một ý tưởng tốt về những gì chúng ta nên chụp cho. Tôi muốn tiến thêm một bước và tạo một đặc điểm cho bất kỳ lớp nào giống như vùng chứa để có bộ nhớ trong, được truy cập/sửa đổi bằng cách sử dụng ký hiệu dấu chấm Thực hiện đặc điểmChúng ta có thể bắt đầu bằng cách tạo một vài lớp khung, triển khai giao diện ArrayAccess
Bây giờ chúng ta có thể bắt đầu tạo các phương thức ký hiệu dấu chấm. Ký hiệu dấu chấm dễ dàng đạt được thông qua phép lặp hoặc đệ quy. Lặp lại có xu hướng ít tốn kém hơn so với đệ quy, vì vậy đó là cách tiếp cận mà chúng tôi sẽ thực hiện /**
Điều này cũng tạo ra một mô hình tốt cho phương thức offsetGet() /**
Cài đặt tuân theo mô hình tương tự như cách triển khai Laravel, với một vài sự cắt giảm /**
Cuối cùng, chúng ta cần thêm phương thức offsetUnset() ________số 8
Tôi thích rằng tôi phải sử dụng một ký tự unicode trong tên phương thức đó, nhờ unset là một từ dành riêng bất kể ngữ cảnh. Bây giờ, chúng ta chỉ cần hoàn thành lớp Collection |