Drupal?
Một số câu hỏi về Drupal, ví dụ như:
1. Khi Drupal nâng cấp từ 6 lên 7, liệu có liên quan đến PHP5 và việc PHP5 đã hoàn toàn hỗ trợ OOP?
2. Liệu Drupal có refactor lại để phù hợp với OOP của PHP5.
3. Nếu PHP6 có cái gì đó hơn PHP5, thì Drupal 8 sẽ như thế nào?
Suy đoán của cá nhân tui về Drupal.
1. Drupal có cơ chế riêng của nó, các Hook có thể coi là các Class, các function của Hook có thể coi là method, và các kết quả dạng Array có thể coi là các Object. Việc Drupal sử dụng kết quả dạng Array, vì nó có cơ chế để parse data trong Array ra thành dữ liệu, và cơ chế này là thống nhất với toàn bộ các Hook. Nếu như các framework khác sử dụng Object với một hay nhiều data type, thì với tui, việc chỉ sử dụng Array của Drupal là thông minh, vì nó nhất quán, giúp cho developer không phải nghĩ đến chuyện xử lý dữ liệu như thế nào nữa.
2. Một trong những lợi thế của viết OOP là quản lý được phạm vi sử dụng tài nguyên của biến, cụ thể là mỗi biến sẽ có một data type cụ thể, và việc sử dụng data type nào sẽ phụ thuộc vào đặc trưng, nhu cầu và limitation của data type đó. Có khi nào dụng ý sử dụng Array để lưu trữ dữ liệu là vì tránh phải quản lý việc sử dụng data type nào cho phức tạp?
3. Khi xây dựng module cho Drupal, developer thường suy nghĩ theo hướng viết PHP đơn thuần, có nghĩa là xây dựng function rồi sử dụng. Nhưng việc Drupal có cơ chế cho truy xuất các function trong các module không có nghĩa là ta không suy nghĩ đến việc build ra các Hook tác động với Object mà module được tạo ra để làm việc với nó. Giả sử giả thuyết các function trong Hook là method trong Class là đúng, thì việc sử dụng function như method (theo OOP) sẽ khác với việc truy xuất sử dụng function trong module, và khống chế được hậu quả mà việc dùng sai data type sẽ gây ra.
Thắc mắc:
1. Nếu Drupal coi Hook là Class, thì việc quản lý sự tác động lên các property hoặc method của Hook ra sao? Ví dụ property nào sẽ là private, public, protect? Drupal mà quản lý được mức độ tác động lên property hoặc method của Hook, thì việc bảo mật code của Drupal ở lớp logic là hoàn toàn có thể.
2. Có thể xem cơ chế của Drupal là hướng đối tượng (kiểu Drupal) không?
Note ra để kiểm chứng, mặc dù những gì được viết trên đây là giả định, nhưng phải khẳng định rằng Drupal có concept rất tốt, là một platform được xây dựng sẵn các cơ chế, chứ không phải set of treatment như các framework khác.
Nguồn: ĐỌc từ blog Sếp Ban :p
Filed under: Uncategorized | Tagged: drupal, note