是否有类似CoffeeScript for PHP的东西?

时间:2011-07-01 17:10:53

标签: php programming-languages

PHP解释器很常见,但PHP语法和库不一致&繁琐(IMO,当然)。我认为一种语言编译成PHP但提供更高级别的功能(如模块,混合,列表推导等等)和更简单的语法(如可选分号,隐含返回,没有变量的美元符号,可选括号和括号等等......)很有价值。有这样的事吗?

10 个答案:

答案 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)

@gosukiwi制作Blueberry,如下所示:

/* 
 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的作者,正在为更短的语法编写编译器。它实际上是另一种语言。

https://github.com/c9s/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

找到
相关问题