SlideShare a Scribd company logo
PhpStormを使おう
高槻からは快速急行が早くなります
たなかひさてる
@tanakahisateru
Pinoco developer
js-markdown-extra maintainer
PHPTAL contributor
Firebug translation contributor
Yii framework user
私のPHP IDEの歴史

• Eclipse PDT以前 (紀元前)


• Dreamweaver期


• Eclipse PDT期


• テキストエディタでいいや期


• Coda / Aptana / NetBeans 混乱期
紀元前の話はさておき
Dreamweaver期

• テキストエディタのレスポンスが悪すぎ


• ビューを書ぐらいしか使う気が起きない


• 標準関数しか補完辞書にない


• これはエンジニアの使うツールじゃない
Eclipse PDT期

• ステップ実行できるデバッガが動いた


• 自分で書いたコードからでもそこそこ補完できた


• HTMLのバリデータに本当に必要なエラーが埋もれてわからない


• フロントエンド技術のサポートが古すぎるせいだ


• プラグインを増やさないと機能不足なのに、増やすと設定がカオス化


• プロジェクトの定義が難しすぎた
テキストエディタでいいや期

• 早すぎた Sublime Text = jEdit (ローカライズしました)


• わけわかんないぐらいなら単語レベルの補完で十分


• HTML/CSSなどのサポート機能が必要十分


• エディタのレスポンスもいいしカスタマイズもすごく効く


• プラグインでプロジェクト定義もできる


• これは長く続いた
蔓延する空気
「...でいいや」
そして
「...でいいや」からの脱出
「PHPはJavaの次に静的解析しやすい言語。
これはRubyが気付いていないPHPの長所」
         ―PHPメンターズと朝まで過ごしたときの言葉
Coda

• フロントエンド技術はEclipseより少しはマシ


• コード解析がまるでない


• 所   はテキストエディタ


• spl って打ったら split しか出ないとか、SPLなしっていつのPHPですかと


• それなのにエディタのカスタマイズがほとんどできないのはひどい


• これで有料なのを考えたらjEditのほうがずいぶんマシ
Aptana

• フロントエンド技術はPDTよりはるかに良かった


• Rubyのサポートの良さに比べてPHPがひどかった


• なぜPDTベースでないのかと小一時間


• ターミナルペインを開いてVimを立ち上げて作業するなど
NetBeans

• 最低必要なものが最初から   っている


• 設定が簡単で操作系もシンプル


• フロントエンド技術はそこそこ


• プロジェクト外のテキストを開くとShift_JISで解釈される
で、どうやってファイル別にエンコーディグ変えるの??


• かゆいところに手が届かないあの感じ
で、次はPhpStormか... 有料だな...
体験期間内に機能把握できそうにないぞ
おや? このFREEってなんだ?
「あのー、すみません、Pinocoという
プロジェクトがGitHubにあるんですが」
JetBRAINS
「そなたにライセンスをさずけよう」
ライセンスもらった




   Licensed to Pinoco
PhpStorm

• フロントエンド技術のサポートが最高


• HTML, JS, CSS + CoffeeScript, LESS, Sass, Haml, Twig, Smarty


• フレームワークサポート jQuery, Symfony2, Yii


• コード解析と補完が他のどれよりも現実的


• PHP事情の追従が速い (PHP5.4, PSR-1/2)
 バージョン6からは Composer, PHPMess, Yeoman


• NetBeansのように機能を減らさない。UIで使いやすく。
NetBeansに対するPhpStormのわかってらっしゃる感




 PHPの変数モデルでは、出力引数の宣言とメモリ確保が不要
「Javaとは違うのだよ! Javaとは」
PhpStormを使って実際に良かったこと

• CSSの色がわかりやすい            • 問題レポートが分類されている
 リンクしたクラス名を補完できる
 リンクリソースへのパスが補完できる        • PHPUnitのカバレッジレポートがエデ
 zen-coding                ィタと連携

• F1キーでphp.netのドキュメントが出
                          • プロファイラのデータを見るビュー
 てくる
                           がエディタと連携

• Docコメントのサポートが強い
                          • クラス図も作れるけどER図がなにげ
                           に便利
• Gitのステータスがその場に見えてる
 コミット前後にいろいろやってくれる
CSSの色がわかりやすい
クラス名を補完できる
リンクリソースへのパスが補完できる
zen-coding


       ul#nav.clearfix>li.item*3>a.big.red

                     [TAB]
