2016年2月1日月曜日

ちょっと、たけとも、お仕事(CTO)始めました

まほろばとの想い出を語ってはや3ヶ月。
順風満帆なフリー生活を送っていましたがこの度、就職する事になりました。
まずは就職先ですが下記の会社です。

株式会社 オミカレ

ポジションはCTOです。
取締役ではなく執行役員です。
しっかりサラリーマンに戻ります。
多分、みんなは僕の業務内容なんて1バイトも気にならないと思いますが簡単に説明します。

勤務内容

  • 基本リモートワーク(自宅で仕事してる)
  • 自社モノWebサービスの運営
  • 新規Webサービスの開発
  • 週に1回(必ずじゃないけど)岡山で社長とミーティング
  • コードも書くし設計もする(リードエンジニアに近い)

ってな感じです。
面白いところが何個かあってまず渋谷にオフィスがあるのですが社長とCTOの自分がリモートワークです。
なのでコードは全てgithubですし勿論雪が降れば家で仕事をすれば良いです。
あとはエンジニアは僕以外にもう一人とベトナムにオフショアしながらやってます。
ベトナムにオフショア?まともなコード上がってくるの?っと思うかも知れませんが上手くやって行けてます。
これにはベトナム側に日本人のマネージャが居るってことも大きくていつかこの辺の話も出来たらいいなと考えてます。
それでも前述のとおり僕以外に日本にエンジニアが1人しかおらず、採用も自分のタスクです。
弊社は残業は0が基本で既にタスクがカツカツといえる状況です。
ということで特に渋谷に来てくれるエンジニアを募集してます!!
なので興味がある人は連絡取ってもらえると包み隠ず伝えようと思います。

それと会社の風土ですが元々はサービスは社長が1人で作り出し、順調に育ち、今はビジネスとしては成功しています。
そのためスタートアップにありがちな「利益を出すために死ぬほど働く」って雰囲気は無いです。
エンジニアの業務を見ても残業はありません。
もし彼らに残業が必要となった場合はそれは僕のマネージメントの問題だと思ってます。
また福利厚生や働きやすさについて社長はとても重視していてそういうところは積極的に改善されてます。
実際に

  • オフィスにウォーターサーバ欲しい
  • デロンギのコーヒーメーカー欲しい
  • ○○って本欲しい→即Amazon購入
  • この勉強会に参加&スポンサーして欲しい

などの意見が即決されたりしてます。
僕自身で言えば社長がもう何年も前からの知り合いなので意見具申しやすいので助かります。
例えば社内のチャットツールがSkypeからslackに変更したりしました。
(まだ音声ミーティングのみSkypeを使ってますが)
VCSもgitlabでしたが僕が辛いのでgithubに移行しました。
まだまだ全てがモダンな現場!!と言うには遠いと思いますが変化は確実にしています。
そんな

  • チームの改善
  • 開発の改善
  • サービスの改善

を一緒にやってくださる人を大募集してます!!
なお、メインサービスのコードの全書き直しは直近では予定されていません。
PHPのレガシーコードとの戦いになると言うことが弊社で唯一のデメリットだと思ったりはします。
(それを改善していくのが今後の大きな課題の一つです)
ということで今月から会社員に戻ります。
受託開発についてはしばらくお休みになると思いますがコミュニティへの関わりは積極的にする予定です。
今までは個人エンジニアとしてだけでしたか会社として参加も可能です。
なのでスポンサーなどの相談も是非いただければと思います。
実際にオープンセミナー広島@2016にはゴールドスポンサーとして参加します。

ということで世界を変えるほどイノベーションを創りだす!!とまでは思っていませんが

  • サービスで多くの人を幸せに
  • エンジニアのより良い働き方を
  • 地方に新しい企業文化を

出来るような場所作り(サービス、職場環境含めて)行っていきたい所存です。
今後の活躍にご期待ください!!

2016年1月24日日曜日

