SlideShare ist ein Scribd-Unternehmen logo
1 von 11
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”
- 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:
- 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.3htdocszf2basic
 Content: Basic
 Version: PHP 5.4
- 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
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__)));
//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
ZendLoaderAutoloaderFactory::factory(array(
'ZendLoaderStandardAutoloader' => 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('ZendLoaderAutoloaderFactory')) {
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
ZendMvcApplication::init(require 'config/application.config.php')->run();
- Tạo tập tin /config/application.config.php với nội dung sau:
<?php
return 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:
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} -d
RewriteRule ^.*$ - [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:
- 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:
<?php
namespace Application;
use ZendMvcModuleRouteListener;
use ZendMvcMvcEvent;
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(
'ZendLoaderStandardAutoloader' => 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
- Mở tập tin /module/Application/config/module.config.php thêm nội dung sau:
<?php
return array(
'router' => array(
'routes' => array(
'home' => array(
'type' => 'ZendMvcRouterHttpLiteral',
'options' => array(
'route' => '/',
'defaults' => array(
'controller' => 'ApplicationControllerIndex',
'action' => 'index',
),//'defaults'
),//'options'
),//'home'
),//'routes'
), //'router'
//Bat buoc phai co khong thi se co loi
'controllers' => array(
'invokables' => array(
'ApplicationControllerIndex' => 'ApplicationControllerIndexController'
),
),
//Bat buoc phai co thì mới load duoc View
'view_manager' => array(
'doctype' => 'HTML5',
'template_path_stack' => array(
__DIR__ . '/../view',
),
)
);
- 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 ZendRouter
 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 ApplicationController;
//Load lớp AbstractActionController vào CONTROLLER
use ZendMvcControllerAbstractActionController;
//Load lớp ViewModel vào CONTROLLER
use ZendViewModelViewModel;
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">
<?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

Weitere ähnliche Inhalte

Was ist angesagt?

Hỏi tình hình bk tiny bktiny-hdsd
Hỏi tình hình bk tiny   bktiny-hdsdHỏi tình hình bk tiny   bktiny-hdsd
Hỏi tình hình bk tiny bktiny-hdsdVu Hung Nguyen
 
The First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress MeetupThe First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress MeetupKhanhPham
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webMasterCode.vn
 
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng webBài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng webMasterCode.vn
 
Bài 3 Một số kỹ thuật lập trình PHP nâng cao - Xây dựng ứng dụng web
Bài 3 Một số kỹ thuật lập trình PHP nâng cao - Xây dựng ứng dụng webBài 3 Một số kỹ thuật lập trình PHP nâng cao - Xây dựng ứng dụng web
Bài 3 Một số kỹ thuật lập trình PHP nâng cao - Xây dựng ứng dụng webMasterCode.vn
 
tao module joomla 1.5
tao module  joomla 1.5tao module  joomla 1.5
tao module joomla 1.5dvms
 
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPTBài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPTMasterCode.vn
 
Học Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend FrameworkHọc Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend FrameworkKhanhPham
 
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPTBài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPTMasterCode.vn
 
Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao
Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao
Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao KhanhPham
 
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ JavaHướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ JavaHuy Vũ
 
Mysql Workbench hướng dẫn cài đặt - Video tiếng Việt
Mysql Workbench hướng dẫn cài đặt - Video tiếng ViệtMysql Workbench hướng dẫn cài đặt - Video tiếng Việt
Mysql Workbench hướng dẫn cài đặt - Video tiếng ViệtKhanhPham
 
Bài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPT
Bài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPTBài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPT
Bài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPTMasterCode.vn
 
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản KhanhPham
 

Was ist angesagt? (20)

Web301 slide 2
Web301   slide 2Web301   slide 2
Web301 slide 2
 
Hỏi tình hình bk tiny bktiny-hdsd
Hỏi tình hình bk tiny   bktiny-hdsdHỏi tình hình bk tiny   bktiny-hdsd
Hỏi tình hình bk tiny bktiny-hdsd
 
The First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress MeetupThe First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress Meetup
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
 
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng webBài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
 
Bài 3 Một số kỹ thuật lập trình PHP nâng cao - Xây dựng ứng dụng web
Bài 3 Một số kỹ thuật lập trình PHP nâng cao - Xây dựng ứng dụng webBài 3 Một số kỹ thuật lập trình PHP nâng cao - Xây dựng ứng dụng web
Bài 3 Một số kỹ thuật lập trình PHP nâng cao - Xây dựng ứng dụng web
 
tao module joomla 1.5
tao module  joomla 1.5tao module  joomla 1.5
tao module joomla 1.5
 
Web201 slide 6
Web201   slide 6Web201   slide 6
Web201 slide 6
 
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPTBài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
 
Học Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend FrameworkHọc Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend Framework
 
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPTBài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT
 
Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao
Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao
Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao
 
Web301 slide 1
Web301   slide 1Web301   slide 1
Web301 slide 1
 
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ JavaHướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
 
Web301 slide 3
Web301   slide 3Web301   slide 3
Web301 slide 3
 
Mysql Workbench hướng dẫn cài đặt - Video tiếng Việt
Mysql Workbench hướng dẫn cài đặt - Video tiếng ViệtMysql Workbench hướng dẫn cài đặt - Video tiếng Việt
Mysql Workbench hướng dẫn cài đặt - Video tiếng Việt
 
Web201 slide 7
Web201   slide 7Web201   slide 7
Web201 slide 7
 
Bài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPT
Bài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPTBài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPT
Bài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPT
 
Web201 slide 1
Web201   slide 1Web201   slide 1
Web201 slide 1
 
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
 

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

All zend
All zendAll zend
All zendkuetli
 
Create easymoduleinphpfox
Create easymoduleinphpfoxCreate easymoduleinphpfox
Create easymoduleinphpfoxEntu Di
 
TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7
TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7
TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7dvms
 
TÀI LIỆU HƯỚNG DẪN ĐÓNG GÓI MODULE MAGENTO 1.7
TÀI LIỆU HƯỚNG DẪN ĐÓNG GÓI MODULE  MAGENTO 1.7TÀI LIỆU HƯỚNG DẪN ĐÓNG GÓI MODULE  MAGENTO 1.7
TÀI LIỆU HƯỚNG DẪN ĐÓNG GÓI MODULE MAGENTO 1.7dvms
 
Co ban ve_zend_framework 1
Co ban ve_zend_framework 1Co ban ve_zend_framework 1
Co ban ve_zend_framework 1Ông Thông
 
Lap trinh-joomla-15-theo-mo-hinh-mvc
Lap trinh-joomla-15-theo-mo-hinh-mvcLap trinh-joomla-15-theo-mo-hinh-mvc
Lap trinh-joomla-15-theo-mo-hinh-mvcChe Linh Nguyen
 
My sql part 2 - manager mysql server - backup & restore database
My sql   part 2 - manager mysql server - backup & restore databaseMy sql   part 2 - manager mysql server - backup & restore database
My sql part 2 - manager mysql server - backup & restore databaselaonap166
 
DVMS tạo module joomla 2.5
DVMS tạo module joomla 2.5DVMS tạo module joomla 2.5
DVMS tạo module joomla 2.5dvms
 
TÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRM
TÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRMTÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRM
TÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRMdvms
 
Devexpress cho asp.net
Devexpress cho asp.netDevexpress cho asp.net
Devexpress cho asp.netthichxoidau
 
php với oracle database
php với oracle databasephp với oracle database
php với oracle databaseNgo Trung
 
template magento
template magentotemplate magento
template magentodvms
 
Tutoria mvc framework
Tutoria mvc frameworkTutoria mvc framework
Tutoria mvc frameworkXuan Le
 

Ähnlich wie Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2 (20)

All zend
All zendAll zend
All zend
 
Create easymoduleinphpfox
Create easymoduleinphpfoxCreate easymoduleinphpfox
Create easymoduleinphpfox
 
TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7
TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7
TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7
 
TÀI LIỆU HƯỚNG DẪN ĐÓNG GÓI MODULE MAGENTO 1.7
TÀI LIỆU HƯỚNG DẪN ĐÓNG GÓI MODULE  MAGENTO 1.7TÀI LIỆU HƯỚNG DẪN ĐÓNG GÓI MODULE  MAGENTO 1.7
TÀI LIỆU HƯỚNG DẪN ĐÓNG GÓI MODULE MAGENTO 1.7
 
Co ban ve_zend_framework 1
Co ban ve_zend_framework 1Co ban ve_zend_framework 1
Co ban ve_zend_framework 1
 
Lap trinh-joomla-15-theo-mo-hinh-mvc
Lap trinh-joomla-15-theo-mo-hinh-mvcLap trinh-joomla-15-theo-mo-hinh-mvc
Lap trinh-joomla-15-theo-mo-hinh-mvc
 
My sql part 2 - manager mysql server - backup & restore database
My sql   part 2 - manager mysql server - backup & restore databaseMy sql   part 2 - manager mysql server - backup & restore database
My sql part 2 - manager mysql server - backup & restore database
 
Bai bao cao 3
Bai bao cao 3Bai bao cao 3
Bai bao cao 3
 
Tìm hiểu về Joomla
Tìm hiểu về Joomla Tìm hiểu về Joomla
Tìm hiểu về Joomla
 
DVMS tạo module joomla 2.5
DVMS tạo module joomla 2.5DVMS tạo module joomla 2.5
DVMS tạo module joomla 2.5
 
TÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRM
TÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRMTÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRM
TÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRM
 
Laravel 5 framework
Laravel 5 frameworkLaravel 5 framework
Laravel 5 framework
 
Asp control
Asp controlAsp control
Asp control
 
Devexpress cho asp.net
Devexpress cho asp.netDevexpress cho asp.net
Devexpress cho asp.net
 
Lab lap trinhmang_v3
Lab lap trinhmang_v3Lab lap trinhmang_v3
Lab lap trinhmang_v3
 
php với oracle database
php với oracle databasephp với oracle database
php với oracle database
 
template magento
template magentotemplate magento
template magento
 
Giới thiệu Yii Framework 1
Giới thiệu Yii Framework 1Giới thiệu Yii Framework 1
Giới thiệu Yii Framework 1
 
Báo cáo tuần đồ án
Báo cáo tuần đồ ánBáo cáo tuần đồ án
Báo cáo tuần đồ án
 
Tutoria mvc framework
Tutoria mvc frameworkTutoria mvc framework
Tutoria mvc framework
 

Mehr von KhanhPham

Giáo trình thiết kế web - Thiết kế web với Dreamweaver
Giáo trình thiết kế web - Thiết kế web với DreamweaverGiáo trình thiết kế web - Thiết kế web với Dreamweaver
Giáo trình thiết kế web - Thiết kế web với DreamweaverKhanhPham
 
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâu
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâuTự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâu
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâuKhanhPham
 
Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)
Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)
Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)KhanhPham
 
Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)
Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)
Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)KhanhPham
 
Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)
Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)
Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)KhanhPham
 
