devboard: Co nowego w KohanaPHP 3.0 - devboard

Skocz do zawartości

Strona 1 z 1
  • Nie możesz napisać tematu
  • Nie możesz odpowiedzieć

Co nowego w KohanaPHP 3.0 krótkie podsumowanie

#1 Użytkownik nie jest zalogowany   meverone

  • Młodszy Programista
  • PipPip
  • Grupa Administratorzy
  • Postów 21
  • Rejestracja 02-grudzień 08
  • Płeć:Male

Napisano 13 październik 2009 - 18:33

Co nowego w KohanaPHP 3.0

KohanaPHP jest frameworkiem napisanym w PHP 5, który używa architektury Model View Controller. Kohana to fork CodeIgnitera. Start projektu zaczął się od wersji CI 1.5.4 w okolicach czerwca 2007 roku. Niewiele później została wydana wersja 1.0, która stanowiła most pomiędzy CI a Kohaną. Więcej na wikipedia.org

To tak słowem wstepu jakby ktoś nie wiedział co to kohana :). W artykule postaram się zaprezentować kilka zmian
jakie wprowadzili programiści w nowej wersji KohanaPHP 3.0.

Struktura katalogów

Pierwsza ze zmian jaką wprowadzili developerzy można odrazu zauważyć wchodząc do katalogu application. Widzimy tam całkiem nową strukture katalogów.

/classes    zastępuje nam stary dobry katalog controllers (czyli serce aplikacji)
/config     pliki konfiguracyjne
/view       bez zmian, tak samo jak w poprzedniej wersji
/logs       katalog z logami
/cache      pliki cache
/i18n       pliki językowe


Czyli jak widzimy znikneły nam katalogi controllers (który został zastąpiony classes), libraries i modules. Otóż teraz programista może stworzyć te katalogi w folderze classes.

Nowe nazwy klas

Teraz nazwy klas mają dokładnie odzwierciedlać położenie pliku oraz zaczynać się z dużej litery.
Kontroler o nazwie 'login' utworzony w katalogu:
classes/controller/login.php

Nazwa klasa tego kontrolera
Controller_Login

Czyli zamiast '/' wstawiamy '_'. I analogicznie przykładowe nazwy:
classes/controller/login.php    Controller_Login
classes/model/Login.php         Model_Login
classes/auth.php                Auth


Konfiguracja aplikacji

Większkość opcji została przeniesiona do pliku bootstrap.php. Natomiast w
katalogu config możemy tworzyć dodatkowe konfiguracje dla naszej aplikacji
Przykładowo w pliku bootstrap.php możemy ustawić:
errors          obsługa błędów
profile         benchmarking aplikacji
caching         cachowanie plików
charset         domyślne kodowanie znaków
base_url        podstawowy adres dla aplikacji
index_file      plik aplikacji (default index.php), jeżeli używamy mod_rewrite to FALSE
cache_dir       katalog pliów cache


Przykładowa konfiguracja

Kohana::init(array('base_url' => 'www.domena.pl', 'index_file' => false));


Dodatkowo możemy tworzyć konfiguracje w katalogu config w zależności od potrzeb.
Przykładowo tworzymy plik config/jakastamkonfiguracja.php a w nim:
<?php defined('SYSPATH') or die('No direct script access.');

return array(
    'setting' => 'value',
    'options' => array(
        'foo' => 'bar',
    ),
);


Wyciągnąć dane możemy w następujący sposób:

Pobieramy całą konfiguracje
$config = Kohana::config('jakastamkonfiguracja');
$options = $config['options'];

Chcemy pobrać 'options' to robimy to tak
$options = Kohana::config('jakastamkonfiguracja.options');

Pobranie wartośc z klucza 'foo'
$foo = Kohana::config('jakastamkonfiguracja.options.foo');

Lub, jeśli wolisz w sposób bardziej obiektowy sposób to:
$options = Kohana::config('jakastamkonfiguracja')->options;


Wykonywanie żądań

W kohanie 3.0 zrezygnowano z __constructor() oraz __destructor(). Nie trzeba także wywoływać konstruktora nadrzędnego, gdyż dzieje się to automatycznie.

W nowej wersji wprowadzono akcje (action_) rozumiemy przez to metode controllera o nazwie action_login gdzie login jest nazwą wywoływanej akcji. W tym przypadku wszystkie metody nie zaczynające się od action_ są niedostępne dla użytkownika co zwiększa bezpieczeństwo.

Przykładowo
http://domena.pl/user/login

Wywoła metode action_login z controllera Controller_User

Linki
Pliki do pobrania
Dokumentacja
0

Strona 1 z 1
  • Nie możesz napisać tematu
  • Nie możesz odpowiedzieć

Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych