###〜簡易アプリで流れを掴む1(表示まで)〜
PHPのフレームワークであるLaravelの流れを掴むために簡単なアプリを開発してみます。
2回に分けて実装していきます。
次回、
【PHP】Laravel学習メモ / 簡易アプリで流れを掴む2(受け取ったデータを計算して完成まで
##目標アプリ
入力した米ドルを日本円に換算する。
##開発環境:
PHP 7.1.23
Laravel Framework 5.8.35
Composer version 1.9.0
開発環境が一通り終わっているという状態からのスタートとします。
###公式ドキュメント
https://readouble.com/laravel/
#プロジェクトの開始
cal_numberというプロジェクトファイルを作ります(名前は適当につけました)
コマンド
$ composer create-project --prefer-dist laravel/laravel cal_number
ディレクトリまで移動
$ cd cal_number
サーバーを立ち上げる
$ php artisan serve
//Laravel development server started: <http://127.0.0.1:8000>
#ルーティング
ファイル: routes/web.php
Laravelトップページを表示するためにデフォルトで下記の様に書かれています。
Route::get('/', function () {
return view('welcome');
});
それを表示するビューファイル: views / welcome.blade.php
//〜略〜
<div class="content">
<div class="title m-b-md">
Laravel
</div>
//〜略〜
サーバーを立ち上げ、トップページにアクセスしてみます。
コマンド
$ php artisan serve
トップページURL: localhost:8000
(プロジェクトを作って、サーバーを立ち上げたときの8000という数字はポート番号であり、その通り8000にアクセスします)
ポート番号とは
試しにLaravel → Laravel2に変えてみます。
//〜略〜
<div class="content">
<div class="title m-b-md">
Laravel2
</div>
//〜略〜
では、実装していきます。
Route::getはgetアクションを示します。
'/calculate'はURLのアクセス先。
'CalculateController@getcalc'はCalculateControllerのgetcalcを指します。(順番が逆になってしまいましたが、コントローラーは後ほどこの名前で作成することにします)。
リソースコントローラーにより処理されるアクションについては下記で確認できます。
Laravel公式ドキュメント コントローラー
Route::get('/calculate', 'CalculateController@getcalc');
これで、
localhost:8000/calculateにアクセスすると、CalculationControllerのgetcalcアクションに処理の指示が渡ります。
#コントローラー
ルーティングでは、CalculateControllerという名前のコントローラーにに処理してもらうことにしてましたので、そのコントローラーを作ります。
コマンド
php artisan make:controller CalculateController
これでCalculateController.phpファイルが作られました。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class CalculateController extends Controller{
}
ルーティングでは
localhost:8000/calculateにアクセスするとCalculateControllerのgetcalcに何か処理をやってもらうことになってましたので、まず次項でビューを作り、その次にそのビューを表示する処理をこのコントローラーに書くことにします。
#ビュー
まず、ビューのディレクトリを作ってみます。
コマンド
mkdir resources/views/calculate
これでcalculateディレクトリが作られましたので、ビューファイルを作ります。
ビューファイルはcalculateディレクトリで右クリックしてNew Fileとかを選択すれば作れます。
<html>
<head>
<title>計算アプリ</title>
</head>
<body>
<h1>計算アプリです</h1>
</body>
</html>
次にこのビューをディスプレイに映してみます。
移すためにはコントローラーで処理を書く必要がありました。
#コントローラーに処理を書く
コントローラーに、「localhost:8000/calculateにアクセスしたらnum.blade.phpというビューファイルを表示させる」処理を書きます。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class CalculateController extends Controller
{
public function getCalc(Request $request){
return view('calculate.num');
//calculateディレクトリのnum.blade.phpを表示する
}
}
これでlocalhost/8000/calculateにアクセスすると
無事表示されました。
#今回の処理の流れまとめ
・ルーティング(routes / web.php)で、「8000/calculateにアクセスするとCalculateControllerというコントローラーのgetCalcに処理をしてもらう」という設定を書く。
・コントローラーではルーティングから処理を依頼されたので、getcalc(){}の中に、処理したい内容を書く。今回は、「calculateディレクトリのnum.blade.phpを表示する」という処理。
・「8000/calculateにアクセスするとnum.blade.phpというビューファイルを表示する」準備が整ったので、表示したい内容を書く(今回は「計算アプリです」という一文のみ)。
・localhost:8000/calculateにアクセス