Tiêu chuẩn mã hóa Magento


40

Gần đây tôi đã bắt đầu làm việc rộng rãi với Magentosniffer Code , và tôi muốn biết tôi nên tuân theo những tiêu chuẩn nào.

Tôi đã thử các tiêu chuẩn mã hóa Zend , nhưng tôi không muốn sử dụng giới hạn 80 dòng và nó cũng không được sử dụng trong lõi.

Sau đó, tôi đã thử các tiêu chuẩn CS2 , nhưng điều đó cũng không hoạt động vì _trong các chức năng khác nhau và tên lớp, có một _trong chúng và không có không gian tên.

Vì vậy, có một tiêu chuẩn khác mà mã lõi tuân thủ 100% không? Nếu không, không nên magento có tiêu chuẩn mã hóa riêng? Nó có trang web stackexchange của riêng mình, một số tiêu chuẩn mã hóa được xác định rõ sẽ được chào đón để được sử dụng bởi các nhà phát triển mở rộng.

Câu trả lời:



18

Thực hành tốt nhất Magento là khá tốt được mô tả bởi Josh Pratt ở đây . Anh ấy đề nghị chấp nhận và tuân theo Tiêu chuẩn Phong cách Mã Zend và tôi chỉ có thể tham gia cùng anh ấy.

Độ dài dòng tối đa không phải là một yêu cầu nghiêm ngặt. Tuy nhiên, từ quan điểm dễ đọc, các dòng quá dài không được khuyến khích.


2
Cảm ơn, tôi đã chuyển đổi quy tắc quy tắc thành 120 ký tự được phép trên mỗi dòng để tôi không gặp phải các lỗi đáng tiếc trong IDE của mình :)
Vlad Preda

1
Dưới đây là các quy tắc từ Magento 2: raw.github.com/magento/magento2/master/dev/tests/static/ trên . Có điều là rất có khả năng họ sử dụng chúng trên Magento 1.x.
Bob Brodie

1
Tim, bạn có nghĩ rằng chúng ta nên sử dụng mã đánh hơi Magento không? magento.stackexchange.com/a/8743/41
kalenjordan

1
@BobBrodie - Tôi đang quản lý Magento 1.x và tôi không biết những thay đổi như vậy đến với Magento 1.x. Đây sẽ là một thay đổi lớn và không cần thiết, dẫn đến sự khác biệt lớn mà không có lý do. Tiêu chuẩn mã hóa Magento 1 là ZF +, Magento 2 là PSR-1/2. Vui lòng xem câu trả lời của Zyava cho sniffer "chính thức".
Piotr Kaminski

12

Dưới đây là tiêu chuẩn mã hóa thị trường Magento mới nhất cho Magento1Magento2

MEQP2 cho Magento2

MEQP1 cho Magento1

https://github.com/magento/marketplace-eqp


1
Làm điều này như là câu trả lời được chấp nhận vì đây là các tiêu chuẩn mã hóa chính thức. Cảm ơn @QaisarSatti
Vlad Preda

11

Tôi muốn gửi rằng chúng ta nên sử dụng mã đánh dấu Magento 2 làm tiêu chuẩn cho cả Magento 1.X và 2.X: https://github.com/cobhimelf/phpcs-magento-rules/blob/master/ quy tắc

Và đây thực chất là một tấm gương của bộ quy tắc đó như một kho lưu trữ độc lập: https://github.com/cobhimelf/phpcs-magento-rules


1
Cá nhân tôi sử dụng: github.com/magento-ecg/coding-st
Chuẩn

2
Ah gọi tốt. Tôi nghĩ rằng liên kết tôi đã đăng được tham chiếu trong một cuộc thảo luận về github Magento 2 ... có ý tưởng nào nếu / cách bạn đăng khác nhau không? Đó chắc chắn là một tài khoản github có thẩm quyền hơn.
kalenjordan

2

Bài đăng này hơi cũ (2008) nhưng tôi đoán rằng nó vẫn còn hiệu lực:

Magento có tuân theo các tiêu chuẩn mã hóa ZF không? Đúng

Với một vài ngoại lệ, chẳng hạn như:

  • thẻ mở ngắn được cho phép trong các mẫu.
  • chấm nối không được đặt trong không gian.
  • thụt lề cho các dòng dài kết thúc cứng nên luôn luôn là một tab mềm về phía trước.

Chỉnh sửa Vì Tim worte trong nhận xét không có thẻ mở ngắn trong các mẫu lõi Magento và tốt nhất không nên sử dụng chúng vì dù sao chúng không được đề xuất (xem tại đây ).

Nhưng lời khuyên của tôi cho bạn ... Vì bạn đang viết mô-đun của riêng bạn, hãy sử dụng kiểu mã hóa của riêng bạn. Từ kinh nghiệm của tôi, bạn sẽ ít mắc lỗi hơn khi viết mã theo phong cách của riêng bạn, mà bạn quen thuộc, hơn là nếu bạn theo phong cách mã hóa Magento một ngày và ví dụ như phong cách mã hóa Wordpress tiếp theo chỉ vì bạn đang viết một mô-đun cho một dự án trang web khác .


2
Tôi hoàn toàn không đồng ý. Mở rộng cộng đồng phải có thể đọc được cho những người khác.
dùng487772

2
Và tôi chưa bao giờ thấy các thẻ mở ngắn trong Magento.
dùng487772

1
Điểm của ý kiến. Vì tôi đã có một vài năm kinh nghiệm lập trình cho các dự án khác nhau bằng các ngôn ngữ lập trình khác nhau cùng một lúc, tôi chưa bao giờ gặp vấn đề khi đọc mã có cấu trúc tốt, bất kể phong cách mã hóa là gì khi chuyển đổi một cách ngẫu nhiên giữa các dự án và việc viết mã sẽ có ích hơn rất nhiều khi có cùng một kiểu trên mã của riêng bạn so với việc giữ cho khả năng tương thích kiểu mã hóa với những người khác bên ngoài nhóm của bạn.
Domen Vrankar

@DomenVrankar không cho rằng phong cách mã của bạn có cấu trúc tốt và cũng có thể đọc được ý kiến? Trong khi đó, các đội đứng sau Zend có nhiều người đưa ra quyết định về phong cách và được biết đến trên toàn thế giới. Chỉ là thức ăn cho suy nghĩ ...
Tom Burman

Tôi cũng không đồng ý.
sv3n
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.