<?php 
 
include_once __DIR__ . '/vendor/autoload.php'; 
 
if (!defined('THESPORTSDB_API_KEY')) { 
  define('THESPORTSDB_API_KEY', '1'); 
} 
if ( 
  class_exists('\Symfony\Component\DependencyInjection\ContainerBuilder') 
  && class_exists('\Symfony\Component\Config\Resource\FileResource') 
  && class_exists('Symfony\Component\DependencyInjection\Loader\YamlFileLoader') 
  && class_exists('\HendrichA\TagPassLibrary\TagPass') 
) { 
  // Use the dependency injection container if available. 
  include_once __DIR__ . '/default_bootstrap_dic.php'; 
  return; 
} 
 
// Http client. 
$httpClient = new GuzzleHttp\Client(); 
 
// Factory container. 
$factoryContainer = new TheSportsDb\Entity\Factory\FactoryContainer(); 
 
// Repository container. 
$repositoryContainer = new TheSportsDb\Entity\Repository\RepositoryContainer(); 
 
// Property mapper. 
$propertyMapper = new FastNorth\PropertyMapper\Mapper(); 
 
// Entity manager. 
$entityManager = new TheSportsDb\Entity\EntityManager($propertyMapper, $factoryContainer, $repositoryContainer); 
$entityManager->registerClass('league'); 
$entityManager->registerClass('sport'); 
$entityManager->registerClass('team'); 
$entityManager->registerClass('event'); 
$entityManager->registerClass('player'); 
$entityManager->registerClass('season'); 
 
// The sports db client. 
$sportsDbClient = new TheSportsDb\Http\TheSportsDbClient(THESPORTSDB_API_KEY, $httpClient); 
 
// Repositories. 
$repositoryContainer->addRepository(new TheSportsDb\Entity\Repository\SportRepository($sportsDbClient, $entityManager)); 
$repositoryContainer->addRepository(new TheSportsDb\Entity\Repository\LeagueRepository($sportsDbClient, $entityManager)); 
$repositoryContainer->addRepository(new TheSportsDb\Entity\Repository\SeasonRepository($sportsDbClient, $entityManager)); 
$repositoryContainer->addRepository(new TheSportsDb\Entity\Repository\EventRepository($sportsDbClient, $entityManager)); 
$repositoryContainer->addRepository(new TheSportsDb\Entity\Repository\PlayerRepository($sportsDbClient, $entityManager)); 
$repositoryContainer->addRepository(new TheSportsDb\Entity\Repository\TeamRepository($sportsDbClient, $entityManager)); 
 
// Factory. 
$factory = new \TheSportsDb\Entity\Factory\Factory($sportsDbClient, $entityManager); 
 
$factoryContainer->setDefaultFactory($factory); 
 
$db = new TheSportsDb\TheSportsDb($entityManager); 
 
 |