Witaj, Gościu O nas | Kontakt | Mapa
Wortal Forum PHPEdia.pl Planeta Kubek IRC Przetestuj się!

Projektowanie aplikacji w PHP. Część druga.

Centralizowanie konfiguracji.

Centralizacja konfiguracji jest bardzo istotna w każdej aplikacji i jest jednym z najbardziej istotnych w konserwacji, czynników. Istnieje kilka sposobów na rozwiązanie tego problemu, lecz nie można wyróżnić najlepszego z nich - każdy oferuje inną elastyczność i wydajność. Najbardziej popularnymi sposobami na przechowywanie konfiguracji są pliki XML, pliki INI i standardowe pliki PHP. Poniżej zamieszczono przykłady konfiguracji połączenia z bazą danych.

PHP

<?php
 $settings['db']['user'] = 'root';
 $settings['db']['pass'] = '';
 $settings['db']['host'] = 'localhost';
 $settings['db']['name'] = 'test';
?>

INI

; settings
[db]
user = root
pass = 
host = localhost
name = test

XML

<settings>
 <db>
  <user>root</user>
  <pass></pass>
  <host>localhost</host>
  <name>test</name>
 </db>
</settings>

Wydaje mi się, że nie trzeba niczego tłumaczyć - każdy plik zawiera nazwę użytkownika, hasło, nazwę hosta i domyślną bazę danych. Korzystanie z pliku PHP jest bardzo proste - należy po prostu dołączyć go funkcją "require_once()" i korzystać ze zdefiniowanej tablicy "$settings". Wersja PHP jest najtrudniejsza w utrzymaniu - konfiguracja taka wygląda jak zwykły kod i niełatwo jest ją przeczytać.

Zastosowanie pliku INI wymaga użycia funkcji "parse_ini()" do pozyskania danych do tablicy w PHP. Czytanie pliku INI jest już zdecydowanie prostsze, ale nadal mogłoby być lepiej. Wersja XML jest niestety najwolniejsza - wymagana jest bowiem analiza całego pliku i dopasowywanie ciągów. Pliki XML są z kolei najłatwiejsze w czytaniu i rozumieniu. Format XML jest także obsługiwany przez największa ilość programów, nie wymaga żadnych wyjaśnień dla innych projektantów i oferuje największą przenośność do innych nowoczesnych języków programowania. Oznacza to, że zarówno PHP, jak i Java, Python, .NET czy Perl, mogłyby korzystać z jednego pliku konfiguracyjnego.

Tak naprawdę, czas przetwarzania przedstawionych wyżej plików konfiguracyjnych jest praktycznie nieistotny. Jednakże, w miarę zwiększania się ilości treści w pliku konfiguracyjnym, sytuacja może ulec zmianie. Jeśliby wziąć pod uwagę samą szybkość, najlepiej użyć pliku PHP. Osobiście doradziłbym jednak użycie pliku XML. Przenośność informacji warta jest ewentualnego wzrostu czasu.

To tylko moja opinia, a wszystkie z przedstawionych sposobów zadziałają. Dodatkowo, przy okazji trzymania konfiguracji w zmiennych, masz możliwość przechowywania wartości w stałych. Określenie, które z danych powinny być przechowywane w zmiennych, a które w stałych zależy tylko i wyłącznie od preferencji projektanta - ja na przykład preferuje trzymanie zmiennych systemowych w tablicy lub obiekcie, a często używanych wartości(np. liczba sekund w dniu lub maksymalne wymiary uploadowanego obrazka) lub komunikatów systemowych w stałych. Poniższa lista zawiera przykładowe dane, które powinny być przechowywane w plikach konfiguracyjnych:

  1. Informacje nt. połączenia z bazą,
  2. Ścieżki plików,
  3. Komunikaty systemowe i wiadomości o błędach,
  4. Stałe przechowujące często używane wartości.

Centralizacja zmiennych systemowych jest bardzo ważna w konserwacji każdej aplikacji i bezcenna podczas przekazywania projektu w ręce nowego programisty, ponieważ zrozumienie w jaki sposób obsługiwana jest konfiguracja jest zwykle jednym z pierwszych kroków do zrozumienia działania całego projektu.

Informacje na podobny temat:
Wasze opinie
Wszystkie opinie użytkowników: (1)
...
Wtorek 15 Styczeń 2008 12:28:08 am - plurr

bardzo ciekawy artykul, czekam z niecierpliwoscia na obiecana nastepna czesc :)

pozdr.

Mentax.pl    NQ.pl- serwery z dodatkiem świętego spokoju...   
O nas | Kontakt | Mapa serwisu
Copyright (c) 2003-2017 php.pl    Wszystkie prawa zastrzeżone    Powered by eZ publish Content Management System eZ publish Content Management System