Symfony jak się nauczyć?

Symfony jak się nauczyć?
CodeRZ
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 4 godziny
  • Postów:258
0

Jakie poradniki, książki polecacie do symfony? Najlepiej po polsku.

Oglądam to ,ale nie potrafię zrozumieć o co chodzi z $contex, $mahter, routingiem itp.

krancki
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:74.7261832, -41.7409518
  • Postów:151
0

Ja uczyłem się ze strony ->https://symfony.com/doc/current/index.html#gsc.tab=0
Przejedz się po Getting Started
Tam jest bardzo wiele rzeczy wytłumaczone.
Staraj się uczyć z dokumentacją

edytowany 2x, ostatnio: krancki
FE
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Kraków
  • Postów:18
0

Umiesz czystego PHPa bez frameworków itd? Jeżeli nie znasz PHPa czystego moim zdaniem nie pchaj się w frameworki tylko pierw poznaj sam język, jeżeli zaś znasz czysty język to dokumentacja dużo wyjaśnia i mało jest w nim niepoprawnych praktyk (Prócz m.in. pokazywania odwoływania się do bazy danych przez Doctrine w Controllerze na co nie pozwala MVC), troszkę zdrowego rozsądku upewnienia się czy można tak robić i możesz polegać na dokumentacji. Zacznij od Symfony4 i rzuć okiem na docsa on naprawdę dużo tłumaczy. https://symfony.com/doc/current/routing.html
Edit:
Zerknij na best practices dużo również tłumaczą https://symfony.com/doc/current/best_practices/index.html

edytowany 1x, ostatnio: Ferdyrurka
CodeRZ
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 4 godziny
  • Postów:258
0

@krancki
@Ferdyrurka
Nie chcę się określać w znajomości php, bo pewnie inne osoby umieją więcej, nie popełniają błędów itd. itp. Po prostu umiem na tyle, że chce robić już własne projekty, ale mój kod robi się duży co jeszcze nie jest takim problemem, ale to wszystko robi się trudne do ogarnięcia, muszę robić własne funkcje issety wszędzie itp. A fragment z tego filmu co podałem dopóki autor nie użył symfony bardzo mi się spodobał bo czegoś takiego szukałem obsługi podstron, ale wszystko razem zespojone, a nie osobne pliki, jak to ja robię, w sensie, że robie index.php a tam if issety na GET i require() strona z get.
A może laravel albo zend framework? Nad symfony myślałem, bo jest bardzo popularny, więc nie było by problemów z poradnikami, wyjaśnieniem problemów.

krancki
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:74.7261832, -41.7409518
  • Postów:151
1

Od samego oglądania się nie nauczysz, musisz siedzieć i pisać. Zrób jakąś stronę ze możliwością logowania, gdzie po logowaniu zmieniają się jakieś elementy na stronie itp

CodeRZ
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 4 godziny
  • Postów:258
0

@krancki: no dobra, oglądam i piszę to co jest w poradniku, ale nie rozumiem co pisze i nie rozumiem też w 100% tego co to robi, mówię o symfony i mvc bo php to ogarniam tylko tak jak mówię, gubię się w swoim kodzie, w tym sensie, że kiepsko go piszę, mvc to było by coś czego potrzebuje. Wszystko odzielone a nie html+css przeplatany z php.

albo takie coś jak Localized Routing to jest genialne i oszczęda mnóstwo pracy, też by się przydało w projektach. Po prostu ta idea mvc do mnie.

edytowany 1x, ostatnio: CodeRZ
krancki
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:74.7261832, -41.7409518
  • Postów:151
0

Dlatego nie oglądaj tutoriali tylko leć z dokumentacji , zastanawiaj się co potrzebujesz i szukaj. Według mnie najlepiej przerobić to co ci wysłałem i na bieżąco próbować i obserwować co się dzieje ze stroną.

FE
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Kraków
  • Postów:18
0

