Интерфейс вместо класса Site

This commit is contained in:
CORP\phedor 2018-04-25 14:50:45 +03:00
parent c2b9254fd0
commit df00756a41
5 changed files with 22 additions and 8 deletions

View file

@ -13,7 +13,7 @@ use ctiso\HttpRequest,
ctiso\Database\PDOStatement,
ctiso\Collection,
ctiso\Registry,
App\Controller\Site,
ctiso\Controller\SiteInterface,
PHPTAL,
PHPTAL_PreFilter_Normalize;
@ -209,7 +209,7 @@ class Component
$view->component_title = $settings['title'];
}
static function loadComponent($expression, /*.Site.*/ $site)
static function loadComponent($expression, /*.SiteInterface.*/ $site)
{
$expression = htmlspecialchars_decode($expression);
@ -251,7 +251,7 @@ class Component
}
}
$db = $site->db;
$db = $site->getDatabase();
$component->db = $db;
$component->config = $site->config;

View file

@ -0,0 +1,11 @@
<?php
namespace ctiso\Controller;
interface SiteInterface {
function loadComponent($expression);
function getDatabase();
function getConfig();
function setComponentConfig($config);
function addRequireJsPath($name, $path, $schim = null);
}

View file

@ -27,8 +27,11 @@ class Registry {
}
public function get($ns, $key) {
if (isset($this->namespace[$ns]['data'][$key])) {
return $this->namespace[$ns]['data'][$key];
}
throw new Exception('Unknown key ' . $ns . '::' . $key);
}
public function has($ns, $key) {
return isset($this->namespace[$ns]['data'][$key]);

View file

@ -5,7 +5,7 @@
*/
namespace ctiso;
use PHPTAL_Php_TalesInternal,
App\Controller\Site,
ctiso\Controller\SiteInterface,
ctiso\Controller\Component,
ctiso\HttpRequest,
PHPTAL_Tales,
@ -32,7 +32,7 @@ class Tales_Component implements PHPTAL_Tales
}
class Tales {
static /*.Site.*/$site;
static /*.SiteInterface.*/$site;
static function phptal_date ($e) {
return date("d.m.Y", $e);

View file

@ -2,7 +2,7 @@
namespace ctiso\View;
use ctiso\View\View,
App\Controller\Site, /* Нужно импортровать интерфейс */
ctiso\Controller\SiteInterface,
ctiso\Controller\Component,
ctiso\HttpRequest;
@ -10,7 +10,7 @@ class Page extends View
{
private $counter;
public $text;
public /*.Site.*/$site;
public /*.SiteInterface.*/$site;
function __construct($data, $site)
{