Laravelを使ってREST APIを作ってみるお話 (インストール編)

  • このエントリーをはてなブックマークに追加

今回のゴール

今回はComposerからLaravelをインストールし、webサーバーで表示され、データベースの構築が行えるまで。

(REST APIなので本当はwebサーバーで表示される必要はないですが…)

Laravelのインストール

以前のエントリーでPHPとLaravelをWindowsにインストールしているので、そこからLaravelをインストール作業を来ないます。

インストール前に

Windows版のPHPを入れたのですが、php.iniの設定を一部変更する必要があります。

これを記述しておいてください
また、実際のサーバーとWindowsのPHPのバージョンはできるだけ合わせておいた方が安全です。

インストールを行う

インストールしたい場所でターミナルを開き

と入力すると自動的にlaravel-testというフォルダを生成され、Laravelをインストールしてくれます。

その後は[.env]ファイルが生成されていることを確認し、作成されたフォルダに入り、

をターミナル上から入力してください。

もし[.env]ファイルがない場合は[.env.exsample]を[.env]にコピーしてください。

フォルダのパーミッションを確認する

「/storage/logs」「/storage/framework/」内の仮想フォルダを確認し、apacheやnginxが書き込める権限に変更します。

webサーバーにアップし、確認する

https://xxxxxxxxx.xxxx/laravel-test/public/


上記の画面が表示されればOKです。お疲れ様でした。

 

データベースの設定を行う。

Laravelのマイグレーションを使用してテーブルなどを設定します。

環境設定にデータベース接続情報を記述する

[.env]にある項目にデータベース接続情報を記述する

【注意】基本的に.envはサーバーに保管するのでGitやSubversionなどのファイル管理に含むかどうか気をつけましょう

元々のマイグレーションファイルは不要なので削除します。

マイグレーションファイルの作成

「php artisan make:migration create_users_table」と入力すると「database/migrations」に新たにマイグレーションファイルが作成されます。

マイグレーションファイルの編集

up()関数でテーブルのクリエイト、down()関数でテーブルの削除となるので、テーブルのフィールドを変更します。

に変更しました。
なんとなく感覚でわかるかと思いますが、string = varchar型で、timestampsと記述すると自動的に[create_at][updated_at]をtimesampで作成してくれます。
これをテーブルごとに作成し、描きのコマンドで実行すると

という感じになります。
記述が間違っているとエラーになりますのでご注意ください。

phpMyAdminで見てみると

なんと簡単に作成できました。

フィールドを追加する場合

運用している上でフィールドを追加したい場合がありますが、その場合もマイグレーションで作成できます。

ファイル名はわかりやすくしています。
すると先ほどと同様にマイグレーションファイルが生成されるので、以下のように編集を行います。

up()関数でnameの後ろにemailを追加しています。
ちなみにdown()関数にはemailを削除する記述をしています。

これを同様に実行すると

となり、


nameが追加されます。

ちなみに追加したものを戻したい場合は

と「:rollback」をつけることで作成したファイルのdown()関数を実行します。
少しややこしいですが

  1. 2022_03_11_081637_create_users_table
  2. 2022_03_11_084714_add_users_table_add_coloumns
の順でマイグレーションを行った場合、ロールバックを行うと、まず「2」のロールバックが行われ、次にrollbackを行うと1のロールバックが行われます。

例の場合はテーブル作成→カラム追加となるので、ロールバックを行うと「カラム削除→テーブル削除」となります。(もちろんdown()関数にきちんと処理を書いている必要がありますが)

 

最後に

本当はxamppなどの説明を行った方がよかったかなと思いますが、とりあえずComposerからインストールして色々とできるところまで進めました。

テーブル設計は本当に楽にできるなと思う反面、レンタルサーバーなどでどこまで自由に作れるのかが少し心配な側面があります。

次回はいよいよREST APIとして実装できればいいなと思います。

 

執筆者:松本[ エンジニア ]

関連記事

プログラミング

【PHP】PHPでExcelファイルを操作するお話 その2

目次1 前回は・・・2 考え方3 保存したフォーマットにデータを入れる4 ExcelからPDFへ変換する4.1 mpdfで変換する4.2 TCPDFで変換する4.2.1 IPAexフォントのインストール5 結局何がいいの? 前回は・・・ 前回はPHPでExcelファイルを操作する方法をまとめました。 基本的にはCSV出力や一括登録の代替案としてまとめましたが、PhpSpreadsheetを使うことでExcelで作成した書類のフォーマットにPHPでデータを入力してPDFで出力す […]

プログラミング

【PHP】PHPでExcelファイルを操作するお話 その1

目次1 こういうことってないですか?2 インストール方法3 PHPでライブラリの呼び出し方4 Excelファイルのエクスポート方法4.1 ちなみに・・・5 Excelファイルのインポート方法6 これを組み合わせると??? こういうことってないですか? webでの管理システムを設計するときに「CSVでインポートやエクスポート機能を付けてよ」って言われる事があります。 インポートに関しては一括登録や一括削除や更新など割とリスクが大きいのですが、エクスポートはあったりします。 CS […]

スマホアプリ

【Android】スプラッシュスクリーンを設定するお話

スマホアプリを作る上で欠かせない・・・訳ではないですが、アプリの構成に必要なのはスプラッシュスクリーン(以下スプラッシュ画面)ですよね 目次1 そもそもスプラッシュ画面とは?2 Androidアプリで実装する場合(今まで)3 SplashScreen API登場3.1 スプラッシュ画面用のActivityを用意する3.2 themes.xmlにテーマを記述する そもそもスプラッシュ画面とは? スマホアプリにかかわらず、ほとんどのアプリやプログラムを起動した際に一瞬表示される画 […]

株式会社8bit (エイトビット)

東京都目黒区でWebサイト制作、Webシステム開発などを行っております。
コーポレートサイトやWebサービスの企画・提案を得意としており、自社での経験を元にアイデアをカタチにするお手伝いをさせていただいております。

Web制作に関するご相談はお気軽にどうぞ

弊社に制作をご依頼いただく際の費用感をご確認いただける、
見積りシミュレーションをご用意いたしました。