web-dev-qa-db-ja.com

PHPにコンパイルするhaxeおよびその他の言語の経験はありますか?

PHPにコンパイルする言語を使用したことのある人からの意見を聞きたいのですが。私が知っているそのような言語の1つは Haxe です。私が読んだ他のものは KiraPharen です。

これらの言語はPHPとどの程度うまく統合できますか? PHP CMSのプラグインを作成するのは比較的簡単ですか?

それらの実装とツールはどの程度成熟していますか?

Php cmsを使用する必要があるが、phpを嫌う人にそれらをお勧めしますか?

23
Kim

私は、LISP方言をPHPにコンパイルするPharenの作成者です。あなたの質問に答えるために、それはPHPとかなりよく統合します。既存のライブラリを含めて関数を呼び出したり、オブジェクトを使用したりするのは簡単です。

成熟度に関しては、Pharenコードの実稼働での使用はまだありません。言語に関しては、必要なものはすべて揃っていて機能しますが、デプロイメントなどにはまだ少し手間がかかります。

そうは言っても、Pharenを選択した場合、私はできる限りお手伝いさせていただきます。他にご不明な点がありましたらお知らせください。

9
Scriptor

Josh Kはいくつかの点で正しいです。phpランタイムをより的確に対象とするためには、phpを知っている方が良いです。しかし、これの主な理由は、haxeが悪いコンパイラーであるということではありませんが、そのphpはそのような「特異な」言語です。

Phpのベース名前空間には、信じられないほどの機能があります。そのため、名前の競合を防ぐために知っておく必要のある予約済みキーワードと特殊関数がたくさんあります。一部の人々はこれで大丈夫です、それは恐ろしい言語設計だと思います。 HaXeは、phpで独自の名前空間を作成することにより、この問題を回避します。

PHPは、オーバーフロー時に整数を浮動小数点数に自動的に変換します。もちろんこれは、HaXeのような言語が型安全性のために(そして高速ハッシュアルゴリズムのような単純なことを可能にするために)依存している厳密な型指定を破ります。これはもう1つの恐ろしい言語機能だと思います。また、このphpの動作は変更できないため、haXeはここでは役に立ちません。

だから、あなたは行き​​ます。私はhaXeがphpのいくつかの(認識された)言語の欠陥を修正するので、phpをより良くすると思います。ただし、phpには非常に多くの奇妙なことがあり、その特異性を修正するためにphpをよく学ぶ必要があります。

そうは言っても、haXe言語はかなり素晴らしいです。これにより、phpコードをより適切な名前空間に編成でき、かなり洗練された型システムがあり、php固有の問題を処理するための条件付きコンパイルオプションがいくつかあり、いくつかの素晴らしいドキュメント操作があります。これらの理由だけで、洗練されたライブラリを設計することは悪くありません... phpのようなものでも。

関連リンク:

php magic: http://haxe.org/doc/advanced/magic

(メインのhaxe.orgサイトのコミュニティセクションで「プラットフォームの癖」も探してください)

3
jdonaldson

恐ろしいゴミ

私は誰かの推薦にhaXeを使いました、そしてanyoneany reasonを勧めることは決してありません。

言語間でクロスコンパイルすると、混乱、間違い、エラーが発生します。また、記念碑的なタスクのデバッグも行います。

Php cmsを使用する必要があるが、phpを嫌う人にそれらをお勧めしますか?

番号! learn PHP適切にを使用するか、別のCMSを使用することをお勧めします。CMSの部分に選択肢がないようなので、他のオプションは学ぶことです言語とそれに対処します。

それらの実装とツールはどの程度成熟していますか?

せいぜい若く、最悪でも不安定。あなたは彼らのための多くのサポートを見つけることはありません。


PHPアプリケーション用に何かを書く仕事があるようです。コードが既存のPHP関数/オブジェクトを仕事、そして上記のジャンク、これに取り組んでいる他の誰もがあなたの言語を言語コンパイラに学ばなければならないでしょう。さもなければ、彼らは結果である薄っぺらな「PHP」コードをいじるでしょう。これはまた、彼らはそれに取り組んでいるので、コードの変更を再実装する必要があります。そうしないと、他の人が行った変更を失うリスクがあります。

PHPでの作業が嫌いな場合は、それらの言語が出力するコードのいくつかで作業する必要があるまで待ってください。


""言語間のクロスコンパイル "

それは混乱、間違い、そしてエラーにつながります。別の言語に翻訳されるコードを書くとき、あなたは最初のソースから自分自身を削除しています。何を書いて、何を生成するかは、コンパイラ次第です。コードを生成するためのコードの記述は混乱を招き、間違いを犯し、予期しないエラーを見つけるでしょう。それらの使用はお勧めしません。

2
Josh K

私は数多くの言語翻訳者を使用してきましたが、結局のところ、回避しようとしていることについて常に多くのことをしなければなりません...したがって、PHPが嫌いな場合は、本当に不明瞭な問題が発生するまで待ってください腸の奥深くまで行きます。けれども、haXeでnekoをターゲットにするのはかなりクールだと思うので、私は大食いである必要があります。

1
red-dirt

PHP CMSのプラグインを作成する場合は、PHPをそのまま使用します。

私はHaXeを使用していて、本当に素晴らしいと思っていますが、この場合はお勧めしません。それは単に多すぎる間接であり、コストは小さなプラグインの場合よりも高くなります。

1
dagnelies