Is it possible to autoload functions?
What I have is I have written functions distributed over different files named after the function name, so what I need is to autoload the file containing the function automatically. Is there any way to do this?
Is it possible to autoload functions?
What I have is I have written functions distributed over different files named after the function name, so what I need is to autoload the file containing the function automatically. Is there any way to do this?
You can autoload classes, so if you make your functions static methods of classes then it will work.
abstract class Util
{
static function doSomething() {
}
}
Usage:
Util::doSomething();
Use:
include("path");
or
require_once("path");
References:
Not directly. But you can add following code to top of your code to automatically include functions:
call_user_func(function($p,$w){$c=file_get_contents(__FILE__);$fs=explode('(',$c);$f=[];for($i=65;$i<=90;$i++){$vc[chr($i)]=1;$vc[chr($i+32)]=1;if($i<75)$vc[chr($i-17)]=1;}$vc['_']=1;foreach($fs as $fn){$fn=rtrim($fn);for($i=strlen($fn)-1;$i>=0;$i--){if(!isset($vc[$fn[$i]])){$f[]=substr($fn,$i+1);break;}}}foreach($f as $c){@include_once($p.$w[0].$c.$w[1]);}},
"func_dir/",["func_",".php"]);
The only thing you need to change is the second line: First parameter is the folder where to look for files, the second param is an array which wraps both values around the function name.
For example: If your function files are in the sub directory "func_dir/" and are namen "func_*.php" (where * is the function name), then you can use the above code directly as-is. However, you have to put that code in every file where you want to load functions automatically and adapt the path.
It's a little bit dirty, but it works. I hope my code helps you.
Although this is not wise, it is possible.
You may save those functions in a file and prepend this file to all requested scripts:
But the wise, OOP solution would be to group those functions into classes and use __autoload
or some framework autoloader like Zend_Autloader
to speed things up and load just the features you need.