An instance of the VersionControl_Git_Object_Tree represents tree object in Git. It has pointers to contents of the direcotry.
An instance of VersionControl_Git_Object_Tree can get via VersionControl_Git::getTree().
<?php
require_once 'VersionControl/Git.php';
$git = new VersionControl_Git('/path/to/repository');
$commits = $git->getCommits();
$tree = $git->getTree($commits[0]->getTree());
The instance doesn't have any contents at the first. If you want to get contents, you must call "fetch()" method.
<?php
require_once 'VersionControl/Git.php';
$git = new VersionControl_Git('/path/to/repository');
$commits = $git->getCommits();
$tree = $git->getTree($commits[0]->getTree());
$tree->fetch();
The VersionControl_Git_Object_Commit implements the SeekableIterator interface. You can iterate and seek contents of tree.
<?php
require_once 'VersionControl/Git.php';
$git = new VersionControl_Git('/path/to/repository');
$commits = $git->getCommits();
$tree = $git->getTree($commits[0]->getTree());
$tree->fetch();
foreach ($tree as $content) {
var_dump($content);
}
/*
results:
object(VersionControl_Git_Object_Blob)#304 (3) {
}
object(VersionControl_Git_Object_Blob)#305 (3) {
}
object(VersionControl_Git_Object_Blob)#306 (3) {
}
object(VersionControl_Git_Object_Blob)#307 (3) {
}
object(VersionControl_Git_Object_Tree)#308 (4) {
}
object(VersionControl_Git_Object_Tree)#309 (4) {
}
object(VersionControl_Git_Object_Tree)#311 (4) {
}
object(VersionControl_Git_Object_Tree)#312 (4) {
}
object(VersionControl_Git_Object_Tree)#313 (4) {
}
object(VersionControl_Git_Object_Tree)#314 (4) {
}
object(VersionControl_Git_Object_Tree)#315 (4) {
}
object(VersionControl_Git_Object_Tree)#316 (4) {
}
object(VersionControl_Git_Object_Blob)#317 (3) {
}
object(VersionControl_Git_Object_Tree)#318 (4) {
}
*/