Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony][Symfony2]Kilka pytań
Forum PHP.pl > Forum > PHP > Frameworki
Szymciosek
Witam,
1. Czym jest Entity ? Folder tworzony, który zawiera klasę np Kategoria, w której są zmienne protected, na bazie których tworzona jest baza danych
2. Czy entity jest modelem ? Jak pobrać i wyświetlić dane z bazy ?
3. Jeśli entity jest modelem (a nawet jeśli nie) to jak stworzyć np w modelu array, który będzie miał w sobie przycisku menu ? Tzn ich treść np array('Home', 'Gallery', 'Contact') ?
destroyerr
Ad.1 Entity to bardzo szerokie pojęcie i różni ludzie mają odmienne definicje. Poszukaj sobie SAM bo w internecie jest mnóstwo opisów.
Ad.2 Tutaj podobnie, ale jeśli chodzi o mnie to nie jest modelem.
Ad.3 Nie mam pojęcia co masz na myśli, ale zgaduję, że możesz to zrobić tak:
  1. <?php
  2.  
  3. class Menu
  4. {
  5. public function getItems()
  6. {
  7. return array('Home', 'Gallery', 'Contact');
  8. }
  9. }

Inna możliwość to skorzystanie z KnpMenuBundle.
Szymciosek
3. Nie masz pojęcia, ale podobno Symfony2 jest oparte na MVC tak ? Jeśli tak to mamy Model View Controller, z view i controllerem nie ma problemu, ale jak w to włączyć model ?
marcio
A wiec entity to tak jakby kontener opisuje jakiego typu jest dane "pole", mozna tam ustawic rozne opcje ktore sa dostepne w bazie danych, uzywa callback-i/eventy.Jest to poprostu klasa opisujaca nasz "obiekt".

Repository korzysta z naszej encji(entity) i to ona pozwala nam pracowac na bazie danych.
Szymciosek
A co z modelem ? Dalej nie mam odpowiedzi, jeśli nie chcę korzystać z mysql, ale chcę mieć dane w modelu i to proste dane.

Chyba znalazłem odpowiedź, z której jasno wynika, że jeśli tworzymy bundle, to nie ma tam folderu Model tak jak np Controller czy Resource->Views, ale otrzymujemy w zamian Doctrine

Czy tak ?
pamil
Cytat(Szymciosek @ 16.08.2012, 20:36:54 ) *
A co z modelem ? Dalej nie mam odpowiedzi, jeśli nie chcę korzystać z mysql, ale chcę mieć dane w modelu i to proste dane.

Chyba znalazłem odpowiedź, z której jasno wynika, że jeśli tworzymy bundle, to nie ma tam folderu Model tak jak np Controller czy Resource->Views, ale otrzymujemy w zamian Doctrine

Czy tak ?

Nie chcesz korzystać z MySQL czy ogółem z bazy danych?
Szymciosek
Nie powiedziałem, że nie chcę, tylko chciałem się dowiedzieć na temat zwykłego modelu, który w sobie ma np
  1. protected $menu = new array ('Home', 'Gallery', 'Contact');


i na tej podstawie z modelu jestem w stanie stworzyć chociażby głupie menu, które będzie wyglądało tak:
Home - Gallery - Contact

A jak takie menu zrobić na bazie MYSQL ? Z pomocą przychodzi mi tutaj Doctrine i stworzenie bazy oraz wklepanie do niej np tabel: ID, Nazwa, Link i później pobieranie z tego wartości i stworzenie na tej podstawie takiego menu ?
pamil
Doctrine - generujesz entity i pobierasz korzystając z repozytoriów. Symfony2 ma w Book'u rozdział o Doctrine, poczytaj, na początek do ogarnięcia w sam raz.

Ofc, możesz stworzyć Entity, które w żaden sposób nie jest powiązane z bazą danych, nie wiem tylko czy wtedy repozytoria będą działać.
Szymciosek
Cytat(pamil @ 16.08.2012, 23:45:48 ) *
Doctrine - generujesz entity i pobierasz korzystając z repozytoriów. Symfony2 ma w Book'u rozdział o Doctrine, poczytaj, na początek do ogarnięcia w sam raz.

