个性化阅读
专注于IT技术分析

Phalcon类自动装载器

本文概述

加载程序是在Phalcon \ Loader目录下找到的类。此类根据自动加载的规则由一些预定义规则组成。它还处理错误, 例如, 如果某个类不存在, 但在程序的任何部分调用了该类, 则将调用特殊处理程序进行处理。

在Loader中, 如果根据程序中的需要添加了一个类, 则由于仅包含特定文件, 因此性能得以提高。该技术称为延迟初始化。

Phalcon \ Loader有4种方法来实现自动加载类:

  1. 注册命名空间
  2. 注册目录
  3. 注册类
  4. 注册文件

注册命名空间

当使用命名空间或外部库组织我们的代码时, 将调用此方法。

句法:

registerNamespaces()方法。

它采用一个关联数组, 其中键是名称空间前缀, 而它们的值是其类位置的目录。现在, 当加载程序尝试查找类名称空间分隔符时, 将替换为其目录分隔符。

注意:请始终在路径末尾添加斜杠。

实作

<?php

use Phalcon\Loader;

// Creates the autoloader
$loader = new Loader();

// Register some namespaces
$loader->registerNamespaces(
    [
       'Example\Base'    => 'vendor/example/base/', 'Example\Adapter' => 'vendor/example/adapter/', 'Example'         => 'vendor/example/', ]
);
// Register autoloader
$loader->register();
// The required class will automatically include the
// file vendor/example/adapter/srcmini.php
$srcmini = new \Example\Adapter\ srcmini ();
?>

注册目录

在这种方法中, 类位于寄存器目录下。由于文件统计信息会增加以进行计算, 因此此过程的性能无效。

实作

<?php

use Phalcon\Loader;

// Creates the autoloader
$loader = new Loader();

// Register some directories
$loader->registerDirs(
    [
        'library/MyComponent/', 'library/OtherComponent/Other/', 'vendor/example/adapters/', 'vendor/example/', ]
);

// Register autoloader
$loader->register();

// The required class will automatically include the file from
// the first directory where it has been located
// i.e. library/OtherComponent/Other/srcmini.php
$srcmini = new \srcmini();
?>

注册类

当项目放置在文件夹约定中对于使用类和路径访问文件无效时, 将使用此方法。这是最快的自动加载方法, 但不建议这样做, 因为维护成本很高。

实例

<?php

use Phalcon\Loader;

// Creates the autoloader
$loader = new Loader();

// Register some classes
$loader->registerClasses(
    [
        'Some'         => 'library/OtherComponent/Other/Some.php', 'Example\Base' => 'vendor/example/adapters/Example/BaseClass.php', ]
);

// Register autoloader
$loader->register();

// Requiring a class will automatically include the file it references
// in the associative array
// i.e. library/OtherComponent/Other/srcmini.php
$srcmini = new \srcmini();
?>

注册文件

此方法用于注册非类的文件。要注册文件, 我们需要使用。当文件仅具有功能时, 此方法非常有用。

实作

<?php

use Phalcon\Loader;

// Creates the autoloader
$loader = new Loader();

// Register some classes
$loader->registerFiles(
    [
        'functions.php', 'arrayFunctions.php', ]
);

// Register autoloader
$loader->register();

?>
赞(0)
未经允许不得转载:srcmini » Phalcon类自动装载器

评论 抢沙发

评论前必须登录!