Software Design 2月号の特集記事を書きました



もう発売から一週間経ちましたがSoftware Design 2月号の特集記事を執筆しました。
最近は仕事でMySQLをガッツリ使っていて自分としての経験談も含めて比較した内容です。
お互いの得手不得手をそれなりには伝えれたかなとは思います。
ですが本当の意味でのコアな世界は全然足りないと思ってます。
そういう深い部分を中国地方DB勉強会でフォーカスしていければ楽しいなと思ってます。

そして一番伝えたかった事は第七章に詰め込んだつもりです。
なにわのビル・ゲイツこと有山さんにはこんな感じで煽られましたがw



特に最後のコラムのところがかなりポエムになっていますw
ですがそれが伝えたかった事です。
最初の原稿を出した時に編集の人に

「そーだいさんが伝えたい事、もっとあるでしょ?」

と言われて下記のブログを書いたりもしました。

これからもIT勉強会(コミュニティ)は必要なのか本気出して考えてみた


この記事を書いて一番得れたモノは技術とか原稿を書く苦労とかもありますけど

自分が大切にしてることを振り返る機会を得れた

ことだなって思います。
ブログでも同じような効果はあると思うのですがそれを伝える対象が多い分、今回は本当に深く振り返る事が出来ました。
こういった機会があれば皆様も積極的にチャレンジすると得るモノが多いのでオススメです。
ということで書店で見かけたら手にとってみていただけると嬉しいです。

2015年12月21日月曜日

吾輩は「ふつう」である

吾輩は「ふつう」である。名前はまだ無い。
どこで生れたかとんと見当がつかぬ。
何でも薄暗いじめじめした所でカープ!カープ!カープ広島♪と泣いていた事だけは記憶している。
吾輩はここで始めてお好み焼きというものを見た。
しかもあとで聞くとそれは広島風お好み焼きというお好み焼きの中で一番崇高で高貴な食べ物であったそうだ。
このお好み焼きというのは時々広島焼きと呼んだ者を煮て食うという話である。
しかしその当時は何という考もなかったから別段恐しいとも思わなかった。
ただ鉄板の上に載せてヘラでスーと持ち上げた時何だかフワフワした感じがあったばかりである。
鉄板の上で少し落ちついて広島風お好み焼きを見たのがいわゆるお好み焼きというものの食べはじめであろう。
この時妙なものだと思った感じが今でも残っている。
第一具材をかき混ぜて装飾されべきはずの顔がつるつるしてまるでホットケーキだ。
その後関西風お好み焼きにもだいぶ逢ったがこんな片輪には一度も出会わした事がない。
のみならず具材の真中がそばが挟まれている。
そうしてそばの上に豚肉とキャベツが混ざり合い煙を吹く。
どうも咽せぽくて実に弱った。
これがお好み焼きのかけるオタフクソースというものである事はようやくこの頃知った。
このお好み焼きの食べ、しばらくはよい心持に坐っておったが、しばらくすると非常な速力で運転し始めた。

秋田 中略

ここで吾輩は彼のお好み焼き以外の食べ物を再び見るべき機会に遭遇したのである。
第一に逢ったのが広島風つけ麺である。
これは前のお好み焼きより一層強力な食べ物で吾輩を一口入れるや否やいきなり突き抜ける辛さが舌を抛ほうり出した。
いやこれは駄目だと思ったから眼をねぶって運を天に任せていた。
しかし熱いのと辛いのにはどうしても我慢が出来ん。
吾輩は再び広島風つけ麺の隙すきを見て平和公園へ這い出た。
すると間もなく職務質問を受けてまた投げ出された。
吾輩は投げ出されては這い上り、這い上っては投げ出され、何でも同じ事を四五遍繰り返したのを記憶している。
その時に広島風つけ麺と云う食べ物はつくづくいやになった。
この間広島風つけ麺の替え玉を偸すんでこの返報をしてやってから、やっと胸の痞が下りた。
吾輩が最後につまみ出されようとしたときに、この県の知事がサッカースタジアムはサンフレッチェ広島がV3したら建てるといいながら出て来た。
サポーターは垂れ幕をぶら下げて知事の方へ向けて「スタジアムは市民球場跡地に!!広島みなと公園は交通機関が貧弱なので困ります」という。
知事は鼻の下の黒い毛を撚ひねりながら吾輩の顔をしばらく眺ながめておったが、やがてそんなら市民球場跡地へ置いてやれといったまま奥へ這入ってしまった。
知事はあまり口を聞かぬ人と見えた。
かくして吾輩はついにこの広島県を自分の住家すみかと極める事にしたのである。


