Witajcie mirki.
Może ktoś mógłby zarzucić przykładem w jaki sposób zrobić "XLSPrinter."
Chodzi mi o to, że jest coś takiego jak "liuggio/excelbundle", które wykorzystuję do generowania plików xls. Jednak nie wiem czy to dobra praktyka za każdym razem w kontrollerze od nowa tworzyć plik xls, może lepiej byłoby stworzyć serwis, gdzie przekazywałbym:
1. Nagłówki tabelki
2. dane
3. typ pliku
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Witam mirków z #php i #symfony2 #symfony #webdev #webdevhelp
Mam w bazie danych tabelę user. Są już tam użytkownicy, teraz chcę dodać kolumnę slug, która musi być unikalna (będę tego używał do wyświetlania nazwy użytkownika w pasku adresu). W encji piszę takie coś:

/**
*
*
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mariecziek: chodziło mi o to, że generalnie na produkcji nie używa się raczej schema:update tylko właśnie migracji. Powinieneś przygotować migrację która utworzy kolumnę "slug" (nie unique), następnie ją uzupełni po czym ustawi odpowiedni indeks unikalny.
  • Odpowiedz
@qwelukasz:

1. Społeczność (gugle, stackoverflow, irc – szybko znaleźć można odpowiedź)
2. Dokumentacja
3. Stabilność (jasna polityka kompatybilności wstecznej)
4. Oparcie się o
  • Odpowiedz
mamy w firmie trochę rzeczy postawionych na Wordpresach i cały czas jakieś problemy, a to dziury w samym PHP, dziury we wtyczkach.


@Bodek: Każdy ogarnięty programista PHP ci powie, że WordPress to jeden wielki rak. To jest legacy code z naleciałościami jeszcze z PHP 4.

O jakie dziury w PHP chodzi?
  • Odpowiedz
Mirki, mam #pytanie do #symfony2 #php #angularjs - po raz drugi, bardziej sprecyzowane ( ͡ ͜ʖ ͡)

- Mam sobie listę złożonych wniosków w panelu admina w różnych kategoriach
- Obok każdej kategorii chcę umieścić liczbę NOWYCH, nie rozpatrzonych przez admina wniosków

Wszystko to jest oparte na AngularJS, więc w
  • 53
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@MacDada: ale gdzie przy restapi będziesz latał po obiektach ? po co i na co ? przecież w restapi pobierasz coś bazy i zwracasz to i tyle, nic więcej się z tym nie robi zwykle
  • Odpowiedz
Mirki, mam bardziej teoretyczny problem z Symfony2.
Otóż... chcę umieścić w widoku, ile nowych wiadomości w różnych skrzynkach czeka na użytkownika. Nie wiem w jaki sposób to najlepiej zrobić. Dodać nowe pole w encji z wiadomością "unread", i później w kontrolerze je uzupełnić licząc zapytaniem, ile ich jest? Wtedy będę miał do tego najłatwiejszy dostęp w widoku, ale brzmi to trochę januszowo. Niby banalny problem, no ale jednak chcę to zrobić jak
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Spake: No to praktycznie ten sam problem co zapytałeś wcześniej. Przynajmniej jeśli chodzi o umiejscowienie danych:

a.) kiedy pobierasz kategorię, zaciągać razem z nią wnioski i w pętli zliczyć ile pozostało nowych

b.) „keszować” sobie tę informację w kategorii – czyli do kategorii dołożyć dodatkową kolumnę i za każdym razem, gdy ustalasz jakiś wniosek, zwiększać/zmniejszać licznik dla kategorii


W tym przypadku podobnie: albo zliczasz powiadomienia na bieżąco albo musisz
  • Odpowiedz
Jaka będzie najlepsza praktyka odnośnie umiejscawiania walidacji? Przeczytałem że nie jest najlepszą praktyką używać adnotacji do tego, ale z drugiej strony w dokumentacji robią to adnotacjami.
#symfony #symfony2
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@GeneralX:

1. Piszesz kod domenowy – ustalasz „inwarianty” – przydają się ValueObjects.
2. Piszesz UI, robisz jak najwięcej walidacji HTML5+JS => żeby użytkownik miał szybki feedback, a nie jakieś średniowieczne przeładowania strony.
3. To, czego nie pokryłeś w walidacji po stronie przeglądarki, uzupełniasz walidacją
  • Odpowiedz
@GeneralX: A jeśli pytasz o format reguł walidacji: osobiście preferuję ustalać je bezpośrednio przy robieniu Form Typea – chyba, że mam jakieś ładne DTO dla formularza, to być może zdecydowałbym się na annotacje albo Yamle (w jednym projekcie używamy Yamli – tylko minus jest taki, że trzeba grepować, żeby dowiedzieć się czy są jakieś reguły zdefiniowane – więc chyba pokusiłbym się przy następnym do annotacji).
  • Odpowiedz
aby zdobyć token musi najpierw mieć clientid oraz clientsecret a co za tym idzie najpierw musi się zalogować by pobrać te dane.


@qwelukasz: Generalnie to nie jest pytanie odnośnie Symfonowych Bundli, tylko ogólnie na temat OAuth.

ClientId i ClientSecret to nie są dane identyfikujące użytkownika, tylko aplikację
  • Odpowiedz
Treść przeznaczona dla osób powyżej 18 roku życia...
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

chodzi mi o to że Symfony zajebiście wolne, ja sobie nie wyobrażam inaczej niż phalcon

@Jurigag: Nie jest zajebiście wolne. A to, że nie potrafisz sobie czegoś wyobrazić to akurat kwestia wąskich horyzontów myślowych.
  • Odpowiedz
@stacktrace: jest, korzystasz z obu? Piszesz w obu? Wydajność kilka razy większa na głupim pobraniu czegoś z bazy i wypluciu jsona, przecież wiem jak to wygląda, a ty mi próbujesz wmawiać ze nie xD skąd tacy ludzie się biorą
  • Odpowiedz
@gajowy_marucha:

1. To nie jest pytanie odnośnie Symfony tylko odnośnie Doctrine.
2. Doctrine do ustawienia pól na podstawie bazki używa refleksji. Więc możesz w ogóle nie mieć setterów.
3. Settery są dla Ciebie, ewentualnie do CRUDowania Symfonowymi Formsami, etc.
4. Jak nie chcesz popaść w Anemic Domain Model, to przemyśl które settery faktycznie potrzebujesz (bo raczej wartości powinny przyjść w konstruktorze i być mutowane grupami niż oddzielnie).
  • Odpowiedz
@gajowy_marucha: możesz sobie nieco rozdzielić encje od tego co wypluwają formularze. osobiście wydłużam nieco ten process, robię sobie encje bez setterów (unikam jeśli tylko mogę, dzięki temu mam małe szanse zmienić w encji coś w locie i zapomnieć o tym), natomiast do formularza trafia prosta klasa, którą nazywam sobie np. CreateUserCommand, zawiera tylko publiczne pola, jeśli przejdzie walidację a cały formularz "się uda" to leci do CreateUserHandlera, który z pomocą
  • Odpowiedz
Czego używacie do backupowania bazy #mysql i wysyłania jej gdzieś na zewnątrz (ftp/cloud)? Serwer stoi na linuxie, a serwis stoi na #symfony2. Z samym backupem sobie bym poradził, ale nie wiem jak rozwiązać export.

#php #webdev
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@qwelukasz: grunt, ponieważ to jest uniwersalne narzędzie, nie zależnie od języka programowania. Jest szerszy pakiet pluginów.

A to co mówisz to bzdura, ustawiasz sobie watcha na pliki, i sam wykrywa zmiany, automatycznie generujac nowy plik
  • Odpowiedz
W jaki sposób zmienić wersję #php z którego działa #apache. Sytuacja jest taka. Zainstalowałem sobie w listopadzie server LAMP na #ubuntu 14.04 przy pomocy sudo apt-get install lamp-server^. Wszystko działało jak należy. Po jakimś czasie zrobiłem update PHP do wersji 5.6 i też było wszystko w porządku. Dzisiaj zaktualizowałem system i wyświetliło mi komunikat, że PPA is deprecated i mam zrobić:

sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
sudo apt-get
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#NieDlaKlepaczyKodu:Symfony: Różne sposoby na strony błędów w kontrolerach

#niedlaklepaczykodusymfony <<< Subskrybuj ten tag po więcej albo czarnolistuj, jeśli nie chcesz widzieć wpisów z tej serii. Więcej info na dole wpisu.

Symfonowe kontrolery działają w ramach abstrakcji HTTP: przyjmują „żądanie” (reprezentowane przez obiekt Request) i zwracają „odpowiedź”
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mam funkcję która w jakiś sposób łączy dwie tablice.
Czy powinienem ja zarejestrować jako serwis czy np w utils\klasa.php i tak ja wywoływać?
#symfony2 #symfony
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@qwelukasz: OK, więc masz narzędzie, które robi jakiś bajer z danymi.

Jeśli to narzędzie potrzebuje konfigurowania => leci jako usługa.

Jeśli to narzędzie jest „podmienialne” (np twoje narzędzie nazywa się Bar i w Foo możemy chcieć je podmienić na inne), to zasługuje na bycie wstrzykiwalną usługą.

Jeśli nie musi być konfigurowane, nie przewidujesz, żeby miało być podmienialne –> może być klasa z metodami statycznymi.
  • Odpowiedz
An exception has been thrown during the rendering of a template ("Time zone different than GMT or UTC is not supported as a formatting output. Please install the "intl" extension for full localization capabilities.") in base.html.twig at line 150.

Taki błąd rzuca appka demo do #symfony2, odpalam na przestarzałym #php, da sie coś z tym zrobić czy aktualizować php/apache/kernel/cpu?
#programowanie
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@NeooeN: Masz tam pewnie użyte rozszerzenie localizeddate, które wyamaga INTL. Doinstaluj do PHP lub nadpisz sobie to i sprawdzaj w PHP czy jest to zainstalowane, jak nie to rób coś innego.
  • Odpowiedz
@NeooeN: ustaw timezone serwera na UTC i po problemie. Każdy serwer powinien mieć ustawiony czas UTC, bez wyjątku - to jest standardowy timezone dla programisty, serwerów itp. Timezone zerowy.
  • Odpowiedz