Jak ja się uczyłem i uczę programować nigdy nie robiłem przykładów identycznie jak autor kursu. Powód jest banalny, to nic nie uczy bo przepisywanie daje ci kilka % wiedzy, dlatego nic nie rozumiesz. To rozwiązywanie problemów uczy, gdy siadasz kilka minut/godzin i szukasz jak to rozwiązać, ta wiedza potem zostaję w głowię bo ją analizujesz na wiele sposobów. Dopiero gdy coś zmieniasz np. przy rejestracji dodam pole z płcią, albo przy dodawaniu posta na bloga zrobię to z wykorzystaniem wzorca Command bo chce go poznać daję dużą wiedzę.

edytowany 2x, ostatnio: Ferdyrurka
krancki
No tak jest jak kolega mówi
czysteskarpety
czysteskarpety
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Piwnica
  • Postów:7697
4
CodeRZ napisał(a):

Po prostu umiem na tyle, że chce robić już własne projekty, ale mój kod robi się duży co jeszcze nie jest takim problemem, ale to wszystko robi się trudne do ogarnięcia

Umiesz na tyle, że założyłeś z 50 tematów z jakimiś pierdołami jak dotąd, wole nawet nie myśleć ile założysz przy symfony... albo serio nie kumasz i nie ma sensu tego ciągnąć, albo jesteś strasznie leniwy i nie chce ci się szukać samemu nawet banalnych zagadnień, no chyba, że masz 15 lat to cofam


krancki
Czysty od razu z konkretami
CodeRZ
Tak, jestem noobem tamte 50 tematów to było dawno, jeszcze zanim zacząłem czytać książke kursy, teraz już coraz więcej rozumiem. No chyba muszę ćwiczyć żeby się nauczyć co nie? Już drugi raz tych samych błędów nie popełnie.
FE
@CodeRZ: wystarczy trochę pogrzebać w necie. Ja przez półtora roku nauki założyłem jeden wątek na tym forum odnośnie książki i raz na pewnym slacku poprosiłem o CR. Naprawdę w internecie masz kupę informacji wystarczy chcieć poszukać.
CodeRZ
Teraz już co raz mniej tu pytam, za te moje początkowe posty to mi aż wstyd, bo takie to proste jest teraz. Poza tym nie każdy jest taki inteligentny
CodeRZ
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 4 godziny
  • Postów:258
0

@krancki: dobra to mam kilka pytań, odpowiedz ale tak po polsku i prostym językiem

  1. co to routing? domyślam się, że przekierowywanie z /page/1 na odpowiedną akcje w kontrolerze, normalnei by wyświetliło błąd 404.
  2. tu https://symfony.com/doc/current/page_creation.html jest taki fragment
Kopiuj
<?php
// src/Controller/LuckyController.php
namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;

class LuckyController
{
    public function number()
    {
        $number = random_int(0, 100);

        return new Response(
            '<html><body>Lucky number: '.$number.'</body></html>'
        );
    }
}

i

Kopiuj
app_lucky_number:
    path: /lucky/number
    controller: App\Controller\LuckyController::number

ten rout sprawi, że odpali się kontroler number po wpisaniu adresu /lucky/number?
3. czy te błędy przy composer create-project symfony/website-skeleton my-project są problemem?
Untitled.png

FE
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Kraków
  • Postów:18
0

Pozwolę sobie odpowiedzieć za @krancki chyba się nie obrazi :).

  1. Routing jest to prosto mówiąc ustawianie url np w symfony używając adnotacji (link wyżej)
    @Route("/api/get-posts")
    Wchodząc pod url: np. localhost/api/get-posts symfony wie dzięki routingowi do jakiego kontrolera i jakiej akcji ma się odwołać/zadzwonić.
  2. Tak.
  3. Nie wiem nie spotkałem się z tym. :)
krancki
Skarpetka ma racje, no musi sam się nauczyć bo tak będzie 100 pytań na forum o sympfony. Na stronie jest wszystko opisane dlaczego , jak i poco
FE
Jak najbardziej racja. Ale wydaje mi się że musi trochę podjąć się nauki czystego języka. U mnie to dało proste w miarę wejście we frameworki. :)
KO
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:35
0

