symfony4のコマンドチートシート
概要
symfony4のよく使うコマンドを整理していく。
基本的にはphp bin/console list (make)
といった感じで、続きを知りたいコマンドをlistの後に打つことで一覧が出るのでこれを使うこと。
随時追加予定。
ルートの確認
php bin/console debug:router
コントローラーの作成
// UserControllerを作成 php bin/console make:controller User
Migrationファイルの削除
$ php bin/console doctrine:migrations:version 20171210142949 --delete
postgreSQLコマンドチートシート
概要
これまでずっとMySQLを使用してきた私がPostgreSQLを使うことになったので、よく使うコマンドのMySQL->PostgreSQL対応表を纏めてみる。
login
psql -U username -h hostname
show databases
\l
use databasename
\c databasename
show tables
\dt
テーブル定義確認
\d table_name
exit
\q
Homesteadのphp.iniを編集する
Homesteadのphp.iniを編集する。 ディストリビューションはUbuntuなので下記手順で更新を行う。
vagrant@homestead:~$ cat /etc/issue Ubuntu 16.04.3 LTS \n \l
1. php.iniの場所を確認する
// 1. phpのバージョンを確認 vagrant@homestead:~$ php -v PHP 7.2.2-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Feb 1 2018 16:01:26) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.2-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies with blackfire v1.18.2~linux-x64-non_zts72, https://blackfire.io, by SensioLabs // 2. etc配下にphpフォルダがあるので使用しているバージョンのフォルダに入る。 vagrant@homestead:~$ cd /etc/php vagrant@homestead:/etc/php$ ls -l total 16 drwxr-xr-x 5 root root 4096 Feb 5 2018 5.6 drwxr-xr-x 5 root root 4096 Feb 5 2018 7.0 drwxr-xr-x 5 root root 4096 Feb 5 2018 7.1 drwxr-xr-x 5 root root 4096 Feb 5 2018 7.2 // 3. このバージョンフォルダの中のfpmというフォルダ内にphp.iniがある。 vagrant@homestead:~$ cd /etc/php/7.2/fpm
2. php.iniのRW権限付与
$ sudo chmod -R ugo+rw php.ini
3. php.ini編集
$ sudo vi php.ini
3. Homesteadを用いたsymfony4環境構築手順(Entity&テーブル作成編)
DBの環境を整えたらMVCのModelとなるものを作成していく。 symfony4では(一般的にもですが)これをEntitiyと呼ぶ。下記の動画を参考にしEntityとテーブル作成を行った。
Symfony 4 : Authentication (Login page)
概要
今回はUserテーブルを作成する。Laravelだとphp artisan make:auth
でかなりしっかりとしたログイン画面が出来る。symfonyはこの辺りが無い?
1. Entityの作成
vagrant@homestead:~/code$ php bin/console make:entity
上記コマンドを入力すると、対話形式でEntityの作成が行われる。
今回は下記のような設定とした。作成されたファイルはscr\Entity\User.php
に配置される。
vagrant@homestead:~/code$ php bin/console make:entity Class name of the entity to create or update (e.g. DeliciousChef): > User created: src/Entity/User.php created: src/Repository/UserRepository.php Entity generated! Now let's add some fields! You can always add more fields later manually or by re-running this command. New property name (press <return> to stop adding fields): > username Field type (enter ? to see all types) [string]: > Field length [255]: > Can this field be null in the database (nullable) (yes/no) [no]: > updated: src/Entity/User.php Add another property? Enter the property name (or press <return> to stop adding fields): > password Field type (enter ? to see all types) [string]: > Field length [255]: > Can this field be null in the database (nullable) (yes/no) [no]: > updated: src/Entity/User.php Add another property? Enter the property name (or press <return> to stop adding fields): > email Field type (enter ? to see all types) [string]: > Field length [255]: > Can this field be null in the database (nullable) (yes/no) [no]: > updated: src/Entity/User.php Add another property? Enter the property name (or press <return> to stop adding fields): > Success! Next: When you're ready, create a migration with make:migration
2. Entityの定義
Entityのファイルを開き、必要なカラムを定義していく。デフォルトではidだけが定義されている。このEntity定義を基にテーブルが作成される。
<?php namespace App\Entity; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Security\Core\User\UserInterface; /** * @ORM\Entity(repositoryClass="App\Repository\UserRepository") */ class User implements UserInterface { /** * @ORM\Id() * @ORM\GeneratedValue() * @ORM\Column(type="integer") */ private $id; /** * @ORM\Column(type="string", length=255, unique=true) */ private $username; ...
3. テーブル作成(マイグレーションの実施)
下記のコマンドでEnity定義を基にしたマイグレーションを実施する。 コマンド後はマイグレーションファイルとテーブルが作成されている。
//マイグレーションファイルの作成 php bin/console doctrine:migrations:diff //テーブルの作成 php bin/console doctrine:migrations:migrate
Gitの使い方(ローカルのmasterを強制的にリモートのmasterに合わせる)
やりたいこと
Git pullしたときにコンフリクトが起き解決したい。 間違いないリモートのマスターブランチを、強制的にローカルに取り込みたいときに使うコマンドです。
$ git fetch origin master $ git reset --hard origin/master
Gitの使い方(コミットの取り消し)
やりたいこと
Gitの取り消し方法を纏めた。 取り消しパターンは下記で十分だと思う。
- 変更の取り消し
- addの取り消し
- commit/pushの取り消し
コマンド紹介
1. 変更の取り消し
$ git checkout .
上記では新規追加ファイルを「変更」として見ていない為、ファイル追加含めた変更を取り消すには下記コマンドを実行する。
$ git clean -df .
2. addの取り消し
$ git reset HEAD .
addだけが取り消され、変更内容が取り消される訳ではないので注意すること。
3-1. commitの取り消し
$ git reset --hard [commit id]
git log
でcommit idを調べてから行うこと。
コミットを取り消しかつ変更内容もろとも削除する場合 --hard
コミット取り消しのみで、手元に変更内容は残す --soft
また直前のコミットを取り消すgit reset --hard HEAD^
も便利。
3-2. pushの取り消し
$ git revert [commit id] $ git push
こちらは取り消しcommitをPushするというイメージ。 参考までに複数のpushを取り消したい場合は下記参照。-nで取り消しcommitを一旦保留し一括でcommit → pushすればよい。
$ git revert -n [commit id 1] $ git revert -n [commit id 2] ... $ git commit $ git push
Gitの使い方(進行中の作業を退避させたい)
Sourcetreeからの脱却を目指し、Gitコマンドを打てるようになりたい。 そんなあなた(いや私です)へユースケースに応じたコマンドをご紹介します。
やりたいこと
現在作業中のコミットしていないブランチの変更を一旦退避させる。 退避後は別のブランチに切り替えて作業ができる。退避した内容は当時の作業ブランチはもちろん、どのブランチにも戻すことができる。
1. 変更の退避
$ git stash
addに関係無くコミットしていない変更を退避させることが出来る。
2. 退避した作業の確認
$ git stash list // ブランチ名やコメントが確認できる stash@{0}: WIP on master: 45ccda2 samplefile added stash@{1}: WIP on develop: 45ccda2 vuejs install
3. 退避した作業を戻す
$ git stash apply stash@{0}
これは現在のブランチに対して行われる。繰り返しになるが、当時のブランチで無くても良い。stash名を指定しない場合は、直近の退避が戻ることになる。
補足
退避した作業を消したいとき
$ git stash drop stash@{0}
退避した作業全てを消したいとき
$ git stash clear