Tại sao mã Wordpress lại không gian vui vẻ như vậy?


22

Lõi WP, nhiều plugin WP và bản thân các tiêu chuẩn mã hóa WP sử dụng một "ứng dụng hào phóng" của Spaceký tự (không phải để thụt lề, mà là "bên trong" các dấu ngoặc và dấu ngoặc). Điều này dường như là duy nhất đối với Wordpress - phong cách / triết lý này dường như không có trong các dự án tương tự khác, PHP hay nói cách khác.

Để biết thêm thông tin về phương pháp này, hãy xem: https://make.wordpress.org/core/handbook/coding-stiterias/php/#space-usage

Thí dụ: foreach ( (array) $foo as $bar ) { ...

Tôi đang đề cập đến không gian sau khi tìm kiếm, sau lần đầu tiên (và trước trận chung kết )(và các không gian tương tự khác được hiển thị trong "Sử dụng không gian" tại liên kết ở trên).

Phong cách này có vẻ không cần thiết đối với tôi - nó đòi hỏi phải gõ nhiều hơn và (ý kiến) làm cho việc phân tích mã trực quan trở nên khó khăn hơn. (/ Ý kiến)

Mong muốn của tôi là không tranh luận liệu phong cách này có phải là một ý tưởng tốt hay không. Thay vào đó, tôi chỉ đơn giản muốn hiểu động cơ tại sao đây là phong cách được đề xuất. Ngay cả những người bình luận về các tiêu chuẩn mã hóa WP cũng tò mò:

nhập mô tả hình ảnh ở đây

Các câu trả lời cho câu hỏi của MK Safi về cơ bản là:

  1. Để dễ đọc
  2. Hiện trạng (hay còn gọi là "Đó là như vậy")

Lý do của tôi để hỏi là cá nhân tôi không thấy nhiều giá trị khi áp dụng các tiêu chuẩn mã hóa WP (liên quan đến "Sử dụng không gian") trong các dự án chỉ nội bộ của chúng tôi. Tuy nhiên, tôi tò mò nếu tôi thiếu một cái gì đó.

Có bất kỳ lý do nào ngoài hai lý do được liệt kê ở trên, có vẻ hợp lệ hay không, theo phong cách "Sử dụng không gian" của Wordpress?


2
Bạn có thể làm những gì bạn thích trên các dự án nội bộ của bạn, miễn là bạn nhất quán. Là một lưu ý phụ, chúng tôi sử dụng các tab thay vì dấu cách, do đó, chúng tôi có thể yêu cầu nhập ít hơn, không phải vấn đề này nếu bạn có một IDE hiện đại thực hiện tất cả các định dạng cho bạn và có thể định dạng lại các kiểu khác nhau cho bạn (ví dụ như cao siêu với các gói, PHPStorm, v.v.)
Tom J Nowell

Cảm ơn bình luận của bạn, @TomJNowell! Tôi nghĩ có lẽ tôi đã thông tin sai trong "câu hỏi" của mình - Tôi hỏi ít hơn về các tab / khoảng trắng để thụt lề và nhiều hơn về các quy tắc được đề cập trong "Sử dụng không gian" tại make.wordpress.org/core/handbook/coding-stiterias/php / Lọ . Xin lỗi tôi đã không rõ ràng hơn!
rinogo

5
Nó dễ đọc hơn khi bạn không đánh dấu cú pháp. Đó là ít nhất tại sao tôi sử dụng phong cách đó trong các dự án nội bộ. Tôi phải chỉnh sửa PHP thường xuyên trong một bảng điều khiển đơn giản với vi trong một cấu hình tối thiểu.
fuxia

2
FWIW, MediaWiki có một quy ước kiểu rất giống nhau và thực sự khá nghiêm ngặt trong việc thực thi nó (ít nhất là trong cốt lõi). Họ thậm chí có một kịch bản để tự động thêm không gian bị thiếu. Tất cả những gì tôi có thể nói là người ta đã quen với nó, sau một thời gian.
Ilmari Karonen

1
@rinogo Tôi biết, bình luận đôi khi chỉ là bình luận chứ không phải câu trả lời :)
Tom J Nowell

Câu trả lời:


13

Thay đổi kích thước

Về "khoảng trắng" (không có vấn đề gì nếu các tab hoặc khoảng trắng): Đó đơn giản là một sở thích cá nhân bị mắc kẹt với dự án.

Các tiêu chuẩn mã hóa WP imo là một mớ hỗn độn và có thể bị bỏ qua - miễn là bạn không đóng góp cho cốt lõi, đó là

  • một câu chuyện khác nhau và
  • hướng dẫn phong cách được bỏ qua ở đó là tốt.

"[...] Nó không được áp dụng hàng loạt cho mã cũ vì nó làm cho lịch sử svn / git rất khó sử dụng. Chính sách chính thức là mã mới phải tuân theo hướng dẫn kiểu, nhưng nếu bạn định dạng chính xác mã liền kề vậy thì cũng được, nhưng các bản vá chỉ định dạng mã hoặc cam kết chỉ mã định dạng bị cấm. "

- @TomJNowell trong các bình luận

Lựa chọn thay thế

