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
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
310
Narrative of Ruby & Rust
udzura
0
270
開発者生産性指標の可視化 / 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
810
Device access filtering in cgroup v2
udzura
1
1k
"Story of Rucy" on RubyKaigi takeout 2021
udzura
0
920
Other Decks in Technology
See All in Technology
美味しいスイスチーズを作ろう🧀🐭
taigamikami
1
220
探して_入れて_作って_使う_Agent_Skills___LT.pdf
peintangos
2
160
地元にいないローカルオーガナイザーの立ち回り
uvb_76
1
440
AIプラットフォームを運用し続けるための可観測性
tanimuyk
4
1.1k
ChatworkとBPaaS 異なる特性で学んだAI機能開発の ベストプラクティス
kubell_hr
2
2.1k
プラットフォームエンジニア ワークショップ/ platform-workshop
databricksjapan
0
200
インフラが苦手でも大丈夫! 紙芝居 Kubernetes -WWGT 10周年編-
aoi1
1
330
関西に縁あるMicrosoft MVPsが語るCopilotの未来
kasada
0
1k
「コーディング」しない人のための Claude Code 入門 ChatGPT の次の一歩 — 業務に組み込む 育成・共有・自動化
rfdnxbro
2
1.1k
AI Adaptable なテストを整える工夫 / Ways to Make Your Tests AI-Adaptable
bitkey
PRO
2
200
速さだけじゃない! VoidZero ツールが移行先に選ばれる理由
mizdra
PRO
6
730
ポスター発表&デモと総括 / Poster Presentations & Demonstrations and Summary
ks91
PRO
0
190
Featured
See All Featured
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
270
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
240
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
320
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
150
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
260
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Unsuck your backbone
ammeep
672
58k
The SEO Collaboration Effect
kristinabergwall1
1
470
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さんのスライドからいただきました…