SlideShare una empresa de Scribd logo
1 de 12
Twitter Streaming API を PHP から使う ※ ちょっとモダン?に @hidenorigoto / 後藤 秀宣(iNNX)
単純な例
@ms76さんのブログより。多少修正
サンプルの実行例
問題点 ・エラー処理   ・Twitterからの切断・再接続   ・いくつかのデータ形式(keep-alive、delete) ・柔軟性 ・fopenとかfsockopenとか書きたくない・・・
ライブラリ化 ・foreachでループしたい   ->Iteratorインターフェイスを実装
ソースはgist.githubに上げました ★まだα。参考程度に。 http://gist.github.com/336895
クラスを使ったサンプル
あれ? こっちの方がややこしくないか・・・? コードが面倒になってるんじゃ・・・? 異論は認めません! 自己満足です!
サンプルの実行例
Conclusion PHPは5以降(特にSPLなどが強化された5.3)で、オブジェクト指向 厨 でも だいぶ満足 できるコードを書けるようになってきた                ↓   PHPのオブジェクト指向機能をもっと使おう!
みなさんにお聞きしたいこと ・オブジェクト指向が好きですか? ・なぜオブジェクト指向が好きですか?

Más contenido relacionado

La actualidad más candente

Art of font management (use FontExplorer X Pro)
Art of font management (use FontExplorer X Pro)Art of font management (use FontExplorer X Pro)
Art of font management (use FontExplorer X Pro)
Keisuke Fujita
 
Phpunit at excite
Phpunit at excitePhpunit at excite
Phpunit at excite
yuki777
 
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探るPHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
Yoshio Hanawa
 
Testing PHP extension on Travis CI
Testing PHP extension on Travis CITesting PHP extension on Travis CI
Testing PHP extension on Travis CI
Yoshio Hanawa
 
UnitTestのためのクラス設計
UnitTestのためのクラス設計UnitTestのためのクラス設計
UnitTestのためのクラス設計
Takeshi Ishida
 
CodingTips+ 基礎編
CodingTips+ 基礎編CodingTips+ 基礎編
CodingTips+ 基礎編
Yusuke Ito
 
Web上でのゲーム製作(Kanasan.JS LT 080114)
Web上でのゲーム製作(Kanasan.JS LT 080114)Web上でのゲーム製作(Kanasan.JS LT 080114)
Web上でのゲーム製作(Kanasan.JS LT 080114)
hoge1e3
 
[CB16] COFIブレイク:実用的な制御フローインテグリティとプロセッサのトレースによるエクスプロイト阻止 by Ron Shina & Shlomi...
[CB16] COFIブレイク:実用的な制御フローインテグリティとプロセッサのトレースによるエクスプロイト阻止 by Ron Shina & Shlomi...[CB16] COFIブレイク:実用的な制御フローインテグリティとプロセッサのトレースによるエクスプロイト阻止 by Ron Shina & Shlomi...
[CB16] COFIブレイク:実用的な制御フローインテグリティとプロセッサのトレースによるエクスプロイト阻止 by Ron Shina & Shlomi...
CODE BLUE
 

La actualidad más candente (20)

Art of font management (use FontExplorer X Pro)
Art of font management (use FontExplorer X Pro)Art of font management (use FontExplorer X Pro)
Art of font management (use FontExplorer X Pro)
 
コードを書いて理解する!Enumについて
コードを書いて理解する!Enumについてコードを書いて理解する!Enumについて
コードを書いて理解する!Enumについて
 
Phpunit at excite
Phpunit at excitePhpunit at excite
Phpunit at excite
 
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探るPHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
 
Djangoフレームワークの紹介 OSC2015北海道
Djangoフレームワークの紹介 OSC2015北海道Djangoフレームワークの紹介 OSC2015北海道
Djangoフレームワークの紹介 OSC2015北海道
 
Testing PHP extension on Travis CI
Testing PHP extension on Travis CITesting PHP extension on Travis CI
Testing PHP extension on Travis CI
 
Symfony2 workshop-1
Symfony2 workshop-1Symfony2 workshop-1
Symfony2 workshop-1
 
Frank-afcproxy
Frank-afcproxyFrank-afcproxy
Frank-afcproxy
 
Programming camp Codereading
Programming camp CodereadingProgramming camp Codereading
Programming camp Codereading
 
日本語プログラミング言語ワークショップ
日本語プログラミング言語ワークショップ日本語プログラミング言語ワークショップ
日本語プログラミング言語ワークショップ
 
UnitTestのためのクラス設計
UnitTestのためのクラス設計UnitTestのためのクラス設計
UnitTestのためのクラス設計
 
Phpのレガシーコードをrubyで焼き変えてみた
Phpのレガシーコードをrubyで焼き変えてみたPhpのレガシーコードをrubyで焼き変えてみた
Phpのレガシーコードをrubyで焼き変えてみた
 
TypeScriptで作る型安全FirefoxOSアプリ
TypeScriptで作る型安全FirefoxOSアプリTypeScriptで作る型安全FirefoxOSアプリ
TypeScriptで作る型安全FirefoxOSアプリ
 
Pythonでpdfをいじってみる
PythonでpdfをいじってみるPythonでpdfをいじってみる
Pythonでpdfをいじってみる
 
