Dziś jest sobota, 31 lipca 2010 roku (z kalendarza...)

Open Power Forms na start

Icon

25.07.2009, 09:46

Projekty

Komentarze (7)

Powrót

Wczoraj ostatecznie wystartował kolejny projekt z grupy OPL, czyli Open Power Forms poświęcony w całości konstrukcji formularzy ze wsparciem OPT w tle. Nazwa powinna być znajoma, bowiem takie coś powstawało już dla OPT 1, ale właściwie nigdy nie zostało ukończone i choć w typowych przypadkach moim zdaniem nawet dzisiaj sprawuje się lepiej, niż taki Zend_Form, to jednak w nietypowych wychodziły na jaw poważne problemy.

Czym ma być OPF?

OPF ma być obiektowym systemem budowy i obsługi dynamicznych formularzy. Jako programiści, określamy pola, reguły poprawności danych oraz akcję, jaka ma zostać podjęta po ich poprawnym wypełnieniu, natomiast biblioteka zajmie się całą logiką procesu przetwarzania i obsługą błędów. Od strony skryptu będzie dość podobna w użyciu do systemów, jakie już teraz można spotkać, lecz zupełnie inaczej zostanie rozwiązana sprawa prezentacji. Inne systemy generują cały kod HTML z poziomu PHP, przez co dostosowanie wyglądu formularza do potrzeb wymaga operowania skomplikowaną obiektówką, pracy na wysokim poziomie abstrakcji lub jeszcze innych bardzo dziwnych zabaw. W przeciwieństwie do nich, OPF zostanie tutaj wykonany jako nadbudówka systemu szablonów Open Power Template, wykorzystując w pełni jego mechanizmy wsparcia dla generowania formularzy (komponenty, snippety, sekcje itd.). Całość wyglądu będzie można zdefiniować i ostylować w jednym miejscu jako namacalny, normalny kod HTML i po prostu zaaplikować tam, gdzie nam to potrzebne. Jednocześnie, gdy zajdzie potrzeba, dane pole może uzyskać swój specyficzny kod, i to dokładnie w miejscu użycia. Unikamy tym samym mnożenia bytów ponad miarę i upraszczamy kod, czyniąc go łatwiejszym w zarządzaniu. Warto także wspomnieć, że OPT będzie składać takie rzeczy w trakcie kompilacji szablonów, więc całość będzie wykonywać się dużo szybciej, niż to jest możliwe w przypadku czystego PHP.

Planowane możliwości

Niektóre z planowanych możliwości:

  1. Warstwa logiczna traktująca formularze na równi z polami formularza, dzięki czemu będzie możliwe komponowanie większych formularzy z mniejszych.
  2. Duża ilość dostępnych kontrolek do wykorzystania w formularzach.
  3. Duża ilość przemyślanych kontrolerów poprawności danych oraz filtrów.
  4. Wsparcie i warstwa abstrakcji dla AJAX.
  5. Programista uniezależniony od konkretnej technologii obsługi formularzy w przeglądarkach. Na pewno będzie istnieć wsparcie dla Web Forms 2.0, zastanawiamy się także nad XForms, ale tu jest to uzależnione od tego, czy technologia ta będzie dalej rozwijana i implementowana.
  6. Bezpieczeństwo i systemy ochrony przed popularnymi atakami wykorzystującymi formularze.
  7. Wbudowane (acz opcjonalne) wsparcie dla Doctrine.

Rozwój biblioteki

Zważywszy, że dopiero wczoraj w repozytorium powstała struktura katalogowa dla projektu, specjalnie nie ma jeszcze co pokazywać. Niemniej, wsparcie programistów PHP potrzebne jest już teraz. Na forum grupy Invenzzia założony został temat, w którym można zgłaszać swoje sugestie i pomysły, które są bardzo mile widziane.

Jeśli chodzi o wymagania, to plany są następujące:

  • PHP 5.3.0+
  • OPL 2.1.0+
  • OPT 2.1.0+

Na dzień dzisiejszy wydają się one wysokie, ale proces tworzenia i testów trochę zajmie i trzeba myśleć przyszłościowo. Przestrzenie nazw nie będą jeszcze wykorzystywane, ale głównie dlatego, że nie są one przewidziane do wykorzystania w OPL 2.*. Być może później po prostu przeprowadzi się konwersję i wyda wszystko jako OPL 3, ale to są póki co bardzo odległe plany.

Pierwsze wydania będą pracować jeszcze na OPT 2.0, jednak najprawdopodobniej trzeba się tam będzie nieco więcej opisać przy definiowaniu formularzy w szablonie. Dopiero w wersji 2.1 zostanie wprowadzona nowa funkcjonalność m.in. związana z formatami danych, która pozwoli na jeszcze lepszą integrację.

