tài liệu zend framework 2 - cài đặt và cấu hình zend framework 2 - bài 2

13
Cài đặt và cấu hình Zend Framework 2 A. Chuẩn bị Để cấu hình Zend Framework 2 chúng ta cần phải chuẩn bị một số thứ như sau: - Webserver: các bạn có thể sử dụng các gói webserver như Xampp, Wamp, ZendServer… và chú ý dùng phiên bản mới nhất - Chuẩn bị một PHP Editor: các bạn có thể sử dụng các chương trình viết mã PHP như Zend Studio, Eclipse (Free), NetBeans (Free), Aptana Studio PHP Editor(Free)... - Cài đặt Webserver và PHP Editor. Trong bài viết này tôi sẽ sử dụng Xampp và Zend Studio 9. - Tôi cài đặt Xampp vào ổ D. (VD: D:\xampp.1.8.3) - Khi cài đặt Webserver nếu sợ đụng PORT với các chương trình khác các bạn có thể thay đổi PORT theo các bước sau: - Sau khi nhấn vào tập tin httpd.conf. Chương trình sẽ mở ra một nội dung bằng chương trình Notepad. Chúng ta bấm Ctrl + F và nhập giá trị “Listen 80”

Upload: khanhpham

Post on 20-Jun-2015

2.642 views

Category:

Technology


5 download

DESCRIPTION

Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2. Hướng dẫn cách cài đặt, cấu hình ZF2. Để tìm hiểu kỹ hơn các bạn hãy truy cập; Website: www.zend.vn Facebook: https://www.facebook.com/zendvngroup

TRANSCRIPT

Page 1: Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2

Cài đặt và cấu hình Zend Framework 2A. Chuẩn bị

Để cấu hình Zend Framework 2 chúng ta cần phải chuẩn bị một số thứ như sau:- Webserver: các bạn có thể sử dụng các gói webserver như Xampp, Wamp, ZendServer… và chú

ý dùng phiên bản mới nhất- Chuẩn bị một PHP Editor: các bạn có thể sử dụng các chương trình viết mã PHP như Zend

Studio, Eclipse (Free), NetBeans (Free), Aptana Studio PHP Editor(Free)... - Cài đặt Webserver và PHP Editor. Trong bài viết này tôi sẽ sử dụng Xampp và Zend Studio 9.- Tôi cài đặt Xampp vào ổ D. (VD: D:\xampp.1.8.3)- Khi cài đặt Webserver nếu sợ đụng PORT với các chương trình khác các bạn có thể thay đổi

PORT theo các bước sau:

- Sau khi nhấn vào tập tin httpd.conf. Chương trình sẽ mở ra một nội dung bằng chương trình Notepad. Chúng ta bấm Ctrl + F và nhập giá trị “Listen 80” 

Page 2: Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2

- Khi tìm được chuỗi “Listen 80” đổi thành “Listen 8000”- Chạy thử url: http://localhost:8000/ chúng ta sẽ có giao diện như sau:

- Download thư viện Zend Framework 2 tại địa chỉ http://framework.zend.com/downloads/latest

- Giải nén tập tin vừa download chúng ta sẽ được cấu trúc sau:

Page 3: Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2

- Vậy là chúng ta đã có đầy đủ các công cụ và dữ liệu để bắt tay vào quá trình cấu hình ứng dụng Zend Framework 2. Bây giờ chúng ta sẽ bắt tay vào xây dựng ví dụ "Hello World" trên thư viện Zend Framework 2

B. Cấu hình Zend Framework 2

1. Tạo project trong Zend Studio- Chọn File menu > New > Local PHP Project

- Nhập giá trị sau vào: Project name: zf2basic Location: D:\xampp.1.8.3\htdocs\zf2basic Content: Basic Version: PHP 5.4

Page 4: Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2

- Sau đó nhấn nút “Next” xem thông tin server của project

- Nhấn nút “Finish” để hoàn thành quá trình tạo Project

Page 5: Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2

2. Tạo cấu trúc và các tập tin trong ứng dụng Zend Framework

- Trong thư mục /zf2basic chúng ta tạo các thư mục con như sau: /config: Thư mục chứa các tập tin cấu hình /library: Thư mục chứa các thư viện mở rộng /module: Thư mục chứa các module của ứng dụng /public: Thư mục chứa hình ảnh, javascript, css… /vendor: Thư mục chứa các module mở rộng có sẵn