これだけでも十分使える zen-coding


               a

              [TAB]

          <a href=””><a>
PHPはWebのフロント用の言語だから
ブラウザ側の技術をおろそかにできない
php.net




          ここでF1キー
php.net さらに



ここをクリック
php.net は生きているドキュメント
更新/コメントされ続けてるからPHPerには必須
Docコメントの補完


         /**[ENTER]
Docコメントの警告




 PHPDoc comment does not match function or
           method signature
Docコメントの更新
PHPDocは非常に重要=事実上の型宣言。
Javaのように静的解析するにはPHPは柔軟すぎ。
「Javaとは違うのだよ! Javaとは」
Gitのステータス
Gitのステータスからの⌘+D
コミットダイアログ

            Before Commit
              Reformat code
              Optimize imports
              Perform code analysis
              Check TODO
            After Commit
               Run tool
               Upload file to: (test server)
変更したファイルのFTP/SFTPで済むのは
ある意味PHPのメリットとも言える。活かそう。
問題レポート
問題レポート(さらに分類)
PHPUnitのカバレッジ




                77%...これを開く



      通ったか通って
      ないかで色分け
プロファイラ
デバッガ/プロファイラのブックマークレット




 http://www.jetbrains.com/phpstorm/marklets/
クラス図
ER図 (厳密にはERじゃないけど)
たまにDBの外部キー制約しかあてにならない
長大SQL文字列結合コードが発掘される。
ちょっと便利な ⌘+E




   最近アクセスしたファイルとパネル
Pinocoでは実際にPhpStormを
コードレビューに使っています
Doc comment reviewed (@2013-01-30)
...でも
せっかく (Eclipse|Vim|Emacs) を覚えたのに
「プラグインを作ればできるよ」
「Jenkinsのタスクを作ればできるよ」
「だから慣れてるし、これでいいや」
もうやめにしようじゃないか
「...でいいや」と言うために、あなたは時間を
どれだけ(Eclipse|Vim|Emacs)に費やしましたか
「...でいいや」と言い続けるために、あなたは
今後どれほど(Eclipse|Vim|Emacs)に費やしますか
面倒が多い方を選んでおいて
「で、いいや」とはどういうことだろう?
アンチパターン:
「で、いいや」逆転の法則
時給換算でどっちが安い?
スキルがもったいないというのは幻想。
僕も最初に早くコードを書くのは jEdit を使い、
設定ファイルの編集には Vim を使います。
自分に合うIDEを探すことそのものが、
自分の技術分野のニーズを知ることでもある。
乗り換えを駆使しよう
「高槻からは快速急行が早くなります」

More Related Content

KEY
最強のPHP統合開発環境 PHPStorm
PDF
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
PDF
Phpstormちょっといい話
PDF
いまどきのPHP開発現場 -2015年秋-
PDF
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
PPTX
Behat Driven Development
PDF
PHPerに覚えて欲しい日本語の重要性
PDF
フレームワークを使うべき 3 つの理由
最強のPHP統合開発環境 PHPStorm
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
Phpstormちょっといい話
いまどきのPHP開発現場 -2015年秋-
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
Behat Driven Development
PHPerに覚えて欲しい日本語の重要性
フレームワークを使うべき 3 つの理由

What's hot (20)

PDF
PHPの今とこれから2015
PDF
PHPカンファレンス2014の懇親会飛び込みLT資料
PDF
Real World PHP in pixiv
PDF
PHPデプロイツールの世界
PPTX
今日から始めるLaravel
PDF
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
PDF
AspectMock 最強のモッキングフレームワーク
PDF
Phpでアプリケーションサーバー
PDF
たのしい独自フレームワーク
PDF
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
PDF
phpspecで始めるBDD
PDF
RFC: "var" Deprecation
PDF
PHPという概念が存在しない退屈な世界
PDF
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
PPTX
PHP x AWS でスケーラブルなシステムをつくろう
PDF
FuelPHP活用事例
PDF
先取り!PHP 7 と WordPress
PDF
PHPでセキュリティを真面目に考える
KEY
Behat+Symfony2ではじめるBDD超入門
PDF
Laravel5.1 Release
PHPの今とこれから2015
PHPカンファレンス2014の懇親会飛び込みLT資料
Real World PHP in pixiv
PHPデプロイツールの世界
今日から始めるLaravel
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
AspectMock 最強のモッキングフレームワーク
Phpでアプリケーションサーバー
たのしい独自フレームワーク
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
phpspecで始めるBDD
RFC: "var" Deprecation
PHPという概念が存在しない退屈な世界
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
PHP x AWS でスケーラブルなシステムをつくろう
FuelPHP活用事例
先取り!PHP 7 と WordPress
PHPでセキュリティを真面目に考える
Behat+Symfony2ではじめるBDD超入門
Laravel5.1 Release
Ad

Similar to PhpStormを使おう --高槻からは快速急行が早くなります #jbugj (20)

PPTX
Fluentd1.2 & Fluent Bit
PPTX
php-src の歩き方
PDF
Javaで1から10まで書いた話(sanitized)
PDF
PHPの今とこれから2022
PPTX
やさしいGitの内部構造 - yapcasia2013
PDF
PHP フィールドインジェクションに挑戦する PHP勉強会2014
PDF
MakeGoodで快適なテスト駆動開発を
PDF
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
PDF
CakePHP - The point of upgrade
PPT
2009 PHP初心者
PDF
WTM53 phpフレームワーク いまさらcodeigniter
PDF
8時間耐久 PHP構築の教室
PDF
NetBeans plugin for wordpress
PDF
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
PPTX
あるあるLT〜サーバーサイドエンジニア〜 Vol.3
PDF
PHPからC#のライブラリを呼べるようにしたdotnet_ffiを趣味でつくってみた
PPT
2009年のPHPフレームワーク
PDF
Cloudn PaaSチームのChatOps実践
PPT
NanoA
PDF
LT: 今日帰ってすぐに始められるPython #nds45
Fluentd1.2 & Fluent Bit
php-src の歩き方
Javaで1から10まで書いた話(sanitized)
PHPの今とこれから2022
やさしいGitの内部構造 - yapcasia2013
PHP フィールドインジェクションに挑戦する PHP勉強会2014
MakeGoodで快適なテスト駆動開発を
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
CakePHP - The point of upgrade
2009 PHP初心者
WTM53 phpフレームワーク いまさらcodeigniter
8時間耐久 PHP構築の教室
NetBeans plugin for wordpress
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
あるあるLT〜サーバーサイドエンジニア〜 Vol.3
PHPからC#のライブラリを呼べるようにしたdotnet_ffiを趣味でつくってみた
2009年のPHPフレームワーク
Cloudn PaaSチームのChatOps実践
NanoA
LT: 今日帰ってすぐに始められるPython #nds45
Ad

More from Hisateru Tanaka (18)

PDF
HTMLに学ぶ夫婦円満のコツ
PDF
とある事業の脱レガシー
PDF
Yii Framework 2.0 いま求められるRAD標準とは #phpkansai
PDF
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
PDF
ダイクストラの構造化 プログラミングに学ぶ 結婚生活
PDF
PHPカンファレンス関西2014 Yii Framework 2.0 遅れてきた5番目のフレームワーク
PDF
Grunt front-osaka-1-lt-tanaka
PDF
#phpmatsuri LT大会システムの中身
PDF
&& || and or まぜるな危険
PDF
Phpcon kansani-2013-pinoco
PDF
はじめてのGit #gitkyoto
PDF
いまどきのYiiフレームワーク
PDF
Kphpug beginners-2
PDF
関西PHP勉強会 php5.4つまみぐい
PDF
Word pressのテーマは firephpでハックすれば 良かったのか
PDF
関西Php勉強会のlimeの話
ODP
Pinoco phptal-phpcon-kansai
ODP
Yiiフレームワークを使ってみた
HTMLに学ぶ夫婦円満のコツ
とある事業の脱レガシー
Yii Framework 2.0 いま求められるRAD標準とは #phpkansai
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
ダイクストラの構造化 プログラミングに学ぶ 結婚生活
PHPカンファレンス関西2014 Yii Framework 2.0 遅れてきた5番目のフレームワーク
Grunt front-osaka-1-lt-tanaka
#phpmatsuri LT大会システムの中身
&& || and or まぜるな危険
Phpcon kansani-2013-pinoco
はじめてのGit #gitkyoto
いまどきのYiiフレームワーク
Kphpug beginners-2
関西PHP勉強会 php5.4つまみぐい
Word pressのテーマは firephpでハックすれば 良かったのか
関西Php勉強会のlimeの話
Pinoco phptal-phpcon-kansai
Yiiフレームワークを使ってみた

PhpStormを使おう --高槻からは快速急行が早くなります #jbugj