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.4k
php-mruby のごしょうかい
おっしょい博多
KONDO Uchio
October 17, 2014
Tweet
Share
More Decks by KONDO Uchio
See All by KONDO Uchio
大規模レガシーテストを 倒すための CI基盤の作り方 / #CICD2023
udzura
5
2.3k
Ruby x BPF in Action / RubyKaigi 2022
udzura
0
220
Narrative of Ruby & Rust
udzura
0
190
開発者生産性指標の可視化 / pepabo-four-keys
udzura
3
1.6k
Talk of RBS
udzura
0
410
Re: みなさん最近どうですか? / FGN tech meetup in 2021
udzura
0
740
Dockerとやわらかい仮想化 - ProSec-IT/SECKUN 2021 edition -
udzura
2
700
Device access filtering in cgroup v2
udzura
1
820
"Story of Rucy" on RubyKaigi takeout 2021
udzura
0
770
Other Decks in Technology
See All in Technology
ウォンテッドリーのデータパイプラインを支える ETL のための analytics, rds-exporter / analytics, rds-exporter for ETL to support Wantedly's data pipeline
unblee
0
140
RayでPHPのデバッグをちょっと快適にする
muno92
PRO
0
190
アジャイルな開発チームでテスト戦略の話は誰がする? / Who Talks About Test Strategy?
ak1210
1
660
手を動かしてレベルアップしよう!
maruto
0
240
DevinでAI AWSエンジニア製造計画 序章 〜CDKを添えて〜/devin-load-to-aws-engineer
tomoki10
0
190
Snowflake ML モデルを dbt データパイプラインに組み込む
estie
0
110
IAMのマニアックな話2025
nrinetcom
PRO
6
1.3k
Amazon Aurora のバージョンアップ手法について
smt7174
2
180
AWSアカウントのセキュリティ自動化、どこまで進める? 最適な設計と実践ポイント
yuobayashi
7
850
エンジニア主導の企画立案を可能にする組織とは?
recruitengineers
PRO
1
270
Aurora PostgreSQLがCloudWatch Logsに 出力するログの課金を削減してみる #jawsdays2025
non97
1
230
リクルートのエンジニア組織を下支えする 新卒の育成の仕組み
recruitengineers
PRO
1
140
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
428
65k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Rails Girls Zürich Keynote
gr2m
94
13k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.2k
Large-scale JavaScript Application Architecture
addyosmani
511
110k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
27
1.9k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.3k
Building an army of robots
kneath
303
45k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.4k
Speed Design
sergeychernyshev
27
810
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.2k
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さんのスライドからいただきました…