php newbie Posted March 10, 2010 Report Share Posted March 10, 2010 Sveiki. Mēģinu uztaisīt lapeli izmantojot ZEND. Esmu iesācējs gan PHP, gan ZEND. Neieskaitot "Hello World" tā būs mana pirmā zend lapele. Uztaisiju layout'u un tagad domāju, kurp labāk iebāzt menu. Būs 2 menu: adminam un lietotājam. Ir doma ielikt to layout'ā un pārslegt, ja ir ielogojies admins. Vai nu var taisīt 2 layout'us adminam un lietotājam. Otra ideja man patīk labāk, bet tad es nezinu kā pārslēgt layout'u control'u grupai t.i. lai nevajadzētu katra admin kontrola initā rakstīt change layout. Vai nu ir cits variants - taisīt admin paneli pavisam atsevišķi kā citu aplikāciju. Varbūt kāds ZEND zinītis var sniegt kadu padomu šajā sakarā? Quote Link to comment Share on other sites More sharing options...
2easy Posted March 10, 2010 Report Share Posted March 10, 2010 es neko nezinu par zend, taču admin panelis tiešām ir atsevišķa web applikācija. gan frontend webs, gan backend webs abi izmanto kopīgu db, bet tā savādāk katrs no tiem ir kkas pats par sevi, tb neatkarīgi kā applikācijas Quote Link to comment Share on other sites More sharing options...
php newbie Posted March 11, 2010 Author Report Share Posted March 11, 2010 labi, taisu kā atsevišķu aplikāciju. izmainot zend aplikācijas struktūru man tagat .htaccess ir root folderī izskatās šādi: SetEnv APPLICATION_ENV development RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L] īsti nezinu ko viņš dara, bet viss ta ka iet caur index.php. Man vajadzētu tādu kā exception, lai admin folderi procesētu normāli, jo tajā būs vēl viena aplikācija un tajā būs tads pats index.php un .htaccess Quote Link to comment Share on other sites More sharing options...
2easy Posted March 11, 2010 Report Share Posted March 11, 2010 varbūt sākumā vajag iemācīties php un citas web izstrādes lietas un pēc tam zend? Quote Link to comment Share on other sites More sharing options...
Mr.Key Posted March 11, 2010 Report Share Posted March 11, 2010 (edited) Es daru, vadoties pēc tā, kā jau 2easy pateicis. Admin daļa ir cita aplikācija, kopīga ir tikai db un datu modeļi (par ko vēl neesmu drošs, vai publiskajai daļai neveidošu citādus modeļus, ar akcentu uz ātrdarbību). Bet, ja taisa kā vienu aplikāciju ar admin moduli, tad layoutu pārslēgšanai izmanto Zend_Layout_Controller_Plugin_Layout, piemēram, katram modulim atbilstošu layoutu uzliek šādi: // library/My/Controller/Plugin/LayoutSwitcher.php class My_Controller_Plugin_LayoutSwitcher extends Zend_Layout_Controller_Plugin_Layout { public function preDispatch(Zend_Controller_Request_Abstract $request) { $this->getLayout()->setLayoutPath( Zend_Controller_Front::getInstance()->getModuleDirectory( $request->getModuleName() ) . '/views/layouts' ); $this->getLayout()->setLayout('layout'); } } // application.ini resources.frontController.plugins.LayoutSwitcher = "My_Controller_Plugin_LayoutSwitcher" (iespējams, mazliet savādāk, jo rakstu no galvas, tikai idejai..) Vienmēr, kad rodas doma, ka katrā kontrolierī jātaisa vienāda funkcija, ir vērts padomāt par citu risinājumu. Tā saucamais princips "don't copy, extend". ja visos kontrolieros vajag kaut ko iekš preDispatch, utt.., tad ieteicams to pārnest uz pluginiem (vai arī extendot Zend_Controller_Action klasi). Ja neesi neko daudz ar PHP ņēmies, novēlu izturību un pacietību, bet, no otras puses, varbūt arī labi, ka uzreiz domāt atbilstoši OOP un freimworkam. Edited March 11, 2010 by Mr.Key Quote Link to comment Share on other sites More sharing options...
php newbie Posted March 11, 2010 Author Report Share Posted March 11, 2010 varbūt sākumā vajag iemācīties php un citas web izstrādes lietas un pēc tam zend? Ir ok. Tas ZEND nav nemaz tik šausmīgi sarežģīts. Quote Link to comment Share on other sites More sharing options...
php newbie Posted March 11, 2010 Author Report Share Posted March 11, 2010 (edited) Es daru, vadoties pēc tā, kā jau 2easy pateicis. Admin daļa ir cita aplikācija, kopīga ir tikai db un datu modeļi (par ko vēl neesmu drošs, vai publiskajai daļai neveidošu citādus modeļus, ar akcentu uz ātrdarbību). Bet, ja taisa kā vienu aplikāciju ar admin moduli, tad layoutu pārslēgšanai izmanto Zend_Layout_Controller_Plugin_Layout, piemēram, katram modulim atbilstošu layoutu uzliek šādi: // library/My/Controller/Plugin/LayoutSwitcher.php class My_Controller_Plugin_LayoutSwitcher extends Zend_Layout_Controller_Plugin_Layout { public function preDispatch(Zend_Controller_Request_Abstract $request) { $this->getLayout()->setLayoutPath( Zend_Controller_Front::getInstance()->getModuleDirectory( $request->getModuleName() ) . '/views/layouts' ); $this->getLayout()->setLayout('layout'); } } // application.ini resources.frontController.plugins.LayoutSwitcher = "My_Controller_Plugin_LayoutSwitcher" (iespējams, mazliet savādāk, jo rakstu no galvas, tikai idejai..) Vienmēr, kad rodas doma, ka katrā kontrolierī jātaisa vienāda funkcija, ir vērts padomāt par citu risinājumu. Tā saucamais princips "don't copy, extend". ja visos kontrolieros vajag kaut ko iekš preDispatch, utt.., tad ieteicams to pārnest uz pluginiem (vai arī extendot Zend_Controller_Action klasi). Ja neesi neko daudz ar PHP ņēmies, novēlu izturību un pacietību, bet, no otras puses, varbūt arī labi, ka uzreiz domāt atbilstoši OOP un freimworkam. esmu nēmies ar PHP, bet nedaudz. Paldies. Tā ideja ar Zend_Controller_Action extendošanu iepatikas, bet jau uztaisīju kā citu aplikāciju un laikam pie ta arī palikšu. Nākotnei ļoti noderēs. Edited March 11, 2010 by php newbie Quote Link to comment Share on other sites More sharing options...
php newbie Posted March 19, 2010 Author Report Share Posted March 19, 2010 (edited) It kā uztaisiju login skriptu. Skripts caur Zend_Auth izveido sesiju ar identifikāciju. Bet tagad īsti nezinu kur labāk glabāt pazīmi ka tas ir admins. Vai nu ar Zend_Acl kaut kā setapot lietotāju grupas, bet man tik sarežģīti nevajag. Vai nu pašam taja sesijā pieglabāt to pazīmi. Vai 3. variants kuru es arī izmantoju - saglabāt iekš auth storage $storage = $auth->getStorage()->read(); $storage['role'] = 'admin'; $auth->getStorage()->write($storage); īsti nezinu kadam nolukam to storage izmanto un vai ir pareizi tajā saglabāt admina pazīmi. Edited March 19, 2010 by php newbie Quote Link to comment Share on other sites More sharing options...
2easy Posted March 19, 2010 Report Share Posted March 19, 2010 noteikti, ka tam storage ir kāda nozīme. bet vai tad zendam nav dokumentācija, kur to var apskatīties??? anyway, imho, šādi ir vnkāršāk ;) $_SESSION['role'] = 'admin'; Quote Link to comment Share on other sites More sharing options...
php newbie Posted March 19, 2010 Author Report Share Posted March 19, 2010 nu izskatās ka ir ok tur role glabāt. Dokumentaciju it kā atradu, bet tagad jau nevar neko saprast. Jāskatās no rīta :) http://files.zend.com/help/Zend-Framework/zend.auth.html#zend.auth.introduction.persistence.default Quote Link to comment Share on other sites More sharing options...
php newbie Posted March 19, 2010 Author Report Share Posted March 19, 2010 tomēr laikam nav labi tā pa taisno tajā storage iekšā rakstīt... vajadzētu taisīt custom authAdapter klasi Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.