2010-04-08 22 views
6

Tôi có một số lượng đáng kể các thư viện đối tượng được viết cho PHP 5.2.5 và tôi đang cố gắng cân nhắc các lợi ích của việc cải thiện chúng cho các không gian tên. Tôi không có bất kỳ mối quan tâm nào về phiên bản PHP của máy chủ tại thời điểm này, vì bất kỳ máy móc nào có liên quan đều nằm trong tầm kiểm soát của tôi, vì vậy tôi không lo lắng về khả năng tương thích ngược. Theo như cấu trúc của các thư viện, tôi sử dụng cùng một quy ước như Zend Framework, (Library_Module_Class_Name ví dụ) vì vậy hiện tại tôi không có bất kỳ xung đột đặt tên nào bên trong thư viện. Tôi dự đoán sẽ di chuyển các phần của Thư viện và Mô-đun của các tên này thành các không gian tên.Lý do tốt để di chuyển thư viện PHP sang các không gian tên

Điều đó nói rằng, nếu mã đã được viết, có lý do nào tốt để chuyển sang không gian tên không?

Cảm ơn, Joe

+1

Vâng, * nếu * bạn muốn di chuyển qua và mã của bạn tuân theo quy ước đặt tên ZF, hãy xem các công cụ của họ thực hiện chuyển đổi tự động: http://blog.calevans.com/2010/03/27/zends-new-namespace-converter/ – Gordon

Trả lời

5

Nếu bạn đang tìm kiếm các lý do kỹ thuật, tôi không nghĩ có bất cứ điều gì để biện minh cho chi phí của việc di chuyển mã lớn. Theo tôi biết, không gian tên không trao bất kỳ lợi thế kỹ thuật hoặc lợi ích hiệu suất nào. Nó dễ dàng hơn để viết các chức năng tự động nạp phong nha cho một bộ mã PHP có tên cấu trúc tốt, nhưng khác hơn thế, tôi không thể nghĩ ra bất cứ điều gì có thể là một lý do dứt khoát để bắt đầu chuyển đổi. Nếu có bất cứ điều gì, có lẽ có một chút chi phí cho độ phân giải không gian tên (điểm chuẩn sẽ gọn gàng để xem, nhưng tôi chắc chắn đó là một sự khác biệt không đáng kể).

Điều đó đang được nói, gần đây tôi đã bắt đầu cập nhật một bộ mã cũ để sử dụng không gian tên và tôi đang tận hưởng khả năng tổ chức mà nó cung cấp. Mã này có khuynh hướng hơi dài dòng hơn một chút, nhưng tôi đã chuyển IDE sang Netbeans 6.8 khi bắt đầu nâng cấp, và tính năng tự động hoàn thành sẽ rất quan tâm đến việc nhập và tham chiếu các không gian tên. Sự hỗ trợ không gian tên gây ấn tượng với tôi, thực sự. Nó làm cho toàn bộ dự án khá dễ dàng, và thực sự, tôi dám nói nó, vui vẻ.

+0

Vì vậy, không gian tên đã thực sự làm cho mã của bạn * chi tiết hơn * tiết? Đây có phải chỉ là vấn đề của các câu lệnh "sử dụng X" hay cái gì khác không? Bạn có thể cho tôi biết thêm chi tiết về điều đó không? Cám ơn! –

+0

Ồ, chắc chắn rồi. Tôi đã không sử dụng một kế hoạch đặt tên theo kiểu Zend trước đây, vì vậy đó có lẽ là một phần quan trọng của nó. Tôi đã có một chức năng tự động tải phức tạp mà sẽ làm việc ra đường dẫn tập tin dựa trên lược đồ đặt tên, nhưng nó không phải tất cả gạch dưới. Vì vậy, bây giờ thay vì '$ x = new Person()', tôi đang thực hiện các công cụ như '$ x = new \ Package \ People \ Person()' (ví dụ tương ứng). Đôi khi hơi khó đọc hơn, nhưng tôi quen với nó. Netbeans 6.8 sẽ tự động điền vào các không gian tên trong khi bạn gõ mặc dù, vì vậy nếu tôi bắt đầu gõ 'Pers mới ... 'nó con số nó ra. Nó cũng sẽ tạo ra các câu lệnh 'use' ở trên cùng cho bạn, vì vậy tôi thích nó. – zombat

1

Vâng, đối tượng của bạn là một đối tượng không phải là một Namespace_Prepended_To_An_Object. Bạn sẽ không làm việc với một Controller chứ không phải là một Zend_Controller? Cái sau chỉ trông lố bịch.

+2

Tôi cảm thấy đây không phải là câu trả lời cho câu hỏi .... – mattbasta

+2

Đây là điểm của không gian tên ngay từ đầu. – blockhead

Các vấn đề liên quan