SlideShare uma empresa Scribd logo
1 de 47
Baixar para ler offline
WordPressのテーマは
FirePHPでハックすれば
     良かったのか

  @tanakahisateru
自己紹介

                  タナカヒサテル
                  @tanakahisateru



PHPのフレームワークを開発しています

Pinoco
 https://github.com/tanakahisateru/pinoco
WordPress 初心者です
「テーマのカスタマイズなんて、
基本HTMLとCSSじゃねーの?」
え!?
ちょ! まじか
<?php のほうが多かった...
しかもDOM構造がズタ切り
→ インクルード・スパゲッティ地獄orz
ロジックとレイアウトが混在

   APIがぜんぶグローバル関数だと!?
(オブジェクト指向知ってる人は逆に難しい)
あんまり言うとそろそろ怒られそうだな...


  まじで WordPress 初心者です
echo / var_dump で調査に挑んだ
<?php
var_dump(get_the_category());
?>
これが
こうなる
いけるか!?
けど書く場所によっては




   本文ブロックとヘッダの狭間で
ひどいや、IE6にだって

こんな仕打ちされたことないのに
もっとひどい場合

           ?
拡大




僕はただ head.php でタイトルを変えたかっただけなんだ
俺はもう普通のWeb制作に
 付いていけないのか、

 このまま負けるのか...
お稲荷さまお助け下さい

        僕と契約して
       プログラマーに
         なってよ!
JSerに大人気 Firebug




    虫きもいいうな
Firebug 拡張 FirePHP
インストール
Firefox::Addons でさくっと



PEAR


$ pear channel-discover pear.firephp.org
$ pear install firephp/FirePHPCore
PEAR

      ぺぺぺぺぁ〜?

(おっと、ここはPHP初心者勉強会だった)
これでもいいよ
FirePHPCoreをWPの中にコピー
wp-config.php を編集

                ユーザ設定ファ
                イルだからアッ
                プデートのとき
                上書きされる心
                配ないよね、な
                いよね。
wp-config.php の最初で
/**
* FirePHP setup
*/
require_once("FirePHPCore/FirePHP.class.php");
require_once("FirePHPCore/fb.php");
ob_start(); // バグったときのおまじない
さっきのvar_dumpを


var_dump(get_the_category());
               ↓
 FB::log(get_the_category());



これだけ。ほんとこれだけ。
まるで JS の console.log みたいに
もっとすごいこと




    ここクリック
見える! 見えるぞ!
さらにすごい機能


FB::trace('content-single');


          適当な目印になる名前
ス   タ   ッ   ク   ト   レ   ー   ス

関数呼び出し履歴どーん
これでぜんぶわかる!

俺も WordPress と戦えそうだ
カタカタカタカタ......
「あ、途中でいいから公開してよ」


「え! いまデバッグ用のFB::log
いっぱい入れてるとこなのに...」
主電源を切ろう
/**
* FirePHP setup
*/
require_once("FirePHPCore/FirePHP.class.php");
require_once("FirePHPCore/fb.php");
ob_start(); // バグったときのおまじない
FB::setEnabled(false);            電源
FB::logそのまま放置しててもOK




    え、なんもしてませんよ、まっさらですよ
「プラグインでどうにか
             できませんか」
WPユーザ Aさん




 言うよね、みんなそう言うんだよね。
プラグインだと...(1)




  これはエンジンの情報全部出ちゃうんだね。
プラグインだと...(2)




これはプラグイン単品で同じようなことができる。
ただし、
●
    プラグインをロードする処理より前をデバッグできない。
●
    マスタースイッチを切る箇所がない。
●   アンインストールするとFB::log が全部エラーになる。
「プラグインでどうにか
             できませんか」
WPユーザ Aさん



    ●
     require_once って2行書くだけ。
    ●
     プラグイン入れていろいろハマる。

              どっちがいい?
結論

コードを書いたほうが幸せになるよ。

   プログラム言語のほうが
難しいなんて迷信は今日から捨てよう。


     ありがとうございました。
おまけ


   Fox                              Bug




                                    Apple




PEAR                               PHP

         偶然見つけたフリーのイラストが完璧すぎて怖い。

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (20)

YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
 
第九回渋谷Java RaspberryPi+Javaを試してみる
第九回渋谷Java RaspberryPi+Javaを試してみる第九回渋谷Java RaspberryPi+Javaを試してみる
第九回渋谷Java RaspberryPi+Javaを試してみる
 
Php非同期の技法
Php非同期の技法Php非同期の技法
Php非同期の技法
 
恋に落ちるデプロイツール
恋に落ちるデプロイツール恋に落ちるデプロイツール
恋に落ちるデプロイツール
 
Hacking Vox and Plagger
Hacking Vox and PlaggerHacking Vox and Plagger
Hacking Vox and Plagger
 
