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
200
PHPでGUIアプリを作れなかった(pecl編)
第155回PHP勉強会@東京で発表したスライドです。
chiroruxx
September 02, 2023
Tweet
Share
More Decks by chiroruxx
See All by chiroruxx
PHPはいつから死んでいるかの調査
chiroruxx
2
440
元phperから見たGoの良いところ
chiroruxx
0
21
Go Connectへの想い
chiroruxx
0
170
GraphQLに入門してみた
chiroruxx
2
210
ドキュメンテーションコメント再入門
chiroruxx
0
100
我流カンファレンス楽しみ術
chiroruxx
0
61
最初の一歩を踏み出す言葉
chiroruxx
4
1.1k
PhpStormをIDEとして使う
chiroruxx
0
64
Goを始めて感じたPHPの魅力
chiroruxx
1
68
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
45
9.8k
GraphQLの誤解/rethinking-graphql
sonatard
56
9.3k
A designer walks into a library…
pauljervisheath
201
23k
Unsuck your backbone
ammeep
664
57k
Building a Modern Day E-commerce SEO Strategy
aleyda
22
6.5k
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
10 Git Anti Patterns You Should be Aware of
lemiorhan
649
58k
Build your cross-platform service in a week with App Engine
jlugia
226
17k
Pencils Down: Stop Designing & Start Developing
hursman
117
11k
The Language of Interfaces
destraynor
151
23k
The Mythical Team-Month
searls
217
42k
Mobile First: as difficult as doing things right
swwweet
217
8.6k
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 のビルドが必要 ▪ 書くコードはわりとつらい – いい感じにラップするフレームワークがあれば良さげ?