Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PHPでGUIアプリを作れなかった(pecl編)
Search
chiroruxx
September 02, 2023
0
350
PHPでGUIアプリを作れなかった(pecl編)
第155回PHP勉強会@東京で発表したスライドです。
chiroruxx
September 02, 2023
Tweet
Share
More Decks by chiroruxx
See All by chiroruxx
eBPF with PHPをさわる
chiroruxx
0
78
sl完全に理解したつもり
chiroruxx
0
69
命名をリントする
chiroruxx
1
670
良い命名かを調べるリンターを作った + α
chiroruxx
0
76
GoLandを布教する会
chiroruxx
0
23
PHPはいつから死んでいるかの調査
chiroruxx
3
600
元phperから見たGoの良いところ
chiroruxx
0
73
Go Connectへの想い
chiroruxx
0
440
GraphQLに入門してみた
chiroruxx
2
310
Featured
See All Featured
Navigating Team Friction
lara
183
15k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Bash Introduction
62gerente
610
210k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
310
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
193
16k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
12
950
Building Adaptive Systems
keathley
40
2.4k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
Transcript
1)1Ͱ(6*ΞϓϦΛ ࡞Εͳ͔ͬͨ QFDMฤ 第155回 PHP勉強会@東京
ࣗݾհ ▪ ちひろ ▪ Twitter: @chiroruxxxx ▪ 会社: 株式会社モリサワ
/BUJWF1)1͕Ͱ͢Ͷʂ https://nativephp.com/
/BUJWF1)1 ▪ PHP で GUI アプリを作るための Laravel プラグイン – Electron
などなどで実現 – route で指定した内容を表示する (WebView のようなイメージ) ▪ ついに PHP で GUI アプリを作れるようになった! ▪ PHP にとって GUI 元年になるかもしれない! Window::open() ->route('top');
(6*ݩɾɾɾʁ🤔
1)1ͬͯલ͔Β (6*࡞Ε·͢ΑͶ ͬͨ͜ͱͳ͍͚Ͳ
https://www.php.net/manual/ja/refs.ui.php
6*Ϟδϡʔϧ ▪ PHP7 以上 ▪ Pecl 拡張モジュール ▪ Windows /
Mac / Linux で動く ▪ libui を入れておく必要がある
Πϯετʔϧ # 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
݁Ռ ▪ 結果、ビルドできず – 古い文法で書かれてそう? ▪ (最終更新も 7 年前だなぁ・・・) ▪
C に詳しい人ならビルドできるかも? ▪ GitHub の Issue でもみんなビルドできなくて困ってた ISO C99 and later do not support implicit function declarations
·ͱΊ ▪ 素直に NativePHP を使いましょう
͓·͚ ▪ Issue で他のリポジトリがおすすめされてた
DIPQJOTQIQMJCVJ ▪ UI モジュールと同じように libui を使用して動く ▪ Pecl 拡張モジュールではなく FFI
で動く – FFI は PHP で C のコードを動かす仕組み
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();
͓·͚ͷ·ͱΊ ▪ 「PHP は好きだけど Web は嫌い」みたいなニッチな人にはいいかも ▪ OS デフォルトの UI
を使えるのは利点か ▪ libui のビルドが必要 ▪ 書くコードはわりとつらい – いい感じにラップするフレームワークがあれば良さげ?