• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak się zabrać za framework PHP

Object Storage Arubacloud
+1 głos
4,038 wizyt
pytanie zadane 28 listopada 2016 w PHP przez demotywatorking Obywatel (1,210 p.)
Jako, że już co nieco umiem napisać w PHP, myślę, że pora się zainteresować wreszcie jakimś frameworkiem.

Niestety, z nich nie umiem nawet podstaw. Coś trzeba instalować, ale jak i co nie wiem dokładnie.

Mam wykupiony hosting na linuxpl, więc chciałbym na nim się uczyć. Niestety nie wiem nawet który framework wybrać i co zrobić, żeby chciał działać na hostingu ;)

Proszę o jakieś propozycje od czego zacząć, ewentualnie może jakieś instrukcje jak to zainstalować albo jakieś strony do poczytania o tym.

4 odpowiedzi

+9 głosów
odpowiedź 28 listopada 2016 przez HaKIM Szeryf (87,590 p.)
edycja 29 listopada 2016 przez HaKIM

IMO przed pracą z jakimkolwiek framework'iem (typu: Laravel, Silex, Slim etc.) należy poznać OOP.

Od siebie polecam tenże kurs:

https://webmastah.pl/jak-programowac-obiektowo-cz-1-wstep/

Nauka Composer (Obowiązkowa).

https://getcomposer.org/

Zapoznanie się z PSR:

http://www.php-fig.org/psr/

Tutaj szczególnie przyda się:

Jak i:

https://github.com/php-fig/fig-standards/blob/master/proposed/extended-coding-style-guide.md

Następnie, trzeba ogarnąć czym jest MVC(MVP) i jak go zaimplementować.

Tutaj powołam się na wiki:

https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93presenter

Należałoby ogarnąć requesty i response'y, trza nam wiedzieć jak działa aplikacja.

Polecam artykuł od SensioLabs:

http://symfony.com/doc/current/introduction/http_fundamentals.html

Opcjonalnym i bardzo pomocnym będą masy nieudanych prób stworzenia własnego framework'a.

Tutorial:

https://symfony.com/doc/current/create_framework/introduction.html

Przydałoby się zastanowić i określić projekt PRZED wyborem framework'a DO projektu.

Tutaj wybór jest spory.

Mówiąc kolokwialnie i ogółem określiłbym to tak:

Duże projekty: Symfony, Zend.

Średnie projekty z długim czasem rozwoju: Symfony, Zend, Yii2.

Średnie projekty z krótkim czasem rozwoju: Laravel, Symfony, Zend, Yii2.

Małe projekty z długim czasem rozwoju: Silex, Slim (Jest i Lumen, acz, nim się nie interesowałem).

IMO to jakiś microframework będzie najlepszym sposobem na start.

Docksy do każdego z nich znajdziesz za pomocą Google'a.

Zapodam Slim'a, aby Cię bardziej do niego podkusić: cheeky

https://www.slimframework.com/docs/

Tutaj masz template slim wraz z zaimplementowanym MVC:

https://github.com/HaKIMus/slim-template

