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.9k
Talk of RBS
udzura
0
510
Re: みなさん最近どうですか? / FGN tech meetup in 2021
udzura
0
870
Dockerとやわらかい仮想化 - ProSec-IT/SECKUN 2021 edition -
udzura
2
830
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
Data Hubグループ 紹介資料
sansan33
PRO
0
3.2k
Claude Codeで開発以外の業務も爆速化しよう!
minorun365
PRO
10
8.8k
AIレビュー時代に必要なのは、SLOで引く撤退ライン
nobuoooo
0
150
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
あなたの知らないバージョン命名規則
sat
PRO
2
850
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.5k
Digitization部 紹介資料
sansan33
PRO
2
7.8k
パスキーでドライブする アカウント統合(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
340
1.5時間を無駄にして学んだwsl2におけるaptとsnapの選択と仕組み
yosaka0123
0
460
本番に近いテストをもっと手軽に - Postmanで広がるAPIテストの世界 / Expanding the World of API Testing with Postman
yokawasa
1
120
OAuth SPIFFE Client Authentication(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
330
どんな手を使っても絶対間に合わせるスケジューラ
asari194617
0
1.5k
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.9k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
390
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
How to Think Like a Performance Engineer
csswizardry
28
2.7k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
500
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Navigating Weather and Climate Data
rabernat
0
490
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
290
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さんのスライドからいただきました…