Category Archives: PhpStorm

PhpStormとXdebugを使ってJust-In-Timeデバッグと例外ブレークポイント

どんなプロジェクトでもコードが安定してデバッガをアタッチし続けなくても良いと思うタイミングがあります。またはコードを動かし続けて例外が発生した時だけデバッガをアタッチしたいこともあるでしょう。そんなときはPhpStormでXdebugの just-in-time(jit)モードと例外ブレークポイントを使いましょう! デフォルトでXdebugはリモートデバッグを有効化し、特別なHTTP GET/POSTパラメータを送ってデバッガを有効化した場合のみIDEと接続できます。しかしxdebug.remote_modeの設定をすればエラーが発生したときすぐにXdebugが接続するようにできます。このパラメータをデフォルト(“req”)のかわりに “jit”と指定します。このパラメータは静的にphp.iniで指定することも、動的にスクリプトでini_set(‘xdebug.remote_mode’, ‘jit’);として指定することもできます。 remote_modeの設定によりXdebugがどのタイミングで初期化されるかが決まります。デフォルトの”req”だとスクリプトが起動した際にデバッグセッションが始まります。”jit”の場合はエラーまたは例外が発生した場合のみデバッグセッションが始まります。 簡単なコード例をお見せします。PhpStormがデバッガからの接続を受け付けるようにツールバーから、または[Run | Start Listen for PHP Debug Connections]メニューから設定しておくと、Xdebugは0で除算をした場合などエラー発生時にのみIDEに接続します。うっかりと0で除算するコードが紛れてしまっており、PhpStormのデバッガがアタッチしている様子が以下のスクリーンショットでおわかりになるかと存じます: 上のスクリーンショットから、PhpStormはエラーが発生した瞬間の状態で実行を一時停止させているのが分かります。 また別の例でPhpStormが例外発生時にアタッチする様子をお見せします。デバッガがキャッチブロックがあればブロック内の先頭で、またはPHP 5.5であればfinallyブロックで止まります: なお、php.iniでjitデバッグを有効化している場合、伝統的なHTTP GET/POSTパラメータでデバッグの有効化をする方法は効かなくなることに注意してください。 PHP例外ブレークポイント jitデバッグに続いて最新のPhpStorm 7.1ではPHP例外ブレークポイント機能があります。この機能を使うとスクリプトの先頭でデバッガを起動し、任意のブレークポイントで、または指定したエラーか例外タイプが発生した箇所でブレークさせることが出来ます。PHP例外ブレークポイント機能を使うのにXdebugのremote_modeを”jit”に設定する必要はありません。 ブレークポイントウィンドウは[Run | View Breakpoints…]で開くことができ、ブレークしたいエラーや例外を指定することができます。このウインドウではカスタム例外タイプやWarning、Notice、Deprecatedでブレークするように指定出来ます。なおE_ERROR、E_PARSE、E_COMPILE_ERROR発生時はPHPの実行自体が止まってしまうためブレークできません: デバッガがエラーか例外でブレークした際、PhpStormは関連情報をいくらか提示してくれます。たとえばタイプを確認するにはブレークポイントにマウスカーソルを重ねてみてください: もっと詳しい情報はerror_get_last()関数にウォッチを追加することで確認できます: 是非お試しの上、何か気になることがありましたらYouTrackへ報告するか、掲示板へご記入ください! Develop with pleasure! – JetBrains PhpStorm チーム 原文

Posted in PhpStorm | Leave a comment

PhpStorm 7.1リリース: どこでも検索、レンズモード、SVN 1.8対応、その他様々な改善