Goでこれどうやるの? 入門
Goでこれどうやるの? 入門Goでこれどうやるの? 入門
Goでこれどうやるの? 入門
 
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMSDrupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
 
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探るPHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
 
Testing PHP extension on Travis CI
Testing PHP extension on Travis CITesting PHP extension on Travis CI
Testing PHP extension on Travis CI
 
PHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッションPHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッション
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
 
Programming camp Codereading
Programming camp CodereadingProgramming camp Codereading
Programming camp Codereading
 
PHPカンファレンス2014の懇親会飛び込みLT資料
PHPカンファレンス2014の懇親会飛び込みLT資料PHPカンファレンス2014の懇親会飛び込みLT資料
PHPカンファレンス2014の懇親会飛び込みLT資料
 
Phpのレガシーコードをrubyで焼き変えてみた
Phpのレガシーコードをrubyで焼き変えてみたPhpのレガシーコードをrubyで焼き変えてみた
Phpのレガシーコードをrubyで焼き変えてみた
 
PHP から Groonga を使うにはこんなコードになるよ!
PHP から Groonga を使うにはこんなコードになるよ!PHP から Groonga を使うにはこんなコードになるよ!
PHP から Groonga を使うにはこんなコードになるよ!
 
Predefを使ったsqlのトレース
Predefを使ったsqlのトレースPredefを使ったsqlのトレース
Predefを使ったsqlのトレース
 
魔法少女 Laravel
魔法少女 Laravel魔法少女 Laravel
魔法少女 Laravel
 
PHP With Windows binary
PHP With Windows binaryPHP With Windows binary
PHP With Windows binary
 
Hachioji.pm #39
Hachioji.pm #39Hachioji.pm #39
Hachioji.pm #39
 
phpext-2-takagi
phpext-2-takagiphpext-2-takagi
phpext-2-takagi
 

Semelhante a Word pressのテーマは firephpでハックすれば 良かったのか

Phjosh(仮)プロジェクト
Phjosh(仮)プロジェクトPhjosh(仮)プロジェクト
Phjosh(仮)プロジェクト
Moriyoshi Koizumi
 
今日から始めるLaravel
今日から始めるLaravel今日から始めるLaravel
今日から始めるLaravel
Masaru Matsuo
 
Introduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature EngineersIntroduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature Engineers
Takeshi Arabiki
 
Phpunit at excite
Phpunit at excitePhpunit at excite
Phpunit at excite
yuki777
 

Semelhante a Word pressのテーマは firephpでハックすれば 良かったのか (20)

2009年のPHPフレームワーク
2009年のPHPフレームワーク2009年のPHPフレームワーク
2009年のPHPフレームワーク
 
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugjPhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
 
PHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考えるPHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考える
 
PHP AV BINDING
PHP AV BINDINGPHP AV BINDING
PHP AV BINDING
 
Phjosh(仮)プロジェクト
Phjosh(仮)プロジェクトPhjosh(仮)プロジェクト
Phjosh(仮)プロジェクト
 
今日から始めるLaravel
今日から始めるLaravel今日から始めるLaravel
今日から始めるLaravel
 
筋トレ大事
筋トレ大事筋トレ大事
筋トレ大事
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
 
Introduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature EngineersIntroduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature Engineers
 
Phpunit at excite
Phpunit at excitePhpunit at excite
Phpunit at excite
 
退職PDFメーカーの作り方
退職PDFメーカーの作り方退職PDFメーカーの作り方
退職PDFメーカーの作り方
 
FuelPHPにアプリと管理ツールを同居してみる
FuelPHPにアプリと管理ツールを同居してみるFuelPHPにアプリと管理ツールを同居してみる
FuelPHPにアプリと管理ツールを同居してみる
 
NanoA
NanoANanoA
NanoA
 
RealtimeTweakPickerMode
RealtimeTweakPickerModeRealtimeTweakPickerMode
RealtimeTweakPickerMode
 
Pinoco phptal-phpcon-kansai
Pinoco phptal-phpcon-kansaiPinoco phptal-phpcon-kansai
Pinoco phptal-phpcon-kansai
 
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみたOPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
 
2009 PHP初心者
2009 PHP初心者2009 PHP初心者
2009 PHP初心者
 
Hashicorpツールズ
HashicorpツールズHashicorpツールズ
Hashicorpツールズ
 
デザイナーのためのPHP講座 for WordPress (初級)
デザイナーのためのPHP講座  for WordPress (初級)デザイナーのためのPHP講座  for WordPress (初級)
デザイナーのためのPHP講座 for WordPress (初級)
 
20110910 闇鍋的php魔改造
20110910 闇鍋的php魔改造20110910 闇鍋的php魔改造
20110910 闇鍋的php魔改造
 

