Tìm hiểu về zend framework 2

Tổng quan về zend framework

  • Zend Framework là một bộ thư viện các lớp được xây dựng dựa trên nền tảng ngông ngữ PHP theo hướng OPP và được công ty zend phát triển
  • Zend Framework là một nền tảng có tính mềm dẻo, linh hoạt dễ dàng tích hợp các thư viện php có sẵn
  • Zend Framework thường được sử dụng trong các hệ thống web lớn
  • Zend Framework là một trong nhữn thư viện PHP hoàn chỉnh nhất hiện nay và đang được các công ty lớn trong lĩnh vực công nghệ thông tin ưa chuộng sử dụng

Tại sao là zend framework 2

  • Zend framework 1.x là một nền tảng tương đối hoàn chỉnh. tuy nhiên lại khá cồng kềnh và có performance tương đối chậm và có phần không theo kịp các framework mới được phát triển.
  • Vì khá cồng kềnh nên zendframework 1.x đang dần bị tụt hậu và các lập trình viên thường chuyển qua dùng các framework khác thay cho zend
  • Zend framework 2 ra đời phát huy tốt sức mạnh của php 5.x

Ưu điểm

  • Rất nhiều thư viện hỗ trợ
  • tốc độ load web được cải thiện rất nhiều so với zend framework 2
  • có nhiều thư viện giúp giảm thời gian thực hiện dự án

Nhược điểm

  • không thuận tiện khi thực hiện các dự án vừa và nhỏ
  • chưa có migrate database
  • cơ chế load module tương đối phức tạp
  • có quá nhiều config khiến việc nghiên cứu mất nhiều thời gian

Cài đặt và sử dụng

Cài đặt

  • Yêu cầu hệ thống
  • PHP >= 5.3.x
  • composer
  • git, svn,...
  • 2 Cách setup đơn giản nhất để bắt đầu với zendframework 2

Download source

  • Đây là cách đơn giản nhất chỉ cần lên trang chủ và tải về bản mới nhất của zend 2 tại : http://framework.zend.com/downloads/latest
  • Giải nén file cài đặt vừa tải về.
  • Copy thư mục vừa giải nén vào thư mục web root

Sử dụng Composer

cd my/project/dir git clone git://github.com/zendframework/ZendSkeletonApplication.git cd ZendSkeletonApplication sudo composer self-update sudo composer install

## Cài đặt web server
### Vào project trực tiếp qua đường dẫn của loacalhost

localhost/project_dir/pubic/

### PHP CLI Server

php -S 0.0.0.0:8080 -t public/ public/index.php

### Tạo Vitual host
- Run commands on terminal:

cd /etc/apache2/sites-available touch zenddemo.conf sudo vi zenddemo.conf

- thêm nội dung sau vào file zenddemo.conf

<VirtualHost *:80> DocumentRoot "/var/www/html/project_dir" ServerName zenddemo.local ServerAlias zenddemo.local <Directory /var/www/html/project_dir/public/> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php </Directory> </VirtualHost>

- tiếp tục chạy các lệnh command sau:

sudo a2ensite zenddemo sudo service zenddemo restart

- thêm dòng sau vào file hosts : `sudo vi /etc/hosts`

127.0.0.1 zenddemo.local


# Cấu trúc của ZendFramework 2
![zend2.png](/uploads/94d712e5-0b20-485b-a40f-463c8f928990.png)

- Cấu trúc thư mục của zendframework 2 theo đúng phong cách của một framework MVC
- `config:` Chứa các config global trên toàn proejct
- `data:`
- - Một điểm trừ trên zend framework 2 là vẫn chưa có cơ chế migrate database như những framework php đang được ưa chuộng hiện nay. thư mục data dùng để lưu trữ data và cache
-  `module:` chứa các module của project
-  `public:` chứa các file image, js, css
-  `vendor:` chứa các package được lấy về thông qua composer