The Factory pattern allows for the instantiation of objects
at runtime. It is called a Factory Pattern since it is
responsible for "manufacturing" an object.
Example 19-23. Factory Method
<?php class Example { // The factory method public static function factory($type) { if (include_once 'Drivers/' . $type . '.php') { $classname = 'Driver_' . $type; return new $classname; } else { throw new Exception ('Driver not found'); } } } ?>
Defining this method in a class allows drivers to be loaded on the
fly. If the Example class was a database
abstraction class, loading a MySQL and
SQLite driver could be done as follows:
<?php // Load a MySQL Driver $mysql = Example::factory('MySQL');
// Load a SQLite Driver $sqlite = Example::factory('SQLite'); ?>
The Singleton pattern applies to situations in which
there needs to be a single instance of a class.
The most common example of this is a database connection.
Implementing this pattern allows a programmer to make this
single instance easily accessible by many other objects.
Example 19-24. Singleton Function
<?php class Example { // Hold an instance of the class private static $instance;
// A private constructor; prevents direct creation of object private function __construct() { echo 'I am constructed'; }
// The singleton method public static function singleton() { if (!isset(self::$instance)) { $c = __CLASS__; self::$instance = new $c; }
return self::$instance; }
// Example method public function bark() { echo 'Woof!'; }
// Prevent users to clone the instance public function __clone() { trigger_error('Clone is not allowed.', E_USER_ERROR); }
}
?>
This allows a single instance of the Example
class to be retrieved.
<?php // This would fail because the constructor is private $test = new Example;
// This will always retrieve a single instance of the class $test = Example::singleton(); $test->bark();
// This will issue an E_USER_ERROR. $test_clone = clone($test);
?>
Php language.oop5.patterns Function syntax tag
language.oop5.patterns php code on this is provided for your study purpose, it will guide you to know how create and design a website using php. use it to practice and train your self online
Php language.oop5.patterns syntax tutorial
php tutorial guide and code design are for easy learning and programming. The code practice section provided at the top is for practising of this syntax. Use the code section up to practice your php programming online. Learning php is very easy, all you need is to use the examples on this site and practice them to perfect your skills.