Szymciosek
16.08.2012, 17:01:39
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
16.08.2012, 17:32:04
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:
<?php
class Menu
{
public function getItems()
{
return array('Home', 'Gallery', 'Contact'); }
}
Inna możliwość to skorzystanie z KnpMenuBundle.
Szymciosek
16.08.2012, 17:36:22
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
16.08.2012, 17:44:52
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
16.08.2012, 19: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 ?
pamil
16.08.2012, 21:06:36
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
16.08.2012, 21:21:33
Nie powiedziałem, że nie chcę, tylko chciałem się dowiedzieć na temat zwykłego modelu, który w sobie ma np
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
16.08.2012, 22: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ć.
Szymciosek
17.08.2012, 08:23:21
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
17.08.2012, 12:52:05
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
21.08.2012, 14:33:20
Pytanie kolejne

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
21.08.2012, 14:56:15
Odpowiednikiem zapisu przy pomocy adnotacji przy użyciu YAML-a będzie:
Kod
sciezka:
pattern: /
defaults: { _controller: AcmeSzablonBundle:Default:sciezka }
Szymciosek
24.08.2012, 12:27:07
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
24.08.2012, 12:39:05
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
24.08.2012, 12:47:21
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
24.08.2012, 13:14:35
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#commentsKomentarze nie mogą być zagnieżdżone.
Szymciosek
26.08.2012, 10:44:49
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.