(Muszę zrobić upgrade, wersja 3.6 Slim'a wyszła i coś pewnie znów się porefaktoryzuje).

Elastyczne microframeworki jak wyżej wymieniony Slim możesz zastosować do każdego rodzaju projektu; od małego po giganta. Rozszerzenia zaciągasz za pomocą Composer'a. Reszta zależy od tego jak zadbasz o projekt (kod).

A, zapomniałbym! 

Najważniejsze: 

http://php.net/manual/en/

Ps. Jeżeli framework wspiera wersję poniżej 5.5.9 jak i nie wspiera powyżej 7.0 to wiedz, że trza spier... uciekać. (Half-Joke) wink

komentarz 10 września 2017 przez HaKIM Szeryf (87,590 p.)

Tylko po co wymyślasz koło na nowo?

Nie lepiej pobrać:

https://github.com/slimphp/Slim-Skeleton

...lub template który podałem w temacie:

https://github.com/HaKIMus/slim-template

Dodatkowo, jeśli napisanie tego zajęło Ci dwa dni to oznacza to, że po prostu się nie zapoznałeś z tym framework'iem (albo piszesz jeden znak na trzy minuty).

IMO Slim nie ma tutaj nic do rzeczy.

Błagam, trochę samokrytki. wink

komentarz 10 września 2017 przez manjaro Nałogowiec (37,390 p.)

Nie wymyślam koła tylko po prostu przeczytałem hasło Slim microframework.

Micro skojarzyło mi się że to będzie coś małego nieskomplikowanego. Odpaliłem yt i wpisałem tutorial Slim php. Po czym natrafiłem na taki wydawało mi się dobry tutek i z niego się uczę. Przerabiam dziennie po 2 lekcje ale nie ślepo przepisując tylko analizując o co w tym chodzi no i dlatego tyle to zajmuje...

A poza tym skąd niby nowicjusz ma wiedzieć że są gotowe szkielety? A druga sprawa to takie szkielety powinny być domyślnie już zaimplementowane w Slima tak jak np w Larwie.

Przy okazji jak znasz jakiś lepszy tutorial najlepiej po polsku to chętnie skorzystam. Największym problem z programowaniu jest to że nie ma dobrych materiałów które pokażą i wytłumaczą od początku do końca co jak i kiedy. Coś jak książki do matematyki w szkole. Dokumentacja przydaje się dopiero na poziomie zaawansowanym w celu uzupełniania wiedzy.

komentarz 10 września 2017 przez HaKIM Szeryf (87,590 p.)

Micro skojarzyło mi się że to będzie coś małego nieskomplikowanego. Odpaliłem yt i wpisałem tutorial Slim php. Po czym natrafiłem na taki wydawało mi się dobry tutek i z niego się uczę. Przerabiam dziennie po 2 lekcje ale nie ślepo przepisując tylko analizując o co w tym chodzi no i dlatego tyle to zajmuje...

Też z niego się uczyłem... Nie wiem co więcej mogę odpisać.

A poza tym skąd niby nowicjusz ma wiedzieć że są gotowe szkielety?

Oh, well...

Download & Install

We recommend you install the Slim Framework with the Composer dependency manager.

The easiest way to start working with Slim is to create a project using Slim-Skeleton as a base by running this bash command:

$ php composer.phar create-project slim/slim-skeleton [my-app-name]

https://www.slimframework.com/

Come on... Żeby pierwszej strony dokumentacji nie przeczytać...

A druga sprawa to takie szkielety powinny być domyślnie już zaimplementowane w Slima tak jak np w Larwie.

To jest MICRO-framework, dlatego nie ma wbudowanej biblioteki do szablonów.

Poza tym, gdy będziemy takowej potrzebować wystarczy wklepać:

composer require "twig/twig:^2.0"

Przy okazji jak znasz jakiś lepszy tutorial najlepiej po polsku to chętnie skorzystam.

Nie znam. :/

Największym problem z programowaniu jest to że nie ma dobrych materiałów które pokażą i wytłumaczą od początku do końca co jak i kiedy. Coś jak książki do matematyki w szkole. 

 Kurs, który podesłałeś, jest OK. Jak coś to w pewnym momencie, chyba gdzieś okolice middleware, natkniesz się na dziwny błąd - chyba strony nie będą się ładować, nie pamiętam - sprawdź komentarze, zamieściłem gdzieś tam link z solution (Avatar ten sam co na koncie Google). Albo... Pobierz działający juz template. ^^

 Dokumentacja przydaje się dopiero na poziomie zaawansowanym w celu uzupełniania wiedzy.

Zdecydowanie się nie zgadzam.

komentarz 10 września 2017 przez manjaro Nałogowiec (37,390 p.)

 

Jak zaczynałem tworzyć projekt to oczywiście tego próbowałem

$ php composer.phar create-project slim/slim-skeleton [my-app-name]

ale wywalało mi błąd: Could not open input file: composer.phar

No to gdzieś znalazłem radę aby utworzyć projekt poprzez 

composer require slim

Teraz widzę co przeoczyłem ale zaczynając tutorial nie byłem tego świadomy.

Jeśli chodzi o poradnik to już natrafiłem na błąd. W sumie nie wiem czy to błąd czy też po prostu problem różnicy wersji. Do klasy User musiałem dopisać bo wcześniej nie było 

protected $fillable = ['name','email','password'];
komentarz 10 września 2017 przez Boshi VIP (100,240 p.)
No jak się nie zna podstaw działania composera to takie błędy występują.. albo używasz go globalnie, albo lokalnie gdzie musisz mieć dostęp do pliku composer.phar..
+4 głosów
odpowiedź 28 listopada 2016 przez Arkadiusz Waluk Ekspert (287,950 p.)

A ja polecę Symfony, sam nie tak dawno temu zacząłem się go uczyć i powiem, że bardzo mi się podoba. Mówią, że nie jest to prosty ani mały framework i zgadzam się, ale osobiście nie odczułem do tej pory zbytnich problemów. Być może to zależy od ogólnego doświadczenia i wprawy.

Wszystko znajdziesz tutaj: http://symfony.com/doc/current/setup.html - dokumentacja po kolei przeprowadzi Cię przez utworzenie jakiegoś pierwszego projektu, od zainstalowania, później dalej doczytasz o bardziej zaawansowanych rzeczach.

Zanim jednak zaczniesz jakikolwiek framework polecałbym zapoznać się z używanymi przez frameworki narzędziami - chociażby Composerem, autoloadingiem. Do tego nie wiem na ile znasz PHP - obiektowość czy przestrzenie nazw to rzecz obowiązkowa. Dodatkowo polecam zaopatrzyć się w jakieś IDE, znacznie ułatwi pracę z jakimkolwiek frameworkiem.

Mam wykupiony hosting na linuxpl, więc chciałbym na nim się uczyć. Niestety nie wiem nawet który framework wybrać i co zrobić, żeby chciał działać na hostingu ;)

