ファイルオブジェクトを取得

IDからファイルを取得

すべてのファイルオブジェクトは一意な数字のIDを持っています。すでにIDがわかっているときは、次のコードで取得できます。

$f = \File::getByID(1); // IDが1のファイルオブジェクトを取得

ファイルオブジェクトを使う

ファイルオブジェクトを取得できれば、様々な操作が行えます。Concrete\Core\File\File オブジェクトのメソッドはすべて使うことができますし、同様に Concrete\Core\File\Version オブジェクトのメソッドも使用できます。File オブジェクトのメソッドを呼び出した際に、File クラスにそのメソッドが存在しなかった場合は、承認されたバージョンのVersionオブジェクトが取得され、そのメソッドが実行されます。例えば、先ほどの $f ファイルオブジェクトを使って、

print $f->getFileID();

この場合は $f オブジェクト自身の getFileID() メソッドが実行され、1 が取得でき、

print $f->getURL();

この場合は "http://www.mysite.com/1234/1234/1234/foo.txt" のようなファイルのURLが取得されます。getURL() メソッドは \Concrete\Core\File\File オブジェクトには存在しませんが、\Concrete\Core\File\Version オブジェクトには存在します。File オブジェクトは $this->getApprovedVersion() メソッドを裏で実行して承認されたバージョンのファイルを取得し、メソッドを渡します。

特定のファイルバージョンを取得

ほとんどの場合、ファイルのどのバージョンが承認されているかを心配する必要はありませんが、ファイルマネージャーから特定のバージョンを承認することもできますし、または特定のバージョンが選択されていない場合は最新のバージョンになります。より高度なアプリケーションでは、さらなるフレキシビリティが要求される場合もあると思います。例えば、承認されたバージョンが最新のバージョンではない場合、それらを個別に取得する方法があります。

$approved = $f->getApprovedVersion(); // 承認されたバージョンのファイルを取得
$recent = $f->getRecentVersion(); // 最新のバージョンのファイルを取得
$specific = $f->getVersion(5); // 特定のバージョンID 5 のファイルを取得
$modify = $f->getVersionToModify(); // 書き込みを行うためのファイルバージョンオブジェクトを返します。最新のバージョンが取得されるか、新しいバージョンが作成されるかは、自動的に判断されます。

これらのいずれの場合においても、取得されるオブジェクトは特定の Concrete\Core\File\Version オブジェクトです。APIドキュメントで、このオブジェクトで利用可能なメソッドの詳細を知ることができます。

原文:Retrieving File Objects Programmatically