30/09/2018, 16:40
Refactor a big class
Em có 1 class lớn như thế này chuyên để gửi HTTP request.
Hướng nào là tốt nhất để group những hàm liên quan lại với nhau thành 1 class (số lượng endpoint có thể lên đến vài trăm)
https://github.com/daynhauhoc/sync-wiki/blob/master/app/Api/Discourse/Discourse.php
@laptrinhio
Bài liên quan
Nôm na abc thì có thể làm thế này
sau đó nếu có service khác ko phải Discource thì cứ tương thôi
Tạo ra
ServiceProvider
rồi bindNhưng như vậy thì class lớn nhất là DiscourseAPI vẫn như vậy ? Chỉ có thể interface để dễ đọc hơn thôi. Cái Curl em định thay bằng Guzzle nên mới tách ra như vậy.
Có cách nào mà nó thế này:
Em định dựng 1 Discourse API hoàn chỉnh theo từng route của nó rồi sau đó thêm 1 cái wrapper của App để thực hiện mấy cái riêng dành cho App
Nốt lại tương
ServiceProvider
bind các interface.Thay cục Curl bằng cục Guzzle, thích abstract nữa thì lại interface
Yeah. Em đã hiểu . Mình abstract luôn cái Curl, Guzzle thành 1 cái như là DiscourseHttp rồi bind nó vào
Anh xem qua cái prototype về quy trình get link này xem có ổn ?
https://github.com/daynhauhoc/sync-wiki/blob/master/app/Http/Controllers/WelcomeController.php
quy trình thì chắc ko vấn đề, còn logic trong Controller này thì đẩy vào Bus.
Ok. So far so good
https://github.com/daynhauhoc/sync-wiki/tree/master/app/Api/Discourse
Đã refactor xong (còn 1 số method nhỏ để đó từ từ làm tiếp).
Em có 1 chỗ bí phải dùng facade của Laravel.
https://github.com/daynhauhoc/sync-wiki/blob/master/app/Api/Discourse/Objects/DiscourseObjects.php#L15
Nếu không dùng Facade thì phải làm sao ?