バージョンを決める。
基本PHPに合わせるが、PHP7以上でないとな感じ(Laravel5.5以上で使いたい)
PHP7.0だと最新は使えないが、現在最終のLTS(Long-term Support)の5.5が使えるのでそこを使う。
希望としてPHP7.1以上で最新を使っていきたい気もする。
PHP7.0 > 7.2であまり大きな変化は無いようだけど、HTMLメール作成でエラーがでて使えないことがあった(原因がプログラムなのかフレームワークなのかは調べてない)
Laravelのインストール
composerでサクッと対象バージョン入れる
デプロイ/サーバー環境セットアップ
- ステージング/プロダクションのデプロイ設定(いつもはrsync)
- パーミッションも
//グループの場合によって 770とか
$ chmod -R 777 ./storage
$ chmod -R 777 ./bootstrap/cache
-
.envの設定(ローカル/リモート)
APP_NAMEとか、APP_ENVとか、DBの設定とか -
config/app.php設定
//日本化
'timezone' => 'Asia/Tokyo',
'locale' => 'ja',
'fallback_locale' => 'ja',
//ログ設定(config/app.php) ログをdailyに
'log' => env('APP_LOG', 'daily'),
'log_level' => env('APP_LOG_LEVEL', 'debug'),
'log_max_files' => '90',
- app/Providers/AppServiceProvider.php
//Slackへ流すエラーログなど
public function boot()
{
//ログ設定
$token = env('SLACK_API_KEY');
$channel = env('SLACK_API_CHANNEL');
//Error以上はSlackに流す
Log::listen(function ($event) use ($token) {
$monolog = Log::getMonolog();
$handlers = $monolog->getHandlers();
$slackHandler = new SlackHandler(
$token,
$channel,
env('APP_NAME'),
'log',
false,
Logger::ERROR,
false,
true,
true);
array_push($handlers,$slackHandler);
$monolog->setHandlers($handlers);
});
}
- 一旦設定が終わったら簡単に動作するかを見る。
リポジトリ設定
リモートを置く/またはローカルのみ
モデル関連
artisanでモデル/コントローラーをすべて作成。
$ php artisan make:model Client -r --controller
カスタムバリデーション
パッケージ類
//インストール
$ composer require "laravelcollective/html":"^5.5.0" // 今回はlaravel5.5に合わせて5.5.0を指定
$ composer require monolog/monolog
$ composer require spatie/laravel-backup
$ composer require intervention/image
// config/app.phpに追記
//providers
Intervention\Image\ImageServiceProvider::class,
Collective\Html\HtmlServiceProvider::class,
Spatie\Backup\BackupServiceProvider::class,
//alias
'Image' => Intervention\Image\Facades\Image::class,
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
バックアップの設定
//バックアップ設定ファイルを生成
$ php artisan vendor:publish --provider="Spatie\Backup\BackupServiceProvider"
→コピーしてと言われるのコピー
$ cp ./vendor/spatie/laravel-backup/config/backup.php ./config/backup.php
// バックアップ設定ファイル(config/backup.php)を編集→こちらは必要に応じて
'to' => env('MAIL_SYSTEM_ADMIN') とか。
//バックアップのテスト
$ php artisan backup:run --only-db //DBのみ
→storage/app/Ryunavi/に保存される。
→通知メール設定していたら送信される(.envのメールの設定をたまに忘れる)
ミドルウェア関連
//ミドルウェア作成
$ php artisan make:middleware MyApp
// app/Http/Kernal.phpに追加
protected $routeMiddleware = [
'myapp' => \App\Http\Middleware\MyApp::class,
];
Auth関連
たとえば user,admin,clientがある場合。
//config/auth.phpに追記、guardsとproviders
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
'user' => [
'driver' => 'session',
'provider' => 'users',
],
'client' => [
'driver' => 'session',
'provider' => 'clients',
],
'admin' => [
'driver' => 'session',
'provider' => 'admins',
],
],
------------------------
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'clients' => [
'driver' => 'eloquent',
'model' => App\Client::class,
],
'admins' => [
'driver' => 'eloquent',
'model' => App\Admin::class,
],
Helper設定
独自ヘルパ関数などをまとめたファイル読み込み
//composer.jsonのautoloadにfiles追記読み込むファイルHelper.phpを追加して
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/"
},
"files": [
"app/Helper.php"
]
},
//autoloadをダンプ →読み込まれるようになる
$ composer dumpautoload
//app/Helper.phpに独自ヘルパ関数などを定義していく。
if (!function_exists('mb_trim')) {
function mb_trim($str)
{
return trim(mb_convert_kana($str, "s"));
}
}
if (!function_exists('h')) {
function h($str)
{
return htmlspecialchars($str, ENT_COMPAT);
}
}
if (!function_exists('h_attr')) {
function h_attr($str)
{
return htmlspecialchars($str, ENT_QUOTES);
}
}
Route設定
prefixなど設定
コメントを残す