Jestem nowy w programowaniu internetowym i obecnie uczę się o PHP. Chciałbym wiedzieć, kiedy muszę użyć frameworka PHP, takiego jak CakePHP? Co oferuje mi ta i inne podobne frameworki PHP? I czy naprawdę ważne jest, aby używać ram, aby być profesjonalistą?
- Czy mogę stworzyć własną platformę, aby zapewnić funkcje, które mi się podobają?
php
frameworks
Goma
źródło
źródło
Odpowiedzi:
Kiedy czujesz się swobodnie z PHP, możesz zacząć korzystać z frameworka. I zawsze powinieneś ich używać:
Możesz stworzyć swój własny framework, ale zdecydowanie nie poleciłbym go. Jest to skomplikowane, istnieje już wiele dobrych ram i nie jest prawdopodobne, że znajdziesz brakującą funkcję. Poza tym często zapewniają sposoby dodawania do nich własnych funkcji, bez konieczności tworzenia zupełnie nowej.
źródło
Zbuduj kilka stron bez frameworka ... zasadniczo zaczniesz pisać własne frameworki metodą prób i błędów. Po wykonaniu tej czynności przejdź do frameworka i ciesz się ilością zaoszczędzonego czasu. Próba zbudowania własnego frameworka może nauczyć Cię pewnych rzeczy i pomoże ci docenić frameworki, które już istnieją.
Kiedy po raz pierwszy dostałem się do PHP, myślałem, że frameworki to skomplikowana strata czasu. Teraz używam CodeIgniter do nawet prostych projektów. Uruchomienie zajmuje około 1 minuty, a już masz mnóstwo wspaniałych bibliotek. I, jak wspomniano w poprzednim plakacie, większość ram jest rozszerzalna, więc zawsze możesz dodać dowolną funkcjonalność.
źródło
Jak powiedział Niphra , zacznij używać frameworka tylko wtedy, gdy możesz używać PHP bez frameworka (tzn. Uzyskać dostęp do bazy danych, wysyłać nagłówki i treść, przetwarzanie ciągów, manipulowanie danymi itp.). Jeśli chodzi o twoje pytania:
Kiedy muszę używać frameworka PHP, takiego jak CakePHP? Kiedy Twój projekt wykracza poza kilka plików PHP; moment, w którym zaczynasz silnie rozdzielać logikę na odrębne elementy i funkcjonalność modularyzacji / udostępniania (sesje itp.), to moment, w którym powinieneś użyć frameworka.
Co oferuje mi ta i inne podobne frameworki PHP? Abstrakcja; zamiast bezpośrednio wchodzić w interakcję z bazą danych, można użyć mapowania obiektowo-relacyjnego (ORM) do zarządzania strukturą i relacjami między danymi w bazie danych. Większość frameworków w wielu językach udostępnia ORM, aby ułatwić interakcję z warstwą bazy danych aplikacji. Podobnie ramy często oddzielają warstwy reakcji na interakcję użytkownika. Najczęstszym rozdziałem jest paradygmat Model View Controller (MVC), który, krótko mówiąc, wyodrębnia logikę bazy danych do Modelu (w wielu przypadkach interfejs do ORM), przetwarzając żądania i wchodząc w interakcję z Modelami w sterowniku, oraz renderowanie rzeczywistego HTML / PDF / obrazu / itp. do widoku. Frameworki często zapewniają inne narzędzia, takie jak routing (w celu umożliwienia kompleksowego przetwarzania identyfikatora URI żądania (np. Mapowanie żądania „http://example.com/users/1 ”do użytkowników kontrolera, którzy następnie wyszukują model użytkownika o identyfikatorze 1) oraz streszczenie sesji i innych podstawowych struktur.
I czy naprawdę ważne jest, aby używać ram, aby być profesjonalistą? Niekoniecznie; ramy ułatwiają życie; ale nie musisz go używać, aby być profesjonalistą. Szkielety zapewniają przydatną abstrakcję i standaryzację, ale w większości przypadków nie są wymagane.
źródło
Po przeczytaniu niektórych odpowiedzi, chciałbym najpierw powiedzieć, że często nie masz zbyt wiele opcji, z jakich ram zamierzasz korzystać, czy też będziesz używać jednego z nich (jako profesjonalista). Nie chcę cię zastraszać, ale musisz zbudować wystarczającą wiedzę na temat PHP, aby umożliwić przechodzenie z jednego frameworka do drugiego, a także używanie więcej niż jednego frameworka na raz.
Nie ma na to uniwersalnej odpowiedzi. Jako profesjonalista zostaniesz poproszony o rozwiązanie określonych problemów, a to będzie decydujący czynnik, kiedy i co będzie z każdym projektem, szczególnie jeśli klient ma określone zapotrzebowanie. Ale ogólnie rzecz biorąc, zawsze będziesz używał jakiejś struktury frameworka z PHP, chyba że modyfikujesz lub rozszerzasz wcześniej istniejącą aplikację, która ma własną platformę (taką jak Wordpress lub PHPBB).
Jak powiedział Dirk, oferują abstrakcję. Oznacza to, że biorą one wspólne, wieloetapowe procedury i starają się, aby były jak najprostsze i usprawnione. Krótko mówiąc, starają się przedstawić rozwiązania typu „dodaj wodę” do typowych zadań.
Ogólnie rzecz biorąc, nie, nie jest ważne, aby używać ram, aby być profesjonalistą. Ale realistycznie, nie będziesz miał kariery, jeśli nie znasz przynajmniej kilku wspólnych ram. PHP bez frameworka jest jak C ++ bez biblioteki std. Nie potrzebujesz go i możesz zrobić więcej bez niego, ponieważ będziesz bezpośrednio korzystać z funkcji blokowania języka niższego poziomu, ale zrobienie tego samego zajmie ci znacznie więcej czasu.
Tak. W rzeczywistości prawdopodobnie to zrobisz, nawet jeśli nieumyślnie. Nie mam tu na myśli ekspansywnego frameworka typu „wszystko do zrobienia”, ale raczej zestaw narzędzi z podstawowymi funkcjami i skryptami wykonującymi zadania, które nie są powszechne ani wystarczająco ogólne, aby poradziły sobie z nimi przeciętne frameworki. Mój składa się w zasadzie z różnych systemów plików, obsługi procesów i bitów Tex-ex z kilkoma różnymi narzędziami do zwijania i przesyłania strumieniowego / gniazdowego.
źródło
Często zdarza się, że osoba, która spędziła lata, wymyślając własne sposoby rozmawiania z bazą danych i rozmawiania z internetowymi interfejsami API, a dopiero teraz zaczyna korzystać z ram, używaj ich, gdy przynajmniej rozumiesz, co robią, jeśli to możliwe.
Nie od razu skacz po RedBean przy pierwszej pracy z bazą danych, najpierw pracuj z DB. W ten sposób dokładnie rozumiesz, co faktycznie pobierasz i robisz z bazą danych, co może naprawdę pomóc w skalowalności. Możesz także stworzyć własne rozwiązanie, gdy używane środowisko nie robi czegoś, co musisz zrobić.
Gdy zrozumiesz, co się dzieje, skorzystaj z frameworka! To sprawia, że rzeczy są o wiele łatwiejsze. Crazyness z przechowywaniem zapytanie następnie zapętlenie nad rezultaty
mysql_fetch_assoc
to wszystko zniknęło, zredukowane do jednego połączenia:$book = R::load( "book", $id )
. Będziesz o wiele bardziej produktywny i będziesz mógł łatwiej naprawiać przyszłe błędy lub dodawać przyszłe funkcje.źródło
Użyj frameworka, gdy znasz wystarczająco podstawowe technologie, aby wiedzieć, co robi dla ciebie frameworek i dlaczego jest to dobre (lub złe).
Framework jest rodzajem meta-narzędzia, które pozwala pracować z twoimi narzędziami (językiem, bazą danych) nieco szybciej, bez martwienia się o niektóre szczegóły tego, co robisz, co jest dobre, jeśli naprawdę znasz swoją przybory.
To, czego NIE chcesz, aby się stało, to to, że uczysz się frameworka zamiast narzędzi, i stajesz się kanalizowany w określony sposób robienia rzeczy, i ostatecznie nie opanowujesz podstawowych języków i pojęć - powinno to być narzędzie, a nie kula.
źródło
Kiedy zauważysz, że robisz to samo w kółko, rozejrzyj się i sprawdź, czy istnieje środowisko, które robi te same zbędne rzeczy, które sam byś zrobił. Nie używaj tylko frameworka ze względu na szum. Osobiście podoba mi się „No-framework PHP MVC” CodeIgniter i Rasmus Lerdorf http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html
źródło
Poleciłbym dokładnie przemyśleć, dlaczego miałbyś używać frameworka x, y lub z. Każdy framework zapewnia nie tylko funkcjonalność, której nie musisz implementować, ale także sposób myślenia. Wystarczy spojrzeć na Spring, JEE, Rails lub Django. Cztery frameworki zapewniające wystarczająco dużo czasu, aby zdeptać aplikację internetową.
Ale wszystkie cztery promują własny sposób myślenia o tym, jak należy tworzyć aplikacje internetowe. A jeśli to nie pasuje do twoich potrzeb lub smaku, trudno ci będzie iść dalej.
To bardzo radykalne porównanie, ale być może zbudowanie małej biblioteki lepiej odpowiada twoim potrzebom. Ale znajomość ram z pewnością pomoże ci pracować w większych zespołach lub znaleźć nowe miejsca pracy, ponieważ pokazuje to, że interesuje Cię rozwój oprogramowania jako całości.
źródło
Ramy są zawsze dobre w użyciu od samego początku. Zapewnia to użyteczność kodu, lepszą czytelność i oszczędność czasu programowania.
Nie mam dużego doświadczenia z PHP, ale zachęciłbym do użycia dowolnego frameworka.
źródło