Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】setFileClassメソッドの使い方

setFileClassメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

setFileClassメソッドは、PHPのRecursiveDirectoryIteratorがディレクトリやファイルを再帰的に走査する際に、各ファイルやディレクトリの情報を表現するオブジェクトを生成するためのクラスを設定するメソッドです。

通常、RecursiveDirectoryIteratorはファイルやディレクトリの情報をPHP標準のSplFileInfoクラスのオブジェクトとして提供します。しかし、このsetFileClassメソッドを使用すると、開発者が独自に定義したカスタムクラスを代わりに使用させることができます。

これにより、ファイルやディレクトリに関する独自の処理や情報を追加したい場合に非常に役立ちます。例えば、ファイルのサイズや更新日時といった基本的な情報だけでなく、ファイルの作成者、特定のメタデータ、あるいはファイルの内容を解析して得られる独自の属性など、より詳細な情報を扱いたいケースが考えられます。このような場合、SplFileInfoクラスを継承した独自のクラスを作成し、そのクラス名をこのメソッドに指定することで、より柔軟なファイル操作が可能になります。

引数には、使用したいカスタムクラスの完全修飾名を文字列で指定します。このカスタムクラスは、PHP標準のSplFileInfoクラスが提供する基本的な機能を持っているか、それを継承している必要があります。この設定を行うと、以降のイテレーションで返されるファイルやディレクトリのオブジェクトは、すべて指定されたカスタムクラスのインスタンスとして扱えるようになります。

構文(syntax)

1<?php
2$iterator = new RecursiveDirectoryIterator('/path/to/directory');
3$iterator->setFileClass('MyCustomFileClass');
4
5// setFileClass で指定するクラスは DirectoryIterator を継承している必要があります。
6class MyCustomFileClass extends DirectoryIterator {}
7?>

引数(parameters)

string $class = 'SplFileObject'

  • string $class = 'SplFileObject': ファイルオブジェクトとして使用するクラス名。デフォルトは 'SplFileObject'。

戻り値(return)

RecursiveDirectoryIterator

このメソッドは、新しいファイルクラスを $this (現在の RecursiveDirectoryIterator オブジェクト)に設定します。設定が成功したかどうかの結果ではなく、メソッドチェーンのために現在のオブジェクト自身を返します。