PHP Classes

File: Polish-punFramework.txt

Recommend this page to a friend!
  Classes of Piotr Malinski   punFramework   ???   Download  
File: ???
Role: Documentation
Content type: text/plain
Description: Polish Documentation
Class: punFramework
MVC framework to extend punBB discussion boards
Author: By
Last change:
Date: 18 years ago
Size: 6,125 bytes
 

 

Contents

Class file image Download
punFramework ver. 0.9 dla punBB 1.3-dev Autor: Piotr Malinski ([email protected]) Licencja: GPL www.php.rk.edu.pl www.cms.rk.edu.pl WstÄ™p #################### punFramework jest prostym frameworkiem bazujÄ…cym na wzorcu MVC - Model-Widok-Kontroler umożliwiajÄ…cym Å‚atwe, przejżyste i proste tworzenie aplikacji dla forum punBB. punFramework nie umożliwia modyfikacji samego forum ale umożliwia tworzenie nowych komponentów w peÅ‚ni z nim zintegrowanych (np. moduÅ‚u news, artykułów czy dowolnych innych) Instalacja #################### - skopiuj mvc.php, debug.php i punFramework do katalogu z punBB 1.3-dev - nadaj chmod 777 lub 666 na debug.php jeżeli serwer dziaÅ‚a pod kontrolÄ… linuksa/unixa - punFramework WYMAGA PHP5 i nie bÄ™dzie dziaÅ‚ać z PHP4!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Opis Frameworka #################### Wszystkie twoje komponenty dostÄ™pne sÄ… poprzez plik mvc.php. Można zmienić nazwÄ™ tego pliku na dowolnÄ…. Kontrolery --------------------- - Kontrolery to pliki php umieszczone w punFramework/controllers/ - Każdy plik zawiera klasÄ™ PHP, która dziedziczy klasÄ™ punController - Nazwa pliku musi być taka sama jak nazwa klasy + .php - Szkieletowy kontroler to: class test extends punController { public function index() { return 'witaj Å›wiecie'; } } - Każdy moduÅ‚ np. "newsy" powinny mieć wÅ‚asny kontroler - Każdy kontroler powinien mieć oddzielne metody dla poszczególnych akcji/widoków (pokaż newsy, dodaj newsa, usuÅ„ newsa) - Metody powinny zwracać (return) dane niż je wyÅ›wietlać Mapowanie URLi ------------------------- punFramework używa prostego mapowania: mvc.php?c=NAZWA_KONTROLERA mvc.php?c=NAZWA_KONTROLERA&m=NAZWA_METODY mvc.php?c=NAZWA_KONTROLERA&m=NAZWA_METODY&var1=foo1&va2=foo2 - NAZWA_KONTROLERA to nazwa kontrolera - NAZWA_METODY to nazwa metody kontrolera, którÄ… chcemy wywoÅ‚ać - Nazwa kontrolera i metody może zawierać TYLKO znaki alfabetu - duże i maÅ‚e liter. !!!!!!!!!! - Jeżeli nie podasz nazwy metody wtedy domyÅ›lnie zostanie wywoÅ‚ana metoda index() DostÄ™pne zmienne punBB ------------------------------------------ $this->pun_user - tablica $pun_user z danymi o bierzÄ…cym użytkowniku $this->db - obiekt $db operujÄ…cy na bazie danych $this->pun_config - tablica $pun_config zawierajÄ…ca konfiguracjÄ™ forum $this->pun_url - tablica $pun_url zawierajÄ…ca URLe do standardowych elementów forum $this->lang_common - tablica $lang_common zawierajÄ…ca pospolite frazy-tÅ‚umaczenia możesz użyć print_r($TABLICA); by zobaczyć zawartość i strukturÄ™ danej tablicy Widoki --------------------------------------- Widoki to niejako szablony i powinny zawierać kod HTML odpowiedzialny za wyglÄ…d danego elementu. - Widoki zapisujemy jako pliki PHP w punFramework/views/ - By w kontrolerze zaÅ‚adować widok wystarczy: $wynik = NAZWA_KONTROLERA::load_view('NAZWA_WIDOKU', array()); $wynik = test::load_view('hello', array('user' => 'Jon Doe')); Gdzie NAZWA_WIDOKU to nazwa pliku widoku bez .php - Drugi argument to tablica asocjacyjna z danymi jakie majÄ… być przekazane do widoku - W widoku tablica ta dostÄ™pna jest pod zmiennÄ… $data - PowinieneÅ› używać styli/klas CSS punBB :) Modele ------------------------------------ Modele sÄ… podobne do kontrolerów, dziedziczÄ… punRoot a ich zadaniem jest przechowywanie logiki operujÄ…cej na bazie danych - samych zapytaÅ„ z niezbÄ™dnym kodem dodatkowym. Używanie Modeli (jak i widoków) jest opcjonalne lecz zaleca siÄ™ ich stosowanie. - Szkielet modelu wyglÄ…da tak: class posts extends punRoot { public function get_all_posts() { return posts::query("SELECT * FROM posts"); } } - Model zapisujemy jako punFramework/models/NAZWAKLASY.php - Każda operacja na bazie danych typu "pokaż newsy" , "usuÅ„ newsy" powinna mieć wÅ‚asnÄ… metodÄ™ - Możesz użyć $this->db - standardowego obiektu punBB do operowania na bazie danych - Możesz też używać NAZWAKLASY::query - wrappera, który zwróci tablicÄ™ asocjacyjnÄ… z wynikami dla zapytaÅ„ SELECT oraz wykona i zwróci True dla pozostaÅ‚ych - Wrapper ::query wygeneruje wyjÄ…tek w przypadku błędu zapytania (patrz "obsÅ‚uga błędów") - By zaÅ‚adować model w kontrolerze wystarczy: $object = NAZWA_KONTROLERA::load_model('NAZWA_MODELU'); $news = test::load_model('news'); $news->get_latest_news(); - $object w tym przykÅ‚adzie to obiekt klasy kontrolera gotowy do wykorzystania. Inne Pomocniki -------------------------------------- - W kontrolerach możesz użyć: NAZWA_KONTROLERA::render_template('tytuÅ‚', 'treść'); Co zwróci dane wstawione w standardowÄ… komórkÄ™ punBB: <div class="pun-block"> <h2><span>TYTUŁ</span></h2> <div class="pun-content"> TREŚĆ </div> </div> - Oprócz tego masz dostÄ™p do: NAZWA_KONTROLERA::is_admin() # zwróci True jeżeli bierzÄ…cy użytkownik to Admin (ID grupy - 1) NAZWA_KONTROLERA::is_user() # zwróci True jeżeli bierzÄ…cy użytkownik jest zwykÅ‚ym użytkownikiem (ID grupy - 4) NAZWA_KONTROLERA::check_login() # zwróci True jeżeli bierzÄ…cy użytkownik jest zalogowany metody zwrócÄ… False w przypadku nie speÅ‚nienia warunku. ObsÅ‚uga Błędów --------------------------------------- - Gdy framework napotka na błąd wygeneruje wyjÄ…tek, który zostanie przechwycony przez niego. - PeÅ‚en komunikat błędu zostanie zapisany do debug.php - Skrypt wyÅ›wietli zwykÅ‚y ekran punBB informujÄ…cy że coÅ› siÄ™ nie udaÅ‚o - By zobaczyć peÅ‚en komunikat błędu otwórz w edytorze tekstowym debug.php - Do obsÅ‚ugi wÅ‚asnych błędów również używaj wyjÄ…tków a punFramework obsÅ‚uży je tak samo jak wÅ‚asne :) IF($foo != $bar) { throw new Exception('$bar jest różne od $foo'); } Wykonywanie kodu zostanie przerwane w miejscu wywoÅ‚ania wyjÄ…tku, punFramework przejdzie do zapisania komunikatu i wyÅ›wietlenia wiadomoÅ›ci użytkownikowi Zobacz http://www.php.net/exceptions for info about exceptions "JesteÅ› Tutaj" -------------------------------- By zmienić treść obok tej frazy edytuj mvc.php, a dokÅ‚adniej: $page_nav = 'punFramework | <a href="index.php">Go to Forum</a>'; WstawiajÄ…c wÅ‚asnÄ… treść