为基于php的CMS编写CLI(类似于Drush)

时间:2012-11-10 20:28:59

标签: php content-management-system command-line-interface drush

我已经在CMS上工作了几年,我实际上在管理区域实现了一个基于jquery的控制台,在那里你可以做一些方便的事情,比如启用/禁用模块等等。

我最近摆弄了drupal并决定安装cygwin和drush。 我试过谷歌搜索,但认为这可能是一个不寻常的问题:如何为基于PHP的CMS创建CLI?确切地说,如何彻底榨干?我的意思是,我知道它作为Windows中的批处理脚本从命令行运行。但是它如何与PHP交互等等?

我确实知道一些基本的C#但是一旦我弄清楚它是如何组合在一起的,这应该不是很难。 (php,sql等)。

感谢任何帮助,提前谢谢:)

2 个答案:

答案 0 :(得分:0)

基本上你可以编写一个带有无限循环的简单CLI shell以及一个' exec()'或者' shell_exec()' PHP函数。您应该获取用户命令并将其发送到shell_exec()函数以在系统shell中执行,并将其输出返回给用户。

即:

而(TRUE){

if($ input!=' exit')     $输出=了shell_exec($输入);   其他     打破;

echo $ output; }

  • 您可以添加其他选项并自定义此简单循环。
  • 您可以使用' exec()'来拨打外部程序功能

答案 1 :(得分:0)

只有在使用cli支持编译php时才可以从终端运行php cli。另外,您需要指定解释器并将路径作为参数传递给脚本。但你也可以使用shebang#!/ path / to / php。更好的做法是使用env变量而不是硬编码php的路径:#!/ usr / bin / env php。请在此处阅读:http://tech.vg.no/2012/02/21/dont-hardcode-php-executable-path-in-shebang/