Fippiyのプログラム学習内容アウトプットBlog

日々の学習内容をアウトプットして振り返りを実施する。

Laravel開発、ISBNレコードを複数登録する【1】ビューを作成する

ISBNコードを利用して簡単に書籍情報を登録できるようにしていました。

しかし、1件のみ毎回登録する…といったパターンしか行えない状態なので、まとめて追加できるようにしてみました。

  • 最終目的
  • 今回の目的
    • なぜやるか
    • やりたいこと
    • やったこと
  • 実施内容
    • 入力フォーム作成する
      • はじめにフォームを改変していた
      • 新たな入力フォームを作成する
    • 登録結果表示方法を検討する
      • 既存の結果表示を確認する
      • 新たな結果表示画面を用意する

最終目的

ISBNコードを10件まで1フォームから入力して登録できるようにする

今回の目的

複数件コード登録のビュー表示を作成する

なぜやるか

  • 複数ISBNコード対応専用フォームから入力することで、まとめて処理できるアクションに引き渡して処理するため

やりたいこと

  • 入力値を受け付ける枠を増やして表示させたい
  • 入力結果を一覧表示させたい

やったこと

  • 新たな入力フォームを作成する
  • 新たなフォームに対応したルーティング・メニュー設定を追加する
  • 処理結果一覧出力をする
続きを読む

Laravel開発、機能追加してみたい内容をまとめてみる

いままでの工程で、基本的な動作とテストを実施してきました。

テストについては画像投稿に対してのテストが現状ではあまり理解できなかったこともあり後回しとしました、ずっと詰まっていても何も進まないので、そのうちやります…。

 

他のアプリも作ってポートフォリオを充実させることも考えましたが、機能として追加したいこともいくつか有るので実施したいところです。

 

実施してみたいと思っている内容をまずは書き出してみます。

ISBNによる本の情報追加について

  • 複数まとめて登録させたい
  • バーコードを読み取って登録させたい

書籍情報一覧から

  • ページネーション機能をつけて、1ページ表示上限を設ける
  • ソート機能を付ける(タイトル名順、新規登録順など)
  • 所持書籍が分かるようになる
  • 未所持書籍からまとめて選択して所持化する
  • 所持書籍をまとめて選択して、未所持化する

書籍情報編集

  • タイトルと詳細のみ編集する仕様なので、他の情報も扱う
  • 編集のレイアウトを変更する

ユーザー情報

  • メールアドレス認証中の情報が無期限になっているので、期限を設ける
  • ユーザー削除時の再確認フェーズを導入する

また、内容によってはJavaScriptによる変更等もできればと考えています。

どれから実施するかは決めていませんが、出来る事からやりたいと思います。 

本番環境でPropertyレコード登録ができていなかった問題を解決する【2】バリデーション設定方法を変更する

開発環境へのPostgreSQL実装ができたので、問題となっていたバリデーションエラーの状態を確認し解決していきます。

  • 今回の目的
    • なぜやるか
    • やりたいこと
    • やったこと
  • 実施内容
    • 開発環境で問題を確認する
      • 現状の問題点
      • 開発環境で検証する
    • DB登録内容を確認する 
      • GUIツールPSequelを導入する
    • DBエラーの原因を探る
      • 現状の設定を確認する
      • ルール設定を変更する
    • バリデーション設定方法を見直す
      • 変更コード
      • 判定方法を見直す
      • 編集時のバリデーションを見直す

今回の目的

本番環境のみで発生していたエラーを解決し、開発環境毎に特異な状況とならないようにする

なぜやるか

状況によって都度設定変更など紛らわしい状況をなくすため

やりたいこと

  • 開発環境と本番環境をより近い環境として、問題を解決する
  • 設定方法を見直し、エラーがおこらない設定にする。

やったこと

  • 開発環境で現状の問題を確認する
  • PSequelを導入する
  • バリデーションルールを変更する
  • 新規登録時のバリデーション判定方法を変更する
  • 編集時の処理を変更し、バリデーション使用を止める
続きを読む

本番環境でPropertyレコード登録ができていなかった問題を解決する【1】開発と本番環境をあわせる

ここまで基本的な本情報の登録及びテストを実装してきました。

開発環境ではひととおりの問題はクリアしてきました。一部後回しにしている内容はありますが…。

 

しかし、動作確認しているなかで所有書籍の登録及び編集について、デプロイ環境でうまく動作していないことが分かりました。

開発環境と本番環境での大きな違いの一つに、使用しているDBが異なるという点があります。

開発環境ではMySQL、本番環境はPostgreSQLを使用しています。

原因調査の為にDBを一端そろえて原因調査をしてみることにしました。

こちらの対処を実施していきます。

  • 今回の目的
    • なぜやるか
    • やりたいこと
    • やったこと
  • 実施内容
    • 所有書籍登録ができていないことに気づく
      • 開発で出来ていたが、実は動いてなかった
      • 暫定対処によって一端動作するようにした
      • テスト時に暫定対処ではエラーとして残る
    • 開発環境にPostgreSQLを導入する
      • 本番環境設定を細かく合わせるのは大変
      • 開発環境にPostgreSQLを導入する  
      • PostgreSQLサーバを開発環境で起動する
      • PostgreSQLでDBを作成する
      • DB作成確認
    • LaravelでPostgreSQLを扱う
      • 環境設定を実施する
      • 開発環境で動作することを確認する 

今回の目的

デプロイ環境での動作失敗問題を解決する為、開発と本番環境をより近い物にするために、開発環境にPostgreSQLを導入する。

なぜやるか

環境をそろえることで、環境差異による問題点を解決するため

やりたいこと

開発環境にPostgreSQLを導入する

PostgreSQLのDBを作成する

LaravelでPostgreSQLを使える様にする

やったこと

一時対処をする

開発環境にPostgreSQLを導入する

LaravelでPostgreSQLを扱えるようにする

続きを読む

Laravel開発、propertyテーブルをテストする【6】削除エラーテストを実装する

propertyテーブルが関係するテストを実装しています。

編集エラーテストの前にバリデーション未設定について解決を行いましたので、いよいよ編集エラー時のテストを実施していきます。

  • 今回の目的
    • なぜやるか
    • やりたいこと
    • やったこと
  • 実施内容
    • 所有書籍情報削除のコードを見直す
    • ユーザに関係なく削除できてしまうことを解決させる
  • 削除時のエラーテストを実装する
    • 未登録idを削除する
    •  他人の所有書籍を削除する
    • 他人の所有書籍が表示されないことを確認する

今回の目的

Propertyテーブルに関連する設定で、想定されるエラーに対しての動作が正常にできていることを確認する

なぜやるか

バリデーションなどエラーに対しての処理が正常に行えている担保をとるため

やりたいこと

  • 想定されるエラーに対してのエラー表示がされていることを確認する
  • リダイレクト処理が正常にできていることを確認する

やったこと

  • 本人であることを確認した上で所有書籍情報を削除できるようにする
  • 未登録レコードを削除するテストをする
  • 他人の所有書籍が削除できないことをテストする
続きを読む