Az alábbi lesz az eddig végigtárgyalt application/controllers/UserController.php tartalma és néhány magyarázat a végén.
<?php require_once 'Zend/Db/Adapter/Pdo/Mysql.php'; require_once 'Zend/Controller/Action.php'; class UserController extends Zend_Controller_Action { public function indexAction() { $this->view->assign('name', 'Wiwit'); $this->view->assign('title', 'Hello'); } public function nameAction() { $request = $this->getRequest(); $this->view->assign('name', $request->getParam('username')); $this->view->assign('gender', $request->getParam('gender')); $this->view->assign('title', 'User Name'); } // Új felhasználó regisztrálása public function registerAction() { $request = $this->getRequest(); $this->view->assign('action',"process"); $this->view->assign('title','Member Registration'); $this->view->assign('label_fname','First Name'); $this->view->assign('label_lname','Last Name'); $this->view->assign('label_uname','User Name'); $this->view->assign('label_pass','Password'); $this->view->assign('label_submit','Register'); $this->view->assign('description','Please enter this form completely:'); } // Új felhasználó regisztrálása public function editAction() { $params = array( 'host' =>'localhost', 'username' =>'root', 'password' =>'admin', 'dbname' =>'zend' ); $DB = new Zend_Db_Adapter_Pdo_Mysql($params); $request = $this->getRequest(); $id = $request->getParam("id"); $sql = "SeleCT * FROM `user` WHERE id='".$id."'"; $result = $DB->fetchRow($sql); $this->view->assign('data',$result); $this->view->assign('action', $request->getBaseURL()."/user/processedit"); $this->view->assign('title','Member Editing'); $this->view->assign('label_fname','First Name'); $this->view->assign('label_lname','Last Name'); $this->view->assign('label_uname','User Name'); $this->view->assign('label_pass','Password'); $this->view->assign('label_submit','Edit'); $this->view->assign('description','Please update this form completely:'); } //A felvitt adatokat feltölti az adatbázisba public function processAction() { $params = array( 'host' =>'localhost', 'username' =>'root', 'password' =>'admin', 'dbname' =>'zend' ); $DB = new Zend_Db_Adapter_Pdo_Mysql($params); $request = $this->getRequest(); $data = array('first_name' => $request->getParam('first_name'), 'last_name' => $request->getParam('last_name'), 'user_name' => $request->getParam('user_name'), 'password' => md5($request->getParam('password')) ); $DB->insert('user', $data); $this->view->assign('title','Registration Process'); $this->view->assign('description','Registration succes'); } //lekéri az adatokat az adatbázis táblából public function listAction() { $params = array( 'host' =>'localhost', 'username' =>'root', 'password' =>'admin', 'dbname' =>'zend' ); $DB = new Zend_Db_Adapter_Pdo_Mysql($params); $DB->setFetchMode(Zend_Db::FETCH_OBJ); $sql = "SeleCT * FROM `user` ORDER BY user_name ASC"; $result = $DB->fetchAssoc($sql); $this->view->assign('title','Member List'); $this->view->assign('description','Below, our members:'); $this->view->assign('datas',$result); } //Frissíti az adatokat (Update) as tábla egy sorában public function processeditAction() { $params = array( 'host' =>'localhost', 'username' =>'root', 'password' =>'admin', 'dbname' =>'zend' ); $DB = new Zend_Db_Adapter_Pdo_Mysql($params); $request = $this->getRequest(); $data = array('first_name' => $request->getParam('first_name'), 'last_name' => $request->getParam('last_name'), 'user_name' => $request->getParam('user_name'), 'password' => md5($request->getParam('password')) ); $DB->update('user', $data,'id = '.$request->getParam('id')); $this->view->assign('title','Editing Process'); $this->view->assign('description','Editing succes'); } //Törlést végrehajtja a tábla egy sorával public function delAction() { $params = array('host' =>'localhost', 'username' =>'root', 'password' =>'admin', 'dbname' =>'zend' ); $DB = new Zend_Db_Adapter_Pdo_Mysql($params); $request = $this->getRequest(); $DB->delete('user', 'id = '.$request->getParam('id')); $this->view->assign('title','Delete Data'); $this->view->assign('description','Deleting succes'); $this->view->assign('list',$request->getBaseURL()."/user/list"); } } ?>
Javítási és frissítési lehetőségek:
Egyelőre nem tudunk belépni, azaz a login, logout lehetősége nem áll fent. => Zend Framework Login részben tudjuk meg.
Az összes metódusban kézzel pötyögtük be a paramétereket. jó lenne ezeket a paramétereket valamilyen ini fájlból bekérni, az adatbázis típusa, host, username, password és adatbázis neve tekintetében Zend Framework Registry illetve a manualban a Zend_Db_Adapter részt kell elolvasni
Ha több nyelvű honlapot készítünk, akkor a kimenet több nyelvűsítésének kérdése is érdekes. A Zend Framework támogatja ezt a Zend_Translate osztály segítségével
Mi a helyzet akkor, hogyha az egyes kérések között akarunk adatokat átvinni. A Zend_Sesson osztályt lehet használni.