ここではシンプルな お菓子屋さん のWEBシステムの管理者機能を開発します。具体的には次の4つの機能を順に開発していきます。
画面一覧
これから以下の3つの画面を作成してきます。
SWEETS一覧画面
SWEETS作成画面
SWEETS更新画面
課題の準備
Cloud9 の /home/ec2-user/environment
フォルダ上に以下のフォルダとファイルを作成します。
sweets_admin
app
sweets_admin_list.php
※課題1 で作成sweets_admin_store.php
※課題2 で作成sweets_admin_create.php
※課題2 で作成sweets_admin_edit.php
※課題3 で作成sweets_admin_update.php
※課題3 で作成sweets_admin_destroy.php
※課題4 で作成
data
sweets.csv
libs
functions.php
ここでは sweets_admin
フォルダを作成して、その内部に app
、 data
、 libs
3つのフォルダを作成します。
以降は
sweets.csv
ファイルfunctions.php
ファイルの2つを準備します。
sweets.csv
sweets.csv
ファイルはお菓子の一覧情報を管理します。1件のお菓子の情報は次の3つのデータで構成されます。
- ID(id)
- 名前(name)
- 価格(price)
1,Biscuit,200
2,Candy,100
3,Chocolate,300
上記の内容をコピーして
sweets.csv
ファイルをdata
フォルダに作成してください。また最終行に改行があるように保存してください。以下のスクリーンショットのように4行目が表示されるようにします。
functions.php
functions.php
ファイルは再利用可能な関数だけを定義したファイルです。以下の4つの関数を提供します。
関数名 | 処理内容 |
---|---|
get_sweets |
sweets.csv ファイルを読み込んでお菓子の一覧情報を取得する |
get_sweet_by_id |
sweets.csv ファイルを読み込んで、引数に指定したIDに一致するお菓子の情報を取得する |
save_sweets |
引数で指定したお菓子の一覧等情報を sweets.csv ファイルを保存する |
validate_exist_id |
引数で指定したお菓子のIDが sweets.csv ファイル上に存在する場合、true を返す。存在しない場合は false を返す |
<?php
function get_sweets()
{
$fp = fopen("../data/sweets.csv", "r");
$sweets = [];
$line = fgetcsv($fp);
while ($line !== false) {
$sweet = ["id" => $line[0], "name" => $line[1], "price" => $line[2]];
$sweets[] = $sweet;
$line = fgetcsv($fp);
}
fclose($fp);
return $sweets;
}
function get_sweet_by_id($id)
{
$sweets = get_sweets();
foreach ($sweets as $sweet) {
if ($sweet["id"] === $id) {
return $sweet;
}
}
return false;
}
function save_sweets($sweets)
{
$fp = fopen("../data/sweets.csv", "w");
foreach($sweets as $sweet) {
$id = $sweet["id"];
$name = $sweet["name"];
$price = $sweet["price"];
$line = "$id,$name,$price" . PHP_EOL;
fwrite($fp, $line);
}
fclose($fp);
}
function validate_exist_id($id)
{
$sweets = get_sweets();
foreach ($sweets as $sweet) {
if ($sweet["id"] === $id) {
return true;
}
}
return false;
}
上記の内容をコピーして
libs
フォルダにfunctions.php
ファイルを作成してください。以降はこれらの関数を使って課題を解いてきます。