Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM    Subskrybuj kanał ATOM dla tagu php Kanał ATOM (tag: php)

Autor wpisu: widmogrod, dodany: 11.07.2010 20:29, tagi: php, zend_framework

Niezależnie od rodzaju, wielkości i skomplikowania aplikacji internetowej można wyróżnić w niej kilka podstawowych (prawie zawsze występujących) elementów; autoryzacja, model, prezentacja danych, itp.

Przykład wyglądu i zastosowania KontorX_DataGrid

KontorX_DataGrid

Ten wpis chciałbym poświęcić bardzo powszechnemu elementowi – prezentacji, a dokładniej prezentacji danych tabelarycznych z j.ang. „data grid”. Notorycznie napotykamy ten element w prawie każdym panelu administracyjnym. Przybiera on różne formy w zależności od postawionych wymagań. Można wyróżnić:

Formy prezentacji danych tabelarycznych

  • Podstawową – dane są prezentowane w tabeli HTML bez możliwości sortowania, filtrowania i stronicowania
  • Rozszerzoną - tabela z możliwościami stronicowania i filtrowania kolumn danych
  • Dedykowaną- rozwiązanie jest połączeniem w/w typów z elementami rozszeżającymi, np.:
    • tabelę z możliwościami eksportowania danych tabelarycznych do różnych formatów (csv, pdf, itp…)
    • spersonalizowany wygląd komórek danych w zależności od typu: data, godzina, waluta, url, grafika, ….
    • możliwość edycji danych w bezpośrednio w wierszu tabeli (inline editing)
    • prezentacja danych za pomocą biblioteki JavaScript (np. Ext.DataGrid i inne,… )

Rodzaje istniejących bibliotek poruszających ten problem

Natywne PHP:

JavaScript + PHP:

Powyższe biblioteki implementują mniej lub więcej form prezentacji danych. Każda z nich wymaga wykonania kilku „ruchów” by je skonfigurować ale czy można prościej?… Tak. Dlatego chciałbym w tym wpisie omówić bibliotekę – KontorX – jest to biblioteka, którą nieprzerwanie rozwijam od  prawie 3 lat. Bibliotekę KontorX zawiera w sobie wiele elementów a jednym z nich jest KontorX_DataGrid.

Czym jest biblioteka KontorX_DataGrid

Biblioteka umożliwia elastyczne prezentowanie danych tabelarycznych w dowolny sposób i prawie w dowolnej formie. Poniżej przedstawiam główne cechy biblioteki:

  • Adaptowanie danych różnych typów np. Doctrine, Zend_Db_Table, Zend_Db_Select, natywna tablica – array, …. (więcej w budowie :) )
  • Różnorodna forma prezentacji danych. Data_Grid prezentuje dane jako czysty HTML oraz dynamiczny widok ExtJS Grid. Biblioteka pozwala również na implementacje nowych sposobów prezentacji danych np. jako plików .csv, .xls, .pdf.
  • Integracja z Zend_Form.
  • Zbiór gotowych rozwiązań. Biblioteka posiada już zaimplementowane elementy odpowiedzialne za filtrowanie, grupowanie i stronicowanie danych.
  • Elastyczność i rozszerzalność poprzez dopisywanie plugin’ów.

Powyższy opis może nie wiele mówić dlatego zapraszam do przykładów demonstrujących, niektóre możliwości komponentu: http://kontorx.widmogrod.info/#http://kontorx.widmogrod.info//KontorX/DataGrid/example1.php

DataGrid – „Out of the box”

Jeżeli korzystasz z ZF wystarczy że pobierzesz bibliotekę z Google Code umieścisz ją w include_path aplikacji i zaimplementujesz powyższy kod w kontrolerze wybranej akcji przekazując model danych (na chwilę obecną zaimplementowałem obsługę Zend_Db_Table, Zend_Db_Select, array).

Biblioteka posiada już zaimplementowany domyślny sposób prezentacji danych więc niczym nie musisz się martwić  (jedynie tabelę możesz ostylować w/g własnych upodobań :) )

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Autor wpisu: batman, dodany: 11.07.2010 18:20, tagi: php

Wietrzenia domowej biblioteczki ciąg dalszy. Dzisiaj nie lada gratka dla osób zainteresowanych AJAXem. Mam dla was dwie książki o tej tematyce: AJAX i PHP. Tworzenie interaktywnych aplikacji internetowych oraz Ajax. Zaawansowane programowanie.

Jeśli chcecie zdobyć te książki, wystarczy że odgadniecie wagę mojego kota. Dla ułatwienia podam kilka szczegółów: kotka, wiek – niewiele ponad 3 lata, rasa – kotka europejska pospolita, kolor – rudy (rudy to nie kolor, rudy to charakter ;) ).

Na zgłoszenia czekam do końca jutrzejszego dnia (do północy 12.07.2010). Powodzenia!

Autor wpisu: Zyx, dodany: 10.07.2010 19:25, tagi: php

Mój ostatni wpis o MVC oraz eksperymentalnym frameworku Trinity wywołał wyjątkowe poruszenie. Jednym z celów eksperymentu jest m.in. zerwanie z jedynym słusznym podziałem kontroler/akcja i udostępnienie programiście większej swobody w budowie kontrolerów. Pojawia się tu jednak problem z ponownym wykorzystaniem kawałków kodu. Dlatego zasiadłem z powrotem nad kartką papieru i odkurzyłem koncepcję zastosowaną w jednym z moich ubiegłorocznych projektów.

