မင်္ဂလာပါ။ကျွန်တော်ကတော့ မောင်ရဲထက်အောင် ဖြစ်ပါတယ်။
Spiceworks Myanmar company မှာ web developer အဖြစ်ဝင်ရောက်လုပ်ကိုင်နေပါတယ်။
ကျွန်တေ့ာ်အနေနဲ့ PART(1)မှာ Zend Framework Structureအကြောင်းကိုဒီ Link မှာရှင်းပြထားပါတယ်ခင်ဗျ။
https://www.spiceworksmyanmar.com/blogs/Nzg5/detail
ဒီတစ်ခါမှာတော့ Zend Framework Coding အကြောင်းကို ကျွန်တော်လေ့လာထားသလောက် sharing လုပ်ပေးချင်ပါတယ်။
Application/configs/application.ini
resources.db.adapter = "pdo_mysql" resources.db.params.dbname = "database" resources.db.params.username = "root" resources.db.params.password = "" resources.db.params.host = "localhost" resources.db.params.charset = "utf8" resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/" [staging : production]
Line နံပါတ်(2) က ကိုယ်ချိတ်မယ့် database ရဲ့ name ထည့်ပေးရပါမယ်။
Line နံပါတ်(3) က ကိုယ်ချိတ်မယ့် database ရဲ့ username ထည့်ပေးရပါမယ်။
Line နံပါတ်(4) က ကိုယ်ချိတ်မယ့် database ရဲ့ password ထည့်ပေးရပါမယ်။
Application/layouts/scripts/layout.phtml
<html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <meta name="keywords" content=""> <meta name="title" content="Sample"> <meta name="author" content=""> <meta name="copyright" content="2008 Zend"> <title>Sample Project</title> <script type="text/javascript" src="/js/jquery-2.1.3.min.js"></script> <?php echo $this->headScript() ?> </head> <body> <?php echo $this->layout()->content; ?> </body> </html>
Application/controller/IndexController.php
<?php class IndexController extends Zend_Controller_Action { public function init() { $this->headScript() ->appendFile('/js/jquery-2.1.3.min.js') } public function indexAction() { $this->_helper->layout->setLayout('layout’); $this->view->name=‘Hello World!’; }
Application/View/script/view.phtml
<p> <?php echo $this->name ?> </p>
headScript() အကြောင်းကိုရှင်းပြရမယ်ဆိုရင်တော့ layout နဲ့ controller တွဲ ပြီးရှင်းပြပါမယ်။
ပထမဆုံး IndexController ရဲ့ code line နံပါတ် 6 မှာ ရေးထားတဲ့ headScript code ကို ပြန်ခေါ်ချင်ရင် layout ရဲ့ code line နံပါတ် 14 ပုံစံလိုမျိုး ကြေညာပြီးပြန်ခေါ်လို့ရပါတယ်။အဲလိုမသုံးချင်ဘူး တစ်ခြားနည်းဘဲသုံးချင်တယ်ဆိုရင်တော့ layout မှာ script ကို code line နံပါတ် 13 မှာလိုမျိုး တိုက်ရိုက်ကြေညာပေးလို့ရပါတယ်။
layout/layout.php ကို controller ထဲက Action မှာ ဘယ်လိုကြေညာပေးရမလဲဆိုတာ ပြောပြချင်ပါတယ်။
layout ကိုယူသုံးမယ်ဆိုရင်တော့ ကိုယ်အသုံးပြုချင်တဲ့ Actionထဲမှာ $this->_helper->layout->setLayout(‘layout’)
လို့ေ့ကြညာပေးရပါမယ်။ IndexController ရဲ့ code line နံပါတ် 12 မှာ ရေးပြထားပါတယ်။
controller ထဲကနေ data တွေကို View page မှာ ဘယ်လိုထုတ်ပြရမယ်ဆိုတာကို ရှင်းပြပါဦးမယ်။
controller ထဲက code line နံပါတ် 14 မှာ $this->view->name=‘Hello World!’; လို့ ရေးထားတာကို
View page မှာ echo $this->name လို့ထုတ်လိုက်ရင် browser မှာ ‘Hello World!’ လို့ ထွက်လာပါလိမ့်မယ်။
နောက်တစ်ခုကတော့ Form မှာ အသုံးပြုတဲ့ code တွေ အကြောင်းကိုရှင်းပြပါမယ်။
<?php class Application_Form_Add extends Zend_Form { public $elementPrefixPaths = array('filter' => array( 'prefix' => 'Filter', 'path' => DIR_FILTERS )); public $elementFilters = array( 'XSSCode', ); public function init() { $Name = $this->createElement('text', 'Name'); $Name->setAllowEmpty(false); $Name->addValidator('NotEmpty', true); $Name->getValidator('NotEmpty')->setMessage('err_Add_name_&&_Please Fill Add Name.'); $this->addElements(array( 'Name' =>$Name, )); $this->addElementPrefixPaths($this->elementPrefixPaths); $this->setElementFilters($this->elementFilters); } }
Type နဲ့ Name ကို ကြေညာ ဖို့ ဆိုရင် createElement() function ကို အသုံးပြု ရပါမယ်။
setAllowEmpty() function ကတော့ input box က blank ဖြစ်နေလို့ Required လုပ်ချင်တယ်ဆို true ကို အသုံးပြုမယ်။မလုပ်ချင်ဘူးဆိုရင် flase ကို အသုံးပြုမယ်။
addValidator() function ကတော့ setAllowEmpty() က false ရွေးထားရင် NotEmpty, true လို့ရေးပေးရပါမယ်။true ရွေးထားတယ်ဆိုရင်တော့ NotEmpty, false ပေါ့။
getValidator() function ကတော့ အပေါ်က အကုန်ပြီးသွားရင် validate စစ်ြ်ပီး setMessage() မှာကိုယ်ရေးချင်တဲ့ error ထုတ်ပြဖို့ အသုံးပြုရပါတယ်။
ကျွန်တော်သိသလောက် နောက်ထပ်လည်း လေ့လာဖြစ်တာလေးတွေ Sharing လုပ်ပေးသွားပါ့မယ် ခင်ဗျ။
နောက်တစ်ကြိမ်မှာလည်း Zend Framework PDF EXPORT အကြောင်းကို ကျွန်တော်လေ့လာထားသလောက် sharing လုပ်ပေးချင်ပါတယ်။ ဖတ်ရှုပေးပါဦးလို့ တိုက်တွန်းပါရစေဗျာ။
ဖတ်ရှုပေးတဲ့အတွက်လည်း အားလုံးကို ကျေးဇူးတင်ပါတယ် ခင်ဗျာ။