音楽サークル用管理システム制作②環境構築とボイラーテンプレート制作

はじめに

制作に取り掛かれるようとりあえず環境構築と土台にできそうな教材を用いてボイラーテンプレートの作成をしていきます。

音楽サークル用管理システム制作①はじめに

環境構築

デプロイ先がXserverになりそうなので、対応バージョンを確認。

参考リンク

参考リンク

PHP・・・7.4

MySQLのバージョン・・・5.7

MacでDocker×Laravel×phpMyAdminの環境構築(not laradock)

☝️以前試した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"

ボイラープレートの作成(教材範囲内の内容)

参考:Laravel6とAWSで作るブックレビューサイト

復讐も兼ねてまずは上記を参考にまずはボイラーテンプレートを作ります。
(設計せずに作り出すという恐ろしさ。。。笑)

※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: グローバル空間 – Manual

名前の先頭に \ をつけると、 名前空間の内部からであってもグローバル空間の名前を指定することができます。

これが有効な場面については、グローバル空間のサンプルコードを見てください。
これを見ても想像がつかない場合は、さらに
PHPのオブジェクト指向入門 | オブジェクト指向PHP.NET
を読んでください。

引用元:PHPのクラスをインスタンス化するときのバックスラッシュの意味

✅インデント

PHPはスペース4がよく使われる??

おわりに

ざっくりですが環境構築とボイラーテンプレートの作成をしました。

設計はこれからやっていきます。笑

備忘録

✅Docker起動するとファンがうるさい

参考:[Mac] DockerでCPU使用率が異常なときの対処法

CPUsが6だったので4に下げた。逆に低めだったメモリーは上げた(2GBから4GB)。

コメントを残す