Модули c namespace
This commit is contained in:
parent
0f4b2fb722
commit
e9f7c23990
11 changed files with 92 additions and 80 deletions
|
|
@ -1,5 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
namespace ctiso;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Интерфейс к массиву и обьекту как к коллекции
|
* Интерфейс к массиву и обьекту как к коллекции
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
namespace ctiso;
|
||||||
|
|
||||||
class Arr {
|
class Arr {
|
||||||
static function get($data, $key, $default = null) {
|
static function get($data, $key, $default = null) {
|
||||||
return isset($data[$key]) ? $data[$key] : $default;
|
return isset($data[$key]) ? $data[$key] : $default;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
namespace ctiso;
|
||||||
/**
|
/**
|
||||||
* Коллекция
|
* Коллекция
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,9 @@ class Controller_Front extends Controller_Action
|
||||||
$moduleFile = Shortcut::getUrl($this->shortcut, $name, $name); // ModuleLoader (2)
|
$moduleFile = Shortcut::getUrl($this->shortcut, $name, $name); // ModuleLoader (2)
|
||||||
}
|
}
|
||||||
|
|
||||||
$module = $this->loadClass($moduleFile, null, 'Module_');
|
$ucname = ucfirst($name);
|
||||||
|
$moduleClass = "Module\\$ucname\\$ucname";
|
||||||
|
$module = new $moduleClass();//$this->loadClass($moduleFile, null, 'Module\\');
|
||||||
if ($module) {
|
if ($module) {
|
||||||
// Инициализация модуля
|
// Инициализация модуля
|
||||||
$module->viewPath = Shortcut::getUrl('modulepath', $name);
|
$module->viewPath = Shortcut::getUrl('modulepath', $name);
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ class Controller_Service
|
||||||
return $model;
|
return $model;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function options($key, $val, $res) {
|
public function options($key, $val, /*.Database_PDOStatement.*/$res) {
|
||||||
$result = array();
|
$result = array();
|
||||||
while($res->next()) {
|
while($res->next()) {
|
||||||
$result[] = array('value' => $res->getInt($key), 'name' => $res->getString($val));
|
$result[] = array('value' => $res->getInt($key), 'name' => $res->getString($val));
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
///<reference path="Database/PDOStatement.php" />
|
///<reference path="Database/PDOStatement.php" />
|
||||||
require_once "Database/PDOStatement.php";
|
namespace ctiso;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Класс оболочка для PDO для замены Creole
|
* Класс оболочка для PDO для замены Creole
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,16 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
class Database_PDOStatement extends PDOStatement implements IteratorAggregate
|
namespace ctiso\Database\PDOStatement;
|
||||||
|
use ctiso\Database\StatementIterator;
|
||||||
|
|
||||||
|
class PDOStatement extends \PDOStatement implements \IteratorAggregate
|
||||||
{
|
{
|
||||||
protected $cursorPos = 0;
|
protected $cursorPos = 0;
|
||||||
public $cache = array();
|
public $cache = array();
|
||||||
public $fields;
|
public $fields;
|
||||||
|
|
||||||
function getIterator() {
|
function getIterator() {
|
||||||
return new Database_StatementIterator($this);
|
return new StatementIterator($this);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function __construct() {
|
protected function __construct() {
|
||||||
|
|
|
||||||
|
|
@ -88,7 +88,7 @@ class __compose {
|
||||||
|
|
||||||
class Functions {
|
class Functions {
|
||||||
|
|
||||||
static function partial() {
|
static function partial($_rest) {
|
||||||
$closure = new __partial(func_get_args());
|
$closure = new __partial(func_get_args());
|
||||||
return array($closure, 'apply');
|
return array($closure, 'apply');
|
||||||
}
|
}
|
||||||
|
|
@ -101,7 +101,7 @@ class Functions {
|
||||||
*
|
*
|
||||||
* @return array[int]mixed
|
* @return array[int]mixed
|
||||||
*/
|
*/
|
||||||
static function compose() {
|
static function compose($_rest) {
|
||||||
$closure = new __compose(func_get_args());
|
$closure = new __compose(func_get_args());
|
||||||
return array($closure, 'apply');
|
return array($closure, 'apply');
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ class Layout_Manager extends Filter_Filter
|
||||||
$this->addCondition(Functions::rcurry(array($this, 'checkXHR'), $get), $layout);
|
$this->addCondition(Functions::rcurry(array($this, 'checkXHR'), $get), $layout);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function checkGet($request, $get)
|
public function checkGet(/*.HttpRequest.*/$request, $get)
|
||||||
{
|
{
|
||||||
if (is_array($get)) {
|
if (is_array($get)) {
|
||||||
foreach ($get as $key => $value) {
|
foreach ($get as $key => $value) {
|
||||||
|
|
@ -42,7 +42,7 @@ class Layout_Manager extends Filter_Filter
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function checkXHR($request, $get)
|
public function checkXHR(/*.HttpRequest.*/$request, $get)
|
||||||
{
|
{
|
||||||
return $request->isAjax() && $this->checkGet($request, $get);
|
return $request->isAjax() && $this->checkGet($request, $get);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
72
src/Tales.php
Normal file
72
src/Tales.php
Normal file
|
|
@ -0,0 +1,72 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Расширения для PHPTAL для отображения времени и даты
|
||||||
|
*/
|
||||||
|
class DateTime_Tales implements PHPTAL_Tales
|
||||||
|
{
|
||||||
|
static public function date($expression, $nothrow = false)
|
||||||
|
{
|
||||||
|
return "Tales::phptal_date(".PHPTAL_Php_TalesInternal::path ($expression).")";
|
||||||
|
}
|
||||||
|
|
||||||
|
static public function time($expression, $nothrow = false)
|
||||||
|
{
|
||||||
|
return "Tales::phptal_time(".PHPTAL_Php_TalesInternal::path ($expression).")";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TALES для подключения компонентов
|
||||||
|
* component:name?param1=value1¶m2=value2
|
||||||
|
*/
|
||||||
|
class Component_Tales implements PHPTAL_Tales
|
||||||
|
{
|
||||||
|
static public function component($expression, $nothrow = false)
|
||||||
|
{
|
||||||
|
$s = PHPTAL_Php_TalesInternal::string($expression);
|
||||||
|
return "Tales::phptal_component(" . $s . ")";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Tales {
|
||||||
|
|
||||||
|
static function phptal_date ($e) {
|
||||||
|
return date("d.m.Y", $e);
|
||||||
|
}
|
||||||
|
|
||||||
|
static function phptal_time ($e) {
|
||||||
|
return date("H:i", $e);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Функция подключения компонента
|
||||||
|
*/
|
||||||
|
static function phptal_component ($expression) {
|
||||||
|
$begin = floatval(microtime(true));
|
||||||
|
/*.Controller_Component.*/$component = null;
|
||||||
|
|
||||||
|
if (class_exists("Controller_Site")) { //Если мы в CMS2
|
||||||
|
$component = Controller_Site::loadComponent($expression);
|
||||||
|
} else {
|
||||||
|
global $db, $registry; // Иначе обращаемся к глобальным переменным
|
||||||
|
$component = Controller_Component::loadComponent($expression, $db, $registry);
|
||||||
|
}
|
||||||
|
$req = new HttpRequest();
|
||||||
|
|
||||||
|
$result = $component->execute($req);
|
||||||
|
|
||||||
|
echo "<!-- ", $expression, ", ", round(floatval(microtime(true)) - $begin, 4), "sec -->";
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static function register() {
|
||||||
|
/* Регистрация нового префикса для подключения компонента */
|
||||||
|
$tales = PHPTAL_TalesRegistry::getInstance();
|
||||||
|
$tales->registerPrefix('component', array('Component_Tales', 'component'));
|
||||||
|
$tales->registerPrefix('date', array('DateTime_Tales', 'date'));
|
||||||
|
$tales->registerPrefix('time', array('DateTime_Tales', 'time'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,71 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Расширения для PHPTAL для отображения времени и даты
|
|
||||||
*/
|
|
||||||
class DateTime_Tales implements PHPTAL_Tales
|
|
||||||
{
|
|
||||||
static public function date($expression, $nothrow = false)
|
|
||||||
{
|
|
||||||
return "phptal_date(".PHPTAL_Php_TalesInternal::path ($expression).")";
|
|
||||||
}
|
|
||||||
|
|
||||||
static public function time($expression, $nothrow = false)
|
|
||||||
{
|
|
||||||
return "phptal_time(".PHPTAL_Php_TalesInternal::path ($expression).")";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* TALES для подключения компонентов
|
|
||||||
* component:name?param1=value1¶m2=value2
|
|
||||||
*/
|
|
||||||
class Component_Tales implements PHPTAL_Tales
|
|
||||||
{
|
|
||||||
static public function component($expression, $nothrow = false)
|
|
||||||
{
|
|
||||||
$s = PHPTAL_Php_TalesInternal::string($expression);
|
|
||||||
return "phptal_component(" . $s . ")";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function phptal_date ($e)
|
|
||||||
{
|
|
||||||
return date("d.m.Y", $e);
|
|
||||||
}
|
|
||||||
|
|
||||||
function phptal_time ($e)
|
|
||||||
{
|
|
||||||
return date("H:i", $e);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Функция подключения компонента
|
|
||||||
*/
|
|
||||||
function phptal_component ($expression) {
|
|
||||||
$begin = floatval(microtime(true));
|
|
||||||
/*.Controller_Component.*/$component = null;
|
|
||||||
|
|
||||||
if (class_exists("Controller_Site")) { //Если мы в CMS2
|
|
||||||
$component = Controller_Site::loadComponent($expression);
|
|
||||||
} else {
|
|
||||||
global $db, $registry; // Иначе обращаемся к глобальным переменным
|
|
||||||
$component = Controller_Component::loadComponent($expression, $db, $registry);
|
|
||||||
}
|
|
||||||
$req = new HttpRequest();
|
|
||||||
|
|
||||||
$result = $component->execute($req);
|
|
||||||
|
|
||||||
echo "<!-- ", $expression, ", ", round(floatval(microtime(true)) - $begin, 4), "sec -->";
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* Регистрация нового префикса для подключения компонента */
|
|
||||||
$tales = PHPTAL_TalesRegistry::getInstance();
|
|
||||||
$tales->registerPrefix('component', array('Component_Tales', 'component'));
|
|
||||||
$tales->registerPrefix('date', array('DateTime_Tales', 'date'));
|
|
||||||
$tales->registerPrefix('time', array('DateTime_Tales', 'time'));
|
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue