php自动加载类--代码优化减少内存开销

widuu 2013-7-4 PHP技术 4,739 2 喜欢 (1)

今天在做东西的时候发现这个情况,就是我们用__autoload的时候,对于系统的开销还是比较大的,而且不能保证的是内存的开销,我们知道,创建一个对象是要付出很大代价的,然后我今天看了看phpcms的实现,然后感觉不错,拿出来改造了一下成为了这个自动加载的静态类,能够做到对象的复用,有效的减少内存的开销!下边是代码!仅供参考!
[php]
<?php
/*
*@author widuu
*@createtime 2013-7-4
*@description 借鉴了phpcms的类自动加载模式 自己重新封装成了这个类 能够有效的减小内存的开销
*
*/
class autoload{

private function __construct(){}

public static function auto_load($classname,$path="",$init=1){
return self::load_class($classname,$path,$init);
}

private static function load_class($classname,$path='',$init=1){
$classes = array();
if(empty($path))
{
$path = dirname(__FILE__);
}
$key = md5($path.$classname);
if(isset($classes[$key])){
if(!empty($classes[$key]))
{
return $classes[$key];
}else{
return true;
}
}

if(file_exists($path.DIRECTORY_SEPARATOR.$classname.".class.php")){
include $path.DIRECTORY_SEPARATOR.$classname.".class.php";
}

$name = $classname;

if($init){
$classes[$key] = new $name;
}else{
return true;
}
return $classes[$key];
}

public function __clone()
{
trigger_error('Clone is not allowed.', E_USER_ERROR);
}
}

$a = autoload::auto_load("nihao");
$a->show();
[/php]

转载请注明来自微度网络,本文标题:《php自动加载类--代码优化减少内存开销》

喜欢 1 发布评论
Top