我正在用ruby编写一个应用程序,并希望访问一些用另一种语言(php)编写的遗留代码。遗憾的是,此遗留代码没有HTTP API,但它存在于同一文件系统中。我有一个想法,也许不是构建一个API,或重写ruby中的所有代码,可能有一些聪明的方式我可以公开这些PHP函数,所以ruby可以访问它们。你有什么想法或方法可以用来实现这个目标吗?
答案 0 :(得分:2)
假设您指的是在命令行可调用的代码,使用backticks或%x
运算符或更复杂的system
,popen
和{{3命令允许您执行单独的代码片段并收集结果。
例如在IRB中:
irb(main):002:0> puts `ls`
Desktop
Documents
在方法中包装它,它成为调用外部程序的一种方式:
def ls(s='')
`ls #{s}`
end
ls() # => "Desktop\nDocuments\nDownloads\nLibrary\nMovies\nMusic\nPictures\nPublic\nSites\nVirtualBox VMs\nbin\ndevelopment\nlibsmi\nperl5\nproduction\nshare\ntest.data\ntmp\n"
ls('M*') # => "Movies:\n\nMusic:\niTunes\n"
有关其他信息,请参阅“popen3
”。
答案 1 :(得分:0)
我能想到的唯一合理的解决方案是重写php的块或写一个http api。
如果你想开始一个更具冒险性的路线,你可以看看将php编译成exes(Convert a PHP script into a stand-alone windows executable),然后通过反引号,系统等执行它们......
尽管重写它可能是最好的。