phpStormを使ってPHP開発環境を整えよう

少し前まではPHPで開発をするとなるとeclipseを利用するとかが普通だった気がします。私も結構長い間PHPを開発環境で利用する事をしていなかったのでここら辺の事情はそんなに詳しくありませんでした。自分の運用しているサイトにPHPとデータベースを使って掲示板を作ろうと思ったのですが今更スクラッチから開発するのは無いなとおもい、フレームワークの導入と開発環境の利用を考え、色々と調べました、

掲示板プログラムを作るうえで一番考えた点がデザインも含めて既存のサイト等に簡単に合わせる事ができる事、メンテナンスも含めて保守が容易にできる事です。個人での作業ですのでここら辺に手間をかける事が難しいです。また正直私は技術系の人間ですのできれいなデザインとかは全くできません。なのでここら辺も負担がなくできる形にと思っています。

まずはフレームワークを何にするか考えました。基本的な考え方として、

  • ウェブで日本語情報が入手しやすい
  • データベースが扱いやすい
  • 今もメンテナンスが行われている
  • デザイン等の支援機能がある

が重要だと思います。

フレームワークはもともと英語圏で作成されている物がほとんどで日本語のドキュメントが入手しにくかったり無かったりします。そうすると情報はウェブのブログの記事などに頼る形になります。これは一番大事な部分でハマったりした場合の助けになります。というか新しいフレームワークを使う場合まずハマります。このハマりからいかに早く抜け出せるかが大きなポイントです。仕事で組織としてやっていればそうでもないのでしょうが個人での場合は大きなポイントです。またデータベースを簡単に扱えるのも大事なポイントです。今は様々な情報をデータベース内に保存してそのデータを表示等に用いる事が普通です。データベースが扱いやすいとは、登録・変更・削除等の概念がサポートされているかだと思います。単にSQLを発行できるだけではなくもう少しシステマティックな機能が欲しいと思っています。そして現在も定期的にメンテナンスされているかという事です。数年もメンテが止まっていたりするフレームワークは不安です。PHPもどんどん進化して現在は7です。最新のPHPに対応している、しっかりとメンテナンスが行われている事が大事だと思います。

Laravelを選びました

私の選んだフレームワークはLaravelというフレームワークです。最近一番勢いがあり利用者が増えているとのブログでき記事を多くみます。そして日本語のドキュメントがきちんと作成されています。そのせいもあってか扱っているブログも多くあります。この情報が多い、特に日本語情報が多いというのは大事なポイントです。公式サイト(http://laravel.jp/)もしっかりと日本語の物が存在します。

次は開発環境

フレームワークを決めましたので次は開発環境です。昔(今もこのスタイルで開発している人が多いと思います!)はエディタでコードを書いてウェブでデバッグというスタイルが多かったですが今はある程度開発環境が整ってきています。特にLaravelを選んだ場合単にPHPでウェブを作ると言うよりフレームワークのルールに従ってクラスを設計し、htmlコードに組み込むという作業が発生します。エディタでデバッグでは到底無理な環境で開発環境がある意味必須になります。開発環境(統合環境)も昔から存在するeclipseをはじめnetBeans、Zend Studioなどと存在します。どれも素晴らしい環境ですのでどれを選ぶか考えてしまいますが私は、phpStormという環境を選びました。選んだ理由は、

  • メンテナンスリリースが頻繁に行われている
  • 日本語ドキュメントがしっかりしている
  • 有料だが個人利用は安価になっている

です。

メンテンナンスリリースは年間数回以上おこなわれており、バグへの対応や機能向上などが行われています。またドキュメントが日本語になっている事です。しかも最新のバージョンに対応するドキュメントもしっかりと手に入ります。そして開発環境は有料なのですが年間10,000円程度と安価に設定されています。正直この環境でこの値段なら仕事として利用する事を考えるとすごくお得です。

LaravelはPHPと思ってはいけない

MVC

PHPというとHTMLの中に埋め込んで処理を行うというイメージが大きいと思います。実際にこの様な使われ方が多いと思いますが、Laravelは大きく異なります。俗に言うMVCモデルというプログラムの開発モデルに準じています。ここらへんは検索して頂くと情報が色々と出てきますが要するにM(モデル=データベース)、V(ビュー=画面に表示される部分)、C(コントローラ=MとVを結びつけるもの)と言う感じです。この構造の理解が大きなポイントとなります。

クラスを多用

またLaravelフレームワークはオブジェクト指向の概念を取り込んでおり、あるクラス・基なるクラスから使うクラスを派生させて開発を行うという形を取っています。ですのでオブジェクト指向プログラミングの知識も必要になります。このMVCモデルとクラスを用いた部分が難しい部分であり、逆に面白い部分でもあります。

前置きはこのくらいにして実際に開発環境を構築する手順を順に説明していきます。構築する環境はWindows10を考えています。

基本として、

という形で記事としていきたいと思います。

2019年12月23日追記:

手順を作成しながらまとめていくと結構な作業が必要になります。今後の記事の予定等をタイトルを変更したり、項目を追加したり等若干みなおしました。