Standard PHP Library(SPL) SplFileInfoクラス編
こんばんは。PHP技術者認定機構の吉政でございます。
PHP技術者認定機構の認定スクールであるヒューマンリソシアにて、私が企画支援している親方こと古庄道明氏による、「PHPer上級者になるために知っておきたいこと」の第18回『Standard PHP Library(SPL) SplFileInfoクラス編』が公開されています。
###
DirectoryIteratorつながりで、今回はSplFileInfoクラスを見ていきましょう。
単体でSplFileInfoクラスを使う場合、ファイル名を渡して、以下のようにインスタンスを作成します。
$file = new SplFileInfo(__FILE__);
SplFileInfoですが、かなり色々なメソッドを持っています。
そのほとんどは、PHPの標準関数で提供されているものでもあるのですが。「1つのファイル、というインスタンス」を持ち回ってプログラムが書けるので、オブジェクト指向プログラミングになれている人は、SplFileInfoクラスでインスタンス作って…という流れのほうが、書きやすいし読みやすいかもしれませんね。
では、実際にわたしがよく使うメソッドを中心に、いくつかご紹介差し上げたく思います。
「内容が偏ってるよねぇ」と思った場合、それは多分「筆者の業務に偏りがある」だけなので、
その辺は生暖かく見守っていただければ幸いです。
$file = new SplFileInfo(__FILE__);
var_dump($file->getATime());
var_dump($file->getCTime());
var_dump($file->getMTime());
上から順番に「ファイルの最終アクセス時刻(ATime)」「inode 変更時刻(CTime)」「最終変更時刻(MTime)」を取得します。
なお「inode 変更時刻」ってのは、パーミッション、所有者、グループなどが変更されたタイミングですね。inode自体については、ファイルシステムそのものを学ぶと出てくる概念です。一度は調べて、ファイルが「どのように」磁気媒体その他に格納されているか、を知っておくと非常に便利だったり有利だったりしますね。
(この続きは以下をご覧ください)
http://resocia.jp/column/498/