7

Tôi cần tích hợp bộ điều phối sự kiện trong codebase của riêng mình (thư viện PHP tùy chỉnh), vì vậy tôi đã xem xét cả hai số Symfony2Zend Framework 2 đang làm gì. Rõ ràng, không có giao diện chia sẻ cho việc gửi đi các sự kiện, bởi vì cả hai khung công tác đều có nhu cầu khác nhau và quyết định triển khai mã riêng của họ ... vì vậy tôi bị mất một chút: Tôi không muốn phát minh lại bánh xe cá nhân của mình.Cách tốt nhất để tích hợp bộ điều phối sự kiện trong thư viện PHP là gì?

Có lẽ giao diện SPL để triển khai mẫu quan sát hơi ngây thơ, vì vậy tôi ở đây hỏi bạn: bạn sẽ làm gì?

EDIT

Vì nó không rõ ràng ... Tôi muốn tái sử dụng một ED hiện, cho phép các nhà phát triển tiêm nó trong thư viện của tôi.

Giả sử bạn phát triển lib với điều phối viên và bạn biết rằng lib của bạn sẽ là một phần của gói Symfony và cũng được sử dụng lại trong các dự án ZF: bạn chắc chắn muốn sử dụng lại các điều phối viên của Symfony và ZF. của riêng bạn.

Vì vậy, tôi đang tìm kiếm các giao diện dùng chung cho các điều phối viên hiện có được triển khai trong các thư viện chính thống, nhưng có vẻ như không có giải pháp.

Trả lời

4

Bạn có thể định nghĩa một giao diện cho nhu cầu của bạn và sau đó thực hiện nó với differents adapter cho mỗi khung.

+0

què, nhưng lựa chọn duy nhất cho bây giờ :) – odino

+0

@odino tại sao không bắt đầu một PSR khác so sánh Symfony2, ZF2, Aura, Nhiên liệu ... và những người khác ... Dù sao không chắc chắn nó sẽ được chấp nhận hay không. Có thể là giao diện cơ sở chỉ áp dụng. –

2

Tôi nghĩ rằng bản năng đầu tiên của bạn để chọn một trong những thành phần được sử dụng rộng rãi là cách để đi.

Hai tùy chọn đó tôi cũng sẽ xem xét. Bạn chỉ cần nhìn vào cả hai người trong số họ và chọn người bạn cảm thấy sẽ làm việc tốt nhất cho bạn.

Plug Shameless: Nếu bạn muốn một cái gì đó thực sự, thực sự nhẹ, bạn có thể xem Événement.

2

Bạn cần triển khai mẫu quan sát bằng cách triển khai giao diện PHP SplObserver, SplSubject. Không chỉ Zend, Symphony thực hiện điều đó để hỗ trợ móc nhưng thường thì mọi bộ điều phối sự kiện đều hoạt động theo cách này bằng cách thực hiện mẫu quan sát.

Dưới đây là một bài báo để biết thêm http://devzone.zend.com/article/4284

+1

Hi OSL, hãy nhìn vào những chỉnh sửa, điểm của câu hỏi không phải là có mẫu để sử dụng, rõ ràng là bạn Nedd để đi với người quan sát ;-) – odino

1

Bài đăng cũ đã được chấp nhận nhưng có giải pháp cho một giải pháp EDP giảm trong PHP cho những người gặp phải điều này như tôi có.

http://prggmr.org

Chức năng là chênh lệch nhiều so với thực hiện của Zend của Symfony và như họ không có giao diện hoặc các lớp học mà không cần mở rộng để sử dụng thư viện, thay vì bạn chỉ cần gọi chức năng php điển hình để xử lý sự kiện cử.

// Subscribe to dispatched events 
subscribe(callback, signal) 

// Dispatch an event 
fire(signal) 
Các vấn đề liên quan