PhpRiot
Follow phpriot on Twitter
Sponsored Link
Download Article
Download this article or the entire “Zend Framework 101” series with all listings and files.




More information
Become Zend Certified

Prepare for the ZCE exam using our quizzes (web or iPad/iPhone). More info...


When you're ready get 7.5% off your exam voucher using voucher CJQNOV23 at the Zend Store
Free iPad/iPhone App
Available on the App Store

  • PHP manual
  • Zend Framework manual
  • Smarty manual
  • PHP articles
  • PHP training

Zend Framework 101: Zend_Registry

Sample Usage of Zend_Registry

At this stage it may not be entirely clear why Zend_Registry is of use. The prime example of its usefulness is how you access global objects from anywhere in your application.

For instance, your application may use a database. Typically in this scenario you will create your database connection at the start of the request, then continually access the object to perform SQL queries as required.

Note: In the example of this page we use Zend_Db. Zend_Db does not actually make a connection to the database until you perform a query or call the getConnection() method on the adapter.

You will often have many different classes which then require this database connection. It can be quite a pain and somewhat messy to pass the connection between all your classes and functions, so accessing the database connection through the registry becomes extremely useful.

In listing 5 we will define a class that saves new users to a database. We will then access this class to save the user.

Listing 5 Using the registry to store database connection (listing-5.php)
<?php
    require_once('Zend/Registry.php');
    require_once('Zend/Db.php');
 
    Zend_Registry::set('db', Zend_Db::factory());
 
    class User
    {
        public static function create($name)
        {
            $values = array(
                'name' => $name
            );
 
            $db = Zend_Registry::get('db');
            $db->insert('users', $values);
        }
    }
 
    User::create('Quentin Zervaas');
?>

In this example, we can simply cal the User::create() method and that method will retrieve the database connection from the registry as required.

In This Article