THẢO LUẬN

@pht cấm ko cho cmt dài h =))

0

Em nghĩ cần thêm skip_before_action :require_login, only: [:new, :create] ở cả UsersController nữa. Nếu không thì khi sử dụng button Register ở trang login sẽ không thể chuyển sang trang Register được?

0
thg 7 7, 2018 3:37 SA

Xin chào, Hiện tại em làm đến bước tạo sitemap "php artisan sitemap:create" thì bị lỗi "There are no commands defined in the "sitemap" namespace" làm sao để khắc phục ạ?.

0

Bài viết rất hay và chi tiết 👍

Anh có vài góp ý nhỏ cho em, hy vọng có thể giúp em nâng cao chất lượng bài viết hơn 😄

Chỉ chứa những method/properties trống không có thực thi.

Cái này em nên nói rõ là với ngôn ngữ em đang sử dụng trong bài viết, là csharp, hay có thể là PHP nữa. Còn với Java thì khá là dị, theo anh được biết thì từ Java 8, trong Interface người ta cũng có thể khai báo function body =)) https://viblo.asia/p/interface-trong-java-8-gioi-thieu-default-method-va-static-method-PDOkqLqjejx

Các lớp có thể kế thừa nhiều interface.

Không nên nói class kế thừa interface. Em nên dùng nguyên từ tiếng anh là implements thì hay hơn. Kế thừa chỉ nên dùng cho class mà thôi

Ngoài ra, khi nói về Abtract Class với Interface, người ta hay có một ví von nữa là: khi extend một abtract class, thì có nghĩa là ta đang thể hiện mối quan hệ is-a (), còn khi implement một interface, thì ta đang thể hiện mối quan hệ has-a (, hay thực hiện).

Ngày trước code còn hay có convention thêm tiền tố I ở trước tên Interface để thể hiện đó là một Interface, nhưng anh thấy gần đây họ cũng bỏ nhiều rồi, không rõ trong CSharp vẫn giữ quan điểm đó hay sao 🤔 Mọi người thường đặt tên Interface sao cho có thể thể hiện đúng bản chất của nó theo mối quan hệ đã thể hiện hơn trên.

Ví dụ như

class Programmer extends Human implements Programming, Debugging 
{
}

chẳng hạn. Đọc sẽ hiểu là

Programmer Human, thực hiện việc Programming, Debugging

😄

P/S: Một câu hỏi nhỏ: một class có thể implements được nhiều Interface, vậy theo em nếu trong 2 Interface mà cùng được class A implements, có cùng một function tên là a() thì sao nhỉ? 😄

+4

Tai sao zsh cua em no co tieng Trung Quoc vay? Em mac phai van de nua la command gedit ~/.zshrc no khong chay duoc 😦 Screenshot from 2018-07-07 08-54-06.png

0
thg 7 7, 2018 1:46 SA

rất chi tiết, thank bạn

0
Avatar
đã bình luận cho bài viết
thg 7 6, 2018 7:23 CH
0
thg 7 6, 2018 4:37 CH

bạn dùng ide gì để code mà đẹp vậy

0
thg 7 6, 2018 2:03 CH

nice 😄

0
thg 7 6, 2018 1:21 CH

PHP docs: https://secure.php.net/manual/en/language.oop5.traits.php#language.oop5.traits.precedence

An inherited member from a base class is overridden by a member inserted by a Trait. The precedence order is that members from the current class override Trait methods, which in turn override inherited methods.

=> Thứ tự ưu tiên sẽ là: method của class hiện tại > (override) method của Trait > method từ class cha

Bạn có thể hình dung là khi class sử dụng 1 trait thì khi chạy, PHP sẽ copy nội dung của trait vào class, nếu có 2 method trùng tên thì nó sẽ giữ lại method của class và không copy method đó của trait vào nữa. Trường hợp không có method nào trùng tên thì PHP sẽ copy tất cả nội dung của trait vào, trở thành một phần của class và tất nhiên nó sẽ override lại các method của lớp cha.

+3
thg 7 6, 2018 11:22 SA

hay

+1
Avatar
đã bình luận cho bài viết
thg 7 6, 2018 10:51 SA

không dịch à b

0

Hình như việc ảnh hưởng SEO ko còn nữa do đã được render ra html trước khi trả về client rồi thì phải

0
thg 7 6, 2018 9:42 SA

updated bạn nhé

0
thg 7 6, 2018 9:27 SA

chị chăm quá ❤️

+1
thg 7 6, 2018 9:07 SA
+2
thg 7 6, 2018 8:13 SA

Vậy làm sao để xóa

0
Avatar
đã bình luận cho bài viết
thg 7 6, 2018 8:05 SA

Hay quá, cảm ơn bạn nhiều

+1
thg 7 6, 2018 8:02 SA

@huusu1996 thì ý là nó vẫn cho override thôi, kiểu cố để sửa thì ai quản lý được đâu em (khoc)

+1

@buihieubthc2rb Em nghĩ không ai overide trong Trait cả. Việc sinh ra thằng Trait để tránh kế thừa phức tạp nhiều tầng lớp trong những ngôn ngữ đơn kế thừa (như PHP) thôi.

+1
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí