ラベル NetBeans の投稿を表示しています。 すべての投稿を表示
ラベル NetBeans の投稿を表示しています。 すべての投稿を表示

2015年12月7日月曜日

FuelPHPを快適に開発するためのNetBeansで設定まとめ

このブログはFuelPHP Advent Calendar 2015の7日目です。

昨日は@wataさんの「DBUnit拡張を使ったFuelPHPのテストを考える」でした。
今日はみんな大好きNetBeansの話します。
それでは早速行きましょう。

まずはNetBeansのダウンロードリンクです。

あなたとNetBeans、今すぐダウンロード


普段IDEを使ってない!って人はこちらも合わせてどうぞ。

PHPerがNetBeansを使いたくなる7つの理由


インストールが済んだら本題です。

1. ルーク、FuelPHPプラグインを使え!!

兎にも角にもまず入れるのはこれです。
@junichi_11さんが作っているこのプラグインを使いましょう。
@junichi_11さんがまとめてるブログはこちらです。

NetBeansではじめる FuelPHP


このプラグインを使うとNetBeans上からスケルトンを作ったり、正しくFuelPHPの補完や関数ジャンプ出来るようになります。
Coreのコードを読んだり、知らないメソッドを知るきっかけにもなるので是非ご利用ください。
僕がPHPStormに完全に移行出来ない理由はこのプラグインがあるからと言っても過言ではありません。
Symfony2書く時とかはもう完全にPHPStormなんですけどね。
完全無料環境なのでお財布に優しいです!!

2. その他の設定


■Windowsの人は必須


  • Show and change line ending
  • Change Line Ending on Save


Show and change line endingは改行コードをLFにしたり今の改行コードを表示したりします。
Change Line Ending on Saveはデフォルトの改行コードを指定して保存するときに一括して改行コードを変更して保存してくれます。
私はLF固定にしてます。
あとはここからはお好みですが私はvagrantプラグインを入れてNetBeans上からを操作できるようにしてます。
vagrantを操作するためだけにターミナルを開かなくていいので便利です。
更にwindowsはsshクライアントがデフォルトで入っていませんがvagrantへのsshは出来るようになります。
gitからvagrantの使い方まで知りたい!って人は@kenji_sさんの本を読むと全部書いてあります。



PHPUnitなどの設定はお好みでどうぞ。
個人的にはPHPUnitのバージョンにテストコードが依存することがあるのでvagrant側で実行する事多いです。
プロジェクトが一つでチームで同じバージョンを共有できる場合などはインストールしてIDE上で実行する方が便利だと思います。

3. インデントの乱れは心の乱れ

PSR-2に準拠しないとプルリクエスト送った時に怒られます(自分は怒られた事がある)
なのでフォーマットを指定しましょう。


  1. ツール→オプション→エディタ→フォーマット
  2. 言語を「PHP」
  3. カテゴリを「中括弧」
  4. クラス宣言とメソッド宣言を「改行」に変更




ちなみにPSR-2準拠だとインデントはタブでは無くスペース4つです。
そしてPHPの予約語は小文字で使用しなければなりません。
つまりNULLはnullです。
デフォルトは大文字なので変更が必要です。
やり方はNetBeansの設定ファイルを直接編集します。
Windowsでエディタで編集する場合は管理者権限が必要ですのでご注意ください。

  \インストールフォルダ\php\phpstubs\phpruntime\Core.php

私はデフォルトの場所にインストールしたので

  C:\Program Files\NetBeans 8.0.1\php\phpstubs\phpruntime\Core.php

です。
それを次の通り編集します。

define ('TRUE', true);
define ('FALSE', false);
define ('ZEND_THREAD_SAFE', false);
define ('ZEND_DEBUG_BUILD', false);
define ('NULL', null);

↓↓↓

define ('true', true);
define ('false', false);
define ('ZEND_THREAD_SAFE', false);
define ('ZEND_DEBUG_BUILD', false);
define ('null', null);

これで補完もバッチシです。


以上を設定すればプロジェクト作成時からFuelPHPの対応が完璧になったはずです。
快適なプログラミングライフをお楽しみください。

明日のFuelPHP Advent Calendar 2015@tanaka8comさんです。
楽しみですね!!

2014年9月9日火曜日

