<?php
namespace Jaxon\Sentry;
class Armada
{
use \Jaxon\Request\Traits\Factory;
/**
* The Jaxon response returned by all classes methods
*
* @var Jaxon\Response\Response
*/
public $response = null;
/**
* The request factory
*
* @var Factory\Request
*/
public $rqFactory;
/**
* The paginator factory
*
* @var Factory\Paginator
*/
public $pgFactory;
/**
* Initialize the instance.
*
* @return void
*/
public function init()
{}
/**
* Get the view renderer
*
* @return Jaxon\Sentry\View\Facade
*/
public function view()
{
return jaxon()->sentry()->getViewRenderer();
}
/**
* Get the session manager
*
* @return Jaxon\Sentry\Interfaces\Session
*/
public function session()
{
return jaxon()->sentry()->getSessionManager();
}
/**
* Get the request factory.
*
* @return Jaxon\Sentry\Factory\Request
*/
public function request()
{
return $this->rqFactory;
}
/**
* Get the request factory.
*
* @return Jaxon\Sentry\Factory\Request
*/
public function rq()
{
return $this->request();
}
/**
* Get the paginator factory.
*
* @param integer $nItemsTotal the total number of items
* @param integer $nItemsPerPage the number of items per page
* @param integer $nCurrentPage the current page
*
* @return Jaxon\Sentry\Factory\Paginator
*/
public function paginator($nItemsTotal, $nItemsPerPage, $nCurrentPage)
{
$this->pgFactory->setPaginationProperties($nItemsTotal, $nItemsPerPage, $nCurrentPage);
return $this->pgFactory;
}
/**
* Get the paginator factory.
*
* @param integer $nItemsTotal the total number of items
* @param integer $nItemsPerPage the number of items per page
* @param integer $nCurrentPage the current page
*
* @return Jaxon\Sentry\Factory\Paginator
*/
public function pg($nItemsTotal, $nItemsPerPage, $nCurrentPage)
{
return $this->paginator($nItemsTotal, $nItemsPerPage, $nCurrentPage);
}
/**
* Create a JQuery Element with a given selector, and link it to the response attribute.
*
* @param string $sSelector The jQuery selector
* @param string $sContext A context associated to the selector
*
* @return Jaxon\JQuery\Dom\Element
*/
public function jq($sSelector = '', $sContext = '')
{
return $this->response->plugin('jquery')->element($sSelector, $sContext);
}
/**
* Create a JQuery Element with a given selector, and link it to the response attribute.
*
* @param string $sSelector The jQuery selector
* @param string $sContext A context associated to the selector
*
* @return Jaxon\JQuery\Dom\Element
*/
public function jQuery($sSelector = '', $sContext = '')
{
return $this->jq($sSelector, $sContext);
}
/**
* Get an instance of a Jaxon class by name
*
* @param string $name the class name
*
* @return Jaxon\Sentry\Armada|null the Jaxon class instance, or null
*/
public function instance($name)
{
// If the class name starts with a dot, then find the class in the same class path as the caller
if(substr($name, 0, 1) == '.')
{
$name = $this->getJaxonClassPath() . $name;
}
// The class namespace is prepended to the class name
elseif(substr($name, 0, 1) == ':' && ($namespace = $this->getJaxonNamespace()))
{
$name = str_replace('\\', '.', trim($namespace, '\\')) . '.' . substr($name, 1);
}
return jaxon()->sentry()->instance($name);
}
/**
* Get an instance of a Jaxon class by name
*
* @param string $name the class name
*
* @return Jaxon\Sentry\Armada|null the Jaxon class instance, or null
*/
public function cl($name)
{
return $this->instance($name);
}
/**
* Get the uploaded files
*
* @return array
*/
public function getUploadedFiles()
{
return jaxon()->getUploadedFiles();
}
}
|