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-mruby のごしょうかい
Search
KONDO Uchio
October 17, 2014
Technology
4.5k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
php-mruby のごしょうかい
おっしょい博多
KONDO Uchio
October 17, 2014
More Decks by KONDO Uchio
See All by KONDO Uchio
大規模レガシーテストを 倒すための CI基盤の作り方 / #CICD2023
udzura
5
2.6k
Ruby x BPF in Action / RubyKaigi 2022
udzura
0
320
Narrative of Ruby & Rust
udzura
0
280
開発者生産性指標の可視化 / pepabo-four-keys
udzura
3
1.8k
Talk of RBS
udzura
0
500
Re: みなさん最近どうですか? / FGN tech meetup in 2021
udzura
0
860
Dockerとやわらかい仮想化 - ProSec-IT/SECKUN 2021 edition -
udzura
2
820
Device access filtering in cgroup v2
udzura
1
1k
"Story of Rucy" on RubyKaigi takeout 2021
udzura
0
930
Other Decks in Technology
See All in Technology
Redmine 7.0 新機能・機能強化解説(OSC2026京都ダイジェスト版)
vividtone
1
200
ホームラボ紹介
y_sera15
0
100
TypeScript入門 2026
recruitengineers
PRO
2
480
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
610
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.2k
【CEDEC2026】専門性の高いデフォルメチームが挑んだ人材育成戦略 〜Cygames Academiaの企画から実施まで〜
cygames
PRO
0
520
GitHub CopilotのFinOps- AI CreditのObservabilityと価値を生むためのエージェント設計
yuriemori
0
140
【CEDEC2026】『GRANBLUE FANTASY: Relink - Endless Ragnarok』のバトル制作事例 ~最高のキャラゲーを目指して~
cygames
PRO
0
220
【CEDEC2026】ゲームシナリオライターを支援するAIツール開発の実践 ― 設計とプロンプトの工夫 ―
cygames
PRO
1
770
20260807_第6回_関東kaggler会LT_claw系bot xangiと始める、"寂しくない" kaggle
sugupoko
0
180
Agent 時代の Kaggle 展望 / kaggle-in-the-agentic-era
upura
1
650
モバイルアプリ開発概論2026
recruitengineers
PRO
3
480
Featured
See All Featured
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
790
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.1k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
240
GitHub's CSS Performance
jonrohan
1033
470k
AI: The stuff that nobody shows you
jnunemaker
PRO
9
890
The Curious Case for Waylosing
cassininazir
1
450
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
How STYLIGHT went responsive
nonsquared
100
6.2k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Transcript
mruby のご紹介 〜PHPから使ってみるぞ!〜 2014-10-17 Fukuoka.php
誰?
近藤うちお 技術基盤チーム @ GMOペパボ ルビースト Fukuoka.rb 関係者 でもRubyより前に触ったのはPHPだよ! 出身はタモリがdisってる愛知です
[PR]著書です(共著)
めっちゃルビーストやん なんしにきとうと?
仕事 主に福岡でやってるサービスを見てます ・minne(Rails, しかしよく触るのはPuppet) ・ムームードメイン (PHP/モバイル向けなどがRails) ・ロリポップ!!!!!!レンタルサーバー (ほぼPHP)
PHP!!!
最近書いたPHP ! (のC拡張へのパッチ)のコード
Yes, I am PHPer!!1
本題
php-mruby
mruby?
mruby三行 組み込み向けのRubyの実装 ISO Ruby相当(だいたい1.8) luaっぽいことがRubyでできる、みたいな?
「組み込み」 物理的なデバイスと言う意味だけでなく、 Cベースの他のソフトウェアに組み込める
e.g. mod_mruby https://suzuri.jp/matsumotory/86257/mug/m/white
e.g. mitchellh/go-mruby cgoを使ってる
php-mruby chobi_e さんの 実装が代表的
(m)rubyを 他言語に組み込んで どうするの?
僕はこう思ったッス
例えば、 バラバラのコンポーネントの 設定/共通部分をmrubyで。 フロント Rails なんか分かんない 古いやつ CGI… 共通API Go
顧客管理 PHP+Zend
ほら、アレですよ マイクロサービス?ってやつ
SOA/microservices の ボトルネックの一つ 共通設定部分をどう管理する?
mrubyなら DSLでスマートに 設定・ロジック管理できそう
※ 個人の感想です LTということで、 あまり深入りしない…
動かしてみよう
おてもとで
やるぞ!
segmentation fault _人人人人人人人人人人人人人人人_ > <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
かなりカジュアルにセグる… @hoge みたいなインスタンス変数がダメぽ $hoge ならいける(サンプルもそう) PHPじゃないので、これはグローバル変数 あれ……???
いろいろやって Rubyの外部ファイルから DSLを読み込んで PHP内部で使うとこまできた
demo
None
cf. 手前味噌ブログ ! ! ! ! ! Goでも「全く同じDSL」を解釈・利用可能 http://udzura.hatenablog.jp/entry/2014/09/18/163715
コツとか PHP.call_user_func がmrubyの側で 定義されてる。これをブリッジにできる。
! ! ! ! ここでも @prefix なんて利用できないぞ! 甘えるな!
所感
go-mruby がかなり良いので あんな感じのAPIがいい… mrubyをDSL的に使う上では最高な設計 ミシェルハシモト氏のコードめっちゃ奇麗 2012年から更新が無いし、 書き直してみたいかも…
ということで PHP拡張の書き方を学習中… _人人人人人人人人人人人人人人人人_ > ZEND_BEGIN_ARG_INFO_EX <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
あと PHP力が低すぎて 奇麗なコードにならないぞい…… さっきの、クラスすら無い……
まとめ
東京風まとめ ペパボ福岡支社では @udzura に厳しく PHPを教えてくれる人を募集しています
ご清聴 ありがとうございました! PHPは
Credits Font: やさしさゴシック http://www.fontna.com/blog/379/ Theme: Azusa http://memo.sanographix.net/post/82160791768 ! ! あと、テーマカラーのオレンジ色(とフォント)は
@tatsuoSakuraiさんのスライドからいただきました…