Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony][Symfony2]Kilka pytań
Szymciosek
post
Post #1





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

Ostrzeżenie: (0%)
-----


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') ?

Ten post edytował Szymciosek 16.08.2012, 17:18:36
Go to the top of the page
+Quote Post
destroyerr
post
Post #2





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Szymciosek
post
Post #3





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post
marcio
post
Post #4





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


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.
Go to the top of the page
+Quote Post
Szymciosek
post
Post #5





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post
pamil
post
Post #6





Grupa: Zarejestrowani
Postów: 97
Pomógł: 15
Dołączył: 12.08.2012
Skąd: Zabrze

Ostrzeżenie: (10%)
X----


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?
Go to the top of the page
+Quote Post
Szymciosek
post
Post #7





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post
pamil
post
Post #8





Grupa: Zarejestrowani
Postów: 97
Pomógł: 15
Dołączył: 12.08.2012
Skąd: Zabrze

Ostrzeżenie: (10%)
X----


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ć.

Ten post edytował pamil 16.08.2012, 22:47:29
Go to the top of the page
+Quote Post
Szymciosek
post
Post #9





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

Ostrzeżenie: (0%)
-----


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 ?

(IMG:http://symfony.com/doc/current/_images/doctrine_image_1.png)
Go to the top of the page
+Quote Post
pamil
post
Post #10





Grupa: Zarejestrowani
Postów: 97
Pomógł: 15
Dołączył: 12.08.2012
Skąd: Zabrze

Ostrzeżenie: (10%)
X----


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.
Go to the top of the page
+Quote Post
Szymciosek
post
Post #11





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

Ostrzeżenie: (0%)
-----


Pytanie kolejne (IMG:style_emoticons/default/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 ?

Ten post edytował Szymciosek 21.08.2012, 14:34:38
Go to the top of the page
+Quote Post
Crozin
post
Post #12





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Odpowiednikiem zapisu przy pomocy adnotacji przy użyciu YAML-a będzie:
Kod
sciezka:
    pattern:  /
    defaults: { _controller: AcmeSzablonBundle:Default:sciezka }
Go to the top of the page
+Quote Post
Szymciosek
post
Post #13





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Crozin
post
Post #14





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
Szymciosek
post
Post #15





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

Ostrzeżenie: (0%)
-----


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

Ten post edytował Szymciosek 24.08.2012, 12:47:34
Go to the top of the page
+Quote Post
Crozin
post
Post #16





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Szymciosek
post
Post #17





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

Ostrzeżenie: (0%)
-----


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ć ?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.12.2025 - 11:09