Trang chủ » Kho tài liệu » Lập Trình với Zend Framework


Cập nhật ngày: 4/22/2015 4:57:40 PM

Bài 4 – Tạo một custom Module trong Zend 2



Xây dựng module Book trong Zend 2


Xây dựng module Book trong Zend 2.

 


B1: Tạo cấu trúc thư mục cho module Book trong zendtuts/module/ như sau:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
module
---Book
------config
---------module.config.php
------src
---------Book
------------Controller
----------------IndexController.php
------view
---------book
------------index
----------------index.phtml
---------layout
----------------layout.phtml
------Module.php

B2: Nhập đoạn code sau vào file Book/Module.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
namespace Book; //Đăng ký namespace cho Module, Namespace phải trùng với tên module.
 
 class Module
 {
     public function getAutoloaderConfig()
     {
        //Đăng ký namespace với module và đường dẫn đến file.
         return array(
             'Zend\Loader\StandardAutoloader' => array(
                 'namespaces' => array(
                     __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
                 ),
             ),
         );
     }
 
     public function getConfig()
     {
        //Gọi file module config.
         return include __DIR__ . '/config/module.config.php';
     }
 }

B3: Nhập đoạn code sau vào file Book/config/module.config.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
return array(
    //Đăng ký các controller cho module
     'controllers' => array(
         'invokables' => array(
             'Book\Controller\Index' => 'Book\Controller\IndexController',
         ),
     ),
 
     //Đăng ký các route tương ứng với các controller và action cho module
     'router' => array(
         'routes' => array(
             'book' => array(
                 'type'    => 'segment',
                 'options' => array(
                     'route'    => '/book[/:action][/:id]'//đường dẫn gốc cho module là http://zentutorial/book
                     //tiếp sau đường dẫn gốc là tên action và id.
                     //VD: http://zentutorial/book/update/2
                     //Các action và id được lọc bới regular expression.
                     //Các action có thể là chữ thường, chữ hoa, con số, dấu gạch shift(_) và dấu gạch ngang(-)
                     //Các id chỉ có thể là chữ số
                     'constraints' => array(
                         'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                         'id'     => '[0-9]+',
                     ),
                     //Controller mặc định cho module này sẽ là Index(IndexController)
                     //Action mặc định cho module này sẽ là index(indexAction)
                     'defaults' => array(
                         'controller' => 'Book\Controller\Index',
                         'action'     => 'index',
                     ),
                 ),
             ),
         ),
     ),
         
    //Khai báo đường dẫn đến view
     'view_manager' => array(
         'template_path_stack' => array(
             'book' => __DIR__ . '/../view',
         ),
     ),
 );

Để hiểu rõ hơn về regular expression trong PHP, các bạn có thể xem thêm tại bài viết:
http://vietobject.com/phpmysql/bai-12-bieu-thuc-chinh-quyregular-expression-co-ban-trong-php.html

B4: Nhập đoạn code sau vào file Book/src/Book/Controller/IndexController.php

1
2
3
4
5
6
7
8
9
10
11
12
namespace Book\Controller;
 
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
 
class IndexController extends AbstractActionController
{
    public function indexAction()
    {
        echo "Hello World!";
    }
}

B5: Mở trình duyệt và nhập đường dẫn đến book controller. Ở đây của tôi là http://zentutorial.local/book

custom Module trong Zend 2

Như vậy là module của chúng ta đã hoạt động. Trong bài sau chúng ta sẽ tìm hiểu cách sử dụng view trong Zend 2.



 


Nguồn: vietobject