PHP对象autoload利器:bloader

需积分: 0 0 下载量 47 浏览量 更新于2024-08-30 收藏 46KB PDF 举报
"zend api扩展的php对象的autoload工具,包括autoload函数ld,以及辅助函数ld_new和ld_unset。提供了一种简单高效的方式自动加载PHP类,并在全局范围内管理对象。" 在PHP开发中,自动加载(Autoload)是解决类文件加载问题的一种常见策略,避免了在程序开始时就需要手动包含所有可能用到的类文件。`Zend API`扩展为PHP提供了一个名为`bloader`的工具,它专门针对PHP对象的自动加载进行了优化。`bloader`不仅具备类似`SPL Autoload`的功能,而且在效率和灵活性上有所提升。 `bloader`的核心在于其提供的`ld()`函数,它是一个自动加载函数,能够根据类名自动寻找并加载相应的`.class.php`文件。当尝试使用未定义的类时,`ld()`会尝试在当前文件或当前目录下,以及通过`_MODULES`常量定义的路径中找到并加载对应的类文件,然后实例化类并返回对象。这样,开发者无需在代码中显式地使用`require`或`include`来引入类文件。 `ld_new()`是`bloader`的一个辅助函数,用于实例化类,但不注册变量。这意味着你可以创建多个不同实例,而不会在当前作用域中留下任何引用,这对于避免变量污染和管理多个对象实例特别有用。 另一个辅助函数`ld_unset()`则用于销毁已经实例化的对象,它可以帮助释放内存,特别是在需要频繁创建和销毁对象的场景下。 下面是一些使用`bloader`的例子: 1. **实例1-1**: 这个例子展示了如何使用`ld()`函数实例化类并设置属性。在没有预先包含类文件的情况下,`ld()`函数会自动找到`c1.class.php`并创建对象。构造函数的参数可以通过数组传递,例如`ld('c1', array('1', '2'))`。 2. **实例1-2**: `ld()`函数还会在当前作用域内创建一个以类名为变量名的变量,例如`$c1`,并赋值为类的实例。这样,可以直接通过`$c1`访问对象。 3. **实例1-3**: 使用`ld()`加载的对象可以在全局范围内访问,这意味着在脚本的任何地方都可以调用这些对象,只要它们已经被`ld()`加载。 4. **实例1-4**: `ld_new()`函数可以用来创建类的新实例,而不注册变量。这在需要多个相同类的不同实例时非常有用,且不会污染全局变量空间。 5. **实例1-5**: 如果不再需要某个对象,`ld_unset()`可以用来销毁它,从而释放与该对象相关的内存。 要安装`bloader`,可以通过以下步骤进行: 1. 使用`phpize`初始化扩展构建环境。 2. 执行`./configure --with-php-config=php-config --enable-bloader`配置编译选项。 3. 运行`make && make install`完成编译和安装。 `bloader`是PHP开发中一个实用的自动加载工具,它简化了类文件的加载过程,增强了对象管理的灵活性,对于大型项目或需要高效内存管理的项目尤其有价值。通过`ld()`, `ld_new()`, 和 `ld_unset()`,开发者可以更加专注于业务逻辑,而不是类的加载和管理。