Mireczki, niedawno skończyłem czytać "PHP i MySQL. Tworzenie stron WWW", zrobiłem też kilka prostych projektów z użyciem tego języka i baz, pobawiłem się też w ajaxa.

Jaką solidną książkę dotyczącą któregoś z popularniejszych frameworków (laravel, zend, symfony2?) byście mi polecili, co by złapać jako takie pojęcie z czym to się je?
Wiem, że jest dokumentacja, ale najpierw potrzebuję omówienia czym jest framework, jak go efektywnie używać itd., a to wolę w wersji
Chciałem zacząć używać #sass z Symfony 2.3. Mam

{% stylesheets 'scss/main.scss' filter="sass" %}

{% endstylesheets %}
i wszystko działa. Ale

php app/console assetic:dump --watch
dumpuje tylko gdy zrobię jakieś zmiany w main.scss, za to zmian importowanych plików nie wykrywa. Co robię nie tak?

#webdev #symfony2
#symfony #symfony2
mam pytanie o #doctrine... wciąż jeszcze nie ogarniam relacji #manytoone czy #onetomany... dlaczego chciałem was prosić o pomoc :)

Powiedzmy że mam trzy encje, żeby to uprościć posłużę się przykładem z komunikacji miejskiej:
Encje:
- busStop
- timeTable
- arrivals

Relacje powinny być takie:
busStop może mieć wiele timeTable
timeTable może mieć jednen busStop oraz wiele arrivals
arrivals może mieć jeden timeTable
Czy ktoś mógłby podać przykład jak
@qwelukasz: OK. Ale masz źle znormalizowany schemat. Dochodzi do redundancji danych.
Dodając do tego linie autobusowe wygląda to mniej więcej tak: Arrivals(BusStopId, LineId, Time)
I teraz mając BusStopId możesz sprawdzić jakie linie tam idą i o której godzinie ( informacje z tabliczki ) a czas jest w jednym miejscu.
#webdev #symfony2 #propel jaka wersja propela dla symfony 2.7? zainstalowałem propela 1.2 i mam z dupy błąd

Compile Error: Declaration of Propel\PropelBundle\Request\ParamConverter\PropelParamConverter::apply() must be compatible with Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter\ParamConverterInterface::apply(Symfony\Component\HttpFoundation\Request $request, Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter $configuration)
#programowanie #php #dev

No dobra, dzisiaj muszę pobrać ze dane ze strony. Uzywam #symfony2 i #goutte
Mam już wszystko gotowe, skrypt działa i w ogóle. Problem jest taki że strona ma ogromną ilość podstron.
Np

Lista elementów:
|- Lista obiektów:
|- spis
|- spis
|- spis
|- Lista obiektów:
|- spis
|- spis
|- spis
|- Lista obiektów:
|- spis
|- spis
|- spis

więc wychodzi tego naprawdę dużo. Problem mam taki
@qwelukasz: Generalnie powinieneś pakować to w paczki (po powiedzmy 50 obiektów jeśli jeszcze tego nie robisz), a po flushu warto przeiterować po tych obiektach i zrobić na nich

$entityManager->detach($object);
Wtedy Garbage Collector będzie mógł od razu je zgarnąć i posprzątać, w innym przypadku siedzą w pamięci niepotrzebne obiekty.

edit: ewentualnie po flushu zrób $em->clear(); który #!$%@? wszystkie obiekty w EM
@qwelukasz: na devie system zbiera bardzo dużo informacji przydatnych do debugowania i za każdym razem przeładowuje konfiguracje, której nie #!$%@?. Zrób również php app/console cache:warmup --env=prod przed wykonaniem komendy. Znacznie przyspiesza całość aplikacji.
#symfony #symfony2 #php
taka sprawa, powiedzmy że mam dwie encje:
Przystanek oraz Linia (autobusowa/tramwajowa, etc..)

Jaka relacja powinna być pomiędzy Przystanek a Linia oraz Linia a Przystanek?

Mam taką relację, ale obawiam się że to nie jest dobre podejście.. Ktoś coś?

class Line
{
/**
* @ORM\OneToMany(targetEntity="BusStop", mappedBy="line")
* */
private $busstop;
}

class BusStop
{
/**
*
* @ORM\ManyToOne(targetEntity="Line", inversedBy="busstop")
* @ORM\JoinColumn(name="line", referencedColumnName="id")
* @var line
*/
private
@qwelukasz: Raczej musisz mieć jeszcze pośrednie entity, które pozwoli Ci na definiowanie choćby kolejności przystanku w linii. Nie mówiąc o innych pierdołach, np. czy przystanek występuje w jedną stronę, czy w dwie. Może też tak być, iż powrót będzie realizowany trochę inną drogą, a obecna relacja nie pozwoli Ci na duplikaty.
to ManyToMany ;), ale wtedy weź pod uwagę, że informacje zapisane w BusStop, takie jak: direction czy też number będą współdzielone dla wszystkich linii. Dlatego proponowałem Ci encję, która będzie pośredniczyła pomiędzy linią a przystankiem.
Yesterday, I told you that 2.7 comes with an unexpected surprise... Symfony has now early built-in support for PSR-7