Giao trinh PHP nang cao - Các hàm xử lý file trong PHP (CH003 Bài 2)
Giao trinh PHP nang cao - Các hàm xử lý file trong PHP (CH003 Bài 2)Giao trinh PHP nang cao - Các hàm xử lý file trong PHP (CH003 Bài 2)
Giao trinh PHP nang cao - Các hàm xử lý file trong PHP (CH003 Bài 2)KhanhPham
 
Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)
Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)
Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)KhanhPham
 
Lap trình web PHP - Các hàm xử lý số number trong PHP (CH002 Bài 3)
Lap trình web PHP - Các hàm xử lý số number trong PHP  (CH002 Bài 3)Lap trình web PHP - Các hàm xử lý số number trong PHP  (CH002 Bài 3)
Lap trình web PHP - Các hàm xử lý số number trong PHP (CH002 Bài 3)KhanhPham
 
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)KhanhPham
 
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)KhanhPham
 
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)KhanhPham
 
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong Wordpress
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong WordpressTài liệu lập trình Wordpress - bài 5 - Action và Action hook trong Wordpress
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong WordpressKhanhPham
 

Mehr von KhanhPham (12)

Giáo trình thiết kế web - Thiết kế web với Dreamweaver
Giáo trình thiết kế web - Thiết kế web với DreamweaverGiáo trình thiết kế web - Thiết kế web với Dreamweaver
Giáo trình thiết kế web - Thiết kế web với Dreamweaver
 
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâu
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâuTự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâu
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâu
 
Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)
Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)
Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)
 
Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)
Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)
Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)
 
Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)
Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)
Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)
 
