uzullaがブログスマートフォン用の表示で見るuzullaがブログuzullaがブログです。22毎年「チケット販売いつのまにおわったの...」等といった悲しい声をいただきます。わすれないように是非上記リンクより、メールアドレスを登録しましょう!さておき、本エントリはWebアプリエンジニア養成読本アドベントカレンダーです。見る私の担当分においては、こちらの書籍でお話できなかった、初心者向けの事について書いたりしております。上のアドベントカレンダーページから是非他の記事もご覧下さい。多くの書籍などで様々なエディタが紹介されますが、初心者向けの書籍では、ほとんど機能のない素のエディタを使う事が多いと思います。実際問題として、書籍でcoteditorなどをおすすめした当の本人である私もcoteditorでPHPを書く事はほとんどありません。現在私は主にPHPStormでPHPをかいています。基本的にPHPはいまどきのエディタであれば何でも開発ができます。CotEditor等で開発することは全く問題ありません。CotEditorはすごく良いエディタで私も愛用しています。CotEditorはPHPの開発支援はほとんどなく、シンタックスハイライト(コードを色づけして、みやすくする)くらいしかありません。高度な開発環境、IDEをつかうことで、もっと様々な開発支援機能が提供されます。PHPのIDEはさまざまなものがありますが、PHPStorm、Netbeans、Eclipse+PDT等が一般的だとおもいます*1。ここではPHPStormを念頭にお話しますが、他でも同様の機能は提供されているはずです。具体的な開発支援機能IDEには色々な機能がありますが、少し紹介します。シンタックスエラーチェック一番わかりやすくて便利なのは、シンタックスエラーをチェックする機能ではないでしょうか。要は、PHPの文法がまちがっていたりすると、赤いバッテンや下線などがでて、実際に動かす前にエラーを教えてくれます。PHPStormくらい高度な解析が可能なIDEだと、「文法的にはあっているけど、あやしい」という所も積極的におしえてくれます。従っていくだけで、コード品質がどんどんあがっていくわけです。自分では合ってるとおもっているけど、PHPStormが文句を言うコードは実際にうごかなかったりするので、非常に便利です。PHPのバージョンを指定すれば、PHPのバージョンに応じた解析をしてくれます(たとえば、PHP5.5で非推奨な関数で文句をいったり、5.3以下でサポートしていない文法をエラーにしたり)。コード整形(リフォーマット)コードのインデントや、=や括弧の前後をキッチリそろえ、コーディングスタイルが統一されていることがのぞましいですが、気を付けて書いてもキッチリ揃えるのは困難です。そんな時に一発で綺麗にしてくれます。手間もへりますし、品質もあがります。なにも考えずにガンガンかいた後にGitなどにコミットし、後で「あー、なんかこのコードきたないなー」とおもってなおすと、無駄に整形しただけのコミットログとか残るのも微妙なものです(特に、後でBlameする時とか、Diffをとったりするとかしづらくなるので)。あとは、すごく酷いコードをなげわたされたとき(みたことありますか?)、コード整形をかけると一発でそれなりに読みやすくなるのが最高だと思います。同様にHTMLのコードも整形できることが多いので、こちらも結構重要です。コードジャンプ変数や、関数の宣言部分(つまりは、本体)にジャンプする機能です。コードをかいていると「この関数ってどんな処理だっけ?」とおもったりすることがありますが、そこにキー一発でジャンプします。別のファイルであっても問題ありません。他人のコードや、大きなフレームワークを使っていると自分が覚えていない関数を使う事が頻繁に発生しますので、これをドンドンつかうことで快適にコードを読みつつコーディングが可能になります。単純に、コードを読むだけの作業の時にもつかうと、非常にはかどります。補完、サジェスト関数名を途中までいれると自動的に関数名を補完してくれます。関数の引数が何個あって、どういうものなのかも表示してくれます。関数だけだと、コードジャンプ(宣言ジャンプ)だけでも助かりますが、オブジェクト指向プログラミングをはじめると、コード補完のありがたみがどんどん増します。(OOPのオブジェクトにどんなメソッドやプロパティがあるのか、うろおぼえでもドンドン補完かけて書いていけるので)これはJavaなどでは定番(必須?)の機能なのですが、LLにおいてはPHP以外では少ないようにおもいます。vimやEmacsなどでも補完をする機能があったりするのですが、PHPStormなどのIDEはちゃんとコンテキストをよんでくれるので、補完の精度が非常にたかく、ウソがでてくることが希で信頼できます。リファクタリング変数名や、クラス名が後になってきにくわないことは良くあります。そんなとき、一発で、問題無く置換してくれる機能がリファクタリング機能です。単純な置換とはまったくちがい、ちゃんと文脈をみてコードを壊さないように置換してくれるので非常に便利です。リファクタリングを活用すれば、微妙な変数も億劫になる事無く修正できます。デバッガPHPで一番つかわれているxdebugと呼ばれるデバッガ(の機能)は色々なクライアントをつかって利用できるのですが、IDEのクライアント機能はエディタと連駅してステップ実行やブレークポイントをうつことができます。デバッガといっても初心者の方にはなんのことやら?とおもうかもしれませんが、いわゆるプリントデバッグ(echoデバッグ)をほとんどやらなくてすむようになるので、非常に便利な機能です。簡単にGitコミットや、過去のコミットとのdiffを見る事ができます。現在のブランチもPHPStormの場合、左下に常時表示されます。Diffは便利で、コンフリクトの解消もサイドバイサイドでみながらマウスでポチポチできるのは大変楽です。コミット前にコードに怪しい(前述のシンタックスエラーチェック)所がないかおしえてくれますし、コードフォーマットを自動でかけるオプションもあったりします。ほかにも...IDEによって機能はまちまちですが、便利な機能はたくさんあります。PHPStormでいえば、Shift2回おした後にでてくる入力欄に、ファイル名でも関数名でもクラス名でも入力したらそのファイルのそこが開ける機能があり、いちいち深いディレクトリにいかなくても一発でファイルを開くことができて、とても便利です。他にも、私はあまりつかっていませんが、VagrantやComposerなどの外部ツールの連携もあったりします。シェルをひらくことなく利用ができます。IDEが向かないケースとにかく私はIDE最高!と考えていますが、デメリットはないのでしょうか?有償(PHPStormの場合)PHPStormは一番いいIDEだとはおもいますが、有償です。私は仕事でガンガンつかうので当然払いますが、まだお金ははらいたくない人も多いでしょう。企業で何人も導入するのは負担がきびしい、という場合もあるはずです。そのときは、Netbeansがまずはお勧めです、オープンソースで無償で利用できます。英語が無理PHPStormは基本的に英語でつかいます。日本語化が検討されていますが、まあ割とだれも必要性を感じていないので、英語のままです。私も、ヘルプの長い文章以外で英語でこまったことはありません。しても日本語が使いたい場合には、こちらの場合もNetbeansの日本語版をつかってみてください。複雑な(ごった煮の)サイトの修正PHPでありがちなのですが、1つのサイトに複雑にさまざまなファイルが入り交じっていて、なおかつ環境がftpでアップロードする本番サーバーだけの場合、プロジェクト単位であつかうIDEは使いにくい事があります。いったスタイルは旧来的なものなので、改善するか、控えるというのが一番良いと私は思いますが、まぁ、良くあるケースです。FTPでリモートサーバーをみたり、そこにアップロードする機能とかあったりもするのですが、本番サーバーをガンガン書き換えるのであれば、codaなどのエディタのほうが気楽だ、という場合もあるでしょう。(Codaは、FTPクライアントとエディタが融合したソフトで、私もCoda1のころは愛用していました)また、サーバーにはいって修正する、みたいなときも当然ながらサーバーにIDEをインストールするのは現実的ではないので*2むずかしいでしょう。(ただし、sshでリモートサーバーをマウントして作業することはできます)PCの性能が低いIDEはさまざまな支援機能のために、かなり重いです。超時間つかうと動作が緩慢になったりすることがあります。いっていいPCに買い換えるのが一番だとおもいます。PHPStormなどはバッテリーセーブモードなど、一部の機能を動的にオフにして負荷をさげる機能があったりします。それをつかったら意味があんまりないので...微妙ですね。他の言語も頻繁に修正するたとえば、PHPと一緒にHTML,JSを修正するのであれば、IDEで十分でしょう。どのIDEもHTMLやJSの開発支援もセットになっており、PHPStormは特にJSもPHP同様に強い開発支援機能を搭載しています。まちがいなく普通のエディタよりも開発効率はあがるでしょう。Perlなどまったく別の言語の場合は別です、エディタは体に馴染むものなので、つかいわけるのがむずかしい事はあります。...とはいえ、Perl以外の、Rubyなど多くの言語についてはPHPStorm開発元がほぼ同じ体験を提供するRubyMineというIDEをだしていますし、NetbeansはCやJavaの開発をサポートします、Eclipseはいわずもがな、Javaなどを書く事ができます。(むしろ、PHPStorm以外は無料でどれも編集できるので、プロジェクトは別としても、同一のIDEで作業できるかなとおもいます)*3PHPをもっと好きになるためにこういったツールは「便利だけどつかうべきではない」なんて事は一切ありません。役立つなら、ドンドンつかうべきです。開発が楽になれば、もっともっとコードを気軽に書く事ができて、好きになることまちがいありません。人気あるSublimeやATOMなどで開発されている人も多いとおもいますが、PHPは他のLLにくらべ、IDEがとても良い性能をもっていますので、是非一度つかってみてはいかがでしょうか?最後に、しなければならない宣伝さて、宣伝タイムです。見るまず再度の書籍の宣伝です、本アドベントカレンダータイトルの書籍です。このエントリが役立つ方には、まだちんぷんかんぷんかもしれません。即座に買えとはいいませんが、いつかは買って欲しいです。本屋にいって他の書籍のついでに立ち読みしてみるのも良いでしょう、買って欲しいですが。この書籍の内容が理解できれば、おそらく仕事でもなんとかやっていけるレベルにいるのではないでしょうか。そのようなベンチマークとしても役立つと考えております。買っていただきたい!ということです。2015についてです。Tokyoは世界最大級のエンジニアの手による草の根技術カンファレンスです。これまで9回開催され、様々な技術に関する発表そして技術者同士の出会いを生んできました。「なんかエンジニアコミュニティってきいたことがあるけど...」「カンファレンスってどんなの?いったことない」という人でもきっと新しい発見があるイベントとなりますので是非ともチェックしてください。YAPCはPerlのカンファレンスと思われがちですが(実際そうなのですが)、どんな言語の人でも、きっとPHPの人でも楽しめるイベントになっております。去年のベストトーク賞はPHPのトークでした*4。来年は10年目かつ、今の運営における最後の開催となり、規模も、話題のバリエーションも間違いなくパワーアップしますので、是非来年のスケジュールにいれておいてはいかがでしょうか?...といっても、来年の話では忘れてしまうでしょう。22といった宣伝をおこなった所で、こちらからは以上です。いやはや、もうすこしで終わりですがネタがありません!あとはもうPHP愛でも語るしかない気がしはじめました。なにか気になる事があれば是非聞いて下さい。AdventCalendar2014です。Advent...昨日オールナイトの忘年会で完全に眠いuzullaです。サービスを追記しました。»プロフィールid:uzullauzullaがブログです。参加してきました!月別アーカイブ参加グループWindows開発者はてなブログをはじめよう!uzullaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。