zend api扩展的php对象的autoload工具
类似spl的autoload功能,bloader为php对象的autoload工具,但相比较起来更简单高效,配置也更灵活. bloader提供一个常用的autoload函数ld,以及两个辅助函数,ld_new(实例化)和ld_unset(销毁对象). #1 bloader会自动搜索当前文件 或 当前目录下的<类名>.class.php文件,以及通过’_MODULES’常量定义的路径,实例化类返回对象. #2 可直接使用ld(‘类名’)操作对象(见实例 1-1) #3 bloader会在当前作用域自动注册一个以类名为变量名的变量’$类名'(见实例 1-2) #4 bloader中使用ld函数访问 `BLoader`是一个PHP对象的自动加载工具,它与PHP内置的`SPL Autoloader`类似,但设计更为简洁高效且配置更为灵活。`BLoader`的核心功能是通过`ld`函数实现类的自动加载、实例化以及对象管理。 1. **自动加载机制**: `BLoader`首先会尝试在当前文件所在的目录下查找以`<类名>.class.php`命名的文件。如果找不到,它会继续检查`_MODULES`常量定义的路径来加载类文件。这使得用户可以通过设置`_MODULES`常量来定制类库的存储位置,提高了代码组织的灵活性。 2. **ld函数的使用**: 用户可以直接使用`ld('类名')`来实例化类并返回对象,这个过程是全局有效的,意味着在任何地方都可以调用`ld`函数获取已经加载的类的实例。例如,`ld('c1')`将自动加载`c1`类并返回其对象。 3. **自动注册变量**: 当使用`ld`函数实例化类时,`BLoader`会在当前作用域内自动创建一个以类名为变量名的变量,如`$c1`。这样可以方便地直接通过变量名访问对象,如`$c1->method()`。 4. **ld_new和ld_unset辅助函数**: - `ld_new('类名')`用于实例化类但不注册变量。这意味着可以创建多个不同实例而不会覆盖之前已存在的同名变量。 - `ld_unset('类名')`用于注销已经实例化的对象,这将删除对应的全局变量,释放内存资源。例如,如果之前有`$users`对象,`ld_unset('users')`会将其注销。 5. **示例解析**: - **实例1-1**:展示了如何使用`ld`函数实例化类`c1`并设置属性。 - **实例1-2**:演示了`ld`自动注册变量的功能,调用`$users`对象的方法。 - **实例1-3**:证明`ld`创建的对象在全局范围内有效,可以在函数内部访问。 - **实例1-4**:通过`ld_new`创建了两个独立的`users`对象,不会互相影响。 - **实例1-5**:使用`ld_unset`注销了`$users`对象,使其无法再被访问。 6. **主要代码分析**: - `PHP_FUNCTION(ld)`是`BLoader`的核心函数,负责处理类的自动加载和实例化。它首先检查当前符号表中是否存在对应的类,如果不存在,则调用`ld_autoload_path`和`ld_new_class`进行加载和实例化。 `BLoader`提供了一种便捷的方式来管理和自动加载PHP类,简化了代码中对对象实例化的处理,同时提供了更灵活的配置选项。通过使用`ld`、`ld_new`和`ld_unset`,开发者可以更高效地控制对象生命周期,优化代码的可读性和维护性。
- 粉丝: 2
- 资源: 979
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助