jdwx / app
一个用于命令行应用的简单PHP框架。
v1.0.10
2024-09-05 01:05 UTC
Requires (Dev)
- jetbrains/phpstorm-attributes: ^1.0
- phpunit/phpunit: ^9.6
Suggests
- ext-readline: For interactive applications.
README
一个用于命令行应用的简单PHP框架。
当你在PHP代码库中有一系列离散的命令行应用时,这非常有用。它避免了全局命名空间中的内容,尤其是在没有大量模板代码的情况下,没有名为“main”的函数。
安装
你可以直接使用Composer来要求它
composer require jdwx/app
或者从GitHub下载源码:https://github.com/jdwx/app.git
要求
此框架需要PHP 8.2或更高版本。它可能与PHP 8的早期版本兼容,但尚未对其进行测试。
用法
要使用此框架,创建一个继承自Application类并实现受保护的main()方法的类。main()方法应返回一个整数,这将作为进程的退出状态。如果您不希望应用程序在main()函数返回后终止进程,您可以重写exit()方法。
Application类利用jdwx/args库提供强大的类型安全的命令行参数处理。它还支持PSR LoggerInterface标准。
require 'vendor/autoload.php'; (new class( $argv ) extends \JDWX\App\Application { protected function main() : int { echo "Hello, world!\n"; if ( $this->args->empty() ) { echo "You didn't enter anything.\n"; } else { echo "You entered: ", $this->args->endWithString(), "\n"; } return 0; } })->run();
稳定性
此框架被认为是稳定的,并且在生产代码中使用。然而,因为它主要用于交互式任务,因此很难进行全面测试。建议您彻底测试您的应用程序。
历史
此框架从更大的代码库重构出来,最初作为jdwx/cli框架的一部分发布,然后在2024年迅速分离成独立的模块,以便于非REPL风格的交互式工具的命令行应用。