/** * Inject project dependency objects * * @param GitPHP_Project $project project object */ protected function InjectProjectDependencies($project) { if (!$project) { return; } $compat = $project->GetCompat(); $loader = null; if ($compat) { $project->SetStrategy(new GitPHP_ProjectLoad_Git($this->exe)); } else { $loader = new GitPHP_GitObjectLoader($project); $project->SetStrategy(new GitPHP_ProjectLoad_Raw($loader)); } $headListStrategy = null; if ($compat) { $headListStrategy = new GitPHP_HeadListLoad_Git($this->exe); } else { $headListStrategy = new GitPHP_HeadListLoad_Raw(); } $headList = new GitPHP_HeadList($project, $headListStrategy); $project->SetHeadList($headList); $tagListStrategy = null; if ($compat) { $tagListStrategy = new GitPHP_TagListLoad_Git($this->exe); } else { $tagListStrategy = new GitPHP_TagListLoad_Raw(); } $tagList = new GitPHP_TagList($project, $tagListStrategy); $project->SetTagList($tagList); $manager = new GitPHP_GitObjectManager($project); $manager->SetCompat($compat); if (!$compat) { $manager->SetObjectLoader($loader); } $manager->SetExe($this->exe); if ($this->memoryCache) { $manager->SetMemoryCache($this->memoryCache); } if ($this->cache) { $manager->SetCache($this->cache); } $project->SetObjectManager($manager); }