Blog php

php news, php tutorial – porady programisty

Co powinien posiadać framework?

poniedziałek
gru 7,2009

Jak już wiemy czym powinien być, należało by się zastanowić co powinien posiadać. To już cięższa sytuacja. Zajmiemy się opisem prostego framework, który dostarczy nam solidnego szkieletu na podstawie którego napiszemy prostą aplikację webą. Moim zdaniem taki framework powinien posiadać następujące elementy:

1. System do obsługi bazy danych
Często zachodzi potrzebna nagłej zmiany w aplikacji z jednego systemu bazy danych na drugi. Gdyby aplikacja nie posiadała tego typu biblioteki i była dosyć rozbudowana moglibyśmy dniami poszukiwać fragmentów w których użyte są funkcje od starej bazy danych. Zaprojektowanie biblioteki, bądź też użycie bardzo dobrych gotowych projektów w znacznym stopniu skróci nam czas przejścia na nowa bazę danych, ponieważ wszytko jedziemy posiadać w jednym miejscu. Bardzo często też biblioteki tego typu posiadają wbudowane wsparcie dla różnych baz danych, wtedy wystarczy ustawić odpowiednio w konfiguracji i system działa już na innej bazie danych, np: z sqlite na mysql. Trzeba tu jednak pamiętać, aby nie stosować konstrukcji nie dostępnych przez inne bazy, albo napisać (o ile to możliwe) poprawki na te konstrukcje by pasowały do wybranej bazy danych.
- Dzięki takiemu narzędziu możemy w prosty sposób dopisać cache do bazy danych, co przy części zapytań na pewno wpłynie korzystanie na czas wykonywania skryptu.
- Pobieranie informacji o tym, co się działo z baza danych. W tym punkcie chodzi głownie o liczenie zapytań jak i wypisanie, ile zajęło wykonanie poszczególnego zapytania.
- Debugowanie. W bardzo prosty sposób można wyświetlić jakie czynności zostały wykonane na bazi danych, jakie zapytania zostały użyte i z jakim skutkiem się zakończyły
- Prostsza obsługa błędów. Nie musimy się tak martwić co się dzieje z zapytaniem, czy zawiera błędną składnię, bądź też czy powoduje jakieś inne komplikacje. Odpowiednio napisany kod poinformuje nas o tym automatycznie, w php4 wyświetli błąd lub też zakończy wykonywanie skryptu, w php5 mamy dużo bardziej potężne narządzie jakim są wyjątki, wiec możemy obsłużyć taka sytuacje bardzo wygodnie.
- Ujednolicone Api. Punkt nie wymaga specjalnego opisywania, chodzi w nim głównie o to że posiadamy metody które zwracają ustalone wartości, często w bardzo przystępny sposób dla programisty.

2. Obsługa błędów i wyjątków
- Napisane biblioteki odpowiedzialne za wyświetlanie jak i obsługę błędów i wyjątków. Szczególnie przydatne podczas pisania aplikacji.

3. Sesje
- Różnego rodzaju mechanizmy, wspierające sesje. Często jest to handler sesji dostępnych standardowo w php, napisany tak że sesje że sesje zapisywane są w bazie danych, co daje nam dużo większe pole manewru. Dzięki zastosowaniu tego rozwiązania, bardzo prosto możemy napisać modyfikacje, która pokaże nam kto jest aktualnie on-line na stronie

4. Wyjście i wejście
- Często nazywane także Request’em (żądanie) i Response (odpowiedz).
- Zadaniem Request’a jest przechwycenie danych wysłanych do aplikacji przez klienta i odpowiednie ich filtrowanie, w celu zabezpieczenia systemu przed rożnymi próbami włamań. Nie dość że podnosi to znacznie bezpieczeństwo to użytkowanie takiego mechanizmu jest naprawdę przyjemne.
- Zadaniem Response jest wysłanie odpowiedzi do klienta i tu zależnie, czy to aplikacja jest pod konsole, czy też webowa, różne klasy powinny powinny się tym zajmować. Często pomija się tą bibliotek ponieważ w php głównie pisze sie aplikacje przystosowane tylko do jednego środowiska (konsola/web).

