|
|
|
|
Like this code?
Show the author your appreciation.
|
|
| |
Ok so i have created a class in PHP 5 that uses The Registry Pattern, I will not explain all the details about the registry pattern. I will say that the registry pattern in short is a way to store objects. Below is the code for my ObjectStore class and an example of using it.. For sake of simplicity i am not going to include all of the code, this example builds off code in a previous example you can get that from one of my previous code examples :
http://www.weberdev.com/get_example-4221.html (Extending & Building Upon PHP5 Classes)
So what is the point of this class? Currently nothing it was done to show an example how you could use the registry pattern and store your objects accross pages without having to bulk up the session object. Is this code ready for production use? NO WAY! You should add some sort of encryption to this class. I would do a 2-way encryption algorithm where only you know the key. When you store the objects on disk you store the encrypted value. When reading you decrypt. This could also be expanded to hold objects that do not persist accross pages as well. Maybe something like $objstore->set('employee', $e, TRUE/FALSE) This would allow you to specify if the object should be serialized and saved etc..
As always Please leave comments and grades :)
Example.php
| <?php
define( 'BASE_PATH', str_replace( '\\', '/', dirname ( __FILE__ ) ) );
include_once('ObjectStore.php')
include_once('Employee.php');
try {
$ostore = new ObjectStore();
$e = $ostore->get('employee');
if(!is_object($e)) {
$e = new Employee();
$e->firstName('Joe');
echo 'Object Created!';
} else {
echo 'Object Read From Store';
echo '<pre>'; print_r($e); echo '</pre>';
}
} catch(Exception $e) {
echo $e->getMessage();
}
?> | |
ObjectStore.php
| <?php
class ObjectStore {
private $savepath;
private $store = array();
public function __construct() {
$this->savepath = BASE_PATH . '/objects/';
$this->loadObjects();
}
public function get($key='') {
if(array_key_exists($key, $this->store)) {
return $this->store[$key];
} else return FALSE;
}
public function set($key, $obj) {
if($key != NULL && is_object($obj)) {
$this->store[$key] = $obj;
}
}
private function loadObjects() {
$d = dir($this->savepath);
while(false !== ($file = $d->read())) {
$path = $d->path.$file;
if(is_file($path)) {
$handle = fopen($path, "r");
$this->store[$file] = unserialize(fread($handle, filesize($path)));
fclose($handle);
}
}
}
private function saveObjects() {
foreach($this->store as $key => $obj) {
$handle = fopen($this->savepath.$key, "w");
fwrite($handle, serialize($obj));
fclose($handle);
}
}
public function __destruct() {
$this->saveObjects();
}
}
?> | | |
|
| very simple ftp class Categories : PHP, PHP Classes, FTP | | | PHP Paypal IPN Integration Class v1.0.0 Categories : PHP, PHP Classes, Payment Gateways | | | A Timing Class Categories : PHP, PHP Classes, Date Time | | | The class to check load time of your script
VERY usefull for relatively slow applications, but not only.. Categories : PHP, PHP Classes, Debugging | | | Create HTML forms dynamicly using Javascript & PHP Categories : PHP, PHP Classes, Java Script | | | usercounter class Categories : PHP, PHP Classes, Databases, MySQL, Environment Variables | | | RSS parser.
Parses RSS into an array. Quick and nasty but does the job.
No checking is done for correct Tags, only correct XML.
PHP4 needed to display result (uses print_r). Categories : PHP, XML, PHP Classes, Rich Site Summary (RSS) | | | These PHP Classes Check if a host is alive using various methods. Categories : PHP, PHP Classes, Sockets, CURL | | | an example of the cyberlib payment class Categories : PHP, PHP Classes, Ecommerce, Credit Cards | | | Power Form Validation Categories : PHP, PHP Classes, Data Validation | | | MySQL Handler Categories : PHP, Databases, MySQL, Classes and Objects, PHP Classes | | | pcCalendar class - Allows for the creation of calendars in HTML pages. All output functions can be easily overridden, refer to article 1471 for an example.
Categories : PHP, Date Time, Calendar, PHP Classes | | | Class for sending mail with MIME attachments in multipart format using external sendmail, mimencode and zip Categories : Email, Network, PHP, PHP Classes | | | A PHP Calendar function with CSS : add a cool calendar to any php page by just adding a calendar class based function. Categories : PHP, PHP Classes, Calendar, Date Time | | | Browser Detecor Class Categories : PHP Classes, PHP, HTML | |
| | | | Joseph Crawford wrote :1351
You could also take this a step furthur and use php`s magic __get and __set methods ;)
| |
|
|
|