[PHP] Cube - 4 czy 5?

0

Witam.

Mam następujący problem:
Zastanawiam się nad wyborem technologii - PHP 4 vs. PHP 5.

Od razu zaznaczam, że nie zastanawiam się, co jest lepsze, czy co sobie zainstalować na serwerze. W przypadku takiego dylematu nie miałbym wątpliwości: PHP 5.

Potrzebuję natomiast dokonać wyboru, czy swój projekt Cube (z założenia przeznaczony dla ludzi, których nie stać na wykupienie sobie serwera wirtualnego, a dla takich, którzy korzystają raczej z serwerów darmowych, ewentualnie usług hostingowych skierowanych do prywatnych klientów) pisać ze wsparciem dla PHP 4, czy też zdecydować się na PHP 5, korzystać z jego możliwości, jednocześnie ograniczając grupę potencjalnych odbiorców do tych, którzy posiadają hosting oferujący PHP 5.

Należałoby uwzględnić dwie kwestie:

  1. Rozwój projektu do stanu, w którym byłby atrakcyjny dla potencjalnego odbiorcy na pewno trochę zajmie, początek to z pewnością wersje raczej dla ludzi ciekawych rozwoju, nie zainteresowanych praktycznym wykorzystaniem Cube.
  2. Wciąż nawet duże firmy hostingowe, nie wspominając o niszowych dostawcach czy darmowych serwerach, mają opory (nie wiem skąd wynikające, szczerze powiedziawszy) jeśli chodzi o instalację PHP w wersji 5, mimo, iż jest to już od dawna wersja stabilna. Trudno powiedzieć, jak sytuacja będzie się dalej rozwijać.

Jako, że jest tu sporo osób zainteresowanych tym projektem, jeszcze więcej potencjalnych przyszłych użytkowników (generalnie Cube tworzony jest z myślą głównie o programistach), a ostatnio znalazłem trochę więcej czasu i wygrzebałem się ze starych zobowiązań, przy okazji zabierając się za pisanie Cube uznałem, że najlepiej byłoby spytać tutaj:

Najprościej ujmując: Gdybyś miał do wyboru dwie aplikacje spełniające Twoje wymagania, jeśli chodzi o funkcjonalność, wolałbyś (miał byś możliwość?) zainstalowania i używania aplikacji opartej o PHP 4 czy PHP 5?

0

Na ślepo wybrałbym PHP5. Z resztą ostatnio zauważyłem, że niektóre hostingowe serwisy (co prawda pomniejsze) migrowały właśnie do tej technologii (lub wspierają obydwie jednocześnie).

0

Ja ze wzgledow kompatybilnosci wybralbym php4 - wieksza grupa odbiorcow, OOP w php4 tez jest, jednakze bardziej zubozale. Ewentualnie w skrypcie mozna zdefiniowac jakis swoj sposob na wykonywanie niektorych funkcji bazujac na wersji php

if(version_compare(PHP_VERSION, '5.0.0', 'ge')){
  // kawalek kodu zoptymalizowany do php5
} else {
  // kawalek kodu wykonany w starszej wersji
}
0

To akurat niespecjalnie pomoże. Problemem są takie kwestie jak na przykład klasy abstrakcyjne, interfejsy itp. w głównej konstrukcji systemu modułów, więc trzeba się zdecydować na PHP 5 albo wykorzystywać pseudo-obiektowość PHP 4 i kombinować.

0

Interfejsy by się na pewno przydały jako wymuszenie pisania klas zgodnie z założeniami projektanta - tutaj się zgadzam. Równie dobrze można podejść trochę inaczej: pisać strukturalnie i odpowiednio nazywać:

funkcje:
mod_N_NF()
N - nazwa moda
NF- nazwa funkcji

zmienne wykorzystywane przez mody:
$mod_N_NZ

pliki:
mod_N.php

stworzyć funkcję sprawdzającą czy twórca moda stworzył podstawowe funkcje (function_exists), udostępnić twórcom modów jakieś funkcje walidujące dane z $_GET, $_POST, żeby sami nie musieli sprawdzać czy jakiś parametr jest typu numerycznego itd.

Oczywiście na klasach przyjemniej, czytelniej i bardziej profesjonalnie, aczkolwiek jeśli klient nie ma php5 to proste deklarowanie pól klasy ze słowami public/private/protected itd. już spowoduje parse error ... a tego byśmy nie chcieli, więc może jednak bardziej programowanie strukturalne bym proponował

0

Akurat programowanie stricte strukturalne odpada w przedbiegach - przy tej kategorii projektu nie doszlibyśmy do wersji 0.1 i przestalibyśmy być w stanie cokolwiek z tego zrozumieć.

Jeśli PHP 4, to też na pseudo-obiektowości i dziedziczeniu z klasy bazowej jako częściowe zapewnienie zgodności (przynajmniej na poziomie parsowania).

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