PHPフレームワークLaravelの勉強法

PHPフレームワークLaravelの勉強法

昨今のソフトウェア開発会社では、企業の業務システムなどをWEBで制作することが基本です。昔は企業用のソフトと言えば、VBやVC++などで作成したWindowsアプリでした。しかし、制作にお金がかかり、デザイン性や操作性の高いものを作ることが難しいため、あまり流行りませんでした。

今も昔も求める機能は似ているのですが、現在ではオフィスや店舗にパソコンを置くところは減っています。 そのため、スマホやタブレットでも快適に動作するソフトが必要です。 ただ、Androidアプリ、iOSアプリの制作は少し敷居が高くなります。 そこで、PHPフレームワークの登場なのです。

PHPといえば、言わずと知れたWEB系の低水準言語です。 プログラミングをまじめに勉強された方は、「PHPかよ」と思うかもしれません。確かに、PHPは文字と数字の境界があいまいで、複雑な処理を行うのが苦手です。 JavaやObjectPascalなど、高度な言語の方が良いのではないかと思いがちです。 しかし、業務システムで求められるのは作業フローやデータの管理であって、複雑な処理などではありません。

フレームワークと聞くだけで、億劫になる方もいます。一から開発すれば理解できるけど、他人が作ったものを使うなんて嫌かもしれません。フレームワーク化されていたら、自分がやりたい処理が行えない、どこで何が起こっているか分からないと思うのです。でも、それは過去の話です。

先ほどの考えたように、業務システムで行うべきことは限られています。 そして、WEB系で行うべき処理も大半は決まっています。それが、すべて記述されていて、自分は必要なところのカスタマイズだけすればよいのです。こうすれば、開発費が格段に抑えられ、短期間で実現でき、開発者のレベルも低くて済むわけです。 安い早いうまいの三拍子。いや、「うまい」は無いか。。。

大事なのは、フレームワーク技術で採用されているMVCモデルへの理解と、フレームワークの使い方です。MVCモデルというのは、Model(メインの処理)、View(画面の書き出し)、Controller(アクセスが来たらどう処理するか)の三つで成り立つ処理のことです。詳しく知りたい方ははGoogle先生に聞いてくださいね。

かくいう私も古いタイプの技術者なので、新しい技術には疎いです。 しかし、そろそろ手を付けざる得なくなってきました。仕事を頂ける会社からもそういった案件が増えていますので、まじめに勉強しなければいけません。

さて、ネパールに住んでいるので本は買えない。というか、電子書籍は買えるけど、読むのが苦手。であれば、教えてもらうのが近道です。そこで、登場するのがYoutubeなんですね。

本当にYoutubeでは何でも知ることができます。 こういったブログがオワコン(終わったコンテンツ)と言われるのが良くわかります。ブログを書いている自分ですら、映像の方が分かりやすいと思いますからね。

といっても、ビデオだけで完結というわけにいきません。詳しいところはWEBの記事から学ぶ必要があります。

Laravelについては、Laravelの本家サイトをご覧ください。

また、View部分にはbladeというテンプレートが使われていますので、その詳細はBladeテンプレートのページを参照してください。バージョンが複数ありますが、リンクは5.5のものです。

もちろん、PHP言語についてはすでに学習済みというのが大前提です。

フレームワークの導入と説明、開発の仕方の基礎についてはYoutubeのビデオですね。いろいろ探した結果、分かりやすかったのは「たにぐち まことのプログラミング学習応援チャンネル」でした。Laravel入門1-10があるので、順番に見ながら作業していくなら、理解が早くなると思います。

ご自分でゆっくり見る場合は、 Laravel入門 の再生リストからご覧ください。

以下は、ビデオの1-10と、簡単な説明です。

Laravel入門 #01:Composerで作る Laravelの開発環境

内容:Windowsでの開発環境の構築の方法とブラウザの表示まで

Laravel入門 #02:Routesで操るURL

内容:アクセスするURLからどのように表示する内容を分けるのかについて、Routesというフォルダ以下の設定から説明する

ここで使っているVisual Studio Codeって結構使いやすそうですね。PhpStormみたいなツールもいいですが、無料ツールなら使う価値はあるかと思います。

Laravel入門 #03:Viewで表示の処理を分けよう

内容:ページを表示する部分を分割し、どのように記述するのか

Laravel入門 #04:Controllerで処理を集中管理しよう

内容:実際の処理をどこにどのように書くのか。Controllerの作り方も。

ここでは説明していませんが、処理を書いていくならModelにあたるのではないかと思ってしまいます。しかし、オブジェクト指向なので、実際の処理はさらに踏み込んだ別ファイルの中に書き込んでいきます。なので、ここでのControllerは処理の振り分けに使用されるので、ModelではなくController。正解です。

Laravel入門 #05:手軽なデータベース、SQLiteを使おう

内容:VisualStudioCodeを使ってSQLiteデータベースを使う方法

今はこんなに簡単に開発ってできるんですね。時代は変わった。。。

Laravel入門 #06:SQLiteに Laravelからアクセスしよう

内容:LaravelからのSQLiteへの接続方法。設定から動作確認、SQLの発行まで。

データベースのアクセス簡単ですね。認証とか設定の読み込みとか面倒な事は全てフレームワークの中にあるので、とっても便利ですね。

Laravel入門 #07:Modelでデータベースを手軽に活用しよう

内容:Modelにもともとある機能を使って、手軽にデータベースからデータを引き出す方法

Modelの名前を複数形にしたデータベースがあれば自動で探しにいってくれるってすごい。。。Entryならentriesを作っておけば、全部取得するならテーブル指定も条件文もいらないんですね。

Laravel入門 #08:データベースを Laravelで作るマイグレーション

内容:Laravelでは通常どのようにプロジェクトを作り開発していくのか。プロジェクトの作り方、データベースの作り方、作成からロールバック、テストデータ作成まで。なんて、簡単で使いやすい機能が用意されているのか。

必要なものがすべてパッケージ化されている素晴らしさに感動してしまいます。これなら、Laravelの規則通りに作っていれば、他の人が開発する際も分かりやすいですね。

Laravel入門 #09:特定のデータを取得する findと findOrFail

内容:モデル、ビュー、コントローラーを作成し、一通りのプロジェクトを完成させる。

データベースから読み込み、編集して表示する処理を作っています。データベースの基本的な処理ですね。

Laravel入門 #10:@yield、@sectionを使った共通テンプレート

内容:Viewsの整理のため処理の共通化。

ここまでくると結構複雑になっている気がしますが、これでLaravel開発の入り口だそうです。

とりあえず、システムの仕様を作るのは開発ができるのとは別問題なので、そこは自分でやるしかないわけです。システム設計がうまくいっていれば、あとはLaravelをちゃんと使えれば、かなり簡単にシステムが作れるわけですね。

みなさんもLaravelを使いこなせると、結構仕事に役立つと思いますよ。