Specyfikacja systemu
Przegląd celów systemu
System ma na celu umożliwienie użytkownikowi Internetu, który posiada minimalną
wiedzę na temat technologii tworzenia stron WWW stworzenia swojego własnego
serwisu internetowego w oparciu o interfejs graficzny będący jak najprostszy
i intuicyjny. Do zainstalowania i rozpoczęcia użytkowania systemu będzie
potrzebna wiedza na temat środowiska pracy skryptu, która zostanie opisana
w dokumentacji.
Inną ważną możliwością systemu są jego duże możliwość co do konfiguracji
i "podkręcanie" systemu przez użytkowników znających PHP w stopniu podstawowym
zgodnie ze wskazówkami opisanymi w dokumentacji oraz większe modyfikacje
i dostosowanie systemu w 100% do własnych potrzeb dla użytkowników znających
się na dobrze na programowaniu w PHP.
Program przeznaczony do tworzenia interaktywny serwisów z podziałem na role
administracji w nim i różne poziomy uprzywilejowania użytkowników.
Środowisko operacyjne oraz środowisko tworzenia systemu
Środowiskiem docelowym jest serwer WWW udostępniony w sieci Internet pracujący
pod kontrolą systemu z rodziny Linux lub Unix i serwerem Apache. Wymagania
te jednak nie mają dużego znaczenia ponieważ skrypt nie stosuje funkcji specyficznych
dla tej kombinacji i może pracować na każdym serwerze na który można zainstalować
interpreter języka PHP.
System dane przechowuje w bazie danych przez co jego wymagania co do standardu
SQL nie mogą być wygórowane. Aby aplikacja działała potrzebna jest baza danych
która ma zbliżone standardy obsługi zapytać do SQL-92. System wykonuje tylko
podstawowe zapytania wraz ze złączeniami i nie może wymagać obsługi podzapytań.
Środowiskiem tworzenia skryptu powinien być system z rodziny Linux. Wybranie
systemu Linux jest spowodowane tym iż jest on coraz częściej spotykany na
serwetach WWW obok systemu Unix do którego jest podobny i aplikację można
testować w wiarygodnych warunkach. Drugim powodem wybrania systemu Linux
są jego ogromne możliwości oferowane programiście.
Interfejs oraz przepływ danych
Głównym źródłem danych jest baza danych. PHP komunikuje się z bazą za pomocą
wbudowanych funkcji dla wybranej bazy. System będzie miał możliwość współpracy
z różnymi bazami danych dzięki zastosowaniu warstwy abstrakcji SQL-layer
która pośredniczy między bazą a PHP co da możliwość jej zmiany na inną w
ciągu kilkudziesięciu minut. Napisanie sterowników do obsługi innej bazy
danych sprowadza się do kilku zmian w pliku ze sterownikiem, a większość
czasu zajmie przeniesienie tabel z jednej bazy do drugiej.
Dodatkowo system posiada logi w których zapisuje się informacje o akcjach
wykonanych przez użytkownika, co wymaga dostępu do systemu plików dysku serwera.
Jeżeli zapisanie logów nie będzie możliwe to można je wyłączyć, a funkcje
przejmie system kontroli adresów IP który będzie włączony cały czas.
System zbudowany będzie na bazie modułów które pozwolą na jego bezproblemową
rozbudowę i łatwe modyfikacje. Każdy moduł będzie zawierał własne opcje konfiguracyjne
i tabele w bazie danych w razie potrzeby oraz współdzielone opcje konfiguracyjne
z resztą systemu.
Głównym trzonem będzie 'silnik' który utworzy całą stronę włączając do jej
podstawowego szkieletu moduły zawierające odpowiednie działy. Będzie on zawierał
funkcje które posłużą modułom. Ograniczy to nieco możliwości ich konfiguracji,
ale też zredukuje ilość miejsc w których później będzie trzeba wprowadzać
poprawki.
System będzie potrzebował metody śledzenia użytkowników na swoich stronach.
Zostanie to rozwiązane własnym skryptem sesji ponieważ mechanizm sesji z
PHP nie będzie potrzebny. Użytkownik powinien przyjąć plik Cookie z jego
identyfikatorem, który odpowiada rekordowi w bazie danych systemu.
Wymagana funkcjonalne
Wymagany jest interpreter PHP w wersji 4.0.6 lub nowszy. Jest możliwe i całkiem
prawdopodobne że system będzie mógł działać nawet na PHP w wersji 3, jednak
nigdy nie będzie testowany na tej wersji. PHP nie musi mieć opcji 'register_globals'
włączonej ponieważ skrypt będzie przetwarzał tablice $HTTP_GET_VARS i $HTTP_POST_VARS
w celu uzyskania danych z zewnątrz.
Od strony klienta wymagana jest przeglądarka internetowa zgodna ze standardem
HTML 4.01 i obsługująca arkusze stylów CSS w wersji 1. Administrator systemu
powinien zaopatrzyć się w przeglądarkę obsługującą dodatkowo język JavaScript
w wersji 1.2 chociaż nie jest to konieczne.
Interfejs graficzny powinien być tak skonstruowany aby można było wyświetlać
stronę na starszych wersjach popularnych przeglądarek i przeglądarkach tekstowych.
Wszelkie wstawki typu DHTML są dozwolone pod warunkiem że istnieje dla nich
alternatywa w postaci zwykłych statycznych stron.
Wymagania dotyczące efektywności działania
System będzie na tyle efektywny na ile szybki jest serwer na którym go zainstalowano.
Drugą sprawą jest konfiguracja systemu przez administratora i jego przeładowanie
załączeniem wszystkich opcji.
Od strony klienta szybkość zależy od jego łącza i przeglądarki jakiej używa.
Ilość grafiki zaleca stosowanie przeglądarki z poprawną obsługą protokołu
HTTP 1.1.
Obsługa wyjątków
Dane z formularzy i przekazywane w ciągu adresu URL są zabezpieczone przed
wprowadzeniem do bazy danych powojujących błędy w składni za pomocą odpowiednich
funkcji.
Priorytety implementacyjne
Do priorytetów należy rozwinięcie systemu w kierunku stworzenia sterowników
do innych popularnych baz danych i interfejsu OBDC.
Modyfikacje
W przyszłości nastąpi wzbogacenie istniejących modułów i dodawanie nowych
rozszerzeń do systemu.
System powinien być łatwy w modyfikacji dzięki zastosowaniu spójnych reguł
nazewnictwa dotyczących zmiennych, funkcji i nazw plików.
Wewnętrzne zmienne oraz funkcje powinny być formatowane stylem "wielbłądzim"
czyli z użyciem dużych i małych liter. Zmienne zewnętrzne czyli takie przekazywane
za pomocą metod POST i GET powinny być pisane wyłącznie małymi literami z
poszczególnymi członami rozdzielonymi za pomocą znaku "_".
Pliki i katalogi będą miały nazwy pisane tylko i wyłącznie małymi literami,
a poszczególne człony będą rozdzielone znakiem myślnika "-". Reguła ta może
nie dotyczyć plików wygenerowanych przez sam system takich jak logi.
Sugestie dotyczące projektu
Zachowanie spójności kodu źródłowego, jego poprawne formatowanie w celu braku
problemów z odczytaniem i komentowanie poczynionych zmian.
... powrót do strony głównej ...