Zakończenie

Seria OPL powoli zaczyna wychodzić na prostą. Udało się już wydać jedną stabilną bibliotekę wraz z jądrem, trwają prace nad OPC, a teraz zaczyna się rodzić OPF. Na szczęście moce przerobowe nie są zagrożone, gdyż od niedawna w Invenzzii pojawił się nowy programista, Amadeusz "megawebmaster" Starzykiewicz, który rozpoczął przejmowanie OPC, a wcześniej pomógł też niemało przy autoloaderze OPL-a (głównie dzięki jego staraniom stał się on tak zaawansowany) i dostarczył do OPC autoloader dla modeli Doctrine, dzięki czemu integracja z tą biblioteką stała się jeszcze łatwiejsza. Tak więc wszystko posuwa się naprzód.

Powrót

Komentarze

Napisał eRIZ w sobotę, 25 lipca 2009 o 10:57

No przyznam, że z PHP 5.3 to jednak pojechaliście... :P

Napisał Nowaker w sobotę, 25 lipca 2009 o 11:45

@eRIZ, wydaje mi się, że OPT 2.0 też jest na PHP 5.3, ale Zyx dołączył taki pliczek Php53.php do paczki i działa na 5.2 ;-) Tam są chyba implementacje nowych struktur danych z SPL-a w PHP 5.3, ale głowy nie dam - bo nie chce mi się odpalać IDE ;)

Napisał Zyx w sobotę, 25 lipca 2009 o 12:14

Dokładnie - OPT też jest poniekąd pod PHP 5.3 pisany, a na 5.2 działa dzięki plikowi Php52.php z implementacjami paru brakujących klas z SPL-a. Natomiast OPF będzie także wykorzystywać nowe elementy składni języka, jeśli zajdzie potrzeba.

Napisał megawebmaster w sobotę, 25 lipca 2009 o 14:30

Aż mi głupio normalnie :) No cóż - dobre trzeba wspierać. Trzymajcie się mocno - nadchodzi era bibliotek OPL :D Hehe, trzeba się postarać i pociągnąć te projekty. Przy okazji ucząc się mnóstwa ciekawych rzeczy i technik programowania - tego nigdy za mało.

Co do wymagań - według mnie są zupełnie normalne, OPF dopiero powstaje, praktycznie od zera, czyli licząc się z czasem to wersja stabilna wyjdzie za wystarczająco dużo czasu, żeby implementować to od razu pod PHP 5.3, a nawet jakby - zawsze można się postarać o kompatybilność wsteczną z PHP 5.2

Napisał Nowaker w sobotę, 25 lipca 2009 o 23:22

Ja raczej lobbowałbym zastosowanie "standardowej" składni z 5.2. Nie wszyscy administratorzy spieszą z aktualizowaniem wszystkiego na bieżąco.

Napisał Felix w niedzielę, 26 lipca 2009 o 07:14

A możesz jakiś fragment kodu wkleić? Tak podglądowo, jakby to miało wyglądać od strony programisty.

Napisał Zyx w niedzielę, 26 lipca 2009 o 09:30

Nowaker -> hmmm... wiesz, jak się okaże, że ta nowa składnia nie jest do niczego potrzebna, to jej nie będzie :P. Tak jak pisałem, przestrzeni nazw raczej na pewno obawiać się w OPL 2.x nie należy, bo to już jest zbyt duża ingerencja w już napisane API.

Felix -> możesz rzucić okiem na repozytorium SVN. Są tam już jakieś wstępne pliki poglądowe - niewiele wprawdzie, bo to dopiero jedna rewizja była, ale stopniowo ich ilość będzie rosnąć.

Pamiętaj, dbaj o kulturę wypowiedzi oraz dyskusji w sieci.

Skomentuj

NickInformacja
E-mailNa wypadek potrzeby kontaktu z autorem (niepublikowany)
BlogNie zapomnij o http://
LayoutNapisz tu, czy widzisz dzienny czy nocny layout.
WpisFormatowanie wikiKomentarze są moderowane - przeczytaj zasady!

Na Zyxist.com panuje swoboda wyrażania opinii oraz krytyki pod dowolnym adresem. Jedyny warunek: musi być ona kulturalna i rzeczowa. Na chamstwo, prostactwo lub jawne obrażanie kogokolwiek nie ma tu miejsca i takie komentarze są bardzo szybko usuwane. Jeśli zamierzasz polemizować z treścią wpisu, wpierw uważnie ją przeczytaj.

© Tomasz "Zyx" Jędrzejewski 2005 - 2010 | Wykonanych zapytań: 2 | Serwer wirtualny zapewnia