新たなプロジェクトを作成して,「一対多」や「多対多」のリレーションシップを使えるようにしよう.
laravelRelationship というプロジェクトを新規に作成する.
[GakuinHana@rin06 Documents]$ pwd ⏎ /home/GakuinHana/Documents [GakuinHana@rin06 Documents]$ cd laravel/ ⏎ [GakuinHana@rin06 laravel]$ ls ⏎ composer.phar [GakuinHana@rin06 laravel]$ php composer.phar create-project --prefer-dist laravel/laravel laravelRelationship ⏎ You are running composer with xdebug enabled. This has a major impact on runtime performance. See https://getcomposer.org/xdebug Installing laravel/laravel (v5.4.30) - Installing laravel/laravel (v5.4.30) Downloading: 100% Created project in laravelRelationship ...(中略)... Generating autoload files > Illuminate\Foundation\ComposerScripts::postUpdate > php artisan optimize Generating optimized class loader The compiled services file has been removed. > php artisan key:generate Application key [base64:zKbvG7T0j9968O/jC6WtYgP8Uvq2yI4dyNpu8XbH+WM=] set successfully. [GakuinHana@rin06 laravel]$
Git の初期設定をしているのであれば,Git でコミットしておく.
[GakuinHana@rin06 laravel]$ cd laravelRelationship ⏎ [GakuinHana@rin06 laravelRelationship]$ ls ⏎ app composer.json database public routes tests artisan composer.lock package.json readme.md server.php vendor bootstrap config phpunit.xml resources storage webpack.mix.js [GakuinHana@rin06 laravelRelationship]$ git init ⏎ Initialized empty Git repository in /home/GakuinHana/Documents/laravel/laravelRelationship/.git/ [GakuinHana@rin06 laravelRelationship]$ git add . ⏎ [GakuinHana@rin06 laravelRelationship]$ git commit -m"initial commit" ⏎ [master (root-commit) 3fa9439] initial commit 81 files changed, 6481 insertions(+) ...(中略)... [GakuinHana@rin06 laravelRelationship]$ git log ⏎ commit 3fa94396620e7b32f5a6ac6e50444c753973b176 Author: Gakuin Hanako <gakuin.hanako@dummy.kobegakuin.ac.jp> Date: Thu Jun 14 13:10:55 2018 +0900 initial commit [GakuinHana@rin06 laravelRelationship]$
なお,プロジェクトの中に保存されている .gitignore は Git の管理に含めないファイルやフォルダの情報を設定するファイルである.つまり,.gitignore に記載されたファイルは Git で無視される.例えば,.env のような環境設定ファイルはデータベースへの接続パスワードなどが記載されることがあるので,Git で管理し,GitHub で公開してしまうとパスワードが漏洩してしまうことになりかねない.また,sqlite のデータベースファイルは database/*.sqlite として保存されるがこれも Git に含めないようにしないと,開発/テスト用データベースの更新がその都度Gitに登録されてしまうことになる.これは database/.gitignore に記載されている.
[GakuinHana@rin06 laravelRelationship]$ ls -a ⏎ . .gitattributes composer.json phpunit.xml server.php .. .gitignore composer.lock public storage .env app config readme.md tests .env.example artisan database resources vendor .git bootstrap package.json routes webpack.mix.js [GakuinHana@rin06 laravelRelationship]$ cat .gitignore ⏎ /node_modules /public/hot /public/storage /storage/*.key /vendor /.idea /.vagrant Homestead.json Homestead.yaml npm-debug.log yarn-error.log .env [GakuinHana@rin06 laravelRelationship]$ cd database ⏎ [GakuinHana@rin06 database]$ ls -a ⏎ . .. .gitignore factories migrations seeds [GakuinHana@rin06 database]$ cat .gitignore ⏎ *.sqlite [GakuinHana@rin06 database]$ cd .. ⏎ [GakuinHana@rin06 laravelRelationship]$
.env ファイルを修正する.DB_CONNECTION
をsqlite
に変更し,DB_HOST
, DB_PORT
, DB_DATABASE
, DB_USERNAME
, DB_PASSWORD
の行を削除するか,先頭に #
を付けてコメントアウトする.
.env (抜粋)
DB_CONNECTION=sqlite
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=homestead
# DB_USERNAME=homestead
# DB_PASSWORD=secret
プロジェクトの設定ファイル config/app.php を編集し,タイムゾーンをAsia/Tokyo
に,言語をja
に変更する.
config/app.php (抜粋)
/*
|--------------------------------------------------------------------------
| Application Timezone
|--------------------------------------------------------------------------
|
| Here you may specify the default timezone for your application, which
| will be used by the PHP date and date-time functions. We have gone
| ahead and set this to a sensible default for you out of the box.
|
*/
'timezone' => 'Asia/Tokyo',
/*
|--------------------------------------------------------------------------
| Application Locale Configuration
|--------------------------------------------------------------------------
|
| The application locale determines the default locale that will be used
| by the translation service provider. You are free to set this value
| to any of the locales which will be supported by the application.
|
*/
'locale' => 'ja',
Sqlite用に空のデータベースファイル database/database.sqlite を作成する.
[GakuinHana@rin06 laravelRelationship]$ ls ⏎ app composer.json database public routes tests artisan composer.lock package.json readme.md server.php vendor bootstrap config phpunit.xml resources storage webpack.mix.js [GakuinHana@rin06 laravelRelationship]$ cd database ⏎ [GakuinHana@rin06 database]$ ls ⏎ factories migrations seeds [GakuinHana@rin06 database]$ touch database.sqlite ⏎ [GakuinHana@rin06 database]$ ls ⏎ database.sqlite factories migrations seeds [GakuinHana@rin06 database]$ cd .. ⏎ [GakuinHana@rin06 laravelRelationship]$
Webサーバを起動して,Webブラウザからプロジェクトのトップページにアクセスする.このとき,ポート番号は他の学生と重複しないように8000から8400の番号を指定する.例えば,8000番台の下3桁に自分の学籍番号の下3桁を指定すると良い.
[GakuinHana@rin06 laravelRelationship]$ php artisan serve --host=rin06.ba.kobegakuin.ac.jp --port 8385 ⏎ Laravel development server started: <http://rin06.ba.kobegakuin.ac.jp:8385>
Webブラウザのアドレスバーにhttp://rin06.ba.kobegakuin.ac.jp:8385
を入力すれば,次のような画面が出るはず.
Webサーバを停止するにはCtrl + C を押す.
[GakuinHana@rin06 laravelRelationship]$ php artisan serve --host=rin06.ba.kobegakuin.ac.jp --port 8385 ⏎ Laravel development server started: <http://rin06.ba.kobegakuin.ac.jp:8385> [Thu Jun 14 13:34:46 2018] 10.106.134.128:58426 [200]: /favicon.ico ^C [GakuinHana@rin06 laravelRelationship]$
.env と config/app.php を修正したが .env は.gitignore に指定されているファイルであるので,git status
で修正が確認できるのは config/app.php だけである.この段階で config/app.php の変更を Git でコミットしておく.
[GakuinHana@rin06 laravelRelationship]$ git status ⏎ # On branch master # Changes not staged for commit: # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: config/app.php # [GakuinHana@rin06 laravelRelationship]$ git add config/app.php ⏎ [GakuinHana@rin06 laravelRelationship]$ git commit -m"config/app.phpの設定" ⏎ [master e991b11] config/app.phpの設定 1 file changed, 2 insertions(+), 2 deletions(-) mode change 100644 => 100755 config/app.php [GakuinHana@rin06 laravelRelationship]$ git log --oneline ⏎ e991b11 config/app.phpの設定 3fa9439 initial commit [GakuinHana@rin06 laravelRelationship]$