カッとなってやった。
今は公開している。

2015年12月20日日曜日

これからもIT勉強会(コミュニティ)は必要なのか本気出して考えてみた

とある雑誌の原稿を出したら編集さんに

「そーだいさん、コミュニティに対してもっと熱い想いあるでしょ?そういうの出してください。」

って言われまして。
原稿の校正納期今日なんだけどもっと自分自身を掘り下げる意味で表題の事を考えた。
なのでただのポエムです。

まず最近、大手岡山Web系セミナーに若手が少ないらしい。




参加者平均年齢が40代超えてるであろうDB勉強会からするとまだまだ若いじゃん?とか思ったり。
でもね、中の人がそういう危機感があるって事は「緩やかな死」を感じてるってことだと思うんですよね。
その危機感を中の人が感じてるのだから間違い無いと思う。
そして危機感をこうやって複数の人がアウトプットするのは大切だと思う。
あと緩やかな死とかコミュニティの継続についてはちょっと昔に考えた事があるので興味がある人はどうぞ。

IT勉強会について本気出して考えてみた

僕は同じような状況をバックエンドとかサーバーエンドと人たちのITコミュニティで感じてきた。
若い人が出てこないとか運営スタッフが変わらないとか。
でも僕は「コミュニティに育てて貰った」って強い感謝の想いがあるしそれを若い人に恩送りしたいと思ってる。
だから


  • 世代交代
  • スピーカーの機会を用意する
  • 参加費を無くして学生でも参加しやすくする
  • 学校とコラボ
  • 他のコミュニティとコラボ


などを試してる。
でも劇的な変化があったかと言うとまだない。
(少しは変化があったかなとは思うけど)
理由としてはやっぱ絶対的に対象の母数が足りてないし。
そもそも若い人が「データベースに興味を持つ」事自体難しい感じになってる。
だいたいデータベースって仕事なんですよ仕事。
仕事で初めて触るし。
仕事で苦しむ。
周りに詳しい人がいない。
だからある程度経験して中堅くらいになってからDB勉強会に来る。
って人が半分以上。
ただ僕よりも先輩には少数だけど@nuko_yokohamaさんみたいに「データベースが遊び」って人もいる。
他にもネットワークだったりDNSだったりlibraryみたいな僕が仕事だと思う所に興味を持って遊んでる人たちはいる。
これって昔は時代の「最先端の技術」がこういう「技術が遊びの人たち」と「技術をビジネスにしてきた人たち」によって「枯れた技術」になった事だと思うんだよね。
だからこそ僕はDBみたいな枯れた技術ってのは儲かる大切だと思うんだけど「目新しさは無い」ってわけ。
でね、これと同じことが最近Webでも起こってるのかなって思う時がある。
僕の大好きな岡山のエンジニアの@kazuhisa1976さんが

最近の若者に聞くとね、Webは仕事って言うの。
じゃあ休みの日は何のコード書いてるの?って聞くとスマフォアプリかUnityって言うのよ。

