PHP解释器很常见,但PHP语法和库不一致&繁琐(IMO,当然)。我认为一种语言编译成PHP但提供更高级别的功能(如模块,混合,列表推导等等)和更简单的语法(如可选分号,隐含返回,没有变量的美元符号,可选括号和括号等等......)很有价值。有这样的事吗?
答案 0 :(得分:25)
我一直在研究这个问题,目前似乎答案是否定的。我是这个名为Snowscript的项目的作者 - 它远非完整,但文档非常好,有些东西确实有用。很想听听您对语法的看法反馈!
答案 1 :(得分:24)
简短的回答是“不”。由于各种因素的独特融合,CoffeeScript逐渐普及。首先,正如Wesley所指出的,JavaScript在浏览器平台上占有垄断地位,而PHP只对.php
文件拥有垄断权。在您自己的服务器上,如果您不喜欢PHP,您可以使用Ruby,Python,Perl或任何无数的JVM或.NET语言。
另一个因素是JavaScript的设计出现了意外。它的创造者Brendan Eich被告知要“让它看起来像Java”;但从语义上讲,它与Lisp和Smalltalk有更多共同之处。 CoffeeScript可以提供一种更适合JavaScript内部工作的语法。
由于需要保持与旧版浏览器的兼容性,严重阻碍了JavaScript自身的语法演变。 PHP没有受到任何限制,因为任何将代码从PHP4转换为PHP5的人都可以证明。如果您想使JavaScript成为更好的语言,则需要预编译器。如果您想让PHP成为更好的语言,请发布PHP6的功能请求。 (编辑:在我最初的回答中,我因为愚人节的笑话而声称PHP6 had been released in 2010。我显然不是一个PHP家伙......)
所有这些都说,拥有类似CoffeeScript for PHP的语言可能会很酷。 WordPress的持续成功及其在用户通常无法控制的服务器上的使用证明了PHP作为已部署语言的独特地位。使用PHP和Haml等替代标记语言也很困难。也许另一种标记语言结合新的PHP语法可能会让人们有足够的理由预先编译他们的PHP。
答案 2 :(得分:15)
浏览和浏览网页我发现http://mammouth.boutglay.com/看起来与PHP的咖啡脚本语言最相似。似乎可以完成这项工作。
答案 3 :(得分:12)
如果我已经理解了你想要的东西,那么Haxe可以针对PHP,以及Flash,JavaScript等。
我只是将它用于Flash,但发现它非常有用。
答案 4 :(得分:5)
如果您喜欢Lisps,请查看Pharen。我还不需要使用它,但它看起来很不错 - 它有 defmacro ,甚至可以将尾递归转换为循环。
答案 5 :(得分:4)
/*
I'm a multiline comment
*/
a = 1 # variable definition
# you can use JSON syntax to define associative arrays
arr = { "name": "Mike", "age": 18, "meta": { "items": [1, 2, 3] } }
if a == 1
echo("Hello, World!")
end
for i in (0..10)
echo(i)
end
class MyClass < MyParentClass
@name
def Greet
echo("Hello! My name is " & @name)
end
end
他们也在this comment中提到过。
答案 6 :(得分:1)
目前还没有适用于PHP的生产就绪或已完成的类似coffeescript的语言/编译器。
我是CoffeePHP的作者,正在为更短的语法编写编译器。它实际上是另一种语言。
答案 7 :(得分:0)
当然,您可能已经意识到这一点,但您可以简单地将nodejs与CoffeeScript一起使用...(除非您特别附加到PHP)
答案 8 :(得分:0)
这个库本身不像CoffeeScript,但它是重写PHP以声明和使用自己的语法的基础。我对此没有任何经验,所以不要将其视为背书,只是观察。 https://github.com/theseer/preprocessor
答案 9 :(得分:-1)
看一下coffeescript-php项目,该项目与github上的coffeescript 1.3.1兼容,可以在https://github.com/alxlit/coffeescript-php
找到