Ofc, możesz stworzyć Entity, które w żaden sposób nie jest powiązane z bazą danych, nie wiem tylko czy wtedy repozytoria będą działać.


Czyli Entity ogólnie służy do stworzenia bazy i działania na niej za pomocą Repository ?

pamil
Entity jest tworem, nad którym operujesz. Książka ma tytuł, liczbę stron, autorów etc. Możesz pobrać autorów (kolejne Entity) danej książki bezpośrednio z niej korzystając, ale skąd pobierzesz daną książkę? Z pomocą przychodzi EntityRepository, które operuje na wszystkich książkach. Możesz znaleźć wszystkie (metoda findAll), jedną po ID (metoda find) etc. Możesz też napisać własne metody do repozytorium - np. findBooksWithOneAuthor. O ile się nei myle, wszystko jest opisane w dokumentacji.
Szymciosek
Pytanie kolejne smile.gif

Routing Symfony2 można wykorzystać na 4 sposoby: YAML, XML, PHP, Annotation

Przy czym z wykorzystaniem tego ostatniego możemy zrobić:
Kod
/**
* Route ("/", name="sciezka")
* Template()
**/
public function sciezkaAction() { return ... }


I później w TWIG zrobić np.
Kod
<a href="{{ path("sciezka") }}"...>Ścieżka</a>


To zadziała tak, że po klinięciu w Ścieżka automatycznie zostanie uruchomiana metoda w kontrolerze itd...

A jak takie coś zrobić za pomocą YAML, który wygląda następująco:
Kod
AcmeSzablonBundle_sciezkapage:
    pattern:  /sciezka
    defaults: { _controller: AcmeSzablonBundle:Default:sciezka }


Czy da się za pomocą YAML przekazać do TWIG'a taki path ?
Crozin
Odpowiednikiem zapisu przy pomocy adnotacji przy użyciu YAML-a będzie:
Kod
sciezka:
    pattern:  /
    defaults: { _controller: AcmeSzablonBundle:Default:sciezka }
Szymciosek
Nie do końca to miałem na myśli, niepotrzebnie dopisywałem przy YAML ten /sciezka, chodzi o użycie w TWIGu opcji path

<a href="{{ path(sciezka) }}"...>Link do ścieżka</a>

Co oznacza, że komentarz jest zagnieżdżony ? Tak mam napisane w książce W. Gajdy Symfony2 od podstaw - dział dotyczący TWIGa
Crozin
Nie istotne jest skąd pochodzą reguły routingu, ostatecznie tworzą one pewną kolekcję, która to dostępna jest dla Twigowego path().

Komentarz zagnieżdżony? Jakiś kontekst, fragment kodu?
Szymciosek
W książce jest napisane, jak się tworzy komentarz w TWIG
Kod
{# Komentarz #}


oraz niżej:
"Komentarze Twig są wielowierszowe i nie mogą być zagnieżdżone
{#
Przykład poprawnego
wielowierszowego komentarza Twig
#}

Oczywiście zawartość komentarzy Twig nie występuje w kodzie HTML wygenerowanych stron WWW."

I w sumie tyle jest napisane o takim komentarzu
Crozin
Nigdy nie potrafiłem zrozumieć, po co ludzie korzystają z książek w momencie gdy dostępna jest dobra dokumentacja na stronie projektu - http://twig.sensiolabs.org/doc/templates.html#comments
Komentarze nie mogą być zagnieżdżone.
Szymciosek
Książka jest bardziej do Symfony2, poznania go od podstaw takie krok po kroku, nie chciałem się rzucać w internet i szukać od czego zacząć, a co zostawić na koniec...

New::
Gdzie trzymać swoje pliki PHP w projekcie Symfony2 ?
Np mam byle jaki plik, który zwraca mi coś po prostu, ale muszę go gdzieś mieć w projekcie, to gdzie mam go umieścić ?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.