- Copy thư viện Zend Framework 2 vào thư mục /zf2basic/library- Tạo 2 tập tin index.php và define.php trong thư mục /public

- Mở tập tin /public/define.php thêm vào nội dung sau:

<?php //Đường dẫn đến thư mục chứa thư mục hiện thời chdir(dirname(__DIR__)); //Hằng số lưu đường dẫn thư mục ứng dụng define('APPLICATION_PATH', realpath(dirname(__DIR__)));

Page 6: Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2

//Hằng số lưu đường dẫn thư mục chứa thư viên ZF2 define('LIBRARY_PATH', realpath(APPLICATION_PATH . '/library/'));

- Mở tập tin /public/index.php với thêm nội dung sau:

<?php //Nhúng tập tin chứa các hằng số mặc định của ứng dụng include 'define.php';

//Nhúng tập tin chứa lớp AutoloaderFactory include LIBRARY_PATH . '/Zend/Loader/AutoloaderFactory.php'; //Thiết chế tự động load các tập tin cấu hình của các thành phần mở rộng Zend\Loader\AutoloaderFactory::factory(array( 'Zend\Loader\StandardAutoloader' => array( 'autoregister_zf' => true ) )); //Kiểm tra xem sự tồn tại của lớp AutoloaderFactory //Nếu không tồn tại thì hiển thị thông báo lỗi if (!class_exists('Zend\Loader\AutoloaderFactory')) { throw new RuntimeException('Unable to load ZF2. Run `php composer.phar install` or define a ZF2_PATH environment variable.'); } // Nạp tập tin cấu hình /config/appliction.config.php //Sau đó chạy ứng dụng Zend Framework Zend\Mvc\Application::init(require 'config/application.config.php')->run();

- Tạo tập tin /config/application.config.php với nội dung sau:

<?phpreturn array( //module là một mảng chứa tên 'namespaces' của các module trong ứng dụng 'modules' => array( 'Application' ), // module_listener_options là một mảng chứa thông tin của Module // Mảng này được đưa vào phần quản lý Module (ModuleManager) 'module_listener_options' => array( //module_paths: là một mảng đường dẫn đến các thư mục //chứa các MODULE trong ứng dụng 'module_paths' => array( './module', './vendor', ), //config_glob_paths: là một mảng chứa các tập tin cấu hình của ứng dụng 'config_glob_paths' => array( 'config/autoload/{,*.}{global,local}.php', ), ), );

- Tạo tập tin /public/.htaccess có nội dung như sau:

Page 7: Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2

RewriteEngine On# The following rule tells Apache that if the requested filename# exists, simply serve it.RewriteCond %{REQUEST_FILENAME} -s [OR]RewriteCond %{REQUEST_FILENAME} -l [OR]RewriteCond %{REQUEST_FILENAME} -dRewriteRule ^.*$ - [NC,L]# The following rewrites all other queries to index.php. The # condition ensures that if you are using Apache aliases to do# mass virtual hosting, the base path will be prepended to # allow proper resolution of the index.php file; it will work# in non-aliased environments as well, providing a safe, one-size # fits all solution.RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$RewriteRule ^(.*) - [E=BASE:%1]RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]

- Chạy thử đường dẫn: http://localhost:8000/zf2basic/public/ chúng ta sẽ thư được kết quả như sau:

3. Tạo Module đầu tiên có tên ‘Application’

- Tạo thư mục Application trong /zf2basic/module - Trong thư mục /zf2basic/module/Application tạo hệ thống thư mục và tập tin như sau:

Page 8: Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2

- Giải thích chức năng của thư mục và các tập tin /config: Thư mục chứa các tập cấu hình của Module /config/module.config.php: Tập tin chứa cấu hình cấu hình của Module  /language: Thư mục chứa các tập tin ngôn ngữ của Module /src: Thư mục chứa các Controller của Module /view: Thư mục chưa VIEW và LAYOUT của Module Module.php: Tập tin load các thông tin cần thiết của Module

- Mở tập tin /module/Application/Module.php thêm nội dung sau:

<?phpnamespace Application;

use Zend\Mvc\ModuleRouteListener;use Zend\Mvc\MvcEvent;

class Module{ public function onBootstrap(MvcEvent $e) { $eventManager = $e->getApplication()->getEventManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); }

public function getConfig() { return include __DIR__ . '/config/module.config.php'; }

public function getAutoloaderConfig() { return array( 'Zend\Loader\StandardAutoloader' => array( 'namespaces' => array( __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, ), ), ); }}