コレを聞いたらあぁなるほど!!ってなりました。
僕も小学校、中学校の将来の夢にはゲームプログラマになる!!って書いた人なんで憧れも含めて凄くわかる。
自分でアプリ作ってリリースしてレスポンスがある、そりゃ面白いですよ。
それがね、僕らの世代の「技術が遊びの人」はWebアプリだったんです。
多分、先輩方はメールや掲示板やネットワークやOSSだったりしたんだと思う。
つまりWebは「技術をビジネスにする人たち」によって枯れた技術になりつつある。
これは悲観することじゃなくて世の中のインフラとして認められたって事。
だからレイヤーが変わったというか流行り廃りがあったけど若者自体は業界には要る。
だけど僕らの観測範囲に居ないってだけなんだと。
これは僕は経済の神の手と一緒で人材の流動がある事は仕方ない事だと思う。
そして「技術が遊びの人」な若者が多いところでは新たなコミュニティが生まれてる。
実際に岡山でもコミュニティの再開発は生まれつつある。

第一回「岡山Androidもくもく会」
(今見たら若者じゃない強そうなおっさんが数名参加してたけど)

僕は凄くいいことだと思う。
僕がオープンラボ備後手伝ったりDB勉強会やりたいですって言った時に周りの先輩方は「おーやれやれ、どんどんやれ!」って言ってくれた意味が今ならわかる。
こういうコミュニティが生まれてくる事が重要だと思うし広い視野での業界の新陳代謝だからだ。
スタッフをするメンバーも一新されるだろうしイノベーションには多様性が必要だ。
ということでIT勉強会(コミュニティ)は必要か?って結論に対しては必要ならば新しく生まれてくるってのが結論。
だから僕達が必至になって今のコミュニティを継続する必要もないのかもしれない。
実際に元々岡山には日本Androidのの岡山支部があるけど最近の活動が少ない。
その実体からこうして新しいコミュニティが生まれている。
なのでコミュニティもイミュータブルな感じで代謝が止まったら捨てるくらいが新陳代謝が早くていいのかもしれない。

ここまでが僕が今年の夏くらいまで思ってた事。


■既存のコミュニティは緩やかな死を待つしか無いのか

もし本当に「緩やかな死を止めれない」のであれば残りのコミュニティの余生を楽しんだほうが良い。
そう考えるなら内輪ノリとか同窓会と批判されても来てくれる人たちに最適化して楽しんでもらえる方がいい。
そう悩んだりもした。
けど最近MySQLを触っててMySQL Casualの人たちを見たりJJUG CCCに参加してそれもまた違うなと思ってきた。
廃れた技術は緩やかな死を待つしか無いけど「枯れた技術」ってのは仕事で使うことが多々ある。
さっきのデータベースの例もだけど「仕事で初めて使った、辛い」みたいな人たちを救う場所が必要だ。
そういった人たちが助けを求め迷った時に「助け合う場所」の一つの選択肢がコミュニティだと思うしそのために継続されることは大きい意味がある。
多分、それを母体となるビジネス側も理解してるからJJUGだったりJPUGだったりに協賛金が集まるわけで。
だから「技術で遊ぶ」若者を見つけるのは難しいけど「技術を仕事にしてる」若者を救い上げる事はできるかなと。
その中で10人に1人はコミュニティに興味を持ってくれるかもしれないし100人に1人はコミュニティに関わろうと思うかもしれないし1000人に1人はそのソフトウェアのパッチを書くかもしれない。
そういうアウトプットを増やすことでコミュニティの新陳代謝は進むだろうし継続されていく。
そう考えると僕がJPUGのスピーカーというポジションで求められてるのはPostgreSQLの機能紹介でも事例紹介でも無く「苦しんでる人が助かる術」のアウトプット。
そんなアウトプットが仕事で使ってる人の心に刺さるアウトプットだと思うし求められてる。
そう考えて書いた資料が




たちで一定数以上の反響はあったと思う。
まだその反響に対してコミュニティに誘導する手法は模索中なのでそこは改善していく必要があるところ。

