<?php
// J:\awww\apl\dev1\afinc\_02autoload.php
//use B12phpfw\afcls\fw as core ;
//use B12phpfw\afcls\fw\_Helper ;
function _02autoload($fqcn) //fqcn = Full Qualified Class Name with NS (namespace)
{
if (!defined('TEST')) { define('TEST', '1'); }
$fqcn_linux_fmt = str_replace('\\', '/', $fqcn) ;
if(1*TEST) { echo '<h5>' ;
prf('THIS MODULE\'s AUTOLOADER ' //.__FILE__.', line'.__LINE__
.' SAYS: $fq_class_scriptname='
, $fqcn_linux_fmt.'</h5>'
);
}
// Cls script without NS (namespace)
// Here NS B12phpfw serves only for name resolution, not for class script path
$file = basename(str_replace('B12phpfw','',$fqcn_linux_fmt)) . '.php' ;
if(1*TEST) { ob_start(); //echo '<h3>Own debug logging</h3>' ;
prf( //key - value pair :
'<b>'.'THIS MODULE\'s AUTOLOADER '.__FILE__.', line'.__LINE__.' SAYS:</b> '
."\n" .'CLASS SCRIPT (in module dir) to autoload $file='
, $file . ' '.' Full Qualified Class Name ='.$fqcn
) ;
$tmp = nl2br(ob_get_contents()) ; ob_end_clean() ;
trace_log($tmp, 'trace_log.html', 'a') ;
}
require $file; //if (file_exists($file)) {}
//$file2 = UP_TO_SITEDOCROOT . $file; //site global class scripts
//if (file_exists($file2)) { require $file2 ; }
}
spl_autoload_register('_02autoload');
// ****************************************** //
// ******* 1. p r i n t _ r formated ******* //
function prf($n1, $v1){
//echo $n1.' ='; echo ' = ' ;
echo '<pre>';
print_r($n1); print_r($v1);
echo '</pre>';
}
function trace_log(
$tracetxt, $tracefle, $openmode //eg 'a+'=reading and writing or 'w'
)
{
if ($fp = fopen($tracefle, $openmode)) {
if (flock($fp, LOCK_EX)) { // exclusive lock
fwrite($fp, $tracetxt);
fclose($fp);
}
}
}
/*
//db core classes if we href lowercase name of class script :
$file2 = UP_TO_SITEDOCROOT . '/afcls/db/'.$file;
if (file_exists($file2)) {$file = $file2; goto include_script;}
*/
/*
// core classes :
$file = UP_TO_SITEDOCROOT . str_replace('B12phpfw','',$fqcn_linux_fmt);
if (!file_exists($file)) {
// module classes :
$file = str_replace('B12phpfw','',$fqcn_linux_fmt); // __DIR__ .'/'.
}
*/
//$file = __DIR__ . '/../classes/' . $fqcn_linux_fmt;
|