Tfug kansai vol1
Tfug kansai vol1Tfug kansai vol1
Tfug kansai vol1
 
Pyconjp2016 pyftplib
Pyconjp2016 pyftplibPyconjp2016 pyftplib
Pyconjp2016 pyftplib
 
CodingTips+ 基礎編
CodingTips+ 基礎編CodingTips+ 基礎編
CodingTips+ 基礎編
 
Web上でのゲーム製作(Kanasan.JS LT 080114)
Web上でのゲーム製作(Kanasan.JS LT 080114)Web上でのゲーム製作(Kanasan.JS LT 080114)
Web上でのゲーム製作(Kanasan.JS LT 080114)
 
[CB16] COFIブレイク:実用的な制御フローインテグリティとプロセッサのトレースによるエクスプロイト阻止 by Ron Shina & Shlomi...
[CB16] COFIブレイク:実用的な制御フローインテグリティとプロセッサのトレースによるエクスプロイト阻止 by Ron Shina & Shlomi...[CB16] COFIブレイク:実用的な制御フローインテグリティとプロセッサのトレースによるエクスプロイト阻止 by Ron Shina & Shlomi...
[CB16] COFIブレイク:実用的な制御フローインテグリティとプロセッサのトレースによるエクスプロイト阻止 by Ron Shina & Shlomi...
 
広がる .Net
広がる .Net広がる .Net
広がる .Net
 

Más de Hidenori Goto

Excelで勤務時間合計2
Excelで勤務時間合計2Excelで勤務時間合計2
Excelで勤務時間合計2
Hidenori Goto
 
Excelで勤務時間合計
Excelで勤務時間合計Excelで勤務時間合計
Excelで勤務時間合計
Hidenori Goto
 
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
Symfony2 チュートリアル イントロダクション osc 2011 nagoyaSymfony2 チュートリアル イントロダクション osc 2011 nagoya
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
Hidenori Goto
 
Symfony2 workshop-0 (nagoya 2011/2/10)
Symfony2 workshop-0 (nagoya 2011/2/10)Symfony2 workshop-0 (nagoya 2011/2/10)
Symfony2 workshop-0 (nagoya 2011/2/10)
Hidenori Goto
 
Symfony2 workshop-1 (nagoya 2011/2/10)
Symfony2 workshop-1 (nagoya 2011/2/10)Symfony2 workshop-1 (nagoya 2011/2/10)
Symfony2 workshop-1 (nagoya 2011/2/10)
Hidenori Goto
 
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
Hidenori Goto
 
HTC Desireについて
HTC DesireについてHTC Desireについて
HTC Desireについて
Hidenori Goto
 
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
Hidenori Goto
 

Más de Hidenori Goto (20)

Excelで勤務時間合計2
Excelで勤務時間合計2Excelで勤務時間合計2
Excelで勤務時間合計2
 
Excelで勤務時間合計
Excelで勤務時間合計Excelで勤務時間合計
Excelで勤務時間合計
 
Symfony2 3rd-Party Bundles
Symfony2 3rd-Party BundlesSymfony2 3rd-Party Bundles
Symfony2 3rd-Party Bundles
 
Symfony2 intro-20111204
Symfony2 intro-20111204Symfony2 intro-20111204
Symfony2 intro-20111204
 
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
Symfony2 チュートリアル イントロダクション osc 2011 nagoyaSymfony2 チュートリアル イントロダクション osc 2011 nagoya
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
 
翻訳について
翻訳について翻訳について
翻訳について
 
Symfony2 Behat/BDD (#Symfony2study 4)
Symfony2 Behat/BDD (#Symfony2study 4)Symfony2 Behat/BDD (#Symfony2study 4)
Symfony2 Behat/BDD (#Symfony2study 4)
 
Symfony2 behat-bdd
Symfony2 behat-bddSymfony2 behat-bdd
Symfony2 behat-bdd
 
Symfony2 workshop-0 (nagoya 2011/2/10)
Symfony2 workshop-0 (nagoya 2011/2/10)Symfony2 workshop-0 (nagoya 2011/2/10)
Symfony2 workshop-0 (nagoya 2011/2/10)
 
Symfony2 workshop-1 (nagoya 2011/2/10)
Symfony2 workshop-1 (nagoya 2011/2/10)Symfony2 workshop-1 (nagoya 2011/2/10)
Symfony2 workshop-1 (nagoya 2011/2/10)
 
Symfony2 workshop-2
Symfony2 workshop-2Symfony2 workshop-2
Symfony2 workshop-2
 
Doctrine2 odm-workshop-1
Doctrine2 odm-workshop-1Doctrine2 odm-workshop-1
Doctrine2 odm-workshop-1
 
Symfony2 introduction
Symfony2 introductionSymfony2 introduction
Symfony2 introduction
 
Orm Designer
Orm DesignerOrm Designer
Orm Designer
 
Symfony tdd
Symfony tddSymfony tdd
Symfony tdd
 
Symfony2 caching
Symfony2 cachingSymfony2 caching
Symfony2 caching
 
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
 
HTC Desireについて
HTC DesireについてHTC Desireについて
HTC Desireについて
 
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
 
TwitterのStreaming APIについて
TwitterのStreaming APIについてTwitterのStreaming APIについて
TwitterのStreaming APIについて
 

Último

Último (12)

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)