なので既存のコミュニティでも「枯れた技術」を扱っているIT勉強会(コミュニティ)は必要。
そのコミュニティが継続するには「技術が遊びの人」向けのコンテンツも大事だけどアンチパターン的なコンテンツが重要。
そして引っかかった「技術は仕事の人」から上手くコミュニティへ誘導して新陳代謝をしていく必要がある。
そもそもコミュニティの運営やスピーカーってコードを書く力とは直結しないから「技術は仕事の人」の方がコミュニティ運営には適してる事が多いんじゃないかなと漠然と思ったりしてる。
だから次は如何に誘導するか、だけどそれは如何に的確な小さな問題を与えるかだと思ったりしてる。

問題にチャレンジしてもらうために必要な事を考えてみた

そんな事を思いつつ、でも恩送りだけじゃなくて自分自身のステップアップも見据えなきゃいけない。
そんなことを考えながら書いた年の瀬のポエムでした。

2015年12月18日金曜日

MySQLの暗黙の型変換の話

この記事はMySQL Casual Advent Calendar 2015の18日目です。
昨日はwinebarrelさんの「binlog_cache_sizeにメモリを食われた話」でした。
こういった実践の話は非常に貴重なので勉強になりました。

さて「PostgreSQLと比べてMySQLのいいところ書く!」を書こうと思ってたのですが昨日こんなツイートを見かけました。





公式ドキュメントを見てみると…

NOT NULL として宣言された DATE および DATETIME カラムでは、次のようなステートメントを使用することで、特殊な日付 '0000-00-00' を検索できます。

SELECT * FROM tbl_name WHERE date_column IS NULL
ODBC では '0000-00-00' 日付値がサポートされていないため、一部の ODBC アプリケーションを取得する際に、これが必要になります。


なるほど。
一部のODBCに対する優しさなんですね!!

そして僕もつい先日、MySQLの暗黙の型変換の優しさを味わったのでご紹介します。

-- テーブルの構造 `hoge`

CREATE TABLE IF NOT EXISTS `hoge` (
  `id` int(11) NOT NULL,
  `val` varchar(255) NOT NULL
);

mysql> SELECT * FROM hoge;
+----+--------+
| id | val    |
+----+--------+
|  1 | ONE    |
|  2 | 2      |
|  3 | Three3 |
|  4 | 4Four  |
+----+--------+
4 rows in set (0,00 sec)


こんなtableがあったとします。
そこで次のように検索してみましょう。

mysql> SELECT * FROM hoge WHERE val = "0";
Empty set (0,00 sec)

mysql> SELECT * FROM hoge WHERE val = 2;
+----+-----+
| id | val |
+----+-----+
|  2 | 2   |
+----+-----+
1 row in set, 3 warnings (0,00 sec)


想定した感じですね。

mysql> SELECT * FROM hoge WHERE val = 4;
+----+-------+
| id | val   |
+----+-------+
|  4 | 4Four |
+----+-------+
1 row in set, 3 warnings (0,00 sec)


あれ?文字列がマッチしましたね…
あっ!これPHPの文字列からintにキャストした時と一緒か!?

mysql> SELECT * FROM hoge WHERE val = 3;
Empty set, 3 warnings (0,00 sec)


あれ?Three3が出ない…

SELECT * FROM hoge WHERE val = 0;
+----+--------+
| id | val    |
+----+--------+
|  1 | ONE    |
|  3 | Three3 |
+----+--------+
2 rows in set, 3 warnings (0,00 sec)


Why,MySQL People!!

そしたら我らが@yoku0825さんが次のように教えてくれました。

val = 0の場合、0を文字列にキャストするのではなく、valをDOUBLEにキャストして0と比較しています。
英字で始まるSTRINGはDOUBLEにキャストできずにキャスト後の値が0になりますが、123abcのような文字列は「できるところまでキャストする」ので、キャスト後の値は123になります。
つまり123 <> 0です
ってことで、「数字で始まらないval」のものだけが検索に引っかかるわけです。
そして逆に数字から始まらない文字列はWHERE val=0に該当するわけです。

