111 lines
2.9 KiB
PHP
111 lines
2.9 KiB
PHP
<?php
|
|
/**
|
|
* @package FOF
|
|
* @copyright Copyright (c)2010-2022 Nicholas K. Dionysopoulos / Akeeba Ltd
|
|
* @license GNU General Public License version 3, or later
|
|
*/
|
|
|
|
namespace FOF40\Factory;
|
|
|
|
defined('_JEXEC') || die;
|
|
|
|
use FOF40\Container\Container;
|
|
use FOF40\Controller\Controller;
|
|
use FOF40\Dispatcher\Dispatcher;
|
|
use FOF40\Model\Model;
|
|
use FOF40\Toolbar\Toolbar;
|
|
use FOF40\TransparentAuthentication\TransparentAuthentication;
|
|
use FOF40\View\View;
|
|
use FOF40\View\ViewTemplateFinder;
|
|
|
|
/**
|
|
* Interface for the MVC object factory
|
|
*/
|
|
interface FactoryInterface
|
|
{
|
|
/**
|
|
* Public constructor for the factory object
|
|
*
|
|
* @param Container $container The container we belong to
|
|
*/
|
|
public function __construct(Container $container);
|
|
|
|
/**
|
|
* Create a new Controller object
|
|
*
|
|
* @param string $viewName The name of the view we're getting a Controller for.
|
|
* @param array $config Optional MVC configuration values for the Controller object.
|
|
*
|
|
* @return Controller
|
|
*/
|
|
public function controller(string $viewName, array $config = []): Controller;
|
|
|
|
/**
|
|
* Create a new Model object
|
|
*
|
|
* @param string $viewName The name of the view we're getting a Model for.
|
|
* @param array $config Optional MVC configuration values for the Model object.
|
|
*
|
|
* @return Model
|
|
*/
|
|
public function model(string $viewName, array $config = []): Model;
|
|
|
|
/**
|
|
* Create a new View object
|
|
*
|
|
* @param string $viewName The name of the view we're getting a View object for.
|
|
* @param string $viewType The type of the View object. By default it's "html".
|
|
* @param array $config Optional MVC configuration values for the View object.
|
|
*
|
|
* @return View
|
|
*/
|
|
public function view(string $viewName, $viewType = 'html', array $config = []): View;
|
|
|
|
/**
|
|
* Creates a new Toolbar
|
|
*
|
|
* @param array $config The configuration values for the Toolbar object
|
|
*
|
|
* @return Toolbar
|
|
*/
|
|
public function toolbar(array $config = []): Toolbar;
|
|
|
|
/**
|
|
* Creates a new Dispatcher
|
|
*
|
|
* @param array $config The configuration values for the Dispatcher object
|
|
*
|
|
* @return Dispatcher
|
|
*/
|
|
public function dispatcher(array $config = []): Dispatcher;
|
|
|
|
/**
|
|
* Creates a new TransparentAuthentication handler
|
|
*
|
|
* @param array $config The configuration values for the TransparentAuthentication object
|
|
*
|
|
* @return TransparentAuthentication
|
|
*/
|
|
public function transparentAuthentication(array $config = []): TransparentAuthentication;
|
|
|
|
/**
|
|
* Creates a view template finder object for a specific View
|
|
*
|
|
* @param View $view The view this view template finder will be attached to
|
|
* @param array $config Configuration variables for the object
|
|
*
|
|
* @return ViewTemplateFinder
|
|
*/
|
|
public function viewFinder(View $view, array $config = []): ViewTemplateFinder;
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getSection(): string;
|
|
|
|
/**
|
|
* @param string $section
|
|
*/
|
|
public function setSection(string $section): void;
|
|
}
|