xdimedrolx / hoa-protocol
Hiqdev Hoa\Protocol 库。
Requires
- php: >=7.4
- hoa/consistency: ~1.0
- hoa/exception: ~1.0
Requires (Dev)
- hoa/test: ~2.0
- phpunit/phpunit: ^9.5
Replaces
- hoa/protocol: ~1.0
This package is auto-updated.
Last update: 2024-08-30 01:20:47 UTC
README
Hoa 项目已被归档,既不提供升级也不接受合并请求。
HOA 包包含一些针对 PHP 8.0 和 PHP 8.1 已弃用的代码,但我们需要这些包才能在现代 PHP 版本上运行。
从哪里变化了?
更改主要影响了方法声明中的返回数据类型提示,以及未初始化属性的访问。
如何使用
我们目前已分叉以下包,主要是为了让 hoa/ruler 与 PHP 8.1 兼容
您只需简单地替换 composer.json 中的 hoa 包要求为相应的分叉包:无需更改代码库中的任何内容。如果您使用某个需要 hoa 的包,请将分叉添加到您的项目根目录 composer.json 中:我们已经将分叉标记为替代品,因此 composer 将安装它们而不是原始包。
版本
我们从最新的 hoa 包版本开始分叉,并从 1.0 开始增加自己的版本。
测试
在运行测试套件之前,必须安装开发依赖项
$ composer install
然后,要运行所有测试套件
$ vendor/bin/hoa test:run
有关更多信息,请阅读贡献指南。
快速使用
我们提出了一个关于如何列出当前协议树的当前树、如何解析 hoa://
路径以及如何在此树中添加新节点的方法的快速概述。
探索资源
首先,要获取 hoa://
协议的实例,您应该在代表协议树根的 Hoa\Protocol\Protocol
类上使用静态 getInstance
方法。
echo Hoa\Protocol\Protocol::getInstance(); /** * Might output: * Application * Public * Data * Etc * Configuration * Locale * Lost+found * Temporary * Variable * Cache * Database * Log * Private * Run * Test * Library */
我们看到有 3 个“子根”
Application
,代表应用程序的资源,如公共文件(在Public
节点中)、模型、资源等与应用程序相关的一切Data
,代表应用程序所需的数据,如配置文件、区域设置、数据库、测试等。Library
,代表所有 Hoa 的库。
因此,hoa://Library/Protocol/README.md
代表指向此实际文件的抽象路径。无论您在哪里在磁盘上,此路径始终有效并指向此文件。这对于您想要访问类似此 hoa://Data/Etc/Configuration/Foo.php
的配置文件的应用程序很有用:也许 Data
目录不存在,也许 Etc
或 Configuration
目录也不存在,但 hoa://
树的每个节点都解析为包含您的 Foo.php
配置文件的合法目录。这是一个 资源抽象路径。
解析路径
我们可以使用全局 resolve
函数或 Hoa\Protocol\Protocol::resolve
方法解析路径
var_dump( resolve('hoa://Library/Protocol/README.md') ); /** * Might output: * string(37) "/usr/local/lib/Hoa/Protocol/README.md" */
在树中注册新节点
hoa://
协议是一个树。因此,要在树中添加新的“组件”/“目录”,我们必须创建一个节点并将其注册为现有节点的子节点。因此,在下面的示例中,我们将创建一个指向 /Volumes
目录的 Usb
节点,并将其添加为新的子根,即根的直接子节点。
$protocol = Hoa\Protocol\Protocol::getInstance(); $protocol[] = new Hoa\Protocol\Node('Usb', '/Volumes/');
现在我们做到了。现在,解析 hoa://Usb/StickA
可能会指向 /Volumes/StickA
(如果存在)
var_dump( resolve('hoa://Usb/StickA') ); /** * Might output: * string(15) "/Volumes/StickA" */
文档
Hoa\Protocol 的黑客手册包含有关如何使用此库及其工作方式的高级信息。
要本地生成文档,请执行以下命令
$ composer require --dev hoa/devtools $ vendor/bin/hoa devtools:documentation --open
更多文档可以在项目的网站上找到: hoa-project.net。
获取帮助
主要有两种方式来获取帮助
- 在
#hoaproject
IRC频道中, - 在 users.hoa-project.net 的论坛上。
贡献
你想贡献吗?感谢!详细的 贡献指南 解释了你需要知道的一切。
许可协议
Hoa遵循新BSD许可协议(BSD-3-Clause)。请参阅 LICENSE
了解详细信息。