namespace Org\Mxchange\CoreFramework\Response;
// Import framework stuff
+use Org\Mxchange\CoreFramework\Bootstrap\FrameworkBootstrap;
+use Org\Mxchange\CoreFramework\Helper\Application\ApplicationHelper;
+use Org\Mxchange\CoreFramework\Image\BaseImage;
+use Org\Mxchange\CoreFramework\Manager\ManageableApplication;
use Org\Mxchange\CoreFramework\Registry\GenericRegistry;
use Org\Mxchange\CoreFramework\Response\Responseable;
*
* @author Roland Haeder <webmaster@shipsimu.org>
* @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2017 Core Developer Team
+ * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2021 Core Developer Team
* @license GNU GPL 3.0 or any newer version
* @link http://www.shipsimu.org
*
* Michal Cihar <michal@cihar.com>, licensed under GNU GPL 2.0.
*/
class ImageResponse extends BaseResponse implements Responseable {
+ /**
+ * Instance of the image
+ */
+ private $imageInstance = NULL;
+
/**
* Protected constructor
*
* @return void
*/
- protected function __construct () {
+ private function __construct () {
// Call parent constructor
parent::__construct(__CLASS__);
}
/**
- * Initializes the template engine instance
+ * Setter for image instance
*
- * @param $applicationInstance An instance of a manageable application
+ * @param $imageInstance An instance of an image
* @return void
*/
- public final function initTemplateEngine (ManageableApplication $applicationInstance) {
- // Get config instance
- $cfg = $this->getConfigInstance();
-
- // Set new template engine
- $cfg->setConfigEntry('html_template_class' , $cfg->getConfigEntry('image_template_class'));
- $cfg->setConfigEntry('raw_template_extension' , '.img');
- $cfg->setConfigEntry('code_template_extension', '.xml');
- $cfg->setConfigEntry('tpl_base_path' , 'templates/images/');
- // @TODO Please fix this
- $cfg->setConfigEntry('code_template_type' , 'image');
-
- // Get a prepared instance
- $this->setTemplateInstance($this->prepareTemplateInstance($applicationInstance));
+ public final function setImageInstance (BaseImage $imageInstance) {
+ $this->imageInstance = $imageInstance;
+ }
+
+ /**
+ * Getter for image instance
+ *
+ * @return $imageInstance An instance of an image
+ */
+ public final function getImageInstance () {
+ return $this->imageInstance;
}
/**
* @return void
* @throws ResponseHeadersAlreadySentException If headers are already sent
* @todo Encryption of cookie data not yet supported.
- * @todo Why are these parameters conflicting?
* @todo If the return statement is removed and setcookie() commented out,
* @todo this will send only one cookie out, the first one.
*/
- public function addCookie ($cookieName, $cookieValue, $encrypted = false, $expires = NULL) {
+ public function addCookie (string $cookieName, $cookieValue, bool $encrypted = FALSE, int $expires = NULL) {
// Are headers already sent?
if (headers_sent()) {
// Throw an exception here
throw new ResponseHeadersAlreadySentException($this, self::EXCEPTION_HEADERS_ALREADY_SENT);
- } // END - if
+ }
// Shall we encrypt the cookie?
- if ($encrypted === true) {
+ if ($encrypted) {
// Unsupported at the moment
$this->partialStub('Encryption is unsupported at the moment.');
- } // END - if
+ }
// For slow browsers set the cookie array element first
$_COOKIE[$cookieName] = $cookieValue;
// Get all config entries
if (is_null($expires)) {
- $expires = (time() + $this->getConfigInstance()->getConfigEntry('cookie_expire'));
- } // END - if
+ $expires = (time() + FrameworkBootstrap::getConfigurationInstance()->getConfigEntry('cookie_expire'));
+ }
- $path = $this->getConfigInstance()->getConfigEntry('cookie_path');
- $domain = $this->getConfigInstance()->getConfigEntry('cookie_domain');
+ $path = FrameworkBootstrap::getConfigurationInstance()->getConfigEntry('cookie_path');
+ $domain = FrameworkBootstrap::getConfigurationInstance()->getConfigEntry('cookie_domain');
setcookie($cookieName, $cookieValue, $expires);
//, $path, $domain, (isset($_SERVER['HTTPS']))
* @return void
* @throws ResponseHeadersAlreadySentException If headers are already sent
*/
- public function redirectToConfiguredUrl ($configEntry) {
+ public function redirectToConfiguredUrl (string $configEntry) {
// Get application instance
- $applicationInstance = GenericRegistry::getRegistry()->getInstance('app');
+ $applicationInstance = ApplicationHelper::getSelfInstance();
// Is the header not yet sent?
if (headers_sent()) {
// Throw an exception here
throw new ResponseHeadersAlreadySentException($this, self::EXCEPTION_HEADERS_ALREADY_SENT);
- } // END - if
+ }
// Assign application data
- $this->getTemplateInstance()->assignApplicationData($applicationInstance());
+ $this->getTemplateInstance()->assignApplicationData($applicationInstance);
// Get the url from config
- $url = $this->getConfigInstance()->getConfigEntry($configEntry . '_url');
+ $url = FrameworkBootstrap::getConfigurationInstance()->getConfigEntry($configEntry . '_url');
// Compile the URL
$url = $this->getTemplateInstance()->compileRawCode($url);
if (substr($url, 0, 1) == '/') $url = substr($url, 1);
// No, then extend it with our base URL
- $url = $this->getConfigInstance()->getConfigEntry('base_url') . '/' . $url;
- } // END - if
+ $url = FrameworkBootstrap::getConfigurationInstance()->getConfigEntry('base_url') . '/' . $url;
+ }
// Add redirect header
$this->addHeader('Location', str_replace('&', '&', $url));
* already sent with an exception
* @return void
*/
- public function flushBuffer ($force = false) {
+ public function flushBuffer (bool $force = false) {
// Finish the image
$this->getImageInstance()->finishImage();
* @param $cookieName Cookie to expire
* @return void
*/
- public function expireCookie ($cookieName) {
+ public function expireCookie (string $cookieName) {
// Is the cookie there?
if (isset($_COOKIE[$cookieName])) {
// Then expire it with 20 minutes past
// Remove it from array
unset($_COOKIE[$cookieName]);
- } // END - if
+ }
}
/**
* @param $cookieName Cookie to refresh
* @return void
*/
- public function refreshCookie ($cookieName) {
+ public function refreshCookie (string $cookieName) {
// Only update existing cookies
if (isset($_COOKIE[$cookieName])) {
// Update the cookie
$this->addCookie($cookieName, $_COOKIE[$cookieName], false);
- } // END - if
+ }
}
}