リハビリの集大成として、Laravelを使って実務で使いそうな仕様を含んだWebサイトを実装しようということで、Herotchi_CMSというCMSサイトを実装しました。
作ろうと思った理由
今までプログラミングのリハビリとして4つほどWebサイトを実装してきました。ですが、それらの実装が終わって振り返ってみたときに実務で使うような機能はあまり実装できていないことに気が付きました。そこで今回は実務で使いそうな機能を含んだWebサイトをLaravelで実装しようと思いました。具体的には、以下の仕様を含みます。
- 親のプルダウンによって子のプルダウンの内容が変更される入力フォーム
- 管理画面の実装
- 画像投稿処理
- CSVファイル出力処理
- CSVファイル入力処理
- メール送信処理
開発環境
- Windows11
- WSL2
- Ubuntu22.04
- Laravel10
- MySQL
- Bootstrap5
CMSサイトの仕様
本CMSサイトには以下の機能があります。管理者ではない利用者が閲覧する公開画面のスクリーンショットと共に説明します。
- お知らせ機能
- カテゴリ機能
- 製品情報機能
- メディア機能
- お問い合わせ機能
お知らせ機能
管理画面で登録したお知らせをトップページやお知らせ一覧画面に表示させることができます。タイトルを押下することで詳細な情報にアクセスできる他に、URLを設定することで外部のページへのリンクを貼ることもできます。また、製品情報を登録や更新した場合、そのお知らせも非表示設定で登録されるます。
カテゴリ機能
カテゴリ機能は製品情報をまとめるのに役立ちます。大カテゴリと中カテゴリが親子の関係になっていて、サイト閲覧者はそのカテゴリを元に製品情報を絞ることができます。また、CSVファイル入力に対応しており、カテゴリをまとめて登録することができます。
製品情報機能
製品情報には、大カテゴリ、中カテゴリ、製品名、製品画像、詳細を登録することができます。
メディア機能
メディア機能では、トップページに掲載するカルーセル用の画像と製品情報のピックアップ画像を管理することができます。画像にリンクを設定することができ、お知らせや製品情報に誘導することができます。外部のサイトのURLを設定することも可能です。
お問い合わせ機能
お問い合わせ機能にはメール送信処理が実装されています。お問い合わせが完了した後、お問い合わせ番号とお問い合わせの内容が記載されたメールが入力したメールアドレスに送信されるようになっています。管理画面ではお問い合わせ番号や日時などで検索することができ、CSVファイルとして検索結果をまとめてダウンロードすることが可能です。
このCMSサイトのメリット
このCMSサイトは必要最低限の機能しか実装されていないので、メリットはカスタマイズ性の高さだと思います。例えば、製品情報の入力項目を増やしてより詳しい製品情報を記載するようにしたり、製品情報の画像を複数登録できるようにしてカルーセルで表示させることができます。タグ情報を追加して製品情報と紐づけることで、より便利な製品情報の絞り込み機能を実装することもできます。
改善点
前の章でも述べましたが、最低限の機能しか実装していないので、改善点はたくさんあります。タグ情報を実装して製品情報と紐づける機能は初期の仕様として実装していてもよかったと思っています。また、製品情報の入力項目が少ないので、他のCMSサイトなどを参考にしてどのような項目を追加すれば適切か検討したいです。
感想
実際の実務で使いそうな機能ということで、働いていた時代に担当したCMSサイトを元に仕様を考えて実装しましたが勉強になりました。Laravelは退職してから初めて触ったPHPフレームワークなのですが、他のフレームワークと比較しても実装しやすいと再確認できました。
コメント