此包已被废弃,不再维护。没有推荐替代包。

使用 BC

v0.2.0 2016-01-09 15:01 UTC

This package is auto-updated.

Last update: 2020-08-29 04:55:30 UTC


README

Build Status on TravisCI XP Framework Module BSD Licence Required PHP 5.5+ Supports PHP 7.0+ Supports HHVM 3.4+ Latest Stable Version

对于 XP 6.4.0+ 加载类使用 uses() 的向后兼容性

动机

XP 6.4.0 中,为了支持 PHP 7.0,框架移除了通过 uses() 加载类的支持。 不幸的是,并不是每个人都能及时地适应整个代码库的修改。然而,他们可能仍然希望使用包含所需错误修复的新版本框架。 这个库可以在这种短暂的过渡状态下提供帮助。

背景

在 XP 框架完全迁移到 PHP 命名空间之前,类的声明如下

<?php
  uses('util.Filter');

  class Filters extends Object implements Filter {
    // ...
  }
?>

注意

  • 类存在于全局命名空间中,它们的名称由存储关联长名称 => 文字映射的 xp::$cn 映射推断。
  • Object 可以通过其短名称引用。这是因为它属于一组无处不在的类。
  • Filter 接口可以通过其短名称引用。这是因为它在上方被显式加载,并且无论它是否声明为命名空间,都会发生。

此库的作用

此库

  • 添加了一个 uses() 函数。它负责加载类,为命名空间类创建短名称别名和处理导入。
  • 在类加载链中注入一个类加载器,它增加了对旧类声明的支持。它确保类名 / 文字映射被正确注册。

如果成功安装,您将看到 UsesCL 行出现

$ xp -v
XP 6.9.3-dev { PHP 7.0.0 & ZE 3.0.0 } @ Windows NT SLATE 10.0 build 10586 (Windows 10) i586
Copyright (c) 2001-2016 the XP group
UsesCL(cached: 0)
FileSystemCL<~/devel/xp/core/src/main/php>
# ...