jdwx/app

一个用于命令行应用的简单PHP框架。

v1.0.10 2024-09-05 01:05 UTC

This package is auto-updated.

Last update: 2024-09-05 14:57:07 UTC


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风格的交互式工具的命令行应用。