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として実装できればいいなと思います。

 

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

関連記事

プログラミング

【phpdotenv】PHPで環境変数を取り扱うお話

PHPでサーバーの環境ごとに設定ファイルを用意する場合、config.phpなどのファイルにデータベースの接続情報やAPIのキーなどをdefineで登録すると思います。 これは昔からある一般的なやり方ですが、例えば「ローカル環境やテスト環境と本番環境で情報を出し分けたい」「GitHubやSubversionなどに接続情報を管理されたくない」ということがあるかと思います。 Linuxの場合は「.env」でユーザーごとの情報をあらかじめ設定することが可能ですが、PHPだとデフォル […]

Webサービス

【CAPTCHA系】reCAPTCHAの代替サービスを紹介するお話

みなさん、reCAPTCHAを使ってますか? CAPTCHAと呼ばれる機能は問い合わせフォームやログインフォームなどいわゆるbot系対策として有効で、その中でもreCAPTCHAは無料かつ簡単に導入できるたため、様々な場所で使われてます。 目次1 2024年4月から実質有料化?2 他にないのだろうか?3 アカウントを作る4 PHPでの実装5 最後に 2024年4月から実質有料化? しかし、2024年4月から今まで100万リクエストまで無料だったのが、1アカウント合計1万リクエ […]

Webサイト制作

Webアクセシビリティの基本を学ぼう!

近年Webサイト制作時に求められる『Webアクセシビリティ』。 正直なんだかよくわからない、ややこしそうだなあと思う方も多いと思います。 自分も勉強中ではありますが、今回は対応しやすそうな内容をなるべくわかりやすくまとめてみました。 一緒にWebアクセシビリティについて学んでいきましょう。 目次1 そもそもWebアクセシビリティってなに?2 基本的な対応内容2.1 色のコントラストをはっきりさせよう2.2 文字サイズを変更できるようにしよう2.3 できるだけテキストベースを心 […]

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

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

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

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