5. System szablonów
- Bardzo ważna część aplikacji, ponieważ pozwala na oddzielenie warstwy biznesowej od wyglądu. Czyli prostszymi słowami, system szablonów zajmuje sie wygenerowanie ze zmiennych jakie zostaną mu przekazane, odpowiedniego kodu (najczęściej HTML).
- Można tutaj używać już gotowych bibliotek jakich jak np.: OpenPowerTemplates (PHP5) i Smarty (PHP4), bądź też postawić na prostotę i korzystać ze zwykłej składni php. Nie polecam pisania własnego systemu szablonów, aktualnie systemy szablonów stoją na takim poziomie, ze trudno jest coś nowego i szybszego wymyślić.

6. Wsparcie dla języka
- Stosowany w bardziej zaawansowanych aplikacjach, pozwala na prowadzenie strony wielojęzycznej (wspierającej wiele języków), zazwyczaj silnie powiązany z system szablonów.

7. Jądro systemu
- Najważniejsza część aplikacji (chociaż nie zawsze zawarta w framework’u!) z naszego punktu widzenia. Decyduje ona o tym, jak poszczególne fragmenty zostaną połączone i w jaki sposób dalej będzie się rozbudowywać naszą aplikacje o potrzebne elementy. Bardzo często używa się tutaj jakiś wzorców, takich jak na przykład MVC.

Czym powinien być framework?

środa
lis 25,2009

Framework z definicji jest “szkieletem” na którym będą budowana jakaś aplikacja, innymi słowy kodem skrócającym w znacznym stopniu czas powstawania, testowania, debugowania właściwej aplikacji. Często stosuje się różnego rodzaju wzorce projektowania, które ułatwia nam późniejszą prace z framework’iem, ale teraz nie to jest to dla nas najistotniejsze. Określenie że framework może być po porostu zbiorem gotowych (przemyślnych) klas, albo funkcji o jasno określonym Api, według mnie jest najbardziej poprawne, gdyż spełnia założenia postawione na początku tekstu. Bardzo ważna funkcja pełniona przez framework’a jest to, że nijako wymusza (ale w ten pozytywny sposób!) pisanie aplikacji według ustalonego schematu, tym samym rzadko pojawi nam się sytuacja, w której nie będziemy wiedzieć “gdzie to do cholery, jest…” :-)

Kto powinien pisać i używać?

wtorek
lis 10,2009

Kto powinien pisać i używać? To pytanie na pewno przemknęło Wam w myślach, czy aby na pewno powinienem brać się za pisanie własnego framework’a? Moje stanowisko w tej sprawie pozostaje niezmienne, mianowicie: “Ewolucja, nie rewolucja”. Tak samo, pisanie własnego framework’a bardzo często mija się z celem, czemu:

1. Czy jesteś w stanie napisać samodzielnie kompletnego framework’a?
2. Czy jesteś w stanie samodzielnie dalej go rozwijać?
3. Czy znajdziesz odpowiednio duże grono odbiorców, którzy to zajmą się dalsza rozbudowa i poszukiwaniem błędów włącznie z ich zgłaszaniem i poprawą?
4. Czy nie lepiej użyć już dojrzałej aplikacji? Która ma grono deweloperów pracujących nad jej rozwojem i tysiącami użytkowników którzy skrupulatnie odnajdują błędy, tu dzież rozbudowują go dodając nowe komponenty?

Chciałem porostu zaznaczyć, że istnieje masa dobrze napisanych Framework’ów i odkrywanie na nowo koła jest pewnego rodzaju cofaniem się, a zbudowanie ludzi aktywnie rozwijających projekt jest naprawie bardzo karkołomnym zadaniem. Także nie potępiam prób napisania czegoś samemu, na pewno pozwoli Ci to nabyć nowe umiejętności które pogłębią Twoja wiedzę, zarówno teoretyczna i praktyczną, ale jak już wspomniałem wcześniej, najlepiej korzystać z gotowych rozwiązań – jest ich naprawdę tyle, że na pewno znajdziesz coś idealnego dla siebie.