如何使用 Vala 编程语言制作 PHP 模块?

发布于 2024-09-01 14:17:07 字数 173 浏览 11 评论 0原文

这种名为 Vala 的新语言据说类似于 C#,并且比 C++ 或 C 更容易,可以在 Linux 上使用 GCC 编译器编译为 C。

听起来很棒。现在我想用它来制作一个PHP扩展模块,以便可以在Vala中制作慢速PHP代码并将其作为函数导入到PHP中。

我如何在 Vala 中实现这一目标?有可能吗?

This new language called Vala, which is said to be C#-like and supposedly easier than C++ or C, compiles down into C on Linux with the GCC compiler.

Sounds great. Now I want to use it to make a PHP extension module so that slow PHP code can be made in Vala and imported into PHP as a function.

How do I accomplish this in Vala? Is it even possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

空气里的味道 2024-09-08 14:18:20

我创建了如何使用其他语言的 Vala 库的简单示例:

https://github.com/antono /vala-object

通过 GOobject Introspection 自动生成的 vala 库的绑定。

https://live.gnome.org/GObjectIntrospection

使用 gobject-for-php 并免费获取绑定!

https://github.com/indeyets/gobject-for-php

I've created simple example of how to use Vala library from other languages:

https://github.com/antono/vala-object

Bindings for vala library generated automagically via GOobject Introspection.

https://live.gnome.org/GObjectIntrospection

Use gobject-for-php and get bindings for free!

https://github.com/indeyets/gobject-for-php

仙气飘飘 2024-09-08 14:18:17

我不知道 Vala,但如果您可以调用本机代码,声明 C 结构并将它们作为指向所述本机代码的指针传递,并定义使用 C 调用约定的函数,那么它应该是可能的。但用 C/C++ 肯定会更容易。

编辑:其 主页

valac 从 Vala 源文件生成 C 源文件和头文件,就像您直接用 C 语言编写库或应用程序一样。从 C 应用程序使用 Vala 库与使用任何其他基于 GObject 的库看起来没有什么不同。不会有 vala 运行时库,应用程序可以使用其 tarball 分发生成的 C 代码,因此用户不需要额外的运行时或构建时依赖项。

所以,虽然这不是确定的,但我想说你可能可以。

I don't know Vala, but if you can call native code, declare C structures and pass them as pointers to said native code, and define functions that use C calling conventions, it should be possible. But it will certainly be easier to do it in C/C++.

Edit: its homepage says

valac produces C source and header files from Vala source files as if you've written your library or application directly in C. Using a Vala library from a C application won't look different than using any other GObject-based library. There won't be a vala runtime library and applications can distribute the generated C code with their tarballs, so there are no additional run- or build-time dependencies for users.

So, although this is not definitive, I'd say you probably can.

我不在是我 2024-09-08 14:18:08

您需要为您需要使用的 C 库使用或编写(如果不存在)VAPI 文件。
这很简单,您只需要观看现有的示例:http://live.gnome.org/Vala /Bindings 或简单地:http://git.gnome.org/browse/瓦拉/树/vapi

You need to use or write (if it doesn't exist) a VAPI file for the C library you need to use.
It's quite easy, you just need to watch at the existing examples: http://live.gnome.org/Vala/Bindings or simply: http://git.gnome.org/browse/vala/tree/vapi

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文