my system is all coded by myself lol, WCDDL is good but its just for average warez sites and thats not my idea, and the registry class is a piece of piss to do and the best thing is you just globalize in your constructs like

function __construct(){
global $registry;
$this->registry = $regsitry;
}

and i have an object file to load all objects like this

PHP Code: 
<?php
if(!defined('IN_SITE')){die('Hacking Attempt!');}

//Error Handling Ssytem

//Instantate Registry objects
$registry = new registry();                            //    Core Registry
//Instantate all other objects into the registry
$registry->put('database',        new $dbType());        //    Database
$registry->get('database')->connect();                //    Run the connection
$registry->put('session',        new session);        //    Session
$registry->put('input',            new input);            //    Input
$registry->put('output',        new output);         //    Output handler
$registry->put('helpers',        new helpers);        //    Helpers
$registry->put('user_tracker',    new user_tracker);    //    users_online + ip tracking etc
$registry->put('smarty',        new Smarty);        //    Smarty Tempalte Engine
$registry->put('litewarez',        new Litewarez);        //    Litewarez Core
$registry->put('tagcloud',        new tagcloud);        //    Litewarez Tag Cloud Links
$registry->put('breadcrumb',    new breadcrumb);    //    Breadcrumbs
?>
litewarez Reviewed by litewarez on . See real OOP (Snippet from Litewarez V2) Webmasters CP class xxxxxx{ //Handle Registration function handle_registration(){ $this->username = $this->registry->get('input')->POST; $this->password = $this->registry->get('input')->POST; $this->password2 = $this->registry->get('input')->POST; $this->alias = $this->registry->get('input')->POST; $this->website = $this->registry->get('input')->POST; $this->email = $this->registry->get('input')->POST; $this->sitename = $this->registry->get('input')->POST; Rating: 5