@wiktor12348: Wyłaśnie myślałem, żeby takie rzeczy jak bground/loga/stopki etc. trzymać w app/resources/views i po wywołaniu /app-dev.php/news uzupełnia się div-content zawartością bundla. I właśnie dlatego pytam czy mam dobre rozumowania jak to ma działać. I do tego każdy bundle na oddzielny content(news/logowanie/stats etc) ?
@matth95: Ja tak robię, robi tak każdy programista Sf2 firmie w której pracuje - taki standard sobie opracowaliśmy. Może inni coś innego wymyślili, chętnie posłucham.

Header, Footer, Nav często jeszcze drobniej podzielony i oparty o wiele dziedziczeń i spięte w base, base-popup, base-user itp. Wszystko uzupełniane o content z bundla. Wtedy tylko css,js, images trzymasz w "web/*"
Pomóżcie Mirki, piszę RESTowe API na #symfony ( #symfony2 ), używam FOSRestBundle oraz FOSUserBundle, API miałoby działać bez prefixu np. "api" w url'u, użytkownik po wysłaniu nagłówka "Accept" dostaje określonym formacie dane (html, json, xml) i to wszystko mam, spoko, ale chciałbym tam wrzucić autoryzację tokenową obok sesji i tak żeby użytkownik, który loguje się korzystając z sesji lub tokena miał dostęp do tych samych endpointów. Do tokenów wykorzystałem JWT.

macie jakiś
@poh: Tam masz cały gotowy wynalazek, który też wymusza prefix w URLu.

Do tokenów wykorzystałem JWT.


@nie_mam_czasu: Tzn? Napisałeś już jakąś implementację pod Symfony czy dopiero planujesz?

po wysłaniu nagłówka "Accept" dostaje określonym formacie dane (html, json, xml) i to wszystko mam


@nie_mam_czasu: Rozumiem, że robisz to w kontrolerze lub jakimś event listenerem? Czyli w kontrolerze już wiesz jaki chcesz mieć format zwrotki, pozostaje Ci wpiąć się w Security,
#php #symfony2

Jak to jest z traits... Przerzuciłem część pól do traitów to symfony narzeka:

Runtime Notice: AppBundle\Entity\Supplier and AppBundle\AppTraits\Trackable

Trait define the same property ($modifiedAt) in the composition of AppBundl

e\Entity\Accommodation. This might be incompatible, to improve maintainabil

ity consider using accessor methods in traits instead. Class was composed


zrobiłem pola prywatne i działa... Nie bardzo rozumiem dlaczego protected nie mogą być :/
Formularze w #symfony2

Mam takie encje jak Question i Answer. Mogą one dotyczyć różnych innych encji. Umożliwiają one po prostu dodanie kolejnych pól do formularza, zdefiniowanych przez użytkownika.

Wymyśliłem że żeby dodać te pola najlepiej będzie zrobić kolekcję z odpowiedziami.
Mam encję Order. W OrderType dodaję kolekcję answers, a do $data dodaję nowe obiekty powiązanych Answer

