Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> narzędzie sprawdzające zgodność z konwencjami, camelCase vs snake_case, phpDoc itp.
MatKus
post 29.10.2013, 18:03:44
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 3
Dołączył: 27.08.2008

Ostrzeżenie: (0%)
-----


Witam

Przymierzam się do większego projektu i chcę wszystko wreszcie zrobić porządnie. Jako, że nie będe nad projektem sam pracował (na razie będzie nas 5, a później się okaże), postanowiliśmy uzgodnić pewne zasady co do stylu pisania. Problem tylko w tym, żeby tych zasad przestrzegać.
Szukam więc narzędzia, które mi będzie wytykało błędy, które nie są błędami w rozumieniu samego PHP, a tylko w rozumieniu ładnego kodu.

oczywiście każde sensowne IDE ma układanie kodu, które porobi ładnie wcięcia itp. ale chcę czegoś więcej.

Przykładowo, przyjęliśmy, że będziemy stosować snake_case. Narzędzie powinno więc wyłapać wszelkie wystąpienia CamelCase.
Narzędzie powinno także podpowiedzieć, że funkcja x nie ma opisu zgodnego z PHPDoc.
Chcemy też wystrzegać się zmiennych, których nazwy nic nie mówią, więc fajnie by było, gdyby narzędzie sprawdzało długość nazw zmiennych i raportowało zapisy, jakie widzę niekiedy typu
foreach ($tablica as $a=>$b)
{
foreach($b as $c=>$d) ...................
}
itd. bo zrozumienie potem, co się w takim miejscu dzieje graniczy z cudem.

Idealnie by było, gdyby narzędzie sprawdzało jeszcze, czy używane nazwy są w słowniku i np. czepiało się zmiennej $xxxxx, ale nie zmiennej $something, (chociaż pewnie tu już chyba za wiele wymagam)

Znalazłem takie coś jak PHP_CodeSniffer, ale tutaj trzeba sporo czasu poświęcić na popisanie samodzielnie skryptów rozpoznających konkretne reguły, więc może ktoś zna coś podobnego, tylko gdzie można by sobie wyklikać to wszystko lub poustawiać w jakimś prostym do zrozumienia pliku konfiguracyjnym?

Zaznaczam, że jestem skłonny zapłacić nawet za takie narzędzie, o ile nie będą to ceny liczone w tysiącach dolarów i o ile będzie wersja demo, która mnie przekona.

Ten post edytował MatKus 29.10.2013, 19:13:22
Go to the top of the page
+Quote Post
com
post 29.10.2013, 21:43:25
Post #2





Grupa: Zarejestrowani
Postów: 3 033
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


może nie na temat ale skoro już mowa o standardach to zastanawia mnie czym kierowaliście wybór snake_case?? zapewne o standardach psr-0,1,2,3 nie słyszeliście to być może przyda się lektura https://github.com/php-fig/fig-standards/tr...master/accepted wink.gif

Może się przyda: http://leehblue.com/camelcase-to-snake_case/ biggrin.gif
Go to the top of the page
+Quote Post
lipek3
post 29.10.2013, 21:59:10
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 4
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


Witam,

Wg mnie powinieneś skonfigurować sobie takie narzędzie jak sonarsource z pluginem do php.
Żeby to zautomatyzować jest to dobrze konfigurować z Jenkinsem, ale nie jest to konieczne do działania jeśli wolisz odpalać analizę kodu ręcznie
Go to the top of the page
+Quote Post
MatKus
post 30.10.2013, 13:42:44
Post #4





Grupa: Zarejestrowani
Postów: 63
Pomógł: 3
Dołączył: 27.08.2008

Ostrzeżenie: (0%)
-----


Cytat(com @ 29.10.2013, 21:43:25 ) *
może nie na temat ale skoro już mowa o standardach to zastanawia mnie czym kierowaliście wybór snake_case?? zapewne o standardach psr-0,1,2,3 nie słyszeliście to być może przyda się lektura https://github.com/php-fig/fig-standards/tr...master/accepted wink.gif

Może się przyda: http://leehblue.com/camelcase-to-snake_case/ biggrin.gif

snake_case wybraliśmy, ponieważ z 12 pracowników firmy 9 woli snake_case jako czytelniejszy, 2 to wisi, co wybierzemy, a tylko 1 woli camelCase. Po prostu jest to czytelniejsze naszym zdaniem i tyle.
Go to the top of the page
+Quote Post
rocktech.pl
post 30.10.2013, 14:02:54
Post #5





Grupa: Zarejestrowani
Postów: 587
Pomógł: 131
Dołączył: 8.02.2010

Ostrzeżenie: (0%)
-----


Witam.

Instalujesz PHPCS, PHPMD, PHPLOC, PHPCPD.

Następnie instalujesz jedną wtyczkę do NetBeansa phpcsmd która po odpowiednim skonfigurowaniu podświetli ci linie które odbiegają od standardu z upierdliwością na poziomie "SpaceInEmptyArray".
Mówisz, że ciężko ustawić reguły dla PHPCS. No cóż zachciało się wymyślać standardy to trzeba się napracować smile.gif

Oczywiście możesz to zrobić inaczej np. Phing klika targetów dla każdego z polceń (phpcd, phpmd) i żmudna analiza plików wynikowych ...


--------------------
Despite the tons of examples and docs, mod_rewrite is voodoo. Damned cool voodoo, but still voodoo. --Brian Moore

I never go looking for a sucker. I look for a Champion and make a sucker of of him. --Amarillo Slim


Home-made : js-gui-classes | Accordion | Tabs | Carousel / php-sms-classes | Obsługa bramki SMS MultiInfo | Obsługa bramki SMS Mobiltek
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.04.2024 - 02:18