Rdzeń WP, wiele wtyczek WP i same standardy kodowania WP wykorzystują bardzo „hojną aplikację” tego Spaceznaku (nie dla wcięcia, ale „wewnątrz” części i nawiasów). Wydaje się, że jest to unikalne dla Wordpress - ten styl / filozofia nie wydaje się być obecny w innych podobnych projektach, PHP lub w inny sposób.
Aby uzyskać więcej informacji na temat tego podejścia, zobacz: https://make.wordpress.org/core/handbook/coding-standards/php/#space-usage
Przykład: foreach ( (array) $foo as $bar ) { ...
Mam na myśli spację po foreach, po pierwszej (
i przed finałem )
(i inne podobne spacje pokazane w „Wykorzystaniu przestrzeni” pod linkiem powyżej).
Ten styl wydaje mi się niepotrzebny - wymaga więcej pisania i (opinia) utrudnia wizualną analizę kodu. (/ Opinia)
Pragnę nie dyskutować, czy ten styl jest dobrym pomysłem. Chcę po prostu zrozumieć motywy, dla których jest to zalecany styl. Nawet komentatorzy standardów kodowania WP są ciekawi:
Odpowiedzi udzielone na pytanie MK Safi są zasadniczo:
- Dla czytelności
- Status quo (aka „Tak po prostu jest”)
Moje rozumowanie polega na tym, że osobiście nie widzę dużej wartości w przyjmowaniu standardów kodowania WP (dotyczących „wykorzystania przestrzeni”) w naszych projektach wewnętrznych. Jestem jednak ciekawy, czy coś mi umknęło.
Czy są jakieś powody poza dwoma wymienionymi powyżej, pozornie ważne lub nie, aby stosować styl Wordpressa „Wykorzystanie przestrzeni”?
źródło
Odpowiedzi:
Rezonowanie
Odnośnie „białych znaków” (bez względu na to, czy tabulatory czy spacje): To po prostu osobiste preferencje, które utknęły w projekcie.
Standardy kodowania WP imo to bałagan i można je zignorować - pod warunkiem, że nie przyczyniasz się do rdzenia, który jest
Alternatywy
Lepiej trzymaj się standardów PSR (mianowicie: 2) lub rzeczy takich jak standardy Symfony (lub po prostu własne).
Wzrost wydajności i narzędzia
Nie ma zysku, który zyskujesz dzięki standardowi kodowania (oprócz posiadania jednego do dzielenia się i mniejszości, która go nienawidzi, podczas gdy reszta go dyktuje) lub posiadania większej lub mniejszej liczby tabulatorów lub spacji. Jeśli martwisz się niepotrzebnym miejscem na dysku lub może wolniejszymi programami, możesz nadal kompresować kod (zobacz projekt GitPHPHooks ) podczas zatwierdzania. Korzyść zyskasz będzie około max 5% od pierwotnego obszaru plików, prawie równe co do składni HTML kompresji / minifikacji daje. W tym celu dostępne są narzędzia minode dla Node.js.
To, co osobiście naprawdę mi się przydało, to PHP Linter i _PHP Mess Detector. Włączyłem oba do Biblioteki GitPHPHooks, więc nie muszę się o nią martwić ani myśleć.
źródło
Odstępy po kropkach są normalne, na przykład
$baz . '-5'
ten styl jest używany w wielu standardach kodowania dla operatorów (y + z
).Ma to na celu poprawę czytelności, na przykład jedna z nich jest bardziej czytelna niż druga.
Staje się to jeszcze bardziej oczywiste, gdy otoczony jest innym „kodem”.
Jeśli chodzi o spacje wokół nawiasów,
( 1, 2, 3 )
nie mam pojęcia, myślę, że argumentem jest również czytelność.Może to być mylące, ponieważ same standardy WordPress zawierają przykłady z nawiasami w komentarzach, które nie mają spacji, a sama baza kodu jest myląca z niektórymi częściami zawierającymi spacje, a inne nie (patrz zrzut ekranu poniżej), nawet w obrębie tej samej funkcji.
Większość standardów PHP robi coś wręcz przeciwnego. Nawiasy powinny zawierać treść. W rzeczywistości większość standardów kodowania dla innych języków zapisuje to w następujący
(1, 2, 3)
sposób : więc tajemnicą jest, dlaczego WP robi to w ten sposób.Oto przykład do porównania z funkcją WordPress.
Większa wersja do porównania: http://i.imgur.com/nTEbV7v.jpg
Wolę ten po prawej, szczególnie gdy patrzę na pełny ekran kodu, ale jest to osobista preferencja.
źródło
.
Rozstaw sens dla mnie, jak.
jest naprawdę tylko operator binarny, podobnie jak+
albo-
. Twoje przemyślenia na temat nawiasów „ściskających” ich treść są właśnie powodem, dla którego zadałem to pytanie. To zachowanie, wraz z jeszcze dziwniejszymi regułami, takimi jak te dla nawiasów kwadratowych (WP mówi, aby używać$foo['bar']
i$foo[ $bar ]
), właśnie dlatego zadałem to pytanie. :)