勉強になりますね!!
ちなみに僕が暗黙の型変換僕がハマったのはPHPのSESSIONをDBに保存している場合に検索しようとすると引っかかりました。
DBにSESSIONを保存することは多々あって例えばEC-CUBEやMagic3などのCMSも保存してるのでみなさんも検索の時はご注意ください。

ということで僕のMySQLエキスパートへの道は遠いようですw
それでは最後はとみたさんのお言葉で締めあせていただきます。



みなさんも良いMySQLライフを!!

2015年12月14日月曜日

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

これはPostgreSQL Advent Calendar 2015の14日目の記事です。

昨日はtksyさんの「普段SQLServerを触っている人がPostgreSQLに入門するかも」でした。
tksyさんの体調が心配です。

さて今日は僕がPostgreSQLの本当のポテンシャルをお見せしましょう。
…と思ってたのですがここまでPostgreSQL9.5の話は0。
下手だなぁカイジ君、本当に読者がほしいのはコレ、PostgreSQL9.5の最新情報まとめ。
ということでPostgreSQL9.5の話をします。
PostgreSQLのポテンシャルについては明日の海外さんに期待してください。

1. PostgreSQL 9.5はいつ出るの?

出る出る詐欺進行中のPostgreSQL 9.5はいつ出るのでしょうか。
現在のPostgreSQL 9.5はBeta2です。
当初は年内に出る予定でしたが今の感じでは年明けと見せかけて海外勢のロングバケーション後で2月くらいかなと僕は思ってます。
実際のgit logを見るからには毎日激しく最後の追い込みがかかってるので年内リリースに微かな期待を持っても良いかもしれません。

PostgreSQL本体のgitのSumally

2. PostgreSQL 9.5で何が変わるの?

毎年PostgreSQLの新機能の話でスピーカー業で飯を食うのが僕の生業だったのですが今年はなんと一回も新機能ネタで話してません。
なので自分のスライドが無いので他人の褌で相撲を取ろうと思います!! 
ということでPostgreSQL界のダルシムこと@sawada_masahikoくんの資料が素晴らしいのでご紹介します。



あとPostgreSQL界のラーメンテロリストことぬこさんのブログも細かい情報がまとまっています。
リリース前のPostgreSQLを積極的に検証している情報が貴重です。

日々の記録 別館


3. で結局なにがオススメ機能なのよ

PostgreSQL新機能は色々あるんですけどもうコレだと思うんですよね。

INSERT ON CONFLICT構文


PostgreSQL9.5からMERGE文相当としてINSERT ON CONFLICT構文という機能が追加になりました。
これはMySQLのINSERT ON DUPLICATE KEY UPDATE構文相当の機能になります。
構文も非常に似ており

INSERT INTO table名 (column1, column2, column3) values (value1, value2, value3) 
     ON CONFLICT 制約名
     DO UPDATE SET ( カラム名 = 値 )

と書くことで同様の処理を実行できます。
MySQLと違うところは制約を書くことです。
これは冗長とも言えますが「primary keyなのかUNIQUE制約なのかを選べる」ということです。
今までORMでsave()というメソッドを実装するときに一旦SELECTでDBを検索したりUPDATEの例外を拾って処理していたようなところは全てこれで解決できます。
ついに念願のMERGE(UPSERT)文相当の機能が実装されたということになります。
この機能だけでも新バージョンを使う価値があると思います。
もうちょっと詳しく知りたい人は上記のぬこさんの検証結果を見てみてください。

PostgreSQL 9.5 UPSERTを試してみた

その他にもRow Level Securitなど目玉機能が盛り沢山のPostgreSQL 9.5。
是非、皆さんも試してみてください!!!

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さんです。
楽しみですね!!