SHINYA TECH

公務員(行政職)から34歳でエンジニア転職した人

#5 ここまでの復習をする(タスク管理アプリ_テキスト版の作成)

f:id:kshinya-tech:20220209121730p:plain #1〜#4 にてテキスト版(ターミナル上で動作する)読書管理ログを作成しました。 今回は復習として、ここまでに学習したことを振り返りながら、タスク管理アプリ(テキスト版)を作成しました。

shinya-tech.com

shinya-tech.com

shinya-tech.com

shinya-tech.com

やったこと

まず、今回作成するアプリケーションの要件定義(業務要件、機能要件)を行いました。 非機能要件(機能、拡張性、可用性、セキュリティなど)及び運用・保守要件の定義は省略しました。 f:id:kshinya-tech:20220209115904p:plain f:id:kshinya-tech:20220209120043p:plain f:id:kshinya-tech:20220209120158p:plain f:id:kshinya-tech:20220209120349p:plain f:id:kshinya-tech:20220209122241p:plain

今回書いたコード

<?php

function createTask()
{
    echo 'タスクを登録してください' . PHP_EOL;
    echo 'タスク名:';
    $name = trim(fgets(STDIN));
    echo '期限:';
    $limit = trim(fgets(STDIN));
    echo '進捗状況:';
    $status = trim(fgets(STDIN));
    echo '備考:';
    $remarks = trim(fgets(STDIN));

    echo '登録完了!' . PHP_EOL;

    return $tasks[] = [
        'name' => $name,
        'limit' => $limit,
        'status' => $status,
        'remarks' => $remarks,
    ];
}

function showTask($tasks)
{
    foreach ($tasks as $task) {
        echo 'タスク名:' . $task['name'] . PHP_EOL;
        echo '期限:' . $task['limit'] . PHP_EOL;
        echo '進捗状況:' . $task['status'] . PHP_EOL;
        echo '備考:' . $task['remarks'] . PHP_EOL;
        echo '-----------' . PHP_EOL;
    }
}

$tasks = [];

while (true) {
    echo 'メニューを選択してください' . PHP_EOL;
    echo '1:タスクを登録する' . PHP_EOL;
    echo '2:タスク一覧を表示する' . PHP_EOL;
    echo '9:終了する' . PHP_EOL;
    $i = trim(fgets(STDIN));
    if ($i === '1') {
        $tasks[] = createTask();
    } elseif ($i === '2') {
        showTask($tasks);
    } elseif ($i === '9') {
        break;
    }
}

備忘録(つまづいた点など)

タスクを登録する際の関数(createTask)を呼び出す際に、
$tasks[] = createTask();
ではなく、
$tasks = createTask();
としてしまい、エラーが生じた。

タスクを表示する際の関数(showTask)を定義する際に、
引数を記載しておらず、
変数が定義されていませんのエラーが生じた。