[PHP] OOP i ogólnie o ładnym kodzie

0

Ostatnio coraz bardziej doskwierają mi ograniczenia PHP, na niektóre staram się szukać rozwiązań - chciałbym poznać Waszą opinię na temat dwóch "hacków":

Pierwszy to kontrola typów przy wywoływaniu funkcji / metod. W PHP5 można sprawdzać tylko przekazywanie obiektów i tablic, o typach prostych niestety zapomniano (to raczej głównie przez sposób traktowania tych typów przez PHP). Znalazłem taki bardzo ciekawy hack: http://pl.php.net/manual/pl/language.oop5.typehinting.php#83442. Mam jednak wątpliwości, czy to nie jest przekombinowanie i "C++-izm"...

Drugi to różne konstruktory - przykładowo raz by się przydało utworzyć obiekt produktu przez podanie nazwy, producenta i ceny, a innym razem tylko przez podanie jego id w bazie, jeszcze do tego nie byłoby źle tworzyć go przez podanie nie przetworzonych danych z bazy w postaci tablicy... Machlojki w stylu __construct($typkonstruktora, $p1, $p2, $p3) mi się nie podobają, wybieranie wersji konstruktora na podstawie liczby parametrów (switch ($args)) też imho nie jest dobrym pomysłem. Jedyne wyjście, które mi przychodzi do głowy do dopisywanie klas dziedziczących, które będą redefiniować konstruktor (niestety w ten sposób utrudniam dziedziczenie po tych klasach)... Wątpliwości podobne jak w pierwszym przypadku.

I pytanie poza tematem: jak się w praktyce sprawuje Java użyta zamiast PHP? Głównie boję się o mułowatość i skalowalność. Czy dla relatywnie popularnego serwisu Java będzie dużo bardziej obciążać serwer niż PHP?

0

A skąd niby pomysł, że Java bardziej obciąża serwer ? Do dużych serwisów bardziej nadaje się Java właśnie ze względu na wydajność i skalowalność.

0

kontrola typow w phpcu po prostu ssie :P ja wole uzywac klas bazowych i interfejsow i przy podawaniu parametrow zawsze mozna sprawdzic czy jak potrzebuje danego obiektu to jest on wlasciwy (instanceof), co do typow prostych to hmm, bez przesady php jest i bedzie skryptowe wiec sprawdzanie wszystkich mozliwosci jest raczej bez sensu :P

1 użytkowników online, w tym zalogowanych: 0, gości: 1