<?php
 
function toCamelcase($lower_case_and_underscored_word) {
 
    $replace = str_replace(" ", "", ucwords(str_replace("_", " ", $lower_case_and_underscored_word)));
 
    return $replace;
 
}
 
function toUnderscore($camel_cased_word = null) {
 
    $tmp = _replace($camel_cased_word, array (
 
        '/([A-Z]+)([A-Z][a-z])/' => '\\1_\\2',
 
        '/([a-z\d])([A-Z])/' => '\\1_\\2'
 
    ));
 
    return $tmp;
 
}
 
function _replace($search, $replacePairs) {
 
    return preg_replace(array_keys($replacePairs), array_values($replacePairs), $search);
 
}
 
function pdbg($data, $color="orange", $Line=null, $File=null, $height=180, $width=800, $textcolor="#000000") {
 
    $dbg = debug_backtrace();
 
    print "<div style=\"width:".$width."px;float:left;margin:5px\">";
 
    print "<div style=\"border:1px solid #999;font-size:11px;\">";
 
    print "<div style=\"font-family:arial,helvetica;background-color:".$color.";color:".$textcolor.";padding:2px 5px;font-weight:bold;border-bottom:1px solid #999;\">";
 
    if(empty($line))
 
        print $File;
 
    else
 
        print $File.', LINE: '.$Line.' ';
 
    $offset = (isset($dbg[1])) ? 1:0;
 
    if($offset>0)
 
        print $dbg[$offset]["class"].$dbg[$offset]["type"].$dbg[$offset]["function"]."(".count( $dbg[$offset]["args"]).")";
 
    print "</div>";
 
    print "<textarea style=\"width:100%;height:".$height."px;border:none;padding:0 0 0 5px;font-size:11px\">";
 
    print_r($data);
 
    print "</textarea></div>";
 
    print "</div>";    
 
}
 
/**
 
 * __autoload
 
 * @desc loads framework classes
 
 */
 
function __autoload($className){
 
 
    $filename = $className.".class.php";
 
    
 
    $nodes = array();
 
    
 
    // system class first
 
    $absolutePathToClassFile = SYSTEMDIR . DS . $filename;
 
    if(is_file($absolutePathToClassFile)) {
 
        include_once($absolutePathToClassFile);
 
        return false;
 
    }
 
    
 
    // package domain
 
    $domains = explode("_",$className);
 
    
 
    $path = $domains[0];
 
    $absolutePathToClassFile = CLASSDIR . DS . $path . DS . $filename;
 
    if(is_file($absolutePathToClassFile)) {
 
        include_once($absolutePathToClassFile);
 
        return false;
 
    }
 
    // subpackage domain
 
    $subdomains = explode("_", toUnderscore($domains[1]));
 
 
    if(is_array($subdomains)) {
 
        $prevNode = "";
 
        $nodes[] = $domains[0];
 
        foreach($subdomains as $node){
 
            $nodes[] = $domains[0] . "_" . $prevNode . $node;
 
            $prevNode .= $node;
 
        }
 
    }
 
    // descendant package domains
 
    $path = implode(DS, $nodes);
 
    $absolutePathToClassFile = CLASSDIR . DS . $path . DS . $filename;
 
    if(is_file($absolutePathToClassFile)) {
 
        include_once($absolutePathToClassFile);
 
        return false;
 
    }
 
    
 
    // if is in parent path
 
    unset($nodes[count($nodes)-1]);
 
    $path = implode(DS, $nodes);
 
    $absolutePathToClassFile = CLASSDIR . DS . $path . DS . $filename;
 
 
    if(is_file($absolutePathToClassFile)) {
 
        include_once($absolutePathToClassFile);
 
        return false;
 
    }
 
 
    // if is in parent path
 
    array_shift($nodes);
 
    $path = implode(DS, $nodes);
 
    $absolutePathToClassFile = CLASSDIR . DS . $path . DS . $filename;
 
    if(is_file($absolutePathToClassFile)) {
 
        include_once($absolutePathToClassFile);
 
        return false;
 
    }
 
    
 
    // if is in parent path
 
    unset($nodes[count($nodes)-1]);
 
    $path = implode(DS, $nodes);
 
    $absolutePathToClassFile = CLASSDIR . DS . $path . DS . $filename;
 
 
    if(is_file($absolutePathToClassFile)) {
 
        include_once($absolutePathToClassFile);
 
        return false;
 
    }
 
    
 
}
 
 
 
 |