我想在PHP中编写一个小的CLI脚本,基本上有两个可能的参数来做两件事。很容易。但我想以优雅的方式做。
我想知道它是否在CLI模式下存在一些PHP微框架功能(注意我说微框架而不是框架)。我想使用PHP,因为我将包含一些PHP已编程的类。
我找到了CLImax,这是一个特定的CLI微框架,看起来不错,但它缺乏一个好的文档。
你知道我能找到一个好的CLImax文档的任何地方(我没有找到任何东西,但它的源代码记录不清楚)?
或者你知道另一种选择吗? Alloy似乎也是一个轻量级的PHP框架,并且具有CLI“模式”,但我不知道它是否过于通用,因为它也适用于Web服务器。你用过吗?
答案 0 :(得分:19)
查看Symfony Console component。 Here's an introduction to using it.使用旧版本的PHP(没有命名空间)可能需要一些工作,而且你需要Symfony的其他几个组件,但我已经非常成功地使用它了。
答案 1 :(得分:7)
我找到了这个:php-cli-tools
它绝对是 micro ,带来了你用 sh 或windows批处理所拥有的一切。
答案 2 :(得分:6)
答案 3 :(得分:3)
Laravel有一个名为 Artisan 的命令行工具,可以让您轻松扩展;
Artisan是Laravel中包含的命令行界面的名称.... [Artisan Development]除了Artisan提供的命令外,您还可以构建自己的自定义命令以使用您的应用程序。
请参阅Artisan开发的文档here
答案 4 :(得分:3)
查看https://github.com/c9s/CLIFramework
CLIFramework是一个用于命令行工具的全栈框架,与Symfony / Console不同,它有一个简洁的API,用于构建轻量级命令行应用程序。
它允许您定义一些选项和参数信息以快速生成帮助文档。
最重要的部分是CLIFramework可以自动生成zsh完成脚本,因此您不需要为每个命令行应用程序编写zsh脚本。
答案 5 :(得分:1)
您可能对我的php cli框架感兴趣:https://github.com/b-b3rn4rd/Terminalor Terminalor - 是一个用于创建可移植的php cli文件的php库。它提供了在cli接口下工作的基本功能,可以用作外部库的包装器。它允许使用闭包和phpdoc注释快速创建带有参数的文档化cli命令。之后,这些命令可以编译成单个独立的可移植文件。
答案 6 :(得分:1)
你试过Seagull吗?看起来它本身也支持专门用于CLI的项目。
答案 7 :(得分:1)
我不喜欢'认为上面的许多建议都是微框架 - 即使许多建议都是很好的框架 - 并且在许多用例中比我的建议更合适:https://github.com/diversen/minimal-cli-framework
它比上述框架快得多(尽管很少需要来自CLI框架的速度)。它允许您使用类对象添加子命令。它从单个方法生成帮助和命令定义。您只需要对现有类实现两个方法,即将它与minimal-cli-framework(getCommand
- 命令的定义和runCommand
- 执行命令一起使用)。
Disclaminer:我写了这个包。