Cóż, niestety, ale sądzę, że mało który framework będzie chciał łatwo działać na hostingu współdzielonym. Być może się da, szczerze mówiąc nie wiem, nie próbowałem. Uważam, że z frameworkami a szczególnie tymi większymi należy działać na swoich maszynach - VPSach czy dedykach, gdzie możesz skonfigurować wszystko jak potrzeba.

Na koniec mogę pokazać moje małe dzieło wykonane w Symfony w ciągu kilku dni. To mój pierwszy projekt w Symfony, polecałbym się więc zbytnio na nim nie wzorować bo mogę jeszcze wielu rzeczy nie znać (a gdyby ktoś obeznany miał ochotę zrobić jakiś code review to będę wdzięczny) ale ogólnie Symfony mi się podoba, mogę polecić :) Wcześniej jeszcze miałem krótki epizod ze Slimem, to taki mniejszy framework (może nawet do mniejszych aplikacji będzie lepszy niż całe SF), który nie zawiera wielu rzeczy jakie ma np. Symfony, ale też polecam, możesz spróbować.

2
komentarz 28 listopada 2016 przez Boshi VIP (100,240 p.)
Korzystaj z generatora crudów, po to to jest, bo widzę, że sam pisałeś.

Symfony jest fajne, ale jest trudne, widzę to po tym ile pisałem w Yii2, skomplikowana konfiguracja, serwisy, configi, zaawansowane wzorce itd.
komentarz 28 listopada 2016 przez Arkadiusz Waluk Ekspert (287,950 p.)
Dzięki, generuje np. bundle albo encje, widać nie dotarłem do tego, że można jeszcze więcej.

