pecet jogger

cokolwiek o czymkolwiek

Konwencja jakaś? W PHP?

15/08/2007, 15:15:49 | 3 komentarze | Programowanie

Lubię PHP jako język programownia, jednak nie lubię w nim konwencji zapisu nazw funkcji bibliotecznych. Dlaczego jest urlencode i htmlspecialchars, ale także file_get_contents i preg_match_all?
Dlaczego raz do oddzielania poszczególnych członów nazwy funkcji używają "_", a raz nie używają niczego pisząc je łącznie? Niby małe coś, ale trudno mi się jest przyzwyczaić że nawet jeśli pamiętam nazwę funkcji to nie pamiętam czym jest pooddzielana...

Podobnie dziwnie jest z funkcjami print albo echo, które jako jedyne nie wymagają użycia nawiasów w ich składni, co jednak jest już wytłumaczone w manualu php:

print() is not actually a real function (it is a language construct) so you are not required to use parentheses with its argument list.

Paweł Ciupak. (#) 15/08/2007 - 15:49:57

Mnie pewnego czasu wkurzało, że 'stripslashes' się pisze bez, bo zwykle pisałem 'strip_slashes' ;).

Michał Górny (#) 15/08/2007 - 16:00:05

Można tu zastosować konwencję z któregoś opisu Joggera. PHP to język „pisany przez dzieci […] którym przydałoby się trochę więcej nadzoru ze strony dorosłych”. Innymi słowymi, zabrakło jakiegoś project managera, który by ustalił i wymusił konwencje.

Inna sprawa, że z pewnością ma to również związek z „rozwojem” języka. Kiedyś było napisane tak, potem dopisali inaczej… i zamiast poprawić stary kod, to dokładają tylko nowy i nowy… Potem wychodzi taki potworek.

mwi (#) 15/08/2007 - 16:44:31

Michał Górny: w Pythonie jest podobna sytuacja. Biblioteka standardowa jest ogromna i nie wszystkie moduły były pisane z myślą o włączeniu do niej, więc ludzie pisali tak jak się przyzwyczaili i nie dało się tego kontrolować. Później włączano je do niej i rozszerzano, ale z zachowaniem spójności - i koło się zamknęło.

Dodaj komentarz