Valaと呼ばれるこの新しい言語は、C#に似ており、おそらくC ++やCよりも簡単であると言われており、GCCコンパイラを使用してLinux上でCにコンパイルされます。
いいね。これを使用してPHP拡張モジュールを作成し、遅いPHPコードをValaで作成して、関数としてPHPにインポートできるようにします。
Valaでこれを達成するにはどうすればよいですか?それも可能ですか?
Valaと呼ばれるこの新しい言語は、C#に似ており、おそらくC ++やCよりも簡単であると言われており、GCCコンパイラを使用してLinux上でCにコンパイルされます。
いいね。これを使用してPHP拡張モジュールを作成し、遅いPHPコードをValaで作成して、関数としてPHPにインポートできるようにします。
Valaでこれを達成するにはどうすればよいですか?それも可能ですか?
使用する必要のあるCライブラリのVAPIファイルを使用または書き込む必要があります(存在しない場合)。非常に簡単です。既存の例を見る必要があります:http://live.gnome.org/Vala/Bindingsまたは単に:http://git.gnome.org/browse/vala/tree/vapi
Valaはわかりませんが、ネイティブコードを呼び出し、C構造体を宣言して、それらをネイティブコードへのポインターとして渡し、C呼び出し規約を使用する関数を定義できれば可能です。しかし、C /C++でそれを行う方が確かに簡単です。
編集:そのホームページは言う
valacは、ライブラリまたはアプリケーションをCで直接記述したかのように、ValaソースファイルからCソースファイルとヘッダーファイルを生成します。CアプリケーションからValaライブラリを使用しても、他のGObjectベースのライブラリを使用した場合と同じように見えます。ヴァラランタイムライブラリはなく、アプリケーションは生成されたCコードをtarballとともに配布できるため、ユーザーに実行時またはビルド時の追加の依存関係はありません。
したがって、これは決定的なものではありませんが、おそらく可能だと思います。
他の言語からValaライブラリを使用する方法の簡単な例を作成しました。
https://github.com/antono/vala-object
GOobjectIntrospectionを介して自動的に生成されたvalaライブラリのバインディング。
https://live.gnome.org/GObjectIntrospection
gobject-for-phpを使用して、バインディングを無料で入手してください!