【PHP7】コンストラクタインジェクションで差し替えたいときだけ差し替えれる書き方
忘れるわりに重要なのでメモ!
private $hogeService; public function __construct(HogeService $hogeService = null) { $this->hogeService = $hogeService ?? new HogeService(); }
参考サイト
あるコミットの変更履歴のあるファイル一覧だけを取得したい
下記コマンドでいけます
コミットid:hogehogeの変更履歴のファイル一覧が欲しい場合
git diff --stat --name-only hogehoge\^..hogehoge
zshだとキャレットをエスケープしないとうまく動きませんでした
参考記事
docker imagesをリポジトリ名でフィルタリングして一括削除したいとき
docker images | grep hogehoge | awk '{ print $3 }' | xargs docker rmi
hogehogeの部分をフィルタリングしたい文字列に置き換えると一括削除できます
PHPStormでphpファイルがphpファイルとして認識されないとき
LaradockでのLaravelローカル開発環境構築
自分用の備忘録です
Environment
Tools | Version |
---|---|
Laravel | 5.5 |
Laradock | 5.9.0 |
MySQL | 8.0 |
Project name : myapp
Laradock directory name : laradock-myapp
laradockの場合ディレクトリ名がそのままdockerのimageのprefixになるので、ディレクトリ名はlaradock-{プロジェクト名}としました。 また、プロジェクトの配布のしやすさを考慮して、プロジェクトのルートディレクトリにgit submoduleとしてlaradock-myappを配置しました
1. 設定ファイルの編集
myapp/.env
DB_HOST=mysql DB_PORT=3306 DB_DATABASE=myapp DB_USERNAME=laradock DB_PASSWORD=laradock
myapp/laradock-myapp/.env
DATA_SAVE_PATH=.laradock/data MYSQL_VERSION=8.0 MYSQL_DATABASE=myapp MYSQL_USER=laradock MYSQL_PASSWORD=laradock MYSQL_PORT=3306
laradock-myapp/.envのなかで定義したMYSQL_DATABASEの名前がそのままmysqlコンテナの中のDB名になります。
3. 起動!
コンテナを起動します
docker-compose up -d nginx mysql
ここまでくればブラウザでlocalhostにアクセスするとlaravelのサイトにアクセスできるようになってると思います。
4. マイグレーションファイルの実行
docker exec -it laradock-myapp_workspace_1 /bin/bash php artisan migrate
5. 使った後はコンテナを停止させておきましょう
プロジェクトごとにLaradockを持ってる場合は1つずつしかコンテナを起動できません。(ポートの設定を変えればできるかも) なれるまでは利用し終わったコンテナは下記コマンドで停止させておきましょう。
docker-compose kill
Laravelの外部キー制約ではまった
Laravelでmigrationファイルをかくとき外部キー制約の設定ではまったのでメモ
まちがい
$table->integer('user_id')->nullable(false);
$table->foreign('user_id')->references('id')->on('users');
せいかい
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users');
外部キー制約を貼るカラムにnullable(false)
を設定するとエラーでました。
公式リファレンスをもとにunsigned()を設定して再度実行するとできました!
以上です!笑