Ako vytvoriť admin rozhranie?
publikované: od: Tibor PiňoAdmin rozhraním disponuje v súčasnosti každá väčšia web aplikácia. Dnes si ukážeme, ako si môžeme takéto jednoduché admin rozhranie vytvoriť pomocou CakePHP.
V Cake máme v podstate dve možnosti, ktorými môžeme vytvoriť administračné rozhranie pre našu aplikáciu. Prvou je vytvoriť novú aplikáciu ktorú sa bude starať o administráciu a druhou je použiť predpripravené riešenie Cake.
Najprv si poďme predstaviť prvé riešenie, čiže si vytvoríme v rámci nášho projektu novú aplikáciu, ktorú môžeme nazvať napr. admin, tzn. že budeme mať v našej aplikácii nasledovnú štruktúru
/web
|_ admin
|_ webroot
|_ controllers
|_ views
|_ models
|_ ...
|_ app
|_ webroot
|_ controllers
|_ views
|_ models
|_ ...
|_ cake
Predstavme si, že adresár web je koreňový adresár našej web aplikácie, ktorú máme napríklad na adrese http://www.example.com a adresár admin je nová aplikácia v našom projekte s kompletnou stromovou štruktúrou Cake aplikácie. Potom budeme pristupovať k nášmu administračnému rozhraniu cez adresu http://www.example.com/admin a k rozhraniu stránky prístupné pre všetkých cez adresu http://www.example.com tak ako sme bežne zvyknutý. Tento spôsob tvorby administračného rozhrania by som však neodporúčal, pretože nedodržuje pravidlo DRY a veľa vecí budete musieť písať a upravovať na dvoch miestach, tak ako v klasickej aplikácii, tak i v admin aplikácii.
Druhým spôsobom oveľa jednoduchším a inteligentnejším je využiť priamo riešenie, ktoré nám ponúka Cake. Základom je nastaviť admin routovanie v súbore app/config/core.php odkomentovaním riadku
Configure::write('Routing.admin', 'admin');
Nič viac netreba nastavovať. Týmto sme dali Cake najavo, že za adresou http://www.example.com/admin/ sa bude skrývať naše administračné rozhranie. Od tejto chvíle, bude Cake automaticky rozpoznávať akcie v controllery a k nim príslušné view podľa predpony admin_.
Uveďme si príklad. Máme controller články, kde máme verejnú akciu view a admin akciu add. Náš controller uložený v súbore app/controllers/articles_controller.php by vyzeral následovne
class ArticlesController extends AppController {
var $name = 'Articles';
function view($id) {}
function admin_add(){}
}
Ešte je treba doplniť, že akcia view bude dostupná prostredníctvom adresy http://www.example.com/articles/view/1 a akcia admin_add bude dostupná prostredníctvom adresy http://www.example.com/…articles/add
Na záver treba uviesť, ako pomenovávať view súbory k daným akciám a uvedieme si výslednú adresárovú štruktúru
/web
|_ app
|_ controllers
|_ articles_controller.php
|_ views
|_ articles
|_ view.ctp
|_ admin_add.ctp
|_ models
|_ ...
Teraz nám je jasné, že keď vytvárame admin akciu, musíme k nej vytvoriť aj admin view s prefixom admin_. Týmto sme u konca a môžeme plnohodnotne využívať administračné rozhranie.
V článku som predstavil dva možné spôsoby, ako vytvoriť administračné rozhranie pre našu aplikáciu. Myslím si, že oveľa lepší a jednoduchší spôsob je ten druhý, kde využijeme predpripravené riešenie frameworku.
Rád uvítam vaše námety a pripomienky v diskusii k článku.