プログラムやるのに言語にPHPを選択したあなた、Laravelというのがあるらしい、というレベルでも簡単に解説します。とりあえず、概略だけ分かっていれば、入門書の選定するときとか、検索するときに判断が付きやすいと思ってこの記事を書きました。
PHPとは?
サーバー側で実行するプログラム言語です。以前はPerl言語が良く使われていたのですが(mixiとかPerlで記述されてるそうです)、クライアント側のブラウザで実行するHTML言語と相性が良く、ブログのシェアの大半を占めるwordpressがこのPHPで書かれているため、需要が高い言語です。
フレームワークとは?
プログラムで、毎回同じ事を書くのは面倒。そうなら同じ処理は共通化して提供してしまえという概念の元、作られたプログラムのひな形です。手間は省けるし、バグの混入は減らせるしというわけで、多くの言語にフレームワークが作られ、開発されるようになりました。
なぜLaravel?
Ruby言語が流行った背景にRuby on Railsというフレームワークが割と革命的で高速開発ができるため流行ったというのがあるそうです。他の言語でも、その影響を受けて高速開発がより早くなるフレームワークが出てきました。JavaではSpring Boot、PHPではLaravelです。それぞれ、既存のフレームワークを押さえてシェアがどんどん伸びてます。
なぜか初心者はweb言語にRubyを選択するようですが、シェアが多いわけではないようです。というか、世界的な統計ではシェアは減って行きつつあると出てます。その点、wordpressというキラーコンテンツがあるためPHPは人気言語の上位に食い込んでます。そのPHPのフレームワークのLaravelは私は前途有望と見ました。Spring Bootも勉強してみましたが、Laravelの方が楽に取得できると思いました。
あと、リモートで仕事できるかどうかですね。私は地方在住なので仕事がなく、仕方なく都会の案件を受けてます。Javaは常駐案件ばかりで、リモートはweb系のRubyかPHPです。Rubyは使われなくなる言語と直感で判断したのでPHP-Laravelを選択しました。2020/09/20現在、私はAWS案件の仕事をしてます。クラウドソーシングサイトからWordpressのテーマ作成の依頼が来たりしてます。
2020/09/20追記:ちょっとRuby on Railsを勉強しました。PHPに対するRubyの言語的優位はあんまり感じず、RailsがLaravelより難解だと思いました。Spring Bootの方がまだわかる。この差は読んだ本の差によるものかなと思ったりもするんですが、3冊Railsの本読んでもピンと来ない。Laravelの類推でなんとか分かる感じ。Rails挫折した方、Laravelやってみたらいいかもしれませんよ?
MVCは覚えておいたほうがいい
MVCとはModel – View – Controllerの頭文字を取った物で、
Model : ビジネスロジック(データベース操作、外部サービスへのアクセスなど)
View : ユーザーインターフェース(入力・出力画面)
Controller : ModelとViewの制御。MVそれぞれの司令塔です(cookie、サーバー側の入力データの受け取りなど)
これによって、画面デザインと本体のプログラムが分離でき、並行作業やテストがしやすくなるというメリットがあります。
MVCモデルでAPIとか叩くときにどれにコードを記述するんだろうとふと思いました。答えはModelです。Modelはデーターベースだけでは有りません。⇒俺が勝手に考える正しいMVCの実装。モデルはデータAPI!
Laravel構築の方法(windows限定)
①XAMPPというサーバーとかデーターベースが全部詰まったアプリをインストールする(Windowsテスト環境限定。実サーバーはほぼLinuxなので使わない。Macは知らないが使わないだろう)
②Composerをインストールする
※Composerとはライブラリという拡張プログラムを追加ダウンロード&インストールする管理ツールでpythonでいうpipコマンドみたいなものです。インストールはGUIですが、コマンドプロンプトにコマンドを入力して使います。
③ComposerでLaravelをインストールする
④LaravelのPathを環境変数に設定する(再起動しないと変数は反映されません)
以上、手順は「失敗しない Laravel 導入方法」 を参照のこと。
アプリケーション作成手順
最初にアプリケーションの枠組みを作成して、次に、各フォルダ内にある、設定ファイル類を編集します。
新規アプリを作成します
c:\xxx 配下に、go-laravelアプリを作成
>cd c:\xxx
>laravel new go-laravel
アプリケーション実行手順
開発のためなのでApacheとか起動する必要なし。LaravelのHttpサーバーが標準でついてくるのでコレを起動する。
>cd go-laravel
>php artisan serve
これで起動。あとはブラウザからhttp://127.0.0.1:8000 にアクセスすれば表示される。
サーバーを止めるにはコマンドプロンプトでCtrlキーとcキーを同時押し。
じゃあ、順次、Model、View、Controllerの作り方を解説します。
Controllerを作成する
>php artisan make:controller GoController
GoControllerの名称は任意。これで\app\Http\Controllersフォルダーの下に、GoController.phpが作られる。
Controllerクラスの編集
\app\Http\Controllersフォルダーの下のGoController.phpを編集(プログラミング)
Viewを作成する(普通、平行して作るのでMVCの順番は関係ない)
表示関係を制御するテンプレートファイルは以下の通りになる。
\resources\viewsフォルダの下に「コントローラー名\アクション名.blade.php」(例:GoController\view.blade.php)作成。※「コントローラー名」のフォルダは自分で\resources\views配下に作ること。
ルーティング情報に定義
URLに応じて処理をするので、このルート処理を定義する。
\routes\web.phpを編集する。コントローラーを定義してもいいし、ビューを定義してもいいが、普通、司令塔であるコントローラーを定義し、コントローラーの中からビューやモデルを呼び出すことになる。
Modelクラスの編集
用語として「O/Rマッパー」とか「Eloquent」とか出てくるがここでは触れずに置く。要はデーターベースの操作を簡略化する方法。
データーベースの作成
データーベースによって変わるし、テーブルを準備しなけばならないので省略。
テーブル名では必ず、先頭は小文字で末尾にsを付けること! 例 create_cars_table (この点、ちょっと間違いみたいです。sを付けて区別するんじゃなくて、慣習的に複数形、単数形で区別するとのことです)
データーベース接続定義ファイルを編集
\config\database.phpを編集。
Laravel環境変数を定義
アプリルート直下(例:go-laravelの下)に.envファイルがある。これを編集。
Modelクラスの作成
>php artisan make:model Car
この例だと¥App\直下にCar.phpが作られる。これがModelクラス。
※Carは任意 テーブル名の単語を参照する。ただし、大文字始まりで単数形になることに注意!
コントローラーとビューをデーターベース対応にする。
入出力や表示を編集。
これで一応できるはず。細かい設定は本を読むなり、検索するなりしてください。とりあえず、ざっと頭に入れるのが吉かと思い書きました。参考になれば幸いです。
コメント