Jak napisałem wyżej zgodzę się, że nie jest proste, ale na swoim przykładzie twierdzę, że idzie się go powoli uczyć. Zgodzę się też z tym, że jest fajne, mi się na tych początkach podoba.
komentarz 28 listopada 2016 przez Arkadiusz Waluk Ekspert (287,950 p.)
Tak, już przed momentem to znalazłem, dzięki raz jeszcze.
komentarz 29 listopada 2016 przez Boshi VIP (100,240 p.)
I jeszcze możesz w przyszłości korzystać z FOSUserBundle, dosyć mocno konfigurowalny i działa stabilnie.  Osobiście korzystam u siebie właśnie z FOSUser i FOSMessage, ten ostatni po walce z templatami też jest dosyć konkretny. Wysyła wiadomości, odbiera, tworzy wątki, przenosi do kosza, powraca z kosza.

SS

https://gyazo.com/f8017fcdd52aeb3dfc7619f988f5143b

https://gyazo.com/74249257fb30cbaab1c203dc5da282a5
komentarz 29 listopada 2016 przez Arkadiusz Waluk Ekspert (287,950 p.)
Słyszałem o FOSUserBundle, ale chciałem najpierw spróbować czegoś prostszego, z mniejszą ilością różnych funkcji - przynajmniej tak mi się wydawało, że taka implementacja jaką wykonałem będzie jak najprostsza. W przyszłości z pewnością skorzystam, możliwości wyglądają już nawet po tych screenach imponująco ;)
komentarz 29 listopada 2016 przez event15 Szeryf (93,790 p.)

Symfony jest fajne, ale jest trudne, widzę to po tym ile pisałem w Yii2, skomplikowana konfiguracja, serwisy, configi, zaawansowane wzorce itd.

Że co?

Konfiguracja jest tworzona z konsoli, wykorzystanie serwisu to umiejętsność wpisania $this->container->get(nazwa serwisu); 

Nie wiem co w tym trudnego jest. Wzorców jak się nie chce pisać to się i tak nie będzie pisać. Dodanie kontrolera to routingu? Też nie jest problemem, to też jest wzorcem i to wykorzystywanym wszędzie...

Problemem bywają wyłącznie źle udokumentowane bundle. 

+2 głosów
odpowiedź 28 listopada 2016 przez Chisorq Obywatel (1,680 p.)
Ja kiedy byłem na takim etapie co Ty, zacząłem od podstaw modelu strony w MVC. To dobry wstęp do frameworków, bo pokazuje mniej-więcej w jaki sposób one działają. Zrobiłem parę projektów od zera w swoim własnym MVC, a potem dopiero przerzuciłem się na Codeigniter (typowy MVC), który jest lekki i łatwy do zrozumienia jeżeli chodzi o początki w frameworkach.

Co do źródeł - dwa jeżeli chodzi o MVC. Jeden lepszy - ale po angielsku, drugi gorszy - ale po polsku.

https://www.youtube.com/watch?v=SUt7G5l8j0Y&list=PLCpCR27JXprGtZugawugSIdPPeo0ydCnB

https://www.youtube.com/watch?v=Aw28-krO7ZM&list=PL7A20112CF84B2229

Codeigniter:

https://www.youtube.com/watch?v=SyeYUupxp9s

Z resztą kiedy opanujesz jako tako MVC to polska w miare aktualna dokumentacja Ci da wszystko czego szukasz.

 

http://podrecznik.codeigniter.org.pl
+1 głos
odpowiedź 28 listopada 2016 przez Michał Kazula Pasjonat (19,540 p.)

Teraz na topie jest Laravel 5 - link.

Chyba jeden z prostszych i szybkich w nauce.

A tu masz podstawy po polsku - link.

 

Have Fun :-)

Podobne pytania

+1 głos
2 odpowiedzi 598 wizyt
pytanie zadane 5 października 2019 w PHP przez Przybysz Nowicjusz (130 p.)
0 głosów
0 odpowiedzi 141 wizyt
0 głosów
2 odpowiedzi 1,494 wizyt
pytanie zadane 5 października 2017 w PHP przez Wonderpol Gaduła (3,730 p.)

92,565 zapytań

141,418 odpowiedzi

319,604 komentarzy

61,951 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...