জেন্ড ফ্রেমওয়ার্ক দিয়ে ফর্ম তৈরী

Zend_Form একটা কমপোনেন্ট আছে জেন্ড ফ্রেমওয়ার্কে।এখানে ফর্ম তৈরীর
অনেকগুলি ক্লাসও আছে।কিভাবে একটা লগিন ফর্ম তৈরী করবেন (বা যেকোন ফর্ম)
তার বেসিক নিয়ে এই টিউটোরিয়াল।একই ফর্ম অনেককয়েকভাবে তৈরী করা
যায় তবে যে পদ্ধতি সাধারনত ব্যবহার করা হয় সেটা দেখাচ্ছি।

প্রথমে কমান্ড প্রম্পট বের করে cd কমান্ড দিয়ে আপনার ওয়েব সার্ভারের
tutorial প্রজেক্ট টিতে যান এবার কমান্ড লিখুন zf create form Myform
এন্টার দিলেই প্রজেক্টের ভিতর একটা ফোল্ডার forms নামে তৈরী হয়ে যাবে,
এই ফোল্ডারে গিয়ে দেখুন Myform.php নামে একটা ফাইল তৈরী হয়েছে।
এবার এই ফাইলটি খুলুন এবং নিচের কোড লিখুন
01.<?php
02. 
03.class Application_Form_Myform extends Zend_Form
04.{
05. 
06.public function init()
07.{
08.$username = new Zend_Form_Element_Text('username');
09.$username->setLabel('Username')
10.->setRequired(true);
11.$password = new
12.Zend_Form_Element_Password('password');
13.$password->setLabel('Password')
14.->setRequired(true);
15.$submit = new Zend_Form_Element_Submit('submit');
16.$submit->setLabel('Login');
17.$this->addElements(array
18.($username,$password,$submit));         
19. 
20.}
21.}?>
এখানে একটা সাধারন লগিন ফর্ম তৈরী করেছি।

কোডের ব্যাখ্যা: কামন্ড লাইন টুল already একটা সাবক্লাস
Application_Form_Myform তৈরী করে রেখেছে যেটা Zend_Form ক্লাসকে
extend করেছে।এরপর init() মেথডটি ওভাররাইড করে কিছু ফর্ম ফিল্ড
তৈরী করেছি যেমন ইনপুট,পাসওয়ার্ড আর একটা বাটন।
Zend_Form_Element_Text  ক্লাসকে instantiate করেছি এবং এর
কিছু মেথডে একসেস নিয়ে একটা টেক্সট ফিল্ড তৈরী করেছি নাম দিয়েছি
Username. setRiquired(true); এই মেথড দিয়ে একটা ভেলিডেশন করা
হয়েছে,কেউ কোন কিছু না লিখে Login বাটনে ক্লিক করলে মেসেজ
দেখাবে যে এই ফিল্ডটি পুরন করতে হবে।এধরনের অনেক ভেলিডেশন
মেথড আছে, ফিল্টার আছে যেগুলি দিয়ে ফর্ম ভেলিডেশন করা হয় এসব
পরের টিউটোরিয়ালে দেখব।এভাবে পরেরগুলি তৈরী করা হয়েছে।

এবার IndexController.php ফাইলে নিচের কোডটি লিখুন।ফাইলটি দেখতে
হবে এবার এরকম
01.<?php
02. 
03.class IndexController extends Zend_Controller_Action
04.{
05. 
06.public function init() {
07./* Initialize action controller here */
08.}
09. 
10.public function indexAction() {
11.$this->view->assign('test',
12.'Learning Zend Framework');
13.$form = new Application_Form_Myform();
14.$this->view->form = $form;
15.}
16. 
17.}?>
আগের টিউটোরিয়ালে যেটা তৈরী করে রেখেছিলাম সেটাই আছে শুধু ১৩,১৪ নম্বর
লাইনটি বেশি যোগ করা হয়েছে।

কোডের ব্যাখ্যা: $form = new Application_Form_Myform(); এটা দিয়ে
Application_Form_Myform ক্লাসটির instantiate করা হয়েছে যেটা
Myform.php ফাইলে ছিল।এরপর ভিউ ফাইলে দেখানোর জন্য form নামের
একটা ভেরিয়েবল তৈরী করে এখানে ফর্মটি assign করেছি।কোডটি
$this->view->assign('form',$form); এভাবে লিখলেও হত।

এখন index.phtml ফাইলে নিচের কোড লিখুন।এখানে শুধু ভেরিয়েবলটি echo করেছি।
1.<?php
2.echo $this->escape($this->test);
3.echo $this->form;
4.?>
আগের টিউটোরিয়ালের index.phtml ফাইল এখানে শুধু ৩ নম্বর লাইনটি বেশি যোগ
করা হয়েছে।এখন http://localhost/tutorial/public টাইপ করলে নিচের মত
ফর্মটি দেখাবে।



অতিরিক্ত প্রাকটিস: নতুন একটি একশন তৈরী করুন zf create action login Index
কমান্ড দিয়ে (login হচ্ছে একশনটির নাম আর Index হচ্ছে যে কন্ট্রোলার ফাইলে
একশনটি তৈরী করতে চাচ্ছি তার নাম)।এবার উপরের IndexController.php
ফাইলের ১৩,১৪ নম্বর লাইন কাট করে এই একশনে পেস্ট করে দিন।
1.public function loginAction(){
2.$form = new Application_Form_Myform();
3.$this->view->assign('form',$form);
4. 
5.}
আর index.phtml ফাইলের echo $this->form; এই কোডটুকু কাট করে l
ogin.phtml ফাইলে পেস্ট করে দিন (কমান্ড দিয়ে একশন তৈরীর সময় এই একশন
সংশ্লিষ্ট ফাইল login.phtml ফাইলটি অটোমেটিক view/scripts/index ফোল্ডারে
তৈরী হয়েছে) এবার ব্রাউজারে http://localhost/tutorial/public/index/login
লিখে এন্টার দিন।এবার শুধু ফর্মটি দেখাবে।

***মনে করেন আপনি indexAction এ একটা লিংক দিবেন যেখানে ক্লিক
করলে ইউজার এই লগিন ফর্ম পাবে তাহলে index.phtml ফাইলে এভাবে
লিংক তৈরী করুন
1.<a href="/<?php echo $this->url(array("controller"=>"index",
2."action"=>"login")) ?>">Login</a>
(href এর পর / (স্লাশ চিহ্ন) কোডের কোন অংশ নয়)
এখন http://localhost/tutrorial/public এ গিয়ে দেখুন একটা লিংক তৈরী হয়েছে
এখানে ক্লিক করলে লগিন ফর্ম আসবে।

কোন মন্তব্য নেই

Blogger দ্বারা পরিচালিত.