很多开发者写面向对象的应用程序时对每个类的定义建立一个 PHP 源文件。一个很大的烦恼是不得不在每个脚本(每个类一个文件)开头写一个长长的包含文件列表。
在 PHP 5 中,不再需要这样了。可以定义一个 __autoload 函数,它会在试图使用尚未被定义的类时自动调用。通过调用此函数,脚本引擎在 PHP 出错失败前有了最后一个机会加载所需的类。
http://www.php.net/manual/zh/language.oop5.autoload.php
使用良好定义的自动加载,你无需担心一个类文件相对于当前类文件的什么位置;你只要简单的使用这个类,自动加载器将会执行文件查找任务。
另外,自动加载,因为它直到最后一刻才载入并确信匹配只出现一次,是一次巨大的性能提升——特别是在你部署之前如果花时间清除require_once()调用的时候
Zend Framework鼓励使用自动加载,并提供许多工具提供库代码和应用程序代码的自动加载
php自动载方法有两种.
第一种方案用__autoload,这个函数较简单,也较弱.
但有一问题没有解决, 就是在include前判断文件是否存在的问题.
第二种方案用spl自动加载,这里具体说一下这个.
spl_autoload_register()
一个简单的例子
spl_autoload_register()会自动先调用spl_autoload()在路径中查找具有小写文件名的".php"程序.默认查找的扩展名还有".ini",还可以用spl_autoload_extenstions()注册扩展名.
在找不到的清况下,还可以通过自己定义函数查找
如
function loader1($class)
{
//自己写一些加载的代码
}
function loader2($class)
{
//当loader1()找不到时,我来找
}
spl_autoload_register('loader1');
spl_autoload_register('loader2');
还可以更多........
MVC框架是如何实现自动加载的
首先设置路径
'include' => array(
'application/catalog/controllers',
'application/catalog/models',
),
$include = array('application/controllers', 'application/models', 'application/library');
set_include_path(get_include_path() . PATH_SEPARATOR .implode(PATH_SEPARATOR, $config['include']));
在获取URL,解析出控制器与方法.
然后设置自动加载
路由,实例化控制器,调用方法,你写的东西就开始执行了
分享到:
相关推荐
php自动加载方式集合_.docx
主要针对php自动加载方式进行大集合,一种是常规加载方式,另一种是__autoload()自动加载,想知道第三种方式请阅读下
PHP文件自动加载,类的自动加载,PHP编程
本文实例讲述了PHP 自动加载类原理与用法。分享给大家供大家参考,具体如下: 类的自动加载 (Autoloading Classes) 在编写面向对象(OOP) 程序时,很多开发者为每个类新建一个 PHP 文件。 这会带来一个烦恼:每个...
本文实例讲述了PHP自动加载机制。分享给大家供大家参考,具体如下: 在php中,我们一般使用 require, requre_once, include, include_once 这四个命令来加载其他php文件,这在一般小型的php文件中是没有任何问题的,...
本文实例分析了CodeIgniter配置之autoload.php自动加载用法。分享给大家供大家参考,具体如下: CodeIgniter带了自动加载的功能,可以全局加载类库、模型、配置、语言包等,对于需要全局使用的功能相当方便。 例如:...
本demo使用两种方式演绎了PHP类的自动加载。是本人经过测试的代码,绝对可以正常执行。
在PHP5之前,各个PHP框架如果要实现类的自动加载,一般都是按照某种约定自己实现一个遍历目录,自动加载所有符合约定规则的文件的类或函数。 当然,PHP5之前对面向对象的支持并不是太好,类的使用也没有现在频繁。
主要介绍了php自动加载autoload机制示例,文件结构如下,2种方式实现自动加载,需要的朋友可以参考下
本篇文章是对php自动加载机制进行了详细的分析介绍,需要的朋友参考下
php自动加载的两种实现方法,需要的朋友可以参考下。
下面小编就为大家带来一篇PHP 自动加载的简单实现(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
一个PHP自动加载器类,该类遵循适用于PSR-4规范的WordPress编码标准 描述 命名空间和自动加载器很酷,可以帮助组织代码。 有了这些功能,您不必担心再次手动包含和要求php文件,并且您的代码可以组织在文件夹中。 ...
PHP+Jquery自动加载更多内容信息,页面无刷新!
ede-php-autoload:针对Emacs语义PHP自动加载模拟
PHP的自动加载就是我们加载实例化类的时候,不需要手动去写require来导入这个class.php文件,程序自动帮我们加载导入进来这.篇文章主要介绍了PHP自动加载autoload和命名空的应用,需要的朋友可以参考下