PHPフレームワークを初めて勉強する時に抑えるポイント5選

昨今のシステム開発では、どの言語で開発するにしろ、フレームワーク活用が必須です。

Rubyでは殆どrails採用ですが、PHPでは様々なフレームワークが乱立。

・CakePHP

・Symfony

・FuelPHP

・CodeIgniter

・Laravel

挙げればキリがありませんが、基本的な考え方・使い方は似通ってます。

TaNA
最初にSymfony2を覚える時は苦労しましたが、CakePHP3とLaravelに触れた時、随分と学習コストが抑えられた印象です。

さてPHPフレームワークを活用したLAMP開発の現場での、具体的な開発内容ですが。

多くは以下開発に携わるのかなと思われます。

・オンライン画面

・バッチプログラム

・API

まずフレームワークを勉強する時は、上に挙げた事を実現する知識を学ぶことが大切!!

初心者のフレームワーク開発の最初のゴールは、まず5つのことを覚えること!!

ルーティングという考え方

開発したプログラム(コントローラー)を呼び出すための仕組み。

Webアプリケーションでは、/read/intro-to-symfonyのようなURLでアクセスするのが一般的です。

機能別のURL、アクセスメソッド(GETやPOST)を定義し、ブラウザURL欄に定義したルーティングを入力すると、コントローラーやAPIが呼び出されます。

TaNA
フレームワーク別に若干書き方が異なりますが、ほぼ一緒です!!

ルーティングの定義のやり方を知り「Hello World」を表示することが第一歩!!

viewを使ったレンダリング

フレームワーク別にテンプレートエンジンが用意されています。

CakePHP3 : Smarty

Symfony2 : Twig

Laravel : Blade

似てるようで、結構クセがあったり。

TaNA
ただし開発現場によっては、全く活用されてないことも・・・

POINTコントローラ経由でhtml表示!!

テンプレートエンジンは共通部分(ヘッダーやフッターなど)を部品化したり、継承出来たり。

最初は変数渡しやif、繰り返し文くらい書ければ良いかと。

色々便利なので、viewの仕組みが理解出来たら、基本的な部分を少しずつ覚えましょう。

データベース接続

これもフレームワーク別にちょっと事情が異なります。

フレームワーク別にORMライブラリがあり、使い方を覚えるのに時間がかかります。

TaNA
ORMライブラリを活用することで、SQLの記述を最小限にでき可搬性もUP!!

ただORMライブラリ実行でのオーバーヘッドが発生し、逆に動作が遅くなることもあり、開発現場によっては利用されず、PDOでのアクセス実装がメインも考えられます。

POINTPDOでのDML操作を覚える!!

ORMライブラリに興味のある方は、その後に勉強すれば良いかと。

バリデーション

画面でも、バッチでも、APIでも利用するバリデーション機能。

多くの場面で利用するチェック(数字・半角英字とか)は標準実装されており、複雑なチェック機能はカスタムバリデーションなどの仕組みで独自実装します。

配列やオブジェクトに値を入れ、validateメソッドなどで簡単にチェック可能。

コマンドクラス

主にバッチ処理の実装で利用。

上に挙げたデータベース接続、バリデーション処理を活用して実装。

最終的にはcronなどで実行出来れば上出来。

他にも認証、イベントシステム、ロギング、ユニット試験など、開発現場で必要な知識は多々ありますが、自分が見知らぬフレームワークに触れる時、まず上に挙げた事を理解するようにしています。