2014年版 WEB系の開発をするために必要な10の開発環境 ~Windows~

ずっと使ってたZenBookのマザーボードが亡くなられ、初期化されました。
なのでこれを機に開発環境を見直しました。
2年前のまとめはこちら

WEB系の開発をするために必要な10の開発環境 ~Windows~



この頃からはツールも変わったモノもありますしそのままのモノもあります。
ですが必要な項目は依然変わってないと思いますので項目は踏襲します。



1 IME

前回はGoogle日本語入力をオススメしました。
この二年で更に使いやすくなり、もうGoogle日本語入力無しでは生きていけませんw
便利な機能として

郵便番号を入れると住所に変わる
「きょう」→2014/09/06のように日付に変換できる(ことし、あさって等でも可)
「くりえいと」→Createのように英単語の読みで英語に変換してくれる

などです。
顔文字やZ+Hでの矢印なども便利ですね!
AndroidやMacOSなどでも同じ変換が出来るのでマルチプラットフォームでストレス無く使く入力出来るのは嬉しいですね!!
また、流行りの語句なども変換してくれるのが非常に助かります。


2 ブラウザ

ブラウザ事情もIE・Firefox・Google Chromeの3強状態は変わらず。
ただChromeの開発者ツールが一番使いやすいと思うので開発はChromeメインにしてます。
Chromeの開発者ツールの使い方はドットインストールがわかりやすいのでオススメです。

Chrome Developer Tools入門 (全10回)


FirefoxもIEも開発者ツールは付いてるのでブラウザ依存の不具合とぶつかった時などに使えると色んな時に役に立つので調べておいて損は無いですよ。

3 テキストエディタ

僕は今も昔もIDE派です。
でも時々ちょっとconf触ったり、メモ作ったり、直接HTML触ったりするときなどテキストエディタは必要です。
そこで僕が使ってるのはSakuraEditor
矩形選択も置換も使いやすいのでログを見たり集計するときにも役立ちます。
また常駐アプリとしてついてくる機能のgrepが非常に便利です。
Windowsだとソース内のキーワードでgrepしたい時とか困るんですよね。
それがバッチシ対応してくれるし、対応箇所も一覧で出してくれるので非常に使いやすいです。
また補完は辞書のパッケージを追加すれば対応してくれます。
PHPをちょっと書く程度なら十分ですよ!
そしてそんなSakuraEditorの対抗馬なのがSublime Text 3ですね。
UTF-8の環境で使うなら補完、拡張性、どれをとってもSakuraEditor以上のパワーです。
実際に僕はWinSCP(後述)のデフォルトエディタはSublime Text 3をデフォルトにしてます。
一括置換も便利ですしテキストエディタ界の中心的存在です。
長い間、秀丸エディタが築いてきた牙城を崩す存在ですね。
Sublime Textについてはいい本が出てます。



電子書籍版もあるのでSublime Textを始める人は一度読んだ方がいいですよ!!

4 IDE

昔はEclipseを使ってましたが今はすっかりNetBeans使いです。

PHPerがNetBeansを使いたくなる7つの理由


