4
0
Fork 0
api-powers/src/56465044-94ed-4e00-b6db-160.../code.php

235 lines
5.6 KiB
PHP

<?php
/**
* @package GetBible
*
* @created 30th May, 2023
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git GetBible <https://git.vdm.dev/getBible>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace TrueChristianChurch\Joomla\GetBible\Service;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
use TrueChristianChurch\Joomla\GetBible\Config;
use TrueChristianChurch\Joomla\GetBible\Table;
use TrueChristianChurch\Joomla\GetBible\DailyScripture;
use TrueChristianChurch\Joomla\GetBible\Search;
use TrueChristianChurch\Joomla\GetBible\Loader;
use TrueChristianChurch\Joomla\GetBible\Linker;
use TrueChristianChurch\Joomla\GetBible\Note;
use TrueChristianChurch\Joomla\GetBible\Tag;
use TrueChristianChurch\Joomla\GetBible\Tagged;
use TrueChristianChurch\Joomla\GetBible\Tagged\Paragraphs;
/**
* The GetBible App Service
*
* @since 2.0.1
*/
class App implements ServiceProviderInterface
{
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
* @since 2.0.1
*/
public function register(Container $container)
{
$container->alias(Config::class, 'GetBible.Config')
->share('GetBible.Config', [$this, 'getConfig'], true);
$container->alias(Table::class, 'GetBible.Table')
->share('GetBible.Table', [$this, 'getTable'], true);
$container->alias(DailyScripture::class, 'DailyScripture')
->share('DailyScripture', [$this, 'getDailyScripture'], true);
$container->alias(Search::class, 'GetBible.Search')
->share('GetBible.Search', [$this, 'getSearch'], true);
$container->alias(Loader::class, 'GetBible.Loader')
->share('GetBible.Loader', [$this, 'getLoader'], true);
$container->alias(Linker::class, 'GetBible.Linker')
->share('GetBible.Linker', [$this, 'getLinker'], true);
$container->alias(Note::class, 'GetBible.Note')
->share('GetBible.Note', [$this, 'getNote'], true);
$container->alias(Tag::class, 'GetBible.Tag')
->share('GetBible.Tag', [$this, 'getTag'], true);
$container->alias(Tagged::class, 'GetBible.Tagged')
->share('GetBible.Tagged', [$this, 'getTagged'], true);
$container->alias(Paragraphs::class, 'GetBible.Tagged.Paragraphs')
->share('GetBible.Tagged.Paragraphs', [$this, 'getTaggedParagraphs'], true);
}
/**
* Get the Config class
*
* @param Container $container The DI container.
*
* @return Config
* @since 2.0.1
*/
public function getConfig(Container $container): Config
{
return new Config();
}
/**
* Get the Table class
*
* @param Container $container The DI container.
*
* @return Table
* @since 2.0.1
*/
public function getTable(Container $container): Table
{
return new Table();
}
/**
* Get the Daily Scripture class
*
* @param Container $container The DI container.
*
* @return DailyScripture
* @since 2.0.1
*/
public function getDailyScripture(Container $container): DailyScripture
{
return new DailyScripture(
$container->get('GetBible.Config'),
$container->get('GetBible.Utilities.Http'),
$container->get('GetBible.Load')
);
}
/**
* Get the Search class
*
* @param Container $container The DI container.
*
* @return Search
* @since 2.0.1
*/
public function getSearch(Container $container): Search
{
return new Search();
}
/**
* Get the Loader class
*
* @param Container $container The DI container.
*
* @return Loader
* @since 2.0.1
*/
public function getLoader(Container $container): Loader
{
return new Loader(
$container->get('GetBible.Load'),
$container->get('GetBible.Watcher')
);
}
/**
* Get the Linker class
*
* @param Container $container The DI container.
*
* @return Linker
* @since 2.0.1
*/
public function getLinker(Container $container): Linker
{
return new Linker(
$container->get('GetBible.Load'),
$container->get('GetBible.Insert'),
$container->get('GetBible.Update'),
$container->get('GetBible.Utilities.Session')
);
}
/**
* Get the Note class
*
* @param Container $container The DI container.
*
* @return Note
* @since 2.0.1
*/
public function getNote(Container $container): Note
{
return new Note(
$container->get('GetBible.Load'),
$container->get('GetBible.Insert'),
$container->get('GetBible.Update'),
$container->get('GetBible.Linker')
);
}
/**
* Get the Tag class
*
* @param Container $container The DI container.
*
* @return Tag
* @since 2.0.1
*/
public function getTag(Container $container): Tag
{
return new Tag(
$container->get('GetBible.Load'),
$container->get('GetBible.Insert'),
$container->get('GetBible.Update'),
$container->get('GetBible.Linker')
);
}
/**
* Get the Tagged class
*
* @param Container $container The DI container.
*
* @return Tagged
* @since 2.0.1
*/
public function getTagged(Container $container): Tagged
{
return new Tagged(
$container->get('GetBible.Load'),
$container->get('GetBible.Insert'),
$container->get('GetBible.Update'),
$container->get('GetBible.Linker')
);
}
/**
* Get the Paragraphs class
*
* @param Container $container The DI container.
*
* @return Paragraphs
* @since 2.0.1
*/
public function getTaggedParagraphs(Container $container): Paragraphs
{
return new Paragraphs();
}
}