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:
[email protected]:~$ sudo apt-get install zend-framework
Confirm the installed version.
[email protected]:~$ 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.
[email protected]:~$ cd /var/www/
Create the test project called geeksite.
[email protected]:/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.
[email protected]:/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.
[email protected]:/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.
[email protected]:/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.