以前に作成した GreatNotepad クラスを修正します。

  • backup メソッドを追加する

GreatNotepad クラスの仕様は以下のとおりです。

メソッド 処理内容
save $filename 引数で受け取ったファイル名に $input_string プロパティの内容を保存する
load $filename 引数で受け取ったファイル名を読み込んで、読み込んだファイルの内容を $input_string プロパティに代入する
backup $filename 引数で受け取ったファイルのコピーを作成する
ただしコピー先のファイル名は $filename20210101123456 のようにファイル名の末尾にタイムスタンプ(システム日時)を付与する
static メソッドとして定義する

問題 10

次のプログラム( notepad_runner10.php )があります。

notepad_runner10.php

<?php
require_once("GreatNotepad.php");

GreatNotepad::backup("my_file.txt");

次の実行結果のとおり動作するプログラム( GreatNotepad.php )を作成してください。

実行結果

$ php notepad_runner10.php

ここではカレントフォルダに以前に作成した my_file.txt が存在するものとします。

カレントフォルダに my_file.txt ファイルをコピーした my_file.txt20210101123456 ファイルが生成されていることを確認します(ファイル名のタイムタンプの部分は変化します)。

GreatNotepad.php

<?php
require_once("SimpleNotepad.php");

class GreatNotepad extends SimpleNotepad
{
    public function save($filename)
    {
        file_put_contents($filename, $this->input_string);
    }

    public function load($filename)
    {
        $this->input_string = file_get_contents($filename);
    }

    # TODO define backup static method.
}

staticbackup メソッドを定義します。