Mais de Hisateru Tanaka

とある事業の脱レガシー
とある事業の脱レガシーとある事業の脱レガシー
とある事業の脱レガシー
Hisateru Tanaka
 
ダイクストラの構造化 プログラミングに学ぶ 結婚生活
ダイクストラの構造化 プログラミングに学ぶ 結婚生活ダイクストラの構造化 プログラミングに学ぶ 結婚生活
ダイクストラの構造化 プログラミングに学ぶ 結婚生活
Hisateru Tanaka
 
Phpstormちょっといい話
Phpstormちょっといい話Phpstormちょっといい話
Phpstormちょっといい話
Hisateru Tanaka
 
&& || and or まぜるな危険
&& || and or まぜるな危険&& || and or まぜるな危険
&& || and or まぜるな危険
Hisateru Tanaka
 
Phpcon kansani-2013-pinoco
Phpcon kansani-2013-pinocoPhpcon kansani-2013-pinoco
Phpcon kansani-2013-pinoco
Hisateru Tanaka
 
いまどきのYiiフレームワーク
いまどきのYiiフレームワークいまどきのYiiフレームワーク
いまどきのYiiフレームワーク
Hisateru Tanaka
 
関西Php勉強会のlimeの話
関西Php勉強会のlimeの話関西Php勉強会のlimeの話
関西Php勉強会のlimeの話
Hisateru Tanaka
 

Mais de Hisateru Tanaka (16)

HTMLに学ぶ夫婦円満のコツ
HTMLに学ぶ夫婦円満のコツHTMLに学ぶ夫婦円満のコツ
HTMLに学ぶ夫婦円満のコツ
 
とある事業の脱レガシー
とある事業の脱レガシーとある事業の脱レガシー
とある事業の脱レガシー
 
Yii Framework 2.0 いま求められるRAD標準とは #phpkansai
Yii Framework 2.0 いま求められるRAD標準とは #phpkansaiYii Framework 2.0 いま求められるRAD標準とは #phpkansai
Yii Framework 2.0 いま求められるRAD標準とは #phpkansai
 
ダイクストラの構造化 プログラミングに学ぶ 結婚生活
ダイクストラの構造化 プログラミングに学ぶ 結婚生活ダイクストラの構造化 プログラミングに学ぶ 結婚生活
ダイクストラの構造化 プログラミングに学ぶ 結婚生活
 
PHPカンファレンス関西2014 Yii Framework 2.0 遅れてきた5番目のフレームワーク
PHPカンファレンス関西2014 Yii Framework 2.0 遅れてきた5番目のフレームワークPHPカンファレンス関西2014 Yii Framework 2.0 遅れてきた5番目のフレームワーク
PHPカンファレンス関西2014 Yii Framework 2.0 遅れてきた5番目のフレームワーク
 
Grunt front-osaka-1-lt-tanaka
Grunt front-osaka-1-lt-tanakaGrunt front-osaka-1-lt-tanaka
Grunt front-osaka-1-lt-tanaka
 
Phpstormちょっといい話
Phpstormちょっといい話Phpstormちょっといい話
Phpstormちょっといい話
 
#phpmatsuri LT大会システムの中身
#phpmatsuri LT大会システムの中身#phpmatsuri LT大会システムの中身
#phpmatsuri LT大会システムの中身
 
&& || and or まぜるな危険
&& || and or まぜるな危険&& || and or まぜるな危険
&& || and or まぜるな危険
 
Phpcon kansani-2013-pinoco
Phpcon kansani-2013-pinocoPhpcon kansani-2013-pinoco
Phpcon kansani-2013-pinoco
 
はじめてのGit #gitkyoto
はじめてのGit #gitkyotoはじめてのGit #gitkyoto
はじめてのGit #gitkyoto
 
いまどきのYiiフレームワーク
いまどきのYiiフレームワークいまどきのYiiフレームワーク
いまどきのYiiフレームワーク
 
Kphpug beginners-2
Kphpug beginners-2Kphpug beginners-2
Kphpug beginners-2
 
関西PHP勉強会 php5.4つまみぐい
関西PHP勉強会 php5.4つまみぐい関西PHP勉強会 php5.4つまみぐい
関西PHP勉強会 php5.4つまみぐい
 
関西Php勉強会のlimeの話
関西Php勉強会のlimeの話関西Php勉強会のlimeの話
関西Php勉強会のlimeの話
 
Yiiフレームワークを使ってみた
Yiiフレームワークを使ってみたYiiフレームワークを使ってみた
Yiiフレームワークを使ってみた
 

Último

Último (10)

知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
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...
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
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の勉強会で発表されたものです。
 
論文紹介: 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
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

Word pressのテーマは firephpでハックすれば 良かったのか