No błagam, ktoś o tym nie wiedział? Damn, a czekałem podjarany co za niespodziankę wymyślili :D
#symfony #symfony2 #doctrine #mysql #postgresql

Taka sprawa... chcę użyć innego niż domyślnego (public) schematu z #pgsql.
Doczytałem, że można to zrobić przez annotacje @Table(schema="schema") ale to jest dosyć "statyczne" rozwiązanie i byłoby lepiej/prościej wprowadzić ten parametr jako parametr w parameters.yml niźli dla każdej encji osobno... (Annotacja w encji mogłaby nadpisywać dla danej encji schemat).
Jak to zrobić i dlaczego do tej pory nikt z #sf2 tego nie wprowadził?
Przeklejam z fejsa i polecam tę firmę, miałem przyjemność współpracować. :)

Poszukujemy developerów w następujących specjalizacjach:
- iOS (Junior/Senior level), widełki 9-12k netto PLN na miesiąc (biuro w Warszawie, startupowa atmosfera);
- .NET - samodzielni programiści, 8k netto PLN na miesiąc (biuro w Warszawie, fajny zespół);
- PHP/Symfony 2, biuro w Warszawie, startup, 6-8k netto PLN, (startup, super zespół);
- Ruby On Rails, Senior, Warszawa, biuro, startup, 7-10k netto PLN za miesiąc,
Pobierz m.....i - Przeklejam z fejsa i polecam tę firmę, miałem przyjemność współpracować. :)...
źródło: comment_q4ZtYpHGHlaTb1MJ3ICODndAWVbAz3An.jpg
#symfony #symfony2 #sonata

Mam problem z instalacją #sonata... nie wiem czemu ale nie chce działać..

Attempted to call method "setCurrentUri" on class "Knp\Menu\MenuItem".
Did you mean to call "setCurrent"?
in vendor/sonata-project/user-bundle/Block/ProfileMenuBlockService.php at line 91
$menu->setCurrentUri($settings['current_uri']);

Na necie sporo osób pisało (stare posty z zeszłego roku) że sonata wymaga #knpmenubundle w wersji 1.3 ale na oficjalnej stronie #sonata piszą że obsługuje knp w wersji 2.x

https://sonata-project.org/bundles/user/master/doc/reference/installation.html

SonataAdminBundle relies on other bundles to
@qwelukasz: potrzebujesz user bundle? Z doświadczenia wiem że to się zawsze #!$%@?ło. Zobacz czy na pewno masz odpowiednie bundle w composerze, zobacz czy wszystkie kroki wykonałeś podczas instalacji
Próbuj elegancko ogarnąć serializacje złożonych obiektów w PHP z użyciem serializera JMS. Chodzi o to, że w niektórych akcjach chcę mieć dzieci do trzeciego poziomu, w innych do pierwszego. W niektórych chcę wykluczyć pewne pola itd. Czy istnieje jakieś praktyczne rozwiązanie problemu, czy pozostaje mi robienie grup serializacji per akcja/endpoint, które jest godne najwyżej programistów laravela? Myślałem nad napisaniem customowej strategii, ale nie mam pomysłu jak to rozwiązać żeby było prawilnie. Oczywiście
@Cilthal: Masz obiekt z relacjami. W jednym widoku chce wyswietlic ten obiekt i drzewo relacji, w drugim chce pominac relacje. O ile w przypadku dwoch widokow robie dwie grupy, to w przypadku kilkudziesieciu widokow (endpointow) jest to rozwiazanie unmaintanable.
@qwelukasz: to zależy. MySQL ma dopiero od wersji 5.7 potrafić indeksować dane geometryczne przechowywane w InnoDb, więc jeżeli to był Twój plan, to musisz poczekać. Jeżeli natomiast będą to tylko i wyłącznie lat/lng i nie planujesz stosować jakichś super skomplikowanych operacji, możesz użyć do tego celu decimal/float spokojnie ze zwykłym indeksem.
#sf2 #symfony2
http://symfony.com/doc/current/best_practices/web-assets.html

Czemu w web trzymać assety?
Czy jak trzymam w bundle/resources i zrobię symlinka to jest bardzo źle?
Wydaje mi się, że ten sposób jest łatwiejszy do ogarnięcia w przypadku kilku projektów w jednej instalacji. Dzięki temu mogę np. mieć kilka plików o takiej samej nazwie (np. main.css, sidebar.css, itp)..
chyba że w web zrobię web\MyBoundle\css ale i tak bym grupował ale nie widzę za bardzo sensu... może ktoś coś
@qwelukasz: Tak. Ale lepiej skonfiguruj to globalnie, jeżeli chcesz go używać wszędzie. Ten szablon sprawia, że elementy html są dostosowane do bootstrapa (tj. mają odpowiednie klasy). Oprócz tego musisz oczywiście załadować jeszcze bootstrapa na własną rękę.
Tak. Ale lepiej skonfiguruj to globalnie, jeżeli chcesz go używać wszędzie.


@Damian1998: w sensie skopiować ten fragment kodu do szablonu głównego, po którym dziedziczę szablon strony?
Czy lepiej zrobić to z posiomu app/config/config.yml?