Podręcznik użytkownika CodeIgniter wersja 2.2.1


Klasa Config

Klasa Config pozwala na pobieranie zmiennych konfiguracyjnych. Zmienne te, mogą pochodzić z domyślnego pliku konfiguracyjnego (application/config/config.php) lub z plików, ktore sam stworzyłeś.

Uwaga: Ta klasa jest ładowana automatycznie przez system, dlatego nie musisz tego robić samodzielnie.

Anatomia pliku konfiguracyjnego

Domyślnie, CodeIgniter ma jeden główny plik konfiguracyjny, który znajduje się w application/config/config.php. Jeśli otworzysz ten plik, w swoim edytorze zobaczysz, że kolejne wartości konfiguracyjne są umieszczone w tablicy $config.

Możesz dodać własne wartości konfiguracyjne do tego pliku lub trzymać nowe wartości osobno (zakładając, że w ogóle ich potrzebujesz) - w tym celu po prostu stwórz nowy plik i zachowaj go w folderze config.

Uwaga: Jeśli tworzysz własne pliki konfiguracyjne, używaj tego samego formatu jaki użyty jest w głównym pliku konfiguracyjnym. Umieszczaj kolejne wartości w tablicy $config. CodeIgniter w sposób inteligentny obsłuży te pliki, nawet w sytuacji gdy tablice noszą takie same nazwy (zakładając oczywiście, że indeksy obu tych tablic są unikalne).

Ładowanie plików konfiguracyjnych

Uwaga: CodeIgniter automatycznie ładuje główny plik konfiguracyjny (application/config/config.php), więc do ładowania plików konfiguracyjnych będziesz zmuszony tylko wtedy, gdy samodzielnie jakiś stworzysz.

Są dwa sposoby na ładowanie plików konfiguracyjnych:

  1. Ładowanie ręczne

    Aby załadować jeden z Twoich plików konfiguracyjnych w kontrolerze który tego potrzebuje możesz wykonać następujący kod:

    $this->config->load('filename');

    Gdzie filename jest nazwą Twojego pliku konfiguracyjnego, bez rozszerzenia .php.

    Jeśli chcesz załadować wiele plików konfiguracyjnych, to zostaną one połączone w jedną tablicę konfiguracyjną. W takim wypadku, jeśli w rożnych plikach konfiguracyjnych znajdzie się tablica z takimi samymi indeksami, może dojść do kolizji. Aby tego uniknąć, można ustawić drugi parametr na wartość TRUE. Wtedy każdy z plików konfiguracyjnych będzie przechowywany w tablicy o indeksie odpowiadającym nazwie pliku konfiguracyjnego. Przykład:

    // Przechowywanie w tablicy według takiego prototypu: $this->config['blog_settings'] = $config
    $this->config->load('blog_settings', TRUE);

    Aby dowiedzieć się w jaki sposób pobierać dane wczytane w taki sposób, proszę zapoznać się z sekcją o tytule Pobieranie zmiennych konfiguracyjnych, która dostępna jest ponizej.

    Trzeci parametr pozwala na uniknięcie wyświetlania komunikatów błędu w przypadku, gdy dany plik konfiguracyjny nie istnieje:

    $this->config->load('blog_settings', FALSE, TRUE);
  2. Automatyczne ładowanie

    Jeśli uznasz, że dany plik konfiguracyjny będzie potrzeby globalnie, dla całej aplikacji, możesz ładować go automatycznie. Aby to zrobić, otwórz plik autoload.php, który znajduje się w application/config/autoload.php i dodaj nazwę pliku konfiguracyjnego do odpowiedniej tablicy.

Pobieranie zmiennych konfiguracyjnych

Aby pobrać zmienną z pliku konfiguracyjnego, należy skorzystać z następującej funkcji:

$this->config->item('item name');

Gdzie item name jest indeksem tablicy $config, który chcemy otrzymać. Dla przykładu, aby otrzymać wartość ustawionej wersji językowej należy zrobić tak::

$lang = $this->config->item('language');

Funkcja zwraca FALSE (boolean) jeśli wartość, którą próbujesz pobrać nie istnieje.

Jeśl korzystasz w wywołaniu funkcji $this->config->load z drugiego parametru, aby przypisać zmienne konfiguracyjne do specyficznego indeksu, możesz się odwoływać do takich zmiennych poprzez określenie indeksu w drugim parametrze funkcji $this->config->item(). Przykład:

// Ładuje plik konfiguracyjny o nazwie blog_settings.php i przypisuje do indeksu o nazwie "blog_settings"
$this->config->load('blog_settings', TRUE);

// Zwaraca zmienną konfiguracyjną o nazwie site_name, która znajduje się w tablicy blog_settings
$site_name = $this->config->item('site_name', 'blog_settings');

// Alternatywny sposób na wybranie tej samej zmiennej:
$blog_config = $this->config->item('blog_settings');
$site_name = $blog_config['site_name'];

Ustawianie zmiennych konfiguracyjnych

Jeśli chciałbyś ustawić zmienną konfiguracyjną w sposób dynamiczny lub zmienić istniejącą wartośc, możesz to zrobić w ten sposób:

$this->config->set_item('item_name', 'item_value');

Gdzie item_name jest indeksem tablicy $config, który chcesz zmienić, a item_value jest jej wartością.

Środowiska pracy

Możesz załadować różne pliki konfiguracyjne w zależności od aktywnego środowiska. Stała ENVIRONMENT jest zdefiniowana w pliku index.php i opisana szczegółowo w rozdziale Obsługa wielu środowisk.

Aby stworzyć zależne od środowiska pliki konfiguracyjne, stwórz lub skopiuj plik konfiguracyjny do lokalizacji application/config/{ENVIRONMENT}/{FILENAME}.php

Dla przykładu, aby stworzyć plik config.php tylko dla środowiska produkcyjnego, należy zrobić tak:

  1. Stwórz folder application/config/production/
  2. Skopiuj istniejący plik config.php do powyższego folderu
  3. Edytuj plik application/config/production/config.php tak, aby odpowiadał Twoim ustawieniom środowiska produkcyjnego

Kiedy ustawisz stałą ENVIRONMENT na wartość 'production', wtedy zostanie załadowany plik config.php z powyższego folderu.

W specyficznych dla środowiska pracy folderach, możesz umieszczać następuące pliki konfiguracyjne:

Uwaga: CodeIgniter zawsze próbuje najpierw załadować pliki z ustawionego środowiska pracy. Jeśli dany plik nie istnieje, to ładowany jest globalny plik konfiguracyjny (czyli ten, który znajduje się w folderze application/config/). To oznacza, że nie musisz umieszczać wszystkich swoich plików konfiguracyjnych w specyficznym dla środowiska pracy folderze − wystarczy że znajdą się tam pliki, które zmieniają się w zależności od środowiska pracy.

Funkcje pomocnicze

Klasa Config ma następujące funkcje pomocnicze:

$this->config->site_url();

Ta funkcja zwraca adres URL Twojej strony, razem z wartością "index", którą określiłeś w pliku konfiguracyjnym.

$this->config->base_url();

Ta funkcja zwraca adres URL Twojej strony, plus opcjonalną ścieżkę np. do styli lub pliku graficznego.

Te dwie powyższe funkcje, są normalnie dostępne przez analogiczne funkcje w Helperze URL.

$this->config->system_url();

Ta funkcja zwraca adres URL do folderu system.