public function buildForm(FormBuilderInterface $builder, array $options)
{
/* @var $data Order */
$data = $builder->getData();
$builder->add('answers',
@Jaslanin: to trochę bardziej skomplikowane. tak jak na obrazku. to rozwiązanie o którym piszesz, to pierwszy przypadek który już mi działa. a drugi nie zadziała bo to jest kolekcja, więc nie mogę wywołać addAnswer...

ale chyba zamiast kombinować robiąc kolekcję dla odpowiedzi, muszę zrobić dla zamówienia/produktu w zamówieniu jakiś model w którym dynamicznie dodam atrybuty do obiektu po to by się zbudował formularz, a później z wartości przy zapisie ręcznie utworzę
Pobierz
źródło: comment_hSlVrhNEkhJ9s41StPnl28ALJ0h9G57t.jpg
Mireczki jeszcze raz dzisiaj #webdev i #symfony2
konfiguruje sobie pageBundle , po przejściu całego tutoriala klik
Mam błąd:

Class 'Application\Sonata\PageBundle\ApplicationSonataPageBundle' not found in
W AppKernel-u jest dodane

new \Application\Sonata\PageBundle\ApplicationSonataPageBundle(),
A namespace Page Bundle jest taki:

namespace Application\Sonata\PageBundle;
Znajduje się w app/Application/Sonata/PageBundle/ApplicationSonataPageBundle
Może ktoś z was konfigurował PageBundle i wie jak rozwiązać ten problem ?
@wojjaskula: Ok, już odpowiadam.

PHP to nie Java czy C#. Dopisanie na górze pliku use nie załącza pliku z daną klasą. Trzeba to zrobić ręcznie przy pomocy require. Istnieje jednak magiczna funkcja __autoload(). Jak ją stworzysz, to zostanie wywołana za każdym razem, gdy klasa nie zostanie znaleziona, żeby funkcja ta załadowała plik z nią.

Symfony ma swoje __autoload() w app/autoload.php. Autoload ten ładuje klasy z katalogu vendor/ oraz
Mireczki z #webdev i #symfony2

Piszę właśnie mały projekt ( ͡° ͜ʖ ͡°)- ma to być bardzo prosty lms
Mam skonfigurowanego fosusera i sonatę więc już basicsy są.

Chcę tworzyć kursy i dodawać je do kategorii.
Sam kurs ma być składową , ma być możlwość dodania do niego prezentacji , stron tekstowych , plików oraz jakiś tam testów.

Teraz pytanko , czy do
@wojjaskula: kolega wyżej dobrze poleca ci Tree z doctrine extensions. Zainstaluj sobie do tego bundle stof/doctrine-extensions-bundle (i poczytaj o nested set, jeżeli nie wiesz jak to działa).

Do uploadu plików powiązanych z wpisami w bazie radzę użyć bundla. Spróbuj vich/uploader-bundle.
#php #symfony2

Czy można zrobić w symfony pole które ma pogrupowane checkboxy ale typu entity? Czy trzeba wczytać dane do tablicy i potem zrobić pole choice? Wiem że w choice się da robiąc tak:
$choices = array('grupa 1' => array('a', 'b', 'c'), 'grupa 2' => array('d', 'e', 'f'))

Wiem że można przez themes jakoś i przekazać do theme kompletne wartości z bazy a nie tylko id i value. Można jakoś prosto?
@Kofels:

W sumie jestem wciąż nowy w Symfony ale napiszę co wymodziłem:

1. Zrobiłem custom form field, z parent choice. W kontrolerze przekazuję entity manager do konstruktora formularza i dalej do mojego custom field w formularzu. W tym custom field mam normalnie query builder odpalony żeby pobrać dostępne opcje z bazy z odpowiednim sortowaniem. Podobnie jest w dokumentacji pokazane DataTransformers, też jest em przekazywany w ten sposób.

2. Zrobiłem swój theme
W kontrolerze przekazuję entity manager do konstruktora formularza i dalej do mojego custom field w formularzu.


@gajowy_marucha: To możesz sobie uprościć: wstrzykuj EM w konstruktorze Type'a i zarejestruj go w DIC: http://symfony.com/doc/current/book/forms.html#defining-your-forms-as-services

W ten sposób kontroler nie musi pośredniczyć w przekazywaniu zależności. ta sama idea dla transformersów – możesz je wstrzyknąć w konstruktorze Type'a, a same transformersy oczywiście mogą dostać EM także w konstruktorze.

BTW, jak masz chwilę, to proponuję, żebyś
#symfony2 no to teraz formularze...

$product = $this->getDoctrine()
->getRepository('PolAppBundle:Reg')
->findOneByBest(1);


$bestRegistrar = $this->createFormBuilder( $product)
->add('Reg', 'entity', array('class' => 'PolAppBundle:Reg', 'choice_label' => 'domain',))
->getForm();
jak ustawić dany select na selected?
Powyższe nie chce działać...
@qwelukasz: no tak ale jeśli nie chcesz zapisywać tych plików (tak żeby użytkownik widział że plik został dodany) to będzie to conajmniej dziwnie wyglądało jak użytkownik chcąc wrzucić plik będzie musiał kliknąć w admina, później pojawi mu sie pusta tabelka, później musi kliknąć w dodaj nowe a po dodaniu dalej będzie miał pustą tabelke :)
#symfony2 #php troche #programowanie
muszę zaimplementować w symfony komunikację poprzez API z kilkoma serwisami... - jak właściwie powinienem to zrobić i od czego zacząć?
Komunikacja odbywa się poprzez SOAP, wygląda to sandardowo, logowanie, podpisanie żądania itp...
może ktoś dać jakiś zarys?
Teoretycznie dobrze by było z tego zrobić osobny bundle co by było reusable w przyszłości ale to nie ten level here...
Czy powinienem to zrobić każdą stronę jako kontroler? Niby się
#symfony2 #php

kolejne pytanie z serii "głupich"...

Załóżmy że strona dzieli się na 3 główne części:
- home (główny szablon z info o stronie i zamawianiem produktu)
- panel użytkownika (tu różne funkcje)
- panel admina

panel użytkownika będzie miał dużo funkcji dostępnych w zalżności od zakupionego planu na stronie home.

Można do tego podejść w ten sposób:

Acme\BlogBundle czy też Acme\Bundle\BlogBundle
i tam wszystko trzymać w kupie ale przy tak dużej
@qwelukasz:

używaj tylko jednego bundla głównego, poza 1 AppBundle w którym masz całą logikę biznesową projektu, kolejne traktuj jako pluginy, czyli elementy które będziesz używał w wielu miejscach, taka jest ogólnie idea bundlii

innymi słowy bundle nie służą do tego by oddzielać warstwy aplikacji, tylko po to by tworzyć komponenty do ponownego użycia (np. newsletter, drukowanie faktury itd.), jeżeli nie ma sensu, potrzeby ponownego użycia czegoś w innym projekcie bundle jest
#symfony2 #programowanie #php
mam coś takiego

test_main:
resource: "@TestMainBundle/Resources/config/routing.yml"
prefix: /{_locale}/

root:
path: /
defaults:
_controller: FrameworkBundle:Redirect:redirect
route: test_main_homepage
permanent: true
i domyślnie przenosi mnie na
localhost/en jako że mam w config.yml
parameters:
locale: en
locale_supported: ['en', 'pl']
jak zrobić aby sf wykrywało locale przeglądarki i przekierowywało na PL jesli jest ustawiona na PL a jeśli nie to na domyślne EN?
@qwelukasz: próbuj w trybie incognito i po próbie zamykaj incognito i ponownie ;) wtedy i ciacho i sesja będzie nowa i nie będzie sytuacji jak któreś jest gdzieś zapisane i ci nie zmiena
@eXtreme: ok a jak zrobić aby ścieżka wyglądała tak:

