note 72140 added to language.oop5.autoload

From: Date: Thu, 04 Jan 2007 13:00:20 +0000
Subject: note 72140 added to language.oop5.autoload
Groups: php.notes 
Request: Send a blank email to php-notes+get-121278@lists.php.net to get a copy of this message
This autoload function searches for the class Location before requiring it. So there's no need of putting the classes all in one folder. Requirements: - the subfolders must be at least 3 letters long - the filenames must be in the form CLASSNAME.class.php Note: - in this example the main class folder is 'lib' define('ROOT_DIR', dirname(__FILE__).'/'); function __autoload($className) { $folder=classFolder($className); if($folder) require_once($folder.'/'.$className.'.class.php'); } function classFolder($className,$folder='lib') { $dir=dir(ROOT_DIR.$folder); if($folder=='lib' && file_exists(ROOT_DIR.$folder.'/'.$className.'.class.php')) return $folder; else { while (false!==($entry=$dir->read())) { $checkFolder=$folder.'/'.$entry; if(strlen($entry)>2) { if(is_dir(ROOT_DIR.$checkFolder)) { if(file_exists(ROOT_DIR.$checkFolder.'/'.$className.'.class.php')) return $checkFolder; else { $subFolder=classFolder($className,$checkFolder); if($subFolder) return $subFolder; } } } } } $dir->close(); return 0; } ---- Server IP: 66.163.161.117 Probable Submitter: 84.188.97.2 ---- Manual Page -- http://www.php.net/manual/en/language.oop5.autoload.php Edit -- https://master.php.net/note/edit/72140 Del: integrated -- https://master.php.net/note/delete/72140/integrated Del: useless -- https://master.php.net/note/delete/72140/useless Del: bad code -- https://master.php.net/note/delete/72140/bad+code Del: spam -- https://master.php.net/note/delete/72140/spam Del: non-english -- https://master.php.net/note/delete/72140/non-english Del: in docs -- https://master.php.net/note/delete/72140/in+docs Del: other reasons-- https://master.php.net/note/delete/72140 Reject -- https://master.php.net/note/reject/72140 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#121278) next »