Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PHPでGUIアプリを作れなかった(pecl編)

chiroruxx
September 02, 2023
300

 PHPでGUIアプリを作れなかった(pecl編)

第155回PHP勉強会@東京で発表したスライドです。

chiroruxx

September 02, 2023
Tweet

Transcript

  1. /BUJWF1)1 ▪ PHP で GUI アプリを作るための Laravel プラグイン – Electron

    などなどで実現 – route で指定した内容を表示する (WebView のようなイメージ) ▪ ついに PHP で GUI アプリを作れるようになった! ▪ PHP にとって GUI 元年になるかもしれない! Window::open() ->route('top');
  2. 6*Ϟδϡʔϧ ▪ PHP7 以上 ▪ Pecl 拡張モジュール ▪ Windows /

    Mac / Linux で動く ▪ libui を入れておく必要がある
  3. Πϯετʔϧ # install meson pip3 install --user meson # install

    ninja brew install ninja # install libui git clone [email protected]:andlabs/libui.git && cd libui meson setup build ninja -C build # install ui module pecl install ui-beta
  4. ݁Ռ ▪ 結果、ビルドできず – 古い文法で書かれてそう? ▪ (最終更新も 7 年前だなぁ・・・) ▪

    C に詳しい人ならビルドできるかも? ▪ GitHub の Issue でもみんなビルドできなくて困ってた ISO C99 and later do not support implicit function declarations
  5. DIPQJOTQIQMJCVJ require_once __dir__ . "/vendor/toknot/php-libui/src/UI.php"; use UI¥UI; $ui = new

    UI('/usr/local/lib/libui.dylib'); $ui->init(); $mainWindow = $ui->newWindow("libui Control Gallery", 640, 480, 1); $ui->controlShow($mainWindow); $ui->main();
  6. ͓·͚ͷ·ͱΊ ▪ 「PHP は好きだけど Web は嫌い」みたいなニッチな人にはいいかも ▪ OS デフォルトの UI

    を使えるのは利点か ▪ libui のビルドが必要 ▪ 書くコードはわりとつらい – いい感じにラップするフレームワークがあれば良さげ?