przy obecnej konfiguracji

lunetics_locale:
guessing_order:
- router
- browser
allowed_locales:
- en
- pl
- de
nie chce mnie nadal przekierowywać na

localhost/en
localhost/pl
#symfony2
Mam encje A, B, C oraz Trio. W encji Trio przechowuję relację ManyToOne do A, B i C. Chciałem zrobić custom field w którym wybieram A, B i C a otrzymuję Trio (lub błąd że takie Trio nie istnieje).

TrioType.php

public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('A', 'entity', [
'class' => 'Entity\A',
...
$builder->add('B', 'entity', [
'class' => 'Entity\B',
...
$builder->add('C', 'entity', [
'class' => 'Entity\C’,
...
$builder->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent
Ostatnio dostałem projekt w #symfony2, w którym encje wyglądają tak: HomePage, AboutUsPage, ContactUsPage, PricingPage itp.
Co za tym idzie w bazie danych jest kilka wielokolumnowych tabel zawierających po jednym rekordzie.
Czy to normalny i szanowany sposób tworzenia aplikacji w #symfony? #php
@DiKey: Dobra, więc jeśli faktycznie pytasz jak „zrobić to dobrze”, to tak jak pisałem wcześniej, Symfony nie ma (aż takiego) znaczenia: Twoim zadaniem z dziedziny architektury oprogramowania jest:

* zidentyfikować potrzeby klienta
* opisać te potrzeby za pomocą kodu (model, use case'y)
* dorobić szczegóły techniczne jak persystencja czy UI (widoki, routing, etc – to „tylko” warstwa UI).

Inaczej mówiąc, jeśli chcemy pogadać czy dobre masz tabelki w bazie (i tym
Szczególnie wydając bundle nie warto robić takiej pokręconej logiki jak tworzenie własnych komend wywołujących wbudowane ;)


@kiler129: I vice-versa, wywołując cache:clear spodziewasz się, że usuniesz tylko cache z symfony2. W dodatkowych bundle'ach jest po prostu oddzielna komenda do czyszczenia cache'u tworzonego tylko przez tego bundle'a.
@kiler129: No to IMHO:

1. Na pewno zrób do tego dedykowane polecenie.
2. Dodatkowo możesz się podpiąć pod Symfonowe.

Ad2: tak jak już znalazłeś, podpiąć się tu: http://symfony.com/doc/current/reference/dic_tags.html#kernel-cache-clearer

Choć grepowałem ten tag i nie widzę, żeby cokolwiek się podpinało, do tego ./app/console debug:container --tag=kernel.cache_clearer zwraca pustkę.

Przy wywołaniu cache:clear cache doctrine czy sonaty również znika.


Bo ładują się grzecznie do katalogu cache, a jego zawartość jest po prostu usuwana ;-)
#php #symfony2 #programowanie
Mam problem z tym bugiem w Symfony: https://github.com/symfony/symfony/issues/11596

Ma ktoś jakiś pomysł jak wymusić przypisanie błędów do formularza za formularzem z inherit_data=true? Próbowałem ręcznie wywołać validatora a potem przypisać wyniki za pomocą ViolationMapper ale wywołane addError na takim formularzu za nieszczęsnym formularzem z inherit_data=true zdaje się nie działać.

Ktoś coś? Miał ktoś podobny problem?
#symfony Mam taką walidację:

{
/**
* @ORM\ManyToMany(targetEntity="ResearchDirection", inversedBy="matrixes")
* @Assert\Count(min = "1", groups={"matrix"})
*/
Ta walidacja działa tylko przy edycji tej encji, nie przy dodawaniu. Dodawanie i edycja korzysta z tego samego Type, z tym samym validation_groups.

Za to walidacja stringa działa zawsze:

/**
* @Assert\NotBlank(groups={"matrix", "matrix_category"})
*/
protected $name;
Co robię źle?

#webdev #symfony2
@Domons: @Jurigag: ok rozumiem. Przy tworzeniu nowego obiektu encji to było nullem. A przy edycji Doctrine zawsze tworzy tutaj kolekcję. Więc zamiast robić NotBlank to powinienem w konstruktorze dać

$this->researchDirections = new \Doctrine\Common\Collections\ArrayCollection();
Mam dziwny problem z composer i symfony 2.7.
Chcę pobrać paczkę, wpisuję composer require nazwapaczki i leci, podgrywa się wszystko ale w plikach symfony cisza.
Chcąc dodać wpis do AppKernel dostaje błąd że brakuje plików. W composer.json nie ma pobranego pakietu a po ponownej próbie require/update wywala błąd ze nie ma nic do akutualizacji(tak jakby już ten pakiet był).
Dodam że ok msc temu działało bo już podgrywałem paczki.
Mocno popsułem? (
Może ktoś próbował takiego myku.

Na macu postawiłem sobie wirtualna maszyne z Debianem. Tam mam serwer www z postawionym #symfony2. To co chciałbym osiągnąć to możliwość pisania kodziku w #phpstorm na osx, w związku z tym zamontowałem sobie udostępniony udział z debiana na macu. W phpStorm widzę całą strukturę projektu, natomiast za nic nie mogę zapisać żadnych zmian w plikach - przy kazdej próbie pojawia się "Unable to save settings. Failed