Bạn nên gắn bó với các tiêu chuẩn PSR (cụ thể là: 2) hoặc những thứ như tiêu chuẩn Symfony (hoặc chỉ của riêng bạn).

Tăng hiệu suất & công cụ

Bạn không có lợi nhuận gì khi có một tiêu chuẩn mã hóa (ngoài việc có một để chia sẻ và thiểu số ghét nó, trong khi phần còn lại chỉ ra điều đó) hoặc từ việc có nhiều hoặc ít hơn các tab hoặc khoảng trắng. Trong trường hợp bạn lo lắng về không gian đĩa không cần thiết được sử dụng hoặc có thể các chương trình chậm hơn, bạn vẫn có thể nén mã của mình (xem dự án GitPHPHooks ) trên cam kết. Lợi ích bạn sẽ đạt được sẽ vào khoảng 5% tối đa từ không gian tệp gốc, gần bằng với mức nén / rút gọn cú pháp HTML mang lại cho bạn. Có các công cụ rút gọn Node.js có sẵn thông qua npm cho điều đó.

Những gì cá nhân tôi thực sự thấy hữu ích là PHP Linter và _PHP Mess dò. Tôi đã kết hợp cả hai vào Thư viện GitPHPHooks để tôi không phải suy nghĩ hay quan tâm đến việc chạy nó.


Hướng dẫn kiểu không bị bỏ qua cho Core, nhưng nó không được áp dụng hàng loạt cho mã cũ vì nó làm cho lịch sử svn / git rất khó sử dụng. Chính sách chính thức là mã mới phải tuân theo hướng dẫn kiểu, nhưng nếu bạn tình cờ định dạng mã liền kề một cách chính xác thì cũng vậy, nhưng các bản vá chỉ định dạng mã hoặc cam kết chỉ cấm mã định dạng
Tom J Nowell

@TomJNowell Và do đó làm cho hướng dẫn phong cách trở nên vô dụng :) Dù sao, xin vui lòng gửi một chỉnh sửa và thêm nó vào câu trả lời. Đó là thông tin đáng chú ý.
kaiser

Tôi nghĩ rằng tôi đã không rõ ràng lắm trong câu hỏi của mình - Tôi ít đề cập đến các tab so với khoảng trắng và nhiều hơn về "Sử dụng không gian" tại make.wordpress.org/core/handbook/coding-stiterias/php/ . Tôi sẽ chỉnh sửa câu hỏi để rõ ràng hơn.
rinogo

1
@rinogo Tôi đã có bạn ngay lần đầu tiên, do đó là đoạn đầu tiên. Btw, tôi xem xét điều này cũng dễ đọc hơn.
kaiser

7

Dấu cách sau dấu chấm là bình thường, chẳng hạn như $baz . '-5', kiểu này được sử dụng trong nhiều tiêu chuẩn mã hóa cho toán tử ( y + z).

Điều này được thực hiện để cải thiện khả năng đọc, ví dụ một trong số này dễ đọc hơn cái kia.

$cow.$dog.$cat.$table.$chocolate.$puddle.$iterator.$stuctureone.$stucturetwo

$cow . $dog . $cat . $table . $chocolate . $puddle . $iterator . $stuctureone . $stucturetwo

Điều này càng trở nên rõ ràng hơn khi được bao quanh với "mã" khác.

Đối với không gian xung quanh dấu ngoặc đơn ( 1, 2, 3 )tôi không có ý tưởng, tôi đoán rằng đối số là dễ đọc.

Có thể gây nhầm lẫn vì bản thân các tiêu chuẩn WordPress có ví dụ với dấu ngoặc đơn trong các nhận xét không có khoảng trắng và bản thân cơ sở mã gây nhầm lẫn với một số phần có khoảng trắng và các phần khác không (xem ảnh chụp màn hình bên dưới) ngay cả trong cùng chức năng.

Hầu hết các tiêu chuẩn PHP thực sự làm ngược lại một lời kêu gọi .. dấu ngoặc đơn nên ôm nội dung của chúng. Trong thực tế, hầu hết các tiêu chuẩn mã hóa cho các ngôn ngữ khác đều viết như sau: (1, 2, 3)vì vậy có một chút bí ẩn tại sao WP lại làm theo cách này.

Dưới đây là một ví dụ để so sánh từ một chức năng WordPress.

nhập mô tả hình ảnh ở đây

Phiên bản lớn hơn để so sánh: http://i.imgur.com/nTEbV7v.jpg

Tôi thích cái bên phải nhất là khi nhìn vào toàn màn hình mã, nhưng đó là một sở thích cá nhân.


cảm ơn câu trả lời của bạn! Các .khoảng cách có ý nghĩa với tôi, như .thực sự chỉ là một nhà điều hành nhị phân, giống như +hay -. Suy nghĩ của bạn về dấu ngoặc đơn "ôm" nội dung của chúng chính xác là lý do tại sao tôi hỏi câu hỏi này. Hành vi này, cùng với các quy tắc thậm chí kỳ lạ hơn như các quy tắc cho dấu ngoặc vuông (WP nói để sử dụng $foo['bar']$foo[ $bar ]) chính xác là lý do tại sao tôi hỏi câu hỏi này. :)
rinogo
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.