Giao trinh PHP nang cao - Các hàm xử lý file trong PHP (CH003 Bài 2)
Giao trinh PHP nang cao - Các hàm xử lý file trong PHP (CH003 Bài 2)Giao trinh PHP nang cao - Các hàm xử lý file trong PHP (CH003 Bài 2)
Giao trinh PHP nang cao - Các hàm xử lý file trong PHP (CH003 Bài 2)
 
Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)
Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)
Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)
 
Lap trình web PHP - Các hàm xử lý số number trong PHP (CH002 Bài 3)
Lap trình web PHP - Các hàm xử lý số number trong PHP  (CH002 Bài 3)Lap trình web PHP - Các hàm xử lý số number trong PHP  (CH002 Bài 3)
Lap trình web PHP - Các hàm xử lý số number trong PHP (CH002 Bài 3)
 
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)
 
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)
 
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)
 
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong Wordpress
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong WordpressTài liệu lập trình Wordpress - bài 5 - Action và Action hook trong Wordpress
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong Wordpress
 

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

  • 1. 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”
  • 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:
  • 3. - 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.3htdocszf2basic  Content: Basic  Version: PHP 5.4
  • 4. - 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
  • 5. 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__)));
  • 6. //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 ZendLoaderAutoloaderFactory::factory(array( 'ZendLoaderStandardAutoloader' => 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('ZendLoaderAutoloaderFactory')) { 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 ZendMvcApplication::init(require 'config/application.config.php')->run(); - Tạo tập tin /config/application.config.php với nội dung sau: <?php return 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:
  • 7. 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} -d RewriteRule ^.*$ - [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:
  • 8. - 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: <?php namespace Application; use ZendMvcModuleRouteListener; use ZendMvcMvcEvent; 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( 'ZendLoaderStandardAutoloader' => array( 'namespaces' => array( __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, ), ), ); }
  • 9. } - 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 - Mở tập tin /module/Application/config/module.config.php thêm nội dung sau: <?php return array( 'router' => array( 'routes' => array( 'home' => array( 'type' => 'ZendMvcRouterHttpLiteral', 'options' => array( 'route' => '/', 'defaults' => array( 'controller' => 'ApplicationControllerIndex', 'action' => 'index', ),//'defaults' ),//'options' ),//'home' ),//'routes' ), //'router'
  • 10. //Bat buoc phai co khong thi se co loi 'controllers' => array( 'invokables' => array( 'ApplicationControllerIndex' => 'ApplicationControllerIndexController' ), ), //Bat buoc phai co thì mới load duoc View 'view_manager' => array( 'doctype' => 'HTML5', 'template_path_stack' => array( __DIR__ . '/../view', ), ) ); - 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 ZendRouter  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 ApplicationController; //Load lớp AbstractActionController vào CONTROLLER use ZendMvcControllerAbstractActionController; //Load lớp ViewModel vào CONTROLLER use ZendViewModelViewModel; 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">
  • 11. </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"> <?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