はじめに
制作に取り掛かれるようとりあえず環境構築と土台にできそうな教材を用いてボイラーテンプレートの作成をしていきます。
環境構築
デプロイ先がXserverになりそうなので、対応バージョンを確認。
PHP・・・7.4
MySQLのバージョン・・・5.7
☝️以前試したLaravel×Docker環境のバージョンを変更して使えるか試してみます。
プロジェクト作成
$ mkdir circle-project $ git clone git@github.com:ucan-lab/docker-laravel.git
バージョン変更
mysql/Dockerfile
FROM mysql:5.7
mysql/my.cnf編集
collation_server = utf8mb4_bin
MySQLのポート変更
docker-compose.yml
db: build: ./infra/docker/mysql ports: - 4306:3306
コンテナ生成
// makefileを編集してLaravelのバージョンを6にする(※やり方は上記記事記載) $ make create-project
http://localhost/にアクセス

頻出makeコマンド
$ make up // docker起動 $ make app // appコンテナに入る(laravel) $ make web // webコンテナに入る $ make db // dbコンテナに入る $ make sql // dbコンテナのMySQLに接続 Server version: 5.7.31-log MySQL Community Server (GPL) $ make stop // docker停止
git管理する
$ cd backend $ git init $ git add . $ git commit -m"default"
ボイラープレートの作成(教材範囲内の内容)
復讐も兼ねてまずは上記を参考にまずはボイラーテンプレートを作ります。
(設計せずに作り出すという恐ろしさ。。。笑)
※CSSをBootStrapで依存していたり、それを考慮したCSSの記述が多く全てを把握しながら開発するのは難しい。拡張がしにくいと感じたので、一通り作ったらごっそりCSS周りは削ぎ落とす予定。
※以下、自分が見返せるように残しておきたいと思った部分のみ書いています。
ブランチは以下で開発する
$ git checkout -b feature/boilerplate
laravel/ui(ログイン機能,Bootstrap)とReactの導入
$ composer require laravel/ui "^1.2" $ php artisan ui react --auth $ npm install && npm run dev // ローカルから実施 $ npm run watch // 以降自動コンパイルし
※Bootstrapはデフォで適用でき、public/css/app.cssで定義されている。
画像格納用ディレクトリの作成
$ mkdir public/images
とりあえず仮トップページ&ヘッダーを作って以下の感じ。

思いのほかセッションメッセージが簡単に実装できて驚き。

シンボリックリンクの作成
$ php artisan storage:link
☝️publicディレクトリのリンクからstorageディレクトリを参照する。
$ git add . $ git commit -m"ボイラープレート①"
躓いた点/備忘録
✅MySQLのバージョンが5.7にできない
確認
$ docker-compose up db_1 | 2020-10-11 23:26:50+00:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config db_1 | command was: mysqld --verbose --help db_1 | 2020-10-11T23:26:50.422440-00:00 0 [ERROR] Unknown collation: 'utf8mb4_0900_ai_ci' db_1 | 2020-10-11T23:26:50.423757-00:00 0 [ERROR] Aborting
「utf8mb4_0900_ai_ci」で検索
my.cnfで発見
[mysqld] character_set_server = utf8mb4 collation_server = utf8mb4_0900_ai_ci
参考:MySQL 8 のデフォルト文字セット系をすべて utf8mb4 にする cnf の書き方メモ
MySQL 8.0.1 以降では collation-server のデフォルト値は utf8mb4_0900_ai_ci
以下のように編集
collation_server = utf8mb4_bin
再構築
$ make remake
✅インスタンスの前のバックスラッシュ
名前の先頭に \ をつけると、 名前空間の内部からであってもグローバル空間の名前を指定することができます。
これが有効な場面については、グローバル空間のサンプルコードを見てください。
これを見ても想像がつかない場合は、さらに
PHPのオブジェクト指向入門 | オブジェクト指向PHP.NET
を読んでください。
✅インデント
PHPはスペース4がよく使われる??
おわりに
ざっくりですが環境構築とボイラーテンプレートの作成をしました。
設計はこれからやっていきます。笑
備忘録
✅Docker起動するとファンがうるさい
参考:[Mac] DockerでCPU使用率が異常なときの対処法
CPUsが6だったので4に下げた。逆に低めだったメモリーは上げた(2GBから4GB)。
コメントを残す