脚本宝典收集整理的这篇文章主要介绍了php – 在类中包装Shell命令的模式,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有人将常见的用例抽象到一个类库(Zend中的某些东西?),它提供了一种更理智/常用的方法来处理它?每当我遇到(或不得不生产)这种代码时,它就是一堆程序性意大利面,一遍又一遍地复制粘贴.我想知道是否(希望)PHP社区提出了一种更好的方法来处理在web / PHP应用程序中使用命令行应用程序.
你可以做的事情并不多.充其量,您可以在方法中汇总输入到外部二进制文件:
function exec($args) { $args = implode(" ",array_map("escaPEshellcmd",func_get_args())); $opts = $this->opts(); return `{$this->bin} {$args} {$opts}`; }
所以你只需要在需要的地方调用 – > exec(“ – o”,“$file”).如果特定的cmdline应用程序在其–argument命名方案中具有固有系统,则只能使用专门的exec子方法进一步扩展代码.
根据您的实际使用情况,您可能会隐藏一些标准选项.我在pspell做了这个,你的选项名称与–cmdline = args的关系几乎是1:1:
function opts() { $map = array( "--ignore" => $this->ignore,"--verbose" => $this->verbose,"--dir={$this->dir}" => isset($this->dir),); return implode(" ",array_keys(array_intersect($map,array(1=>1)))); }
exec / popen(适用于各种cmdline程序)的非常通用的抽象类可能不存在.
以上是脚本宝典为你收集整理的php – 在类中包装Shell命令的模式全部内容,希望文章能够帮你解决php – 在类中包装Shell命令的模式所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。