Archiwa autora: Kacper Gunia

SPUG Meetup #4

Zapraszamy na czwarte spotkanie Silesian PHP User Group w dniu 13 czerwca 2013 roku o godzinie 18:00. Odbędzie się ono w Centrum Kultury Studenckiej „Mrowisko” – w Gliwicach przy ulicy Pszczyńskiej 85.

Strona SPUG-u | Mapa Lokalizacji | Wydarzenie na Facebooku

Zaplanowane zostały 3 prezentacje:

  • Legacy Applications – Piotr Pasich / XSolve

    Ciągły i szybki rozwój rynku internetowego w ciągu kilku ostatnich lat spowodował rozrost architektur, frameworków i rozwiązań. Jednak wiele aplikacji wciąż opartych jest o przestarzały i nieelegancki kod, który nie korzysta z uznawanych w branży podstawowych wzorców projektowych, programowania obiektowego czy frameworków. Jednak aplikacje konstruowane bez uwzględnienia nowoczesnych metod mogą stanowić poważne zagrożenie dla konkurencyjności firmy. Prezentacja opisuje najlepsze rozwiązanie dla biznesu, jakim jest sukcesywne przepisywanie aplikacji do modułowej architektury opartej o nowoczesne frameworki PHP na przykładzie Symfony2, z naciskiem na najtrudniejsze elementy wdrażania strony technicznej tj.: dziedziczenie template’ów, routingu, sesji oraz modelu bazy danych.

  • Spec BDD w PHP – Kacper Gunia / Sensio Labs UK

    W trakcie prezentacji zostaną omówione założenia BDD (Behaviour Driven Development) oraz możliwości wykorzystania go na co dzień dzięki narzędziu PHPSpec2. Pokazane zostaną różnice w stosunku do klasycznego testowania aplikacji oraz przykłady wykorzystania w praktyce.

  • Spec BDD to za mało – Story BDD na ratunek – Leszek Prabucki / KNP Labs

    W trakcie prezentacji powiemy czym jest Story BDD oraz poznamy różnice między Story a Spec BDD. Omówimy jak te obie metodologie tworzą spójną całość na przykładach napisanych przy użyciu narzędzi dla języka PHP takich jak Behat i PHPSpec2.

Dzięki naszym sponsorom czekają na nas dodatkowe atrakcje:

  • Uczelniany Zarząd Samorządu Studenckiego – zapewni nam salę w CKS Mrowisko
  • Firma RES – sponsoruje darmowe wejściówki do Klubu Studenckiego Spirala
  • Sensio Labs UK – dostarczy darmowe piwo i pizzę dla wszystkich obecnych na spotkaniu

W związku z powyższym po części oficjalnej zapraszamy wszystkich rozmowy przy piwie i pizzy w klubie Spirala.

Pobieranie dokumentów MongoDB poprzez @ParamConveter

Symfony2 w swojej standardowej dystrybucji posiada zainstalowaną i skonfigurowaną paczkę SensioFrameworkExtraBundle. Dorzuca ona do Symfony kilka wygodnych anotacji adnotacji, dzięki którym bezpośrednio w przypisach kontrolera możemy definiować Routing, Cache, Szablon widoku oraz konwertować parametry routera na encje bazy danych przy pomocy @ParamConverter.

Podczas pisania bundla Notyfikacji dla Symfony2 stwierdziłem, że skorzystam z tego mechanizmu do pobierania danych z MongoDB. Szybki research pokazał mi, że kiedyś była taka możliwość, jednak jeszcze przed wydaniem SF2 Fabien wyrzucił tą funkcjonalność kosztem możliwości skonfigurowania własnego Entity Managera, z którego jest pobierany obiekt Doctrine ORM.

Pozostało mi nic innego jak zgodnie z sugestią napisać swój własny @ParamConverter i skonfigurować jego serwis w odpowiedni sposób. I nie było by w tym nic super trudnego gdyby nie fakt, że prawdopodobnie znalazłem błąd w samym frameworku, który powodował globalne przerwanie procesu konwersji w przypadku nieznalezienia „Entity namespace alias”, a przecież w moim konkretnym przypadku chciałem skorzystać z Document Managera i co mnie obchodzi, że akurat w tym bundlu nie ma zdefiniowanych encji? ;)

Integracja Twitter Bootstrap z projektami Symfony2

Bootstrap is a toolkit from Twitter designed to kickstart development of webapps and sites. It includes base CSS and HTML for typography, forms, buttons, tables, grids, navigation, and more.
To tylko w kwestii rozjaśnienia tematyki osobom niezaznajomionym, po więcej informacji odsyłam na  DevBloga Twittera i oficjalne demo Bootstrapa. Około 2 miesiące temu rzeczony projekt narobił w sieci dość sporo zamieszania, po tym okresie czasu myślę, że można już na chłodno ocenić jego przydatność i stabilnie używać w większych projektach (trochę błędów zostało poprawionych ;) ). A dodatkowo wydana została JavaScriptowa część Bootstrapa.