Niestety pisze ze smartfona i nie mogę uczestniczyć w pełni w dyskusji, ale bym podszedł do tego bardziej od strony z samego Symfony. Ostatnio czytałem dyskusję ze nauka Laravela wymaga znacznie krótszego czasu rzędu kilkunastu krotnego.Dlaczego?
Symfony to nie jest tylko framework, ale wręcz prawie filozofia wytwarzania aplikacji. Jeżeli chcesz być bardzo dobrym programistą to uważam że warto nauczyć się Symfony, ale jeżeli chcesz mieć dużo drobniejszych zleceń i nie pchać się w rozbudowane projekty, to - mogę się mylić - warto pomyśleć chociażby o Yii.
Niby zboczyłem z tematu, ale ktoś sugerował czytanie dokumentacji i uważam że w przypadku Symfony tak należy robić (chociaż jak to Polak - rzadko robiłem ;)). Jutro, jak będę miał laptopa, to poczytam i popiszę więcej, dobrej nocy

CodeRZ
Dzięki za odpowiedź. Nie patrzę na programowanie pod kątem zleceń, bo robię to tylko dla przyjemności. Mam w głowie wiele projektów, ale chcę to robić dobrze.
CodeRZ
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 4 godziny
  • Postów:258
0

@Ferdyrurka: dzięki, tamten błąd chyba nie ma znaczenia bo działa tzn. symfony pokazuje screen
Capture.PNG
mam jednak malutki problemik tzn. routing nie działa, tak mi się wydaje. Czytałem to https://symfony.com/doc/current/page_creation.html i napisałem to, później nawet skopiowałem dla pewności, ale nie działa! Nie przenosi mnie do tej strony, sprawdziłem nawet komendą w cmd php bin\console debug:router i jest tam to!
Capture2.PNG

screeny kodu:
Capture1.PNG
Capture3.PNG

Od razu powiem szukałem problemu, ale nadal nie wiem w czym rzecz. Może coś z url który wpisuje jest nie tak?
projekt mam w localhost/symfony/kurs1/ ale tam nie ma pliku index.php poniewaz jest on w public wiec wchodze w localhost/symfony/kurs1/public/ i pojawia sie ta strona z poczatkowego screena ale dodając localhost/symfony/kurs1/public/lucky/number pojawia się:
Capture4.PNG

  • Rejestracja:prawie 7 lat
  • Ostatnio:prawie 5 lat
  • Postów:15
0

A masz plik .htacces ? Bo wygląda to tak jak byś go nie miał.

CodeRZ
tzn. gdzie i z czym ten htaccess ma być? symfony chyba automatycznie wszystko robi.
CodeRZ
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 4 godziny
  • Postów:258
0

Próbowałem robić wszystko jak na tym poradniku https://symfonycasts.com/screencast/symfony/route-controller i cały czas jest welcome to symfony nie wiem o co tu chodzi.

w konsoli pokazuje, że jest ok
Capture.PNG

edit: pomyłka, nie ten ten folder próbowalem otworzyć.

Działa!

Capture.PNG


edit: public działa , nie działają inne routy, oczywiście zaintalowałem annotations
Capture.PNG

a w konsoli oczywiście się wyśweitla!

Capture.PNG


edit:
problem rozwiązany! brakowało pliku htaccess w public.

edytowany 7x, ostatnio: CodeRZ
arczinosek
  • Rejestracja:prawie 7 lat
  • Ostatnio:około rok
  • Lokalizacja:Warszawa
  • Postów:86
0

Spróbuj najpierw sam napisać aplikację MVC (bez żadnego frameworku) to dużo rzeczy z Symfony Ci się rozjaśni.
Pamiętam, że było coś takiego jak TinyMVC - przeanalizuj i spróbuj sam coś podobnego napisać.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)