coonlink/secretroom

一个用于处理基于用户输入的秘密彩蛋的PHP库。

dev-main 2024-08-16 09:22 UTC

This package is auto-updated.

Last update: 2024-09-16 09:32:05 UTC


README

SecretRoom是一个PHP库,用于根据用户输入(如日期、文本或数字)管理秘密彩蛋。该库允许您为特定输入定义自定义响应,并支持本地化,使其成为PHP项目中的多功能工具。

alt text

要求

  • PHP版本8.0.0或更高
  • Composer

安装

要使用Composer安装SecretRoom库,请运行以下命令

composer require coonlink/secretroom

这将下载并安装库及其依赖项到您的项目中。

使用方法

要在您的项目中使用SecretRoom,请包含Composer的autoload文件并创建一个SecretRoom类的实例。

以下是如何设置的示例

require 'vendor/autoload.php';

use PHPsecretroom\SecretRoom;

$responses = [
    'test' => 'ok',
];

$requestHandler = new SecretRoom($responses);
$requestHandler->handleRequest();

处理请求

SecretRoom类处理传入的JSON格式的POST请求。根据提供的输入(日期、文本或数字),库会搜索匹配的秘密彩蛋或返回默认响应。

示例JSON输入

{
    "date": "1980",
    "lang": "en"
}

输入参数

  • "date":您可以使用字符串文本或数字代替日期,或者让它处理默认情况。此输入用于与easter_eggs.json文件中预定义的秘密彩蛋匹配。如果找到匹配项,则返回相应的消息。

    • 文本输入:您可以向库发送任何文本。如果它与easter_eggs.json中定义的秘密彩蛋匹配,则返回相应的消息。

    • 数字输入:您还可以发送数字。与文本类似,如果数字与easter_eggs.json中的秘密彩蛋匹配,则返回消息。

    • 默认情况:如果输入与任何定义的秘密彩蛋不匹配,则返回默认响应或错误消息。

  • "lang":此可选参数允许您请求特定语言的响应。如果未提供语言或请求的语言不可用,则库将使用默认语言返回消息。

示例

{
    "text": "hello",
    "lang": "ru"
}

这将返回文本"hello"的俄语秘密彩蛋响应,如果已定义,否则返回默认消息。

本地化

SecretRoom通过允许您根据提供的语言代码定义不同的响应来支持本地化。easter_eggs.json文件可以包含特定输入的本地化消息。如果未找到请求语言的本地化,则返回默认消息。

easter_eggs.json的示例结构

{
    "1980": {
        "en": "Thank you for discovering the first Easter egg in the video game 'Adventure'.",
        "ru": "Спасибо за то, что обнаружили первое пасхальное яйцо в видеоигре 'Adventure'."
    },
    "hello": {
        "en": "Hello there!",
        "es": "¡Hola!"
    },
    "42": {
        "default": "The answer to life, the universe, and everything."
    }
}

自动加载类

该库使用在autoload.php中定义的自定义自动加载器。此自动加载器确保根据PSR-4标准在需要时自动加载PHP类。

错误处理

库在运行时执行PHP版本检查。如果安装的PHP版本低于7.4.0,将显示错误消息,并终止脚本。

对于命令行使用,错误消息将输出到STDERR。在Web上下文中,消息将以500 Internal Server Error响应显示。

文件结构

以下是对关键文件和目录的概述

SecretRoom/
│
├── src/
│   ├── autoload.php           # Custom autoloader
│   └── PHPsecretroom/
│       ├── SecretRoom.php     # Main class handling requests and responses
│       └── easter_eggs.json   # Easter egg definitions
│
├── tests/                     # (Optional) Unit tests
│   └── SecretRoomTest.php
│
├── composer.json              # Composer configuration
├── README.md                  # Project documentation (this file)
└── index.php                  # Example usage of the library

测试

如果您想运行单元测试,可以将PHPUnit作为开发依赖项安装,并为您的类创建测试用例。要安装PHPUnit,请运行

composer require --dev phpunit/phpunit

然后,您可以在tests/目录中创建测试文件,并使用以下命令运行它们

vendor/bin/phpunit tests

贡献

如果您想为此项目贡献力量,请随意Fork仓库并提交拉取请求。所有贡献都欢迎!

许可证

本项目采用MIT许可证。有关详细信息,请参阅LICENSE文件。