Laravel – Service / Manager & Interface

Lâu nay web mình toàn post porn không 😀 Nên giờ tự tay viết 1 bài technical chút.

Về nguyên tắc / lý thuyết sách vở thì nó được gọi là … gì gì đó pattern ! Nhưng thôi dẹp mẹ nó sách vở qua 1 bên. Câu chuyện là ta xem nó giải quyết được bài toán gì & thế nào.

Service

Hiểu nó như trung tâm vũ trụ cũng được ! Cái gì rồi cũng phải đi qua em nó ( còn không đi qua mà tự đi đường tắt có gì thì tự chịu !!! )

Manager

Có thể hiểu như là thằng quản lý của Service ( ờ thì nó là Manager mà ). Mấu chốt là Service được implement vào Manager qua Interface. Vì sao uh

  • 1 thằng Manager có thể xử lý các tác vụ giống nhau ( method ) nhưng được xử bởi các Service bên dưới khác nhau

Và đây cũng là nơi Interface thể hiện giá trị của nó

Có 1 vấn đề này mình còn khá consider ! Dispatch Event bên trong Service / Manager hay thông qua Observer

Case 1

  • Khi model được created sau đó xử lý ABC gì đó nữa rồi mới thật sự cần dispatch EventAbcCreated thì nên trong Service / Manager

Ví dụ với XCrawler : Sau khi Movie được created còn thao tác sync Genres & Performers nữa . Do đó Event MovieCreated lúc này mình dispatch inside MovieService

Case 2

  • Ngay khi model created là đã có thể xử dụng ngay Event. Thì mình vẫn khá là consider dispatch event trong Observer.created

Tuy nhiên theo một số quan điểm khác thì việc này … khó control và slow down test … uhm ! No idea yet !

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Up ↑

%d bloggers like this: