Programowanie (PHP, Java...)

PHP i sprawdzanie typów.

11 grudnia, 2005 o 21:29:49 Dodaj komentarz Poziom: 0 Permalink

W PHP klasa nie ma plików nagłówkowych, a klasa musi być umieszczona w pliku wywołanym przez include/require.

Powoduje to trudności gdy chcę napisać klasę automatyzującą pewne czynności. Mam na przykład metodę statyczną isA($var, $type), która sprawdza czy $var jest $type lub wyrzucać odpowiedni wyjątek(w skrócie).

Testuje to za pomocą PHPUnit2. Sprawdzam czy $this jest MojaKlasaUnitCase. Okazuje się, że nie ma takiej klasy, gdyż klasa wyjątków jest require'owana przez ten plik więc jest przed definicją klasy. Z koleji gdyby to było na końcu to klasa wyjątków byłaby niezadeklarowana. Zadam prostę pytanie. Skoro python, java czy .net(mono lub dotgnu jeśli ktoś woli) jakoś to rozwiązują, a nawet C/C++ (pliki nagłówkowe), to dlaczego PHP nie może?

Komentarze do wpisu

Możesz śledzić odpowiedzi poprzez kanał RSS. Możesz dodać komentarz lub zostawić ślad (trackback) ze swojego bloga.

#

wb

Bo to jeden wielki, brzydki hack, który rozrósł się do niemalże ,,industry standard''. PHP po prostu nie jest dobrze zaprojektowane Planowali poprawić w PHP5, teraz planują poprawić w PHP6, a ja czekam aż ISP mojego pracodawcy będzie hostował pythona.

11 grudnia 2005, 21:34:12

#

uzytkownik

Ja ten projekt wykonuje na zajęciach, a prowadzący nie zna pythona.
Wydaje mi się, że jedno z dwojga - albo wyrzucamy 'preprocesor' - albo dodajemy coś na kształt plików nagłówkowych :)

Życzę krótkiego czekania.

11 grudnia 2005, 21:41:33

#

zgoda (jarek)

Zaraz, a czy nie jest tak, że w PHP jest tylko jedna przestrzeń nazw? To w metodzie setUp() trzeba zaimportować wszystko, co potrzebne, do tej głównej przestrzeni i spoko.

11 grudnia 2005, 22:09:36

#

uzytkownik

Nie jeśli zarówno X korzysta z Y jak Y z X ;)
Tutaj zaczynają się schody - Y musi być przyd X, a X przed Y :)

12 grudnia 2005, 07:12:02

Dodaj komentarz

Textile Lite włączony ( szczegółowy opis znaczników ):