- Phương thức onBootstrap(): là phương thức được gọi trong các MODULE, đây là phương thức để quản lý các sự kiện trong MODULE. Phương thức này được khuyên dùng để thực hiện những task đơn giản và không sử dụng để xử lý chức năng có quá nhiều thông tin, dữ liệu.

- Phương thứ getConfig(): Dùng để nạp nội dung tập tin cấu hình của Module- Phương thức getAutoloaderConfig(): Sử dụng để thiết lập giá trị namespace cho MODULE

- Tạo thêm các thư mục và tập tin trong thư mục /zf2basic/module/Application như hình sau

Page 9: Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2

- Mở tập tin /module/Application/config/module.config.php thêm nội dung sau:

<?phpreturn array( 'router' => array( 'routes' => array( 'home' => array( 'type' => 'Zend\Mvc\Router\Http\Literal', 'options' => array( 'route' => '/', 'defaults' => array( 'controller' => 'Application\Controller\Index', 'action' => 'index', ),//'defaults' ),//'options' ),//'home' ),//'routes' ), //'router' //Bat buoc phai co khong thi se co loi 'controllers' => array( 'invokables' => array( 'Application\Controller\Index' => 'Application\Controller\IndexController' ), ), //Bat buoc phai co thì mới load duoc View 'view_manager' => array( 'doctype' => 'HTML5', 'template_path_stack' => array( __DIR__ . '/../view', ), ));

Page 10: Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2

- Tập tin module.config.php trả về một mảng cấu hình của MODULE. Trong mảng này có nhiều phần tử khác nhau. Nhìn trên mã nguồn trên chúng ta thấy có 3 phần tử chính như:

router: Thiết lập cấu hình cho MODULE. Để hiểu rõ phần này chúng ta phải tìm hiểu về các lớp trong Zend\Router

controllers: Khai báo cấu trúc đường dẫn CONTROLLER view_manager: Thiết lập cấu hình VIEW, TEMPLATE, LAYOUT 

- Mở tập tin CONTROLLER có tên /module/Application/src/Application/Controller/IndexController.php thêm vào nội dung sau:

<?php//Khai bao namespace namespace Application\Controller;

//Load lớp AbstractActionController vào CONTROLLERuse Zend\Mvc\Controller\AbstractActionController;

//Load lớp ViewModel vào CONTROLLERuse Zend\View\Model\ViewModel;

class IndexController extends AbstractActionController{ public function indexAction() { //Khởi tạo đối tượng ViewModel và chuyền giá vào đối tượng $view = new ViewModel(array('course'=>'Khóa học Zend Frameword 2.x'));

//Truyền đối tượng ViewModel ra ngoài VIEW return $view; }}

- Mở tập tin LAYOUT có tên /module/Application/view/layout/layout.phtml vào thêm nội dung sau:

<?php echo $this->doctype(); ?><html lang="en"> <head> <meta charset="utf-8"> </head> <body> <h1>Hello World</h1> <?php echo $this->content; ?> </body></html>

- Mở tập tin VIEW ứng với indexAction có tên /module/Application/view/application/index/index.phtml thêm vào nội dung như sau:

<h2>Chào mừng bạn đến với thế giới ZF2</h2><div id="content">

Page 11: Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2

<?php echo $this->course; ?></div>

- Bây giờ chúng ta sẽ truy cập đường dẫn URL sau: http://localhost:8000/zf2basic/public/ chúng ta sẽ thấy giao diện sau

Vậy là chúng ta đã cài đặt được ứng dụng "Hello World" trên thư viện Zend Framework 2. Hi vọng bài viết này có thể giúp các bạn cài đặt Zend Framework 2 bằng tay một cách dễ dàng

Download source here: http://www.zend.vn/download/pictures/zend-framework-2/01-cai-dat-zend-framework-2/01-cai-dat-zend-framework-2.zip