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
1
4.5k
php-mruby のごしょうかい
おっしょい博多
KONDO Uchio
October 17, 2014
Tweet
Share
More Decks by KONDO Uchio
See All by KONDO Uchio
大規模レガシーテストを 倒すための CI基盤の作り方 / #CICD2023
udzura
5
2.4k
Ruby x BPF in Action / RubyKaigi 2022
udzura
0
250
Narrative of Ruby & Rust
udzura
0
220
開発者生産性指標の可視化 / pepabo-four-keys
udzura
3
1.7k
Talk of RBS
udzura
0
450
Re: みなさん最近どうですか? / FGN tech meetup in 2021
udzura
0
780
Dockerとやわらかい仮想化 - ProSec-IT/SECKUN 2021 edition -
udzura
2
730
Device access filtering in cgroup v2
udzura
1
910
"Story of Rucy" on RubyKaigi takeout 2021
udzura
0
830
Other Decks in Technology
See All in Technology
成長し続けるアプリのためのテストと設計の関係、そして意思決定の記録。
sansantech
PRO
0
130
「クラウドコスト絶対削減」を支える技術—FinOpsを超えた徹底的なクラウドコスト削減の実践論
delta_tech
4
170
品質と速度の両立:生成AI時代の品質保証アプローチ
odasho
1
390
ゼロからはじめる採用広報
yutadayo
3
980
タイミーのデータモデリング事例と今後のチャレンジ
ttccddtoki
6
2.4k
LangChain Interrupt & LangChain Ambassadors meetingレポート
os1ma
2
320
Getting to Know Your Legacy (System) with AI-Driven Software Archeology (WeAreDevelopers World Congress 2025)
feststelltaste
1
160
Delegating the chores of authenticating users to Keycloak
ahus1
0
160
AI専用のリンターを作る #yumemi_patch
bengo4com
6
4.3k
Operating Operator
shhnjk
1
610
United airlines®️ USA Contact Numbers: Complete 2025 Support Guide
unitedflyhelp
0
330
ネットワーク保護はどう変わるのか?re:Inforce 2025最新アップデート解説
tokushun
0
210
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
For a Future-Friendly Web
brad_frost
179
9.8k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Rails Girls Zürich Keynote
gr2m
95
14k
Designing for Performance
lara
610
69k
Thoughts on Productivity
jonyablonski
69
4.7k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
How to Think Like a Performance Engineer
csswizardry
25
1.7k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
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さんのスライドからいただきました…