PhpStorm 7をリリースしてから数ヶ月しか経っていませんがなんとPhpStorm  7.1のリリースです。PhpStorm 7.1ではたくさんの新機能、そしてバグ修正や改善がなされています。もちろんIntelliJ IDEA由来の新機能も盛りだくさんです。 こちらからダウンロードしていただけます。 PHPサイドの新機能: 例外ブレークポイントとXdebug jitオプションのサポート Open APIにおけるDoctrineスタイルのPHP Annotationsサポート PHPのバージョンに依存しないミックスインのドキュメント機能: PhpStormは@mixinアノテーションを“use trait”と同等に扱います – WI-1730 VCSと親和性の高いデプロイ設定: デプロイメントマッピングとexcluded pathsは.idea/deployment.xmlに保存され、名前とサーバがマップされます–  WI-715 @link URLがエディタ内でクリック可能に View内の$thisで@varで宣言されたプロテクトメンバーを特別扱いする 型の名前からパラメータ名をサジェスト たくさんのバグ修正と改善 Webサイドの新機能: Mochaフレームワーク連携 Dart言語サポートの改善 LESS 1.5.0サポート PhpStorm 7.1はIntelliJ IDEA 13プラットフォーム由来の新機能もたくさん含みます。主な機能を以下に挙げます: どこでも検索Findアクションによるクラス/ファイル/シンボルへの移動は大変生産性を向上させますが、パワフルなどこでも検索を是非ご利用ください。同じアクション(デフォルトではShiftを二回、または右上のアイコン)でクラスでもファイルでもシンボルでも探し出すことができます。 レンズモードスクロールバーの警告やエラーを示す縞にマウスカーソルをあてると警告/エラーメッセージと共にコードの断片を表示してくれます。 インターフェースがよりコンパクトに、そしてエディタ領域がより広くなりました。[View | Toolbar]か[View … Continue reading

Posted in PhpStorm | Leave a comment

ご存じですか?JetBrains IDEから簡単に外部ツールを実行できます

JetBrainsのIDEは元から様々なツールと連携しています。しかしながら世の中のすべてのツールを内蔵するのはほぼ不可能です。あまり知られていない機能として外部ツールを起動する仕組み(external tool)が用意されています。この仕組みにより、外部ツールをIDEの色々の箇所からショートカットやメニューで起動できるようになります。 この機能はIntelliJ IDEA、PyCharm、WebStorm、PhpStorm、RubyMine、AppCodeで有効です external toolの例として、多くの画像エディタが出力する最適化されていないPNG画像を最適化するというユースケースがあります。たとえばOptiPNGを使って画像最適化を簡単にするというのはいかがでしょう? プロジェクトよりPNGを選択して、以下のようにAlt+Iショートカットで最適化するという設定が可能です: どうやって設定するかについてはPhpStormのチュートリアルページ(英語)をご覧ください! コメントやフィードバックは是非YouTrackや掲示板へお寄せください! Develop with pleasure! – JetBrains PhpStorm チーム

Posted in AppCode, IntelliJ IDEA, PhpStorm, PyCharm, RubyMine, WebStorm | Leave a comment

PhpStorm 7 等の StylusとCompassサポート

Webの開発においてCSSを書く方法は今非常に多彩な選択しがあります。Less、Sass、SCSSが有名ですが最近はStylusというものも登場しました。CSSに変数やミックスイン、オペレーションや関数を導入できるものです。またSassをベースにしたCompassというものも登場しています。 JetBrainsのIDEはすでにLess、Sass、SCSSをサポートしてきましたが、PhpStorm 7、WebStorm 7、AppCode 2.5、PyCharm3.0、そしてIntelliJ IDEA 13(年末リリース予定)はStylusとCompassをサポートします! 本エントリの対象製品:IntelliJ IDEA、PyCharm、WebStorm, PhpStorm、RubyMine、AppCode Less、Sass、SCSSのシンタックスハイライト、コード補完、Sructureビューはデフォルトでサポートしており、StylusについてはStylus support pluginをIDE Settings | Plugins, Install JetBrains plugin…よりインストールする必要があります .less、.sass、.scss、.stylファイルをプロジェクトに追加するとファイルウォッチャによる自動コンパイルが有効になります。ファイルに変更を加えると自動的にコンパイルが行われCSSに変換されます。なお、コンパイラは別途インストールしておく必要があります。NPM:Node.js Package Manager (Project Settings | JavaScript | Node.js)よりインストールすることができます。 Compass連携についてはProject Settings | CompassよりCompass の実行パスと設定ファイルを指定し設定できます。 是非、お試しの上掲示板やYouTrackへフィードバックをお寄せください。 Develop with pleasure! – JetBrains PhpStorm … Continue reading

Posted in AppCode, IntelliJ IDEA, PhpStorm, PyCharm, RubyMine | Leave a comment

PhpStorm 7.0リリース

JetBrainsのPHP IDE、PhpStorm 7.0がいよいよリリースされました!こちらからダウンロードしていただけます。 このリリースでPhpStormはPHP 5.5を含むPHPやWebの最新トレンドを一層手厚くサポートします。改善されたシンタックスカラーリング、リファクタリング、コードインスペクションなど新機能は多岐にわたります。   PhpStorm7.0の主な新機能は以下の通りです: PHP 言語サポート: PHP 5.5をサポートし、PHPシンタックスカラーリングも改善されておりコンストラクト、タイプインターフェース、PHPDocが見やすくなりました。またスタティックメンバの移動やインターフェースの抽出といった新しいリファクタリング、インスペクションやクイックフィックスも充実しています。 内蔵ツール: Vagrantや, 内蔵SSH コンソール、リモートツール、ローカルターミナル、フレームワーク固有のコマンドラインツールのサポート(Zend Framework 2 Tool、Symfony Console、Laravel and Doctrine、Drush for Drupalなど)。またGoogle App Engine for PHPサポート。 デバッグとテスト: デバッグ設定の検証機能、Smart Step Intoによるデバッグ、サーバサイドのPHPUnitの改善 フレームワークとプラグイン: Drupalをサポート、Symfonyのサードパーティープラグインポート等 Web関連の新機能: 多彩なJavaScript テンプレートエンジンサポート (EJS、Mustache、Handlebars)、W3CのWeb Componentsのサポート モダンなスタイルシート補助エンジンであるStylusとCompassのサポート JavaScript … Continue reading

Posted in PhpStorm | Leave a comment

PhpStorm 7 EAP 131.235リリース

PhpStorm 7 EAP ビルド 131.235をリリースしました。 このビルドでは様々なバグ修正と改善を施しているほか、WebStormやIntelliJ IDEA由来の新機能も取り入れています。 是非最新のEAPビルドをお試しの上、不具合などございましたらYouTrackへレポートしていただければ幸いです。 Develop with pleasure! -JetBrains PhpStorm チーム

Posted in PhpStorm | Leave a comment

ファイルウォッチャでComposerの依存関係を可視化する

GitHubのclue/graph-composerは大変興味部会です。インストールするとプロジェクトのcomposer.jsonやその依存関係を可視化したグラフを生成してくれます。 Composerの依存設定を変更したら自動的にグラフをアップデートしてくれたら便利だと思いませんか?できますよ!そう、PhpStormならね。 PhpStormは拡張子別、または任意のファイルの変更を検出してお望みのコマンドを走らせることができます。たとえばCoffeeScriptに対してはFile Watcherを追加して自動的にJavaScriptに変換してくれます。PhpStormでは沢山のデフォルトのファイルウォッチャが内蔵されていますが、カスタムファイルウォッチャを設定することもできます。composer.jsonを監視して変更を検出したらgraph-composerを呼び出すという目的にはピッタリですね。clue/graph-composerのカスタムウォッチャの設定方法を以下に説明します。 カスタムファイルウォッチャーの追加 まず、clue/graph-composerをインストールしてください。またGraphVizが正常に動作することを確認してください。graph-composer.phar をPhpStormに追加すると以下の用になります。 次に、Project Settings | File Watchers よりファイルウォッチャを追加します。緑色の“+”ボタンを押し、名前と説明を記載します。 File Watcher configurationウィンドウより、どういった動作をさせるのか指定できます。詳しい説明はこのページに記載されています。今回は以下の通り設定します: File type: composer.json はJSONファイルなので、拡張子がjsonのファイルをウォッチします。ちなみに拡張子やファイルタイプのマッピングはSettings | File Types にて設定できます Scope: ファイルウォッチャがプロジェクトファイル全てを監視すべきか、エディタで開いているものだけ監視すれば良いのかを指定します。今回のケースではデフォルトの”Project Files”としておきます Program: PHPコマンドを動かすので、プロジェクトで設定しているPHPの実行バイナリを示すマクロである$PhpExecutable$を指定します Arguments: ここでもマクロを使います。graph-composer.pharをプロジェクトのルートで動かしてPNG画像を作りたいので、$ProjectFileDir$\graph-composer.phar export  –format=”png” $ProjectFileDir$ $ProjectFileDir$\composer.png と指定します Output paths to refresh: … Continue reading

Posted in PhpStorm | Leave a comment

PhpStorm 7 EAP ビルド 131.205

PhpStorm 7 EAP 131.205をリリースしました PhpStorm固有の機能としてこのリリースでは以下の機能が含まれます: Drupalサポートの改善: フック実行パラメータの補完、フック実装からの*.api.phpへのナビゲーションヒント PHPDoc内で@returnの型付き配列の自動生成 新しいインスペクション Phingの “Before launch” タスク: Phingプロジェクト名をビルドファイル名の隣に追加 新しいプロジェクトを既存のファイルから作る際、リモートサーバのリストがソートされるように 他に沢山のバグ修正や改善… さらにこのビルドではWebStormやIntelliJ IDEAプラットフォーム由来の沢山の新機能を含んでいます。 最新版PhpStorm 7 EAP build 131.205をダウンロードし、是非バグ報告や機能リクエストYouTrackへ寄せていただければ幸いです。 Develop with pleasure! -JetBrains PhpStorm チーム

Posted in PhpStorm | Leave a comment

PhpStorm 7 パブリックプレビュー

たくさんの改善と、たくさんの新機能をひっさげてPhpStorm 7 パブリックプレビュービルド 131.98 をリリースしました。 すでにEAPビルドをお使いの方は最新ビルドをダウンロードし、何か不具合があればYouTrackへ報告をして頂きますようお願いいたします。 6.0.xの安定バージョンを使っている方向けにまとめたバージョン7.0(2013年10月または11月にリリース予定)の主な新機能は以下の通りです: PHP 言語サポート: PHP 5.5対応、構造・タイプインターフェース・PHPDocのカラーリングの改善、新しいリファクタリング(スタティックメンバーの移動やインターフェースの抽出)、新しいインスペクションやクイックフィックス 内蔵ツール: Vagrant, 内蔵 SSH コンソールとリモートツール、ローカルターミナル、より多くのコマンドラインツールサポート(Zend Framework 2 Tool), Symfony Consoleベースのツール (LaravelやDoctrine, Drush for Drupalなど), Google App Engine for PHPサポート デバッグとテスト: デバッグ設定の検証、スマートステップインデバッグ、サーバサイドのPHPUnitサポートの改善 フレームワークとプラグイン: Drupal プラグイン、Symfonyやその他のフレームワークのサードパーティプラグイン PhpStorm 7はWebStorm 7由来の新しいツールキットも含みます: Web テンプレートサポート(EJS、Mustache、Handlebars) Web … Continue reading

Posted in PhpStorm | Leave a comment

PhpStormのLiveEdit

Live Edit は編集内容をブラウザを手動でリロードさせることなく即座に確認できる機能です。ブラウザのエクステンションをインストールすればHTML、CSS、JavaScriptで編集している箇所のみをブラウザ内で自動的にリロードし、カーソル位置の要素をハイライトしてくれます。コード補完もライブに行えます。 以下のビデオをご覧いただけばフロントエンドデベロッパにとってLive Editがいかに生産性を向上させるのかご理解いただけるでしょう: Live Editの設定や利用方法はPhpStorm 7 / WebStorm 7で大きく修正されました(これまでは挙動が不安定でブラウザやPhp/WebStormを再起動させないとうまくはたらかないこともありました)。挙動をより安定させるため、Live EditはJavaScript debug session内でのみ有効となります。つまりRun/Debug 設定を先に行う必要があります。 HTMLファイル用のRun/Debug設定はコンテクストメニュー内のDebug [ファイル名] を選択するだけで自動的に作成されます。 または手動でRun/Debug設定を作ることもできます。 ところで、Live EditはReload in Browserアクションも提供しています。ページ全体をリロードしたい場合はブラウザに移動することなく、割り当てたホットキーでPhpStormからリロードさせることができます。(PHPファイルだけでなくSmarty/Twigテンプレートでも有効です)。 Live Editのチュートリアルもあわせてごらんください。 是非 PhpStorm 7 EAP をお試しいただき、YouTrackや掲示板へフィードバックを頂ければ幸いです。 Develop with pleasure! – JetBrains PhpStorm チーム

Posted in PhpStorm, WebStorm | Leave a comment