趣味でプログラミングを勉強しています。
古本販売サイトを作成したいと思って勉強を始めたのですが、コワーキングスペースにいるプログラミングに詳しいTさんに「スクラッチ開発するより、フレームワークを使ってサイトを作成するほうがいいよ」とアドバイスをいただき、おすすめPHPフレームワーク「Laravel」を今回記事にしてみました!! (^-^)
PHPフレームワーク「Laravel」
- スクラッチ開発した場合の問題点
- セキュリティの問題
- メンテナンスの問題
- 拡張性の問題
→スクラッチ開発する場合、セキュリティやメンテナンス性、拡張性などは全て自分で実現しないといけない
フレームワークとライブラリ比較
-
フレームワーク
- 機能 + 機能を使う仕組み
- セキュリティやメンテナンス性、拡張性が考慮されたシステム
- 開発で多用される様々な機能や仕組みを持ったソフトウェア
-
ライブラリ
- 開発に役立つ便利な機能を備えたソフトウェア
Laravelって?
2012年リリース
特徴
- Model-View-Controllerフレームワーク、各機能のパーツを作ることで開発を行う
- 低い学習コスト
- 非常にわかりやすいコード
- 土台にSymphony ※MVCフレームワーク 2007年リリース
- インストールやソフトウェアのインストールなどは、すべて「Composer」というパッケージ管理ツールでOK
- Webサーバー機能内臓(PHP5.4以降ビルトインサーバー機能を利用)
- データベースアクセスにORM(Object-Relational-Mapping)技術を導入
- 画面の表示は「Blade」と呼ばれるテンプレートエンジンを搭載
Laravelスタート準備
「Composer」のパスを通す
composer global require "laravel/installer=1.1"
Laravelを使うには
プロジェクト作成コマンド
laravel new プロジェクト名
サーバー起動コマンド
php artisan serve
動作確認
http://localhost:8000/
####ルーティングとコントローラー
#####ルーティング
指定アドレスにアクセスしたとき、その処理を呼び出して実行管理
Laravelファイル
.env / 動作環境に関する設定情報
.gitigonore / git利用情報
artisan / artisanコマンド
composer.json / composer利用に関するもの
package.json / JavaScriptのパッケージツール(npm)で利用するもの
phpunit.xml / PHPUnitに関するもの
server.php / サーバ起動時に利用されるプログラム
webpack.mix.js / webpackというJavaScriptのパッケージツールで利用するもの
yarn.lock / yarnというパッケージマネージャが使うファイル(自動生成)
Laravelフォルダ
app / アプリケーションプログラム (よく使う)
bootstrap / 実行時に行われる処理
config / 設定
database / データベース関連 (まぁまぁ使う)
public / 公開フォルダ
resources / テンプレートファイルなどのリソース (よく使う)
※「views」フォルダあり、welcome.blade.phpがある
routes / ルート情報 (よく使う)
storage / ログファイルなど
tests / ユニットテスト関連のファイル
vender / フレームワーク本体
#####「app」フォルダについて
アプリケーション部分のプログラム を配置
vender / Laravelフレームワーク部分
Console / コンソールプログラムを配置する
Exception / 例外処理を配置
Http / Webアプリケーションにアクセスした時の処理(重要)
Providors / プロバイダと呼ばれるプログラムを配置
User.php / ユーザー認証に関するスクリプト
#####ルーティングと「routes」フォルダ
ルーティングは、アクセスを設定している情報(ルート)を管理している機能
→特定のアドレスにアクセスすると、それに対応する処理が呼び出される。関連付けをおこなっているのがルーティング
#####「routes」フォルダについて
api.php / APIのルーティング プログラム内から利用するAPIの機能を特定のアドレスに割り当てるのに利用
channels.php / ブロードキャストチャンネルのためのルーティング
console.php / コンソールプログラムのためのルーティング
web.php / Webページにアクセスするためのルーティング
//トップページにアクセスした時
Route::get('/', function () {
return view('welcome');
});
#####ルート情報の基本(GETアクセス)
Route::get(アドレス, 関数など);
第1引数 アドレス
第2引数 処理(関数,コントローラー)
※関数ではviewを使うことで「views」フォルダのテンプレートを利用できる
#####ルートパラメーターの利用
Route::get('/〇〇/{パラメーター}', function($受け取る引数) {...});
第1引数 パラメータに指定した部分がパラメータとして取り出せる
第2引数 パラメータの値を受け取る変数
#####コントローラー
- コントローラーの作成は、artisan(アーティザン)コマンドで作成する
php artisan make:controller コントローラ名
- コントローラーに用意される処理を「アクション」と呼び、メソッドの形で用意される
- アクションメソッド 引数を持たないメソッドと呼ぶ
例)index
#####ルート情報の用意
- 「routes」フォルダのweb.phpに記載する
Route::get(アクセス先, 'コントローラー名@アクション名')
第1引数にアクセスされると、第2引数に指定されたコントローラーが実行される