Autor wpisu: batman, dodany: 09.07.2010 18:00, tagi: php

Moda jest wszędzie. I nie chodzi mi tutaj o kraciaste koszule programistów. Programowanie, podobnie jak inne dziedziny naszego życia, ulega wielu wpływom. Programowanie w PHP ulega tym wpływom jeszcze bardziej. Dzieje się to głównie za sprawą opinii jaka za tym językiem się ciągnie. Programiści chcąc ją poprawić, chwytają się wszelkich możliwych sposób, by udowodnić, że PHP jest na czasie ze wszystkimi nowinkami / pseudo-standardami.

Jedną z takich nowinek jest bardzo popularny ostatnio MVC. Od dobrych kilku miesięcy (a może i lat) jakość aplikacji PHP oceniana jest po tych trzech magicznych literkach. Jeśli na pytanie “Czy Twoja aplikacja została napisana w duchu MVC?” padnie odpowiedź, że nie, wówczas od razu traci uznanie. Najzabawniejsze w tej całej sytuacji jest to, że niewiele osób wie, czym tak naprawdę MVC jest, oraz że nie jest to jedyna słuszna droga do tworzenia aplikacji. Jeśli spojrzymy na dowolne forum poświęcone programowaniu w PHP, bardzo szybko znajdziemy na nim dziesiątki tematów z pytaniami w stylu “Gdzie mam umieścić widok?” lub “Czy ta klasa to już model?”. Winę za to ponosi dosyć luźna interpretacja tego wzorca oraz techniczne ograniczenia języka. Zasadą przyświecającą MVC jest oddzielenie od siebie warstw aplikacji. I tutaj zaczynają się schody. Oddzielenie warstw może odbywać się na kilku poziomach. Można stworzyć jeden plik, w którym znajdzie się dostęp do danych, manipulacja danymi oraz ich prezentacja i będzie można powiedzieć, że taki plik został stworzony zgodnie z MVC (gdzie jest napisane, że każdy element tej układanki musi być w osobnym pliku?). Można również podzielić to na dziesiątki plików, dodać helpery, pluginy, router, dispacher i inne cuda. Reguły na to nie ma.

Czy jesteśmy skazani na MVC? Niestety tak. Podobnie jak kiedyś popularny był Singleton, tak teraz panuje moda na MVC (w najczystszej postaci). Stąd też nieco prowokujący tytuł. Zamiast na ślepo iść za modą, warto zastanowić się, czy w naszym przypadku ma ona rację bytu. Może okazać się, że jedna z literek jest nam kompletnie niepotrzebna, a może któraś z nich będzie wymagała dodatkowego podziału na kolejne elementy? W końcu może okazać się, że nasze każda literka w naszym MVC, ma swoje własne MVC w środku. Niestety nie ma dobrej alternatywy dla modelu wielowarstwowego. W chwili obecnej jest to najlepsze podejście to tworzenia aplikacji i tylko od nas zależy jak z niego skorzystamy.

Autor wpisu: sokzzuka, dodany: 06.07.2010 11:17, tagi: php

Jeżeli dobrze zrozumiałem czytając jeden z wpisów na internalsach, najbliższe wydanie php – 5.2.14 ma być ostatnim „regularnym” wydaniem z tej gałęzi. Oznacza to, że odtąd będą wypuszczane będą tylko dla tej wersji poprawki bezpieczeństwa. Natomiast w niedalekim czasie również ta aktywność będzie zaprzestana i php 5.2.x podzieli los php 4 i zostanie zaprzestany wszelki support dla tej wersji.

Uważacie, że jest to dobra decyzja, czy też prace w 5.2.x powinny być kontynuowane i jeżeli tak, to jak długo ?

Autor wpisu: sokzzuka, dodany: 02.07.2010 14:21, tagi: php

W najnowszym wpisie na ie blogu zaprezentowane zostało wsparcie dla renderowania zawartości tagu canvas na karcie graficznej (gpu).

Trzeba przyznać, że MS zrobił duży krok naprzód aby zatrzymać spadek popularności swojej przeglądarki. Jeżeli dalej tak pójdzie, to Googlowy Native Client pójdzie w odstawkę, a gry będzie się pisać na canvasie, który stanie się bardziej uniwersalnym API dla 3d od OpenGl, a co więcej będzie niezależny od platformy. Już teraz da się pisać gry na canvasie – polecam obejrzeć: demo doomopodobnej gry opartej właśnie na tym tagu i JS.

Autor wpisu: batman, dodany: 01.07.2010 18:00, tagi: php

Wkrótce czeka mnie przeprowadzka i w związku z tym postanowiłem przewietrzyć nieco moją biblioteczkę IT. Mam kilka książek, z których już nie korzystam, a grzechem byłoby je wyrzucić. Od razu zaznaczę, iż są to książki używane, wydane kilkanaście (lub więcej) miesięcy temu. Jeśli do którejś była dołączona płyta, to prawie na pewno ją zgubiłem.

Na pierwszy ogień idzie PHP 5 w praktyce. Tym razem zdobycie książki nie będzie zależało od Waszego refleksu. Książka trafi w ręce osoby, która wyśle do mnie wiadomość (link do formularza znajduje się w prawej kolumnie) zawierającą najbliższą rzeczywistości wartość mojego współczynnika BMI ;)

Powodzenia!

Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.