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
75
sl完全に理解したつもり
chiroruxx
0
67
命名をリントする
chiroruxx
1
660
良い命名かを調べるリンターを作った + α
chiroruxx
0
74
GoLandを布教する会
chiroruxx
0
23
PHPはいつから死んでいるかの調査
chiroruxx
3
600
元phperから見たGoの良いところ
chiroruxx
0
73
Go Connectへの想い
chiroruxx
0
430
GraphQLに入門してみた
chiroruxx
2
310
Featured
See All Featured
Faster Mobile Websites
deanohume
305
30k
RailsConf 2023
tenderlove
29
980
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
Fireside Chat
paigeccino
34
3.2k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
20
2.4k
Into the Great Unknown - MozCon
thekraken
34
1.6k
Mobile First: as difficult as doing things right
swwweet
222
9.2k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.4k
Side Projects
sachag
452
42k
Being A Developer After 40
akosma
89
590k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
990
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
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 のビルドが必要 ▪ 書くコードはわりとつらい – いい感じにラップするフレームワークがあれば良さげ?