PHP命令行脚本应该如何结构化


How should PHP command-line scripts be structured?

这是一个PHP编码风格的问题。

我创建了很多PHP命令行脚本,但我从来都不确定它们应该如何构造。让我的所有代码都是全局代码,我感到不舒服,所以我一直把我的整个应用程序包装在一个类中:

<?php
class MyApp {
    public function parseCommandLine() {
        /* Parsing takes place here. */
    }
    public function doWork() {
        echo "This is all this app does.'n";
    }
    public function run() {
        $this->parseCommandLine();
        $this->doWork();
    } 
}
$app = new MyApp();
$app->run();

我的问题是:这是构建现代、基于CLI的PHP应用程序的最佳方式吗

有很多很棒的指南介绍了PHP的最佳实践(我个人最喜欢的是PHP The Right Way),但几乎没有一本介绍命令行应用程序的结构。

这主要是基于观点的,但为什么要重新发明轮子?最好使用为您的用例开发的设计良好的第三方php库。

要创建基于PHP cli的应用程序,我个人最喜欢的是symfony控制台

要运行第三方系统命令和二进制文件,您可以查看此库,它使您能够以更安全的方式执行外部命令,并协调操作系统的差异。