coonlink / secretroom
一个用于处理基于用户输入的秘密彩蛋的PHP库。
Requires
- php: >=8.0.0
Requires (Dev)
- phpunit/phpunit: ^9
This package is auto-updated.
Last update: 2024-09-16 09:32:05 UTC
README
SecretRoom是一个PHP库,用于根据用户输入(如日期、文本或数字)管理秘密彩蛋。该库允许您为特定输入定义自定义响应,并支持本地化,使其成为PHP项目中的多功能工具。
要求
- 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
文件。