The Ardillo extension provides an object-oriented PHP interface to the libui-ng library as well as routines for implementing a ReactPHP event loop. The end goal is to provide a framework for developing cross-platform desktop applications in PHP, as seen in our examples.
Please head to ardillo.dev for documentation.
- Your operating system build essentials (Xcode/clang on macOS, build-essential on Linux, MS Visual Studio 2019 on Windows);
- PHP development headers and tools;
- Meson/Ninja build system;
For Linux builds, you will also need the GTK development headers.
Please note this method is currently available just for Linux and macOS.
Download the latest extension package manually or via curl:
curl -s -L https://github.com/ardillo-php/ext/releases/download/v0.1.1/ardillo-0.1.1.tgz -o ardillo.tgz
Then install it using PECL:
sudo pecl install ardillo.tgz
The Ardillo extension has yet to be published on the PECL repository.
After cloning the repository, you will need to initialize the submodule then you can proceed to build the extension.
On unices, you can use the following commands:
git submodule update --init
phpize
./configure
make -j
sudo make install
On Windows, you should use the following commands:
git submodule update --init
cd libui-ng
meson setup build --default-library=shared
ninja -C build
cd ..
phpize
configure
nmake
nmake install
Since libui-ng is presently built as a shared library, you might want to copy the libui.dll file (libui-ng\build\meson-out\libui.dll
) to a directory reachable by your Ardillo applications.
The Ardillo extension is licensed under the MIT license.
The Ardillo extension is based on the libui-ng library, which is licensed under the MIT license.
The Windows I/O implementation is based on the wepool library, which is licensed under the BSD 2-Clause license.
Bug reports (and small patches) can be submitted via the issue tracker. Forking the repository and submitting a Pull Request is preferred for substantial patches. Please be sure to read and comply with the Contributing Terms document before proceeding.