PHP6 "wishlist"

Ít nhất thì PHP6 sẽ không được “xuất xưởng” trong năm nay. Và sau đây là một số điều tôi mong đợi và quan tâm ở PHP6.

Namespace

Người ta đã nói quá nhiều về vấn đề này, nhưng hiện tại việc PHP6 có hỗ trợ namespace hay không vẫn chưa chắc chắn 100%. Tôi tự hỏi, với PHP là text-processing, chúng ta sẽ sử dụng namespace như thế nào. Nói rõ ràng hơn, chúng ta sẽ viết các namspace, các class như thế nào, cấu trúc thư mục, file ra làm sao? Tôi chưa hình dung ra! Nếu có thì rất có thể trong PHP6 chúng ta sẽ khai báo sử dụng một namespace giống như ví dụ này:

import Zend/*

Vậy các class thuộc namespace Zend sẽ được khai báo như thế nào (trong cùng một file với file chứa mã khai báo namespace? File php chứa mã của namespace đó sẽ được đặt ở đâu? Tôi nghĩ chắc phải dùng đến ini_set().

Tận dụng thêm nữa các lợi thế của một ngôn ngữ script

Tức là chúng ta sẽ có một ngôn ngữ PHP linh họat hơn, uyển chuyển hơn. Ví dụ như cách assign biến như sau:

$a, $b  = foo();

Với cả $a và $b sẽ nhận giá trị trả về từ hàm foo(). Trong ngôn ngữ Lua mà tôi đang học có hỗ trợ điều này, nó thật sự tiện lợi. Hoặc có thể hỗ trợ cách gọi method đồng lọat như sau:

$arrayOfObjects->doSomething();

Với biến $arrayOfObjects là một mảng gồm nhiều đối tượng cùng kiểu. Dòng code trên có nghĩa là, tất cả các object là phần tử của mảng $arrayOfObjects sẽ lần lượt được gọi method doSomething(). Cách gọi này sẽ hữu dụng, tiết kiệm số dòng code trong rất nhiều trường hợp, ví dụ như khi bạn sử dụng observer pattern. Thay vì duyệt qua mảng, bạn chỉ cần gọi như thế là xong.

OO hóa thư viện API

PHP có quá nhiều API lộn xộn được viết non-OO. Cùng với sự hỗ trợ namespace, việc OO hóa các API này sẽ đem lại hiệu quả rất tuyệt vời, mặc dù theo tôi ý tưởng này chắc chắn sẽ còn rất lâu nữa mới được thực hiện.


About this entry