Zend Framework is an open source, object oriented web application framework for PHP 5. Zend Framework is often called a ‘component library’, because it has many loosely coupled components that you can use more or less independently. But Zend Framework also provides an advanced Model-View-Controller (MVC) implementation that can be used to establish a basic structure for your Zend Framework applications.
Zend Framework features include:
- All components are fully object-oriented PHP 5 and are E_STRICT compliant
- Use-at-will architecture with loosely coupled components and minimal interdependencies
- Extensible MVC implementation supporting layouts and PHP-based templates by default
- Support for multiple database systems and vendors, including MariaDB, MySQL, Oracle, IBM DB2, Microsoft SQL Server, PostgreSQL, SQLite, and Informix Dynamic Server
- Email composition and delivery, retrieval via mbox, Maildir, POP3 and IMAP4
- Flexible caching sub-system with support for many types of backends, such as memory or a file system.
Zend Framework can be tested by creating test project; it should be placed under the document root of your web server. Web server might be Apache, Nginx and Lighttpd; for easy understanding i used Apache as web server. Here is the Step by Step guide to install LAMP server on Linux Mint 12 / Ubuntu 11.10.
Install Zend Framework:
raj@ubuntu:~$ sudo apt-get install zend-framework
Confirm the installed version.
raj@geeksite:~$ zf show version Zend Framework Version: 1.11.11
Testing Zend project:
In Apache /var/www is the default document root, so i am going to create test project on /var/www, go to the default document root of web server.
raj@ubuntu:~$ cd /var/www/
Create the test project called geeksite.
raj@ubuntu:/var/www$ sudo zf create project geeksite Creating project at /var/www/geeksite Note: This command created a web project, for more information setting up your VHOST, please see docs/README
You should get the above message after hitting Enter; if you get any error message like below, you required to install PHPUnit on your Linux Mint / Ubuntu box.
PHP Warning: require_once(PHP/CodeCoverage/Filter.php): failed to open stream: No such file or directory in /usr/share/php/PHPUnit/Autoload.php on line 46 Warning: require_once(PHP/CodeCoverage/Filter.php): failed to open stream: No such file or directory in /usr/share/php/PHPUnit/Autoload.php on line 46 PHP Fatal error: require_once(): Failed opening required 'PHP/CodeCoverage/Filter.php' (include_path='/usr/share/php/libzend-framework-php:.:/usr/share/php:/usr/share/pear') in /usr/share/php/PHPUnit/Autoload.php on line 46 Fatal error: require_once(): Failed opening required 'PHP/CodeCoverage/Filter.php' (include_path='/usr/share/php/libzend-framework-php:.:/usr/share/php:/usr/share/pear') in /usr/share/php/PHPUnit/Autoload.php on line 46
Now we need to have the Zend Library files in the library directory under the created project (By default it’s empty). go to the library directory.
raj@ubuntu:/var/www$ cd geeksite/library/
SymLink is the better option than copying the library files to library directory; because the library files will get update when we are installing the latest Zend Framework.
raj@ubuntu:/var/www/geeksite/library$ sudo ln -s /usr/share/php/libzend-framework-php/Zend/ .
Tree view of your project directory; See the library/Zend directory too.
raj@ubuntu:/var/www/geeksite$ tree . ├── application │ ├── Bootstrap.php │ ├── configs │ │ └── application.ini │ ├── controllers │ │ ├── ErrorController.php │ │ └── IndexController.php │ ├── models │ └── views │ ├── helpers │ └── scripts │ ├── error │ │ └── error.phtml │ └── index │ └── index.phtml ├── docs │ └── README.txt ├── library │ └── Zend -> /usr/share/php/libzend-framework-php/Zend/ ├── public │ └── index.php └── tests ├── application │ └── controllers │ └── IndexControllerTest.php ├── bootstrap.php └── phpunit.xml
16 directories, 11 files
Open up a web browser and navigate to http://localhost/geeksite/public. Screen Shot of Test Project in Ubuntu 11.10.
Screen Shot of Test Project in Linux Mint 12.