Czy frameworki są naprawdę potrzebne w PHP?
Jakie są zalety i wady korzystania z nich?
Czy frameworki są naprawdę potrzebne w PHP?
Jakie są zalety i wady korzystania z nich?
Odpowiedzi:
Nie. Ale są mili.
Plusy : Oszczędza czas bez konieczności samodzielnego przebudowywania kodu. Skorzystaj z niezliczonych funkcji, funkcji i struktur danych opracowanych przez kogoś innego, które dotyczą Twojego projektu.
Minusy : samodzielne zbudowanie kodu może być stratą na lepszym poziomie zrozumienia, na podstawie którego działa Twój projekt.
Frameworki aplikacji internetowych są tak dobre, jak tylko z nimi korzystasz.
Każdy framework ma krzywą uczenia się, dopóki nie pokonasz tej krzywej, prawdopodobnie skończysz robić rzeczy tak odwrotnie, że negujesz wszystkie zalety korzystania z frameworka. Tworzenie aplikacji będzie niepotrzebnie powolne, kod będzie trudny do naśladowania, a całość się zepsuje, gdy zostanie wydana nowa wersja frameworka. Odradzałbym próbę użycia nieznanych ram (lub jakiejkolwiek nieznanej technologii) w przypadku projektów o napiętym terminie.
W jaki sposób można lepiej wykorzystać frameworki?
Musisz zbudować garść okropnych aplikacji i iterować. W końcu odkryjesz dziwactwa, a użycie frameworka pozwoli ci skrócić czas programowania i lepiej zorganizować kod.
Czy powinieneś używać frameworka PHP?
Każdy, kto koduje wystarczająco dużo PHP, ostatecznie korzysta z frameworka. Pytanie brzmi: czy użyjesz własnego frameworka lub takiego opracowanego przez stronę trzecią? Z mojego doświadczenia wynika, że prawdopodobnie nigdy nie opracujesz własnego frameworka, który będzie pasował do solidności i jakości frameworka innej firmy. To powiedziawszy, tworzenie własnego frameworka wydaje się prawem do przejścia w społeczności PHP, więc nie zniechęcaj mnie do pisania własnej klasy abstrakcji bazy danych.
Oto przydatny wykres:
Według Rasmus Lerdorfa nie potrzebujesz żadnych dodatkowych ram, ponieważ PHP sam jest ramą. http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html
Cóż, to naprawdę zależy od wielkości twojego projektu. Strona główna bez bazy danych i nie więcej niż 10 stron, ramy będą zbyt duże, głównie dlatego, że framewroki zawsze wymagają dużej konfiguracji i dostosowywania w większości przypadków, aby dopasować je do konkretnych potrzeb. W niektórych sytuacjach mogą one być nieco wolniejsze niż kilka stron zawartych w pliku (pomyśl o wszystkich ramach, które należy załadować, aby móc korzystać z jego funkcji).
Teraz, jeśli planujesz witrynę o średnich / dużych rozmiarach, z interakcjami z bazami danych, usługami internetowymi itp., Będziesz potrzebować frameworka, który pomoże Ci wchodzić w interakcje z różnymi technologiami i organizować kod w taki sposób, że gdy coś się zepsuje, będziesz mieć habilitie do szybkiego wykrycia i naprawy. Również, jeśli myślisz o klientach, zawsze zmieniają zdanie na temat oprogramowania, więc jeśli klient musi zmodyfikować lub dodać nową funkcję, nie musisz przechodzić przez cały kod i zastanawiać się, jak podłączyć tę nową funkcję do wszystkich ten sphagetti.
Istnieje wiele innych zalet i wad, ale są to te, które po raz pierwszy przyszło mi do głowy.
Edycja: Używam frameworka symfony w codziennych bazach, a także pracowałem z php na uniwersytecie (miałem kilka kursów na temat tworzenia stron internetowych, które nie pozwalają na użycie żadnego frameworka), więc większość z nich pochodzi z tego doświadczenia.
Żartujesz, prawda?
Konieczność zależy od zastosowania. Komputery nie są potrzebne ludzkości, ani samochody itp.
Jeśli chodzi o zalety / wady, każdy ma swoje!
Chciałbym pokazać przykładowy kod z mojego frameworka:
class Product extends DatabaseRow {
public $name='';
public $price=0.0;
public $images=array();
public $description='';
public table(){
return 'products';
}
}
$p=new Product();
$p->name='Bread';
$p->price=0.5;
$p->images=array('loaf1.jpg','bakery.jpg');
$p->description='Our premium diet bread.';
$p->save();
Widzisz co zrobiłem? Ta klasa służy jako model sklepu. Co jest takiego specjalnego poza OO? Jeśli tabela lub dowolna kolumna nie istnieje, jest tworzona dynamicznie. 0 skryptów instalacyjnych. Oczywiście jest to specyficzna funkcja w moim frameworku. Ale masz pomysł.
$p=new Product($the_id); $p->load();
Jest load()
to scalanie wierszy, a nie zastępowanie całego wiersza.
Nie wszystkie aplikacje wymagają frameworka, ale większość z nich wymaga.
Zalety to:
Wady to:
Podsumowując, lepiej użyć jednego.