特にFuelPHP使ってる人にはNetBeansが超絶オススメですね。
使い方は上のリンクでも紹介してますが補完もバリバリ聞くしHTMLやJSもバッチシ対応です。
ユニットテストも宣言元にジャンプもデバッカもバッチシです。
var_dump開発しなくて済むとすごい効率が上がりますよ!
ただ最近、Symfony2の時にNetBeansの非力さを感じる時があります。
Symfony2使うとすっごい最初のロードが長いんですよね(´・ω・`)
そんな人には有料ですがPHPStormがオススメです!!
Web系の補完も抜群でNetBeansより軽快です。
Symfony2やCakePHPなどのフレームワークで開発する人やJSもバリバリ書くようなフロント寄りの人は買ったことによるメリットが間違いなく大きいです。
お試し無料期間もあるのでまずは触ってみるのがいいのではないでしょうか。
あと何かと面白いイベントしてることがあるので@samuraismウォッチするのがオススメです。
それと




らしいのでセール待ちせずにサクッと買ったほうが良いと思います。
ツイッターのレスポンスとかメール対応がすごく優しく日本人にも安心対応なのも良いところですね。

5 ローカル実行環境

PHPer御用達はやっぱりXAMPPが主流だと思います。
ですが開発プロジェクトが増えるたびに度重なるバーチャルホスト。
そしてPHPやその他のライブラリのバージョンがプロジェクトごとに違って繰り出されるエラー。
そんな経験皆さんありませんか?
それを解決するにはVMです。
僕は以前からVirtualBoxを使っています。
VirtualBoxはお手軽にWindows上にVMを建てれるので簡単です。
ですがOSのインストールからやらねばならず、ネットワークの設定等のインフラ系の知識も必要とします。
たまになら良いのですが頻繁に、しかも「今すぐ開発を始めたい!」という時には高いハードルになってしまいます。
そこで活躍するのがvagrantです。
vagrantはVMのラッパーとパッケージ化を同時に提供してくれます。
ViretualBox, VMWare, AWSなどのVMに対応しており、高速にかつシンプルにVMを作成できます。
そしてVMへのアクセス、管理、設定も簡略化してくれます。
これにより、開発環境の依存関係に悩まされることなく、そして多くのインフラ系知識のブラッシュアップも必要なく開発に集中できます。
しかもNetBeansにプラグインを入れるとvagrantをNetBeansのGUIで操作できます。
SSHもCygwinのような黒魔術を使うこと無くNetBeansからアクセスできます。
すべてがNetBeansで解決できるので作業が捗ること間違いなしです!!

6 RDB

vagrantの出現によりlocalにDBを入れることがなくなりました。
これによりlocalにアパッチやDBを入れないので開発しない時に無駄なプロセスが起動しなくなりました。
こういうところにもVMを使うと良い点がありますね。

7 DB管理ツール&SQLエディタ

SQLエディタは自分の中ではA5:SQL Mk-2が一強です。
前回ご紹介した時はまだSSHトンネルも無く、PostgreSQLにアクセスするにはドライバーが必要でした。
現状ではSSHトンネルが可能なのでセキュアに接続できますしvagrantへのアクセスも簡単です。
またドライバーが必要ないのでダウンロードして解凍したらすぐに使うことができます。
このお手軽さにプラスして各種機能が非常に強力です。
特にテーブル定義書の出力とER図のリバース自動生成はいつも助けられています。
DBにもマルチ対応なのでMySQLとPostgreSQLでツールを変える必要がないのも非常に助かります。
ただしDB管理ツールではないのでDDLの必要な作業はGUI上ではできません。
(SQLを発行すれば当然出来る)
そこで外部制約やテーブル設計時に強力なのがMySQLならMySQL Workbench、PostgreSQLならpgadmin3です。
DBAツールなので簡単にテーブルの作成や編集もできますし外部制約やDB固有の機能にもバッチリサポートしてます。
それぞれグラフィカルな実行計画の結果やレプリケーションの設定、confの変更なども可能です。
phpMyAdminやphpPgAdminを覚えるよりセキュアで断然便利なので是非活用してみてください。

8 ファイル転送ツール

今はもうWinSCP一強です。
SCPの管理の使いやすさもですが自動同期の機能や開くファイルのエディタの指定など細かく手が届いて便利です。
地味にシンボリックリンクを作れたりパーミッションを変更できたりするのでCGIが苦手な人でも大丈夫です。
更にノートン コマンダー インターフェイスを使うとキーボードでの操作に特化するそうです。
僕もこれから効率向上のために試してみようと思ってます。

9 バージョン管理ツール

こちらもSVNから完全にGitに移行しました。
NetBeansからGitは直接管理できるので基本的にはNetBeansのGUIで触ってます。
しかもNetBeansは自分自身の保存ログとGitのコミットログを使ってソースのDiff出せたりするので超絶便利です。
マジこれだけでもNetBeans使う価値あります。
でもなんでもかんでもNetBeansのプロジェクトに出来るわけではないと思います。
そんな時はSourceTreeがイケてます。
GUIで操作でき、Githubへの連携も最初から念頭に置かれています。
ちなみにプライベートな開発をするときは僕はbitbucketを使ってます。
プライベートリポジトリでも無料なのでちょっとした開発の時は便利ですよ。
また社内で「クラウドにデータを置くのはちょっと…」って時にサーバーを社内に建てることになったらgitbucketがgithubのクローンの中でもダントツオススメです。
Scalaで作られてますが日本人が作者なので情報も多く、環境構築、アップデートともにすごく簡単です。
実際に僕も社内で使ってますがGUIでリポジトリが管理できることはもちろん、プルリクエストとissuesによるチケット管理はすごく便利です。
またWikiやREAD.MEなども対応しており、プロジェクトの暗黙知を無くすプラットフォームが成熟している感じです。
個人的には開発者だけで回すならredmine無しでgitbucketでやりとりしたほうがうまく回る気がしてます。

10 SSHクライアント

最近はTeraTerm proを使ってます。
Tera Term Menuを使うとTera Termのアクセスするサーバの管理もできます。
実際にはvagrantを使い出すとSSHを使うことも減ってきました。
昔はサーバに入ってvimでゴリゴリすることもあったのですがそういう時はWinSCPでは入ります。
なのでほとんどのことは別のツールでことが足りるのですがやはりコマンドラインが必要なこともあります。
昔はPuTTYを使ってたのですがPuTTYもかなり良いので好みの問題かなと思います。


と言うことでVMが出てきたことで環境依存の悩みも無くまりました。
またここでは説明しませんでしたがPHPUnitやBehatなどでテストが充実し、デバッカを使う機会も減りました。
この様に環境がどんどん進化してますのでぜひ一度調べてみると良いと思います。
また今回の内容でPHPerの最新環境に興味が出た人は次の本が参考になります。


また2014/9/20に広島市でオープンソースカンファレンス広島が開催されます。
ここにFuelPHPユーザ会として参加します。
ブースも出しますし登壇もしますので興味がある方は是非遊びに来てください!!

FuelPHPで始めるモダンPHP開発!!


ということでWeb系の方はこれを機に環境を見なおしてみると良いかもしれません。

2013年5月14日火曜日

PHPerがNetBeansを使いたくなる7つの理由

PHPerの皆様、日頃のコーディングには何をお使いでしょうか。
PHPの方はVimやEmacsよりもテキストエディタを使ってる人が多いイメージなのでSublime Text2でしょうか。
かく言う私もこのエントリーを電車の中でSublime Text2を使って書いてます。


「Sublime Text 2はじめました!」に贈る日本語での情報のリンク集


しかしながら開発をするなら僕は断然IDE派です。
ユニットテスト、補完、リファクタリング、どれをとってもIDEはプログラマーをサポートしてくれます。
また静的型付けな言語以外ではIDEの恩恵を受けにくいのではないかと考える方もいらっしゃるかもしれません。
しかしそれは杞憂です。
特にPHPは動的言語の中でもIDEの恩恵を受けやすい言語です。
つまりPHPを書く上でIDEを使わない手はありません。
どうでしょう少しはIDEに興味が湧いて来ましたか?
そこでオススメのIDEがこちらです。

NetBeans

なんとNetBeansはFuelPHPのサポートされたプラグインが有志によって開発されています。
本日はそんなNetBeansの素晴らしさをちょっとした使い方とFuelPHPの使い方をご紹介したいと思います。
(決してJava Day Tokyoのセッション中ではありません)

※対象はNetBeans7.3のPHPプラグインです
ダウンロードはこちら<<

1 NetBeansの補完について
NetBeansのdefaultのコード補完はControl+スペースです。
例えば下記の画像のように標準のメソッドを呼ぶことができます。






また当然プロジェクトの名前空間、スコープ内のメソッドや変数も呼ぶことができます。
引数も保管し、defaultの値を指定している場合は引数を選ぶこともできます。



この他にもメソッドの上で/**とするとコメントのテンプレートを生成してくれます。
これは引数、返り値を見た上でテンプレートを作成してくれますので大変便利です。
//○○をXXする関数
と書くよりも



を書くほうが情報も多く、メンテナンス性も向上します。
またこのようにメソッドにコメント使うことコード補完時に参照され、情報として表示されます。



さらに!!
html、CSSやJSも補完してくれます。
強力にhtml5やCSS3を保管してくれます。
さらに詳しいことはこちら

コードの補完


2 NetBeansのバージョン管理ソフトウェア対応と使い方について
NetBeansはdefaultでSVN、Mercurial、Gitをサポートしています。
プロジェクト内のコードであればGUIベースで以下の通りでcommitすることができます。


Gitの場合のリモートリポジトリもGUIベースで行えます。
通常時(Conflictした時やマージの時)はCUIを使った方が楽なことも多々ありますが通常使うには十分です。
またNetBeans内でのバージョン管理とバージョン管理ソフトウェアの連携がとても強力です。
こちらの画像のようにNetBeansはdefaultで更新履歴を持ちます
(初期設定は7日分ですが任意にツール→オプション→その他→バージョン管理→履歴 から保管する日にちを変更できます)

さらにバージョン管理ソフトウェアを使えばコミットしたリビジョンも比較できます。
例えば差分は次のとおりに比較できます。

履歴を選んで差分を確認


右クリックの「履歴をから戻す」を使うとまるごと戻すことも可能も可能です。
この機能は非常に協力ですのでぜひぜひご活用ください。

3 FuelPHPのプラグインの導入
これだけでも使うには十分すぎるNetBeansの便利さですが今一番熱いPHPのWEBフレームワーク、FuelPHPに対応しています。
蛇足ですが標準でZend、Symfony、Doctrine2をサポートしています。
またテンプレートフレームワークとして使われることの多いSmartyもサポートとしています。
そしてプラグインもプロジェクトの作成も選ぶだけ。

日本語に完全対応したGUIですから非常にスムーズですね!!

4 FuelPHPの補完
そして当然FuelPHPの補完もバッチリ!!
例えばコントローラーでの補完。
モデルの呼び出し
setterやgetterの呼び出しもサポート。
当然ORMもご覧のとおり。



5 ユニットテスト
さてここまで読まれた読者さまなら一度は聞いたことがあるのではないでしょうかユニットテスト。
別名では単体テストと呼ばれ、メソッド単位で行われるテストですがPHPではPHPUnitと言うツールを使います。
NetBeansはこちらも対応済み。
ただしPHPUnit本体の導入は別途必要です^^;
WindowsユーザでXAMPP(ローカルにWEBサーバ環境を立てる)を使ったPHPUnitの導入はこちらのチュートリアルが参考になります。
そして本題のユニットテスト。


戻り値が不正の場合は
わかりやすく赤くなってくれます。
そしてFuelPHPはユニットテスト(PHPUnit)に完全対応!!
当然、ユニットテストできます。
例えばすでに作成済みのViewModelのメソッドをテストしたい場合このとおりです。
まずメソッド作ります。
そしてメソッドはやっぱりテストコードを作りたいですよね。
まずは右クリックして…



あら不思議!テストコードがまるっとできます!!
この状態でメソッドを変更すれば当然赤くなるので安心してリファクタリングできますね!!
またTDDっぽく機能追加する場合はテストコードを変更して赤(エラー)から緑(成功)を目指して修正することもできます。
今流行?TDD【テスト駆動開発】も可能です。

6 ちょっと便利なショートカット
私は実はdefaultのキーマップからEclipseに変更していますw
なのでフォーマットはControl+Shift+Fです。
defaultではAlt+Shift+Fです。
オプションのエディタのタブでフォーマットの設定も行えます。
また保存時に自動的にフォーマッターを走らすことができます。
統一感のある美しいソースになるのでフォーマッターは是非ともご活用ください。
またメソッドを選択時にF3で行われるメソッドの参照先への移動(メソッドジャンプ)も非常に便利です。
その他にも四角選択(矩形選択)や一括置換も非常に便利で協力です。
是非、お時間があるときにはNetBeansのオプションのショートカットキー一覧を見てみて下さい。

7 NetBeansの組み込みブラウザの使い方
NetBeansといえばきしださん。
きしださんの「きしだのはてな」がすごく情報が詰まってます。
NetBeans使いは是非一読ください。
そして組み込みブラウザにも詳しく書いてありますのでこちらを御覧ください。

NetBeans7.3(Beta)に組込みブラウザがついて想像以上にすばらしい


ここまで読んでくれた皆様、NetBeansに興味が湧いて来ましたでしょうか?
開発環境は好みで選ぶべきですが「よくわからないけどEclipseを使ってる」や「みんなが秀丸だから秀丸を使ってる」って方は非常に損をしていると思います。
日本語対応しているNetBeansの機能の豊富さを知らずに開発するのは残念です。
ですので一度でも試していただけたらと思います。