Czy w PHP są potrzebne frameworki? [Zamknięte]

9

Czy frameworki są naprawdę potrzebne w PHP?

Jakie są zalety i wady korzystania z nich?

Tayyab Gulsher Vohra
źródło
2
Niedawno natknąłem się na ten post SO, który wygląda dość wnikliwie, jeśli chodzi o użycie PHP bez frameworka stackoverflow.com/questions/3655145/…
Matt Molnar

Odpowiedzi:

17

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.

Tim
źródło
1
ale problem polega na tym, że z dnia na dzień jest wiele frameworków, nie wiem, którego użyć
Tayyab Gulsher Vohra
4
@Tayyab Musisz ich używać!
Arnis Lapsa
1
Wybór frameworka zależy od potrzeb aplikacji i stylu kodowania. Zadaj też sobie pytanie, czy potrzebujesz frameworka do uruchomienia własnej aplikacji, czy CMS (Joomla, Drupal itp.)?
Darren Newton
2
Musisz uważać na „nieznane niewiadome”. Jeśli nie używasz frameworka, ryzyko zapomnienia lub niewiedzy o niektórych rozwiązaniach frameworka jest dla Ciebie duże. Na przykład, czy właściwie masz do czynienia z zapobieganiem atakom CSRF? Twoja aplikacja będzie działać bez takiego zapobiegania, ale łatwo ją zhakujesz. Wybór głównego frameworka (dowolnego z nich) oznacza, że ​​korzystasz ze wszystkich rzeczy, którymi muszą się zajmować aplikacje internetowe, nawet jeśli jeszcze się o tym nie dowiedziałeś.
Joeri Sebrechts
9

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:

wprowadź opis zdjęcia tutaj

Jake McGraw
źródło
7

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

vartec
źródło
no cóż, jestem biginnerem i próbuję napisać kod, jestem nowy i chcę być głównym programistą php, więc proszę, zasugerujcie mi
Tayyab Gulsher Vohra
3
Ten artykuł pochodzi z 2006 roku i jest zawstydzająco nieaktualny.
Jonathan Rich
1
@JathanathanRich: ten artykuł może nawet być nieaktualny, ale wciąż zawstydzająco interesujący!
4

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.

guiman
źródło
1
no cóż, jestem początkującym w php i nie opracowałem jeszcze niczego wielkiego i jestem zdezorientowany, z czego korzystać i które powinienem wybrać, naprawdę jestem całkowicie pusty
Tayyab Gulsher Vohra
Pierwszym krokiem byłoby ich nie używać, uczyć się technologii i sposobu ich działania (php, framework, js, css itp.), A następnie, gdy zrozumiesz podstawy programowania php, następnie użyj frameworku takiego jak Zend lub Symfony lub CakePHP, aby się uczyć jak zwiększyć swoje aplikacje
guiman
2

Ż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ł.

chrześcijanin
źródło
chcę wam powiedzieć coś, że tak naprawdę używam 2 frameworków, jeden to koder, a drugi to yii i chcę zostać głównym programistą, ale moje koncepcje OOP nie są tak dobre, prawda jest taka.
Tayyab Gulsher Vohra
Jak odróżnić instrukcję „UPDATE” od „INSERT” w metodzie $ p-> save ()?
Srisa,
@Srisa - Nie ustawiłem identyfikatora. Aby wykonać AKTUALIZACJĘ, potrzebuję: $p=new Product($the_id); $p->load();Jest load()to scalanie wierszy, a nie zastępowanie całego wiersza.
Christian
2

Nie wszystkie aplikacje wymagają frameworka, ale większość z nich wymaga.

Zalety to:

  • Nie powtarzaj się - każda nowa aplikacja będzie mieć funkcjonalność wspólną z wieloma istniejącymi aplikacjami. Sensowne jest unikanie powtarzania się. Pakiet oferuje funkcjonalność dla większości aplikacji. Dzięki temu zaoszczędzisz czas (i pieniądze).
  • Nie męcz się - Tworzenie oprogramowania może być bardzo bolesne. Sensowne jest zautomatyzowanie przyziemnych rzeczy. Ramy zajmują się hydrauliką, dzięki czemu możesz skoncentrować się na głębokiej kreatywności. Dzięki temu zaoszczędzisz wysiłek (i pieniądze).

Wady to:

  • Nasza droga lub żadna droga - być może będziesz musiał przestrzegać sztywnych konwencji ramowych, które mogą naruszać twoje dogmatyczne przekonania o tym, jak należy to robić (iw konsekwencji rozwścieczyć).
  • Zespół nabytego frameworka - Możesz stać się zbyt zależny od frameworka, aby wykonać nawet najprostsze rzeczy. Zapomnisz, jak kierować żądania, uzyskiwać dostęp do baz danych, mapować obiekty do zapytań do baz danych itp., Ponieważ środowisko to trzyma za rękę.

Podsumowując, lepiej użyć jednego.


źródło