Оптимизации и исправления топов.
This commit is contained in:
parent
77fa3dbd5e
commit
0f4b2fb722
25 changed files with 109 additions and 53 deletions
|
|
@ -58,17 +58,17 @@ class Collection implements ArrayAccess
|
|||
|
||||
public function getInt($key, $default = 0)
|
||||
{
|
||||
return intval($this->get($key, $default));
|
||||
return (int)$this->get($key, $default);
|
||||
}
|
||||
|
||||
public function getString($key, $default = '')
|
||||
{
|
||||
return ((string) $this->get($key, $default));
|
||||
return (string)$this->get($key, $default);
|
||||
}
|
||||
|
||||
public function getNat($key, $default = 1)
|
||||
{
|
||||
$result = intval($this->get($key, $default));
|
||||
$result = (int)$this->get($key, $default);
|
||||
return (($result > 0) ? $result : $default);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -36,12 +36,12 @@ class Connection_HttpResponse
|
|||
|
||||
if (isset($this->param['Transfer-Encoding']) && $this->param['Transfer-Encoding'] == 'chunked') {
|
||||
//$this->data = substr($this->response, $this->offset);
|
||||
$line = hexdec($this->getLine());
|
||||
$index = hexdec($this->getLine());
|
||||
$chunk = array();
|
||||
while ($line > 0) {
|
||||
$chunk [] = substr($this->response, $this->offset, $line);
|
||||
$this->offset += $line;
|
||||
$line = hexdec($this->getLine());
|
||||
while ($index > 0) {
|
||||
$chunk [] = substr($this->response, $this->offset, $index);
|
||||
$this->offset += $index;
|
||||
$index = hexdec($this->getLine());
|
||||
}
|
||||
|
||||
$this->data = implode("", $chunk);
|
||||
|
|
|
|||
|
|
@ -38,6 +38,23 @@ class ComponentRequest {
|
|||
}
|
||||
}
|
||||
|
||||
class FakeTemplate {
|
||||
public $_data = [];
|
||||
public $_name = '';
|
||||
|
||||
function __construct($name) {
|
||||
$this->_name = $name;
|
||||
}
|
||||
|
||||
function __set($key, $value) {
|
||||
$this->_data[$key] = $value;
|
||||
}
|
||||
|
||||
function execute() {
|
||||
return $this->_data;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Класс компонента
|
||||
*/
|
||||
|
|
@ -56,6 +73,7 @@ class Controller_Component
|
|||
public /*.Settings.*/$registry;
|
||||
public /*.Database.*/$db;
|
||||
public /*.Collection.*/$parameter;
|
||||
public $output = 'html';
|
||||
|
||||
public $module;
|
||||
public $item_module;
|
||||
|
|
@ -86,6 +104,10 @@ class Controller_Component
|
|||
|
||||
public function getView($name)
|
||||
{
|
||||
if ($this->output == 'json') {
|
||||
return new FakeTemplate($name);
|
||||
}
|
||||
|
||||
//
|
||||
/*.Settings.*/$registry = $this->registry;
|
||||
$template = ($this->template) ? $this->template : $registry->readKey(array('system', 'template'));
|
||||
|
|
@ -164,8 +186,18 @@ class Controller_Component
|
|||
return $result;
|
||||
}
|
||||
|
||||
function findFile($pathList, $name) {
|
||||
foreach($pathList as $item) {
|
||||
$filename = Path::join($item, $name);
|
||||
if (file_exists($filename)) {
|
||||
return $filename;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function getInfo() {
|
||||
$filename = Path::join($this->viewPath[0], 'install.json');
|
||||
$filename = $this->findFile($this->viewPath, 'install.json');
|
||||
if (file_exists($filename)) {
|
||||
$settings = json_decode(File::getContents($filename), true);
|
||||
return $settings;
|
||||
|
|
@ -262,13 +294,13 @@ class Controller_Component
|
|||
}
|
||||
|
||||
$params = new Collection();
|
||||
$params->import(array_merge($_GET, $arguments));
|
||||
$params->import($arguments);
|
||||
$component->parameter = $params;
|
||||
$component->template = $params->get('template', false);
|
||||
|
||||
$editor = $component->getEditUrl();
|
||||
if ($editor) {
|
||||
if(class_exists("Controller_Site")){ //Если мы в CMS2
|
||||
if(class_exists("Controller_Site")) { //Если мы в CMS2
|
||||
$instance = Controller_Site::getInstance();
|
||||
$instance->componentsConfig[] = $editor;
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ class Controller_Front extends Controller_Action
|
|||
* @param request $request Имя модуля
|
||||
* @return string
|
||||
*/
|
||||
public function loadModule($name, Collection $request, $controller = false)
|
||||
public function loadModule($name, Collection $request, $controller = null)
|
||||
{
|
||||
if ($this->isLoaded($name)) {
|
||||
$module = $this->modules[$name];
|
||||
|
|
@ -93,13 +93,13 @@ class Controller_Front extends Controller_Action
|
|||
$this->default = $name;
|
||||
}
|
||||
|
||||
public function execute(HTTPRequest $request)
|
||||
public function execute(HttpRequest $request)
|
||||
{
|
||||
$name = explode("_", $request->get($this->_param, $this->default));
|
||||
if (count($name) >= 2) {
|
||||
$controller = $name[1];
|
||||
} else {
|
||||
$controller = false;
|
||||
$controller = null;
|
||||
}
|
||||
try{
|
||||
return $this->loadModule($name[0], $request, $controller);
|
||||
|
|
|
|||
|
|
@ -1,13 +1,17 @@
|
|||
<?php
|
||||
|
||||
class Controller_Request {
|
||||
function __construct($request, $id) {
|
||||
public $r;
|
||||
public $id;
|
||||
|
||||
function __construct(/*.HttpRequest.*/$request, $id) {
|
||||
$this->r = $request;
|
||||
$this->id = $id;
|
||||
}
|
||||
|
||||
function get($name) {
|
||||
function get($name, $def) {
|
||||
$v = $this->r->get($name);
|
||||
$id = $this->id;
|
||||
if ($id && is_array($v)) {
|
||||
return isset($v[$id]) ? $v[$id] : $def;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,12 +5,15 @@
|
|||
*/
|
||||
class Controller_Service
|
||||
{
|
||||
public $viewPath = array();
|
||||
public $viewPath = [];
|
||||
public $webPath = [];
|
||||
public $registry; // Registry->getInstance
|
||||
public $template;
|
||||
public $templatePath;
|
||||
public $COMPONENTS_WEB;
|
||||
|
||||
public $db;
|
||||
|
||||
public function getTemplatePath($name)
|
||||
{
|
||||
return Path::join($this->viewPath[0], 'templates', 'modern', $name);
|
||||
|
|
|
|||
|
|
@ -21,6 +21,6 @@ class Database_IdGenerator {
|
|||
} else {
|
||||
$result = $this->db->fetchOneArray("SELECT last_insert_rowid() AS nextval");
|
||||
}
|
||||
return intval($result['nextval']);
|
||||
return (int)$result['nextval'];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ class Database_PDOStatement extends PDOStatement implements IteratorAggregate
|
|||
}
|
||||
|
||||
function getInt($name) {
|
||||
return intval($this->fields[$name]);
|
||||
return (int)$this->fields[$name];
|
||||
}
|
||||
|
||||
function getBlob($name) {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ class Excel_DateTime
|
|||
|
||||
function __construct($value)
|
||||
{
|
||||
$this->value = intval($value);
|
||||
$this->value = (int)$value;
|
||||
}
|
||||
|
||||
function getString()
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ class Excel_Number
|
|||
|
||||
function __construct($value)
|
||||
{
|
||||
$this->value = intval($value);
|
||||
$this->value = (int)$value;
|
||||
}
|
||||
|
||||
function getString()
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ class Excel_Table
|
|||
|
||||
function __construct()
|
||||
{
|
||||
$this->name = "Page " . intval(self::$index ++);
|
||||
$this->name = "Page " . ((int)self::$index ++);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -230,7 +230,7 @@ class Excel_Table
|
|||
} else {
|
||||
$doc->writeAttribute('ss:Type', "Number");
|
||||
}
|
||||
$doc->writeCData($this->encode($value));
|
||||
$doc->writeCdata($this->encode($value));
|
||||
}
|
||||
$doc->endElement();
|
||||
$doc->endElement();
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ class Filter_Login extends Filter_Filter
|
|||
const SESSION_BROWSER_SIGN_SECRET = '@w3dsju45Msk#';
|
||||
const SESSION_BROWSER_SIGN_KEYNAME = 'session.app.browser.sign';
|
||||
public $mode = 'ajax';
|
||||
public $user;
|
||||
|
||||
//AJAX-Реквесты для которых не требуется авторизация, потребовалось для сбора статистики
|
||||
public $whiteRequestList = [['module' => "requiredcontent", "action" => "getcount"],
|
||||
|
|
|
|||
|
|
@ -53,7 +53,8 @@ class __partial {
|
|||
function apply() {
|
||||
$params = func_get_args();
|
||||
$result = array();
|
||||
for($i = 0, $j = 0; $i < count($this->params); $i++) {
|
||||
$count = count($this->params);
|
||||
for($i = 0, $j = 0; $i < $count; $i++) {
|
||||
if ($this->params[$i] == __) {
|
||||
$result [] = $params[$j];
|
||||
$j++;
|
||||
|
|
@ -77,7 +78,8 @@ class __compose {
|
|||
function apply () {
|
||||
$params = func_get_args ();
|
||||
$result = call_user_func_array($this->fns[0], $params);
|
||||
for ($i = 1; $i < count($this->fns); $i++) {
|
||||
$count = count($this->fns);
|
||||
for ($i = 1; $i < $count; $i++) {
|
||||
$result = call_user_func($this->fns[$i], $result);
|
||||
}
|
||||
return $result;
|
||||
|
|
@ -306,7 +308,8 @@ class Functions {
|
|||
assert(is_int($length));
|
||||
|
||||
$result = array();
|
||||
for($i = 0; $i < count($array); $i += $length) {
|
||||
$count = count($array);
|
||||
for($i = 0; $i < $count; $i += $length) {
|
||||
$result [] = array_slice($array, $i, $length);
|
||||
}
|
||||
return $result;
|
||||
|
|
|
|||
|
|
@ -15,7 +15,8 @@ class Numbers
|
|||
static function prefix($prefix, array $array, $key = false)
|
||||
{
|
||||
$result = array();
|
||||
for ($i = 0; $i < count($array); $i++) {
|
||||
$count = count($array);
|
||||
for ($i = 0; $i < $count; $i++) {
|
||||
$result [] = call_user_func($prefix, $i + 1) . '. ' . $array[$i];
|
||||
}
|
||||
return $result;
|
||||
|
|
|
|||
19
src/Path.php
19
src/Path.php
|
|
@ -160,8 +160,9 @@ class Path
|
|||
// Сравнение двух путей на равентство
|
||||
public function equal(/*.Path.*/ $path)
|
||||
{
|
||||
if (count($this->path) == count($path->path)) {
|
||||
for ($i = 0; $i < count($this->path); $i++) {
|
||||
$count = count($this->path);
|
||||
if ($count == count($path->path)) {
|
||||
for ($i = 0; $i < $count; $i++) {
|
||||
if ($this->path[$i] != $path->path[$i]) {
|
||||
return false;
|
||||
}
|
||||
|
|
@ -207,8 +208,9 @@ class Path
|
|||
if (isset($this->url['host']) && isset($path->url['host'])
|
||||
&& ($this->url['host'] != $path->url['host'])) return false;
|
||||
|
||||
if (count($path->path) > count($this->path)) {
|
||||
for ($i = 0; $i < count($this->path); $i++) {
|
||||
$count = count($this->path);
|
||||
if (count($path->path) > $count) {
|
||||
for ($i = 0; $i < $count; $i++) {
|
||||
if ($path->path[$i] != $this->path[$i]) {
|
||||
return false;
|
||||
}
|
||||
|
|
@ -252,15 +254,18 @@ class Path
|
|||
$list_path = $list->getParts();
|
||||
|
||||
$result = array();
|
||||
for ($i = 0; $i < count($list_path); $i++) {
|
||||
$count = count($list_path);
|
||||
for ($i = 0; $i < $count; $i++) {
|
||||
if (($i >= count($self_path)) || $list_path[$i] != $self_path[$i]) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
for($j = $i; $j < count($list_path); $j++) {
|
||||
$list_count = count($list_path);
|
||||
for($j = $i; $j < $list_count; $j++) {
|
||||
array_push($result, '..');
|
||||
}
|
||||
for($j = $i; $j < count($self_path); $j++) {
|
||||
$self_count = count($self_path);
|
||||
for($j = $i; $j < $self_count; $j++) {
|
||||
array_push($result, $self_path[$j]);
|
||||
}
|
||||
return implode("/", $result);
|
||||
|
|
|
|||
|
|
@ -48,9 +48,9 @@ class Primitive {
|
|||
if (!empty($tmp)) {
|
||||
if (count($tmp) != 3) return $result;
|
||||
|
||||
$year = intval($tmp[2]);
|
||||
$month = intval($tmp[1]);
|
||||
$day = intval($tmp[0]);
|
||||
$year = (int)$tmp[2];
|
||||
$month = (int)$tmp[1];
|
||||
$day = (int)$tmp[0];
|
||||
|
||||
if ($month != 0 && $day != 0 && $year != 0) {
|
||||
if (checkdate($month, $day, $year)) {
|
||||
|
|
|
|||
|
|
@ -40,7 +40,8 @@ class Tools_Drawing
|
|||
$first_word = true;
|
||||
|
||||
$last_width = 0;
|
||||
for ($i = 0; $i < count($words); $i++) {
|
||||
$count = count($words);
|
||||
for ($i = 0; $i < $count; $i++) {
|
||||
$item = $words[$i];
|
||||
$dimensions = imagettfbbox($size, $angle, $font, $current_line . ($first_word ? '' : ' ') . $item);
|
||||
$line_width = $dimensions[2] - $dimensions[0];
|
||||
|
|
|
|||
|
|
@ -111,7 +111,7 @@ class Tools_SQLStatementExtractor {
|
|||
if ($check === "" || $check === $string) {
|
||||
return true;
|
||||
} else {
|
||||
return (strpos($string, $check) === 0) ? true : false;
|
||||
return (strpos($string, $check) === 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -125,7 +125,7 @@ class Tools_SQLStatementExtractor {
|
|||
if ($check === "" || $check === $string) {
|
||||
return true;
|
||||
} else {
|
||||
return (strpos(strrev($string), strrev($check)) === 0) ? true : false;
|
||||
return (strpos(strrev($string), strrev($check)) === 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ class Tools_String {
|
|||
if ($in_subarr > 0) { // already in sub-array?
|
||||
$subarr[$in_subarr][] = $tok;
|
||||
if ('}' === substr($tok, -1, 1)) { // check to see if we just added last component
|
||||
$res[] = strToArray(implode(',', $subarr[$in_subarr]));
|
||||
$res[] = self::strToArray(implode(',', $subarr[$in_subarr]));
|
||||
$in_subarr--;
|
||||
}
|
||||
} elseif ($tok{0} === '{') { // we're inside a new sub-array
|
||||
|
|
@ -25,7 +25,7 @@ class Tools_String {
|
|||
$subarr[$in_subarr] = array();
|
||||
$subarr[$in_subarr][] = $tok;
|
||||
} else {
|
||||
$res[] = strToArray($tok);
|
||||
$res[] = self::strToArray($tok);
|
||||
}
|
||||
} else { // not sub-array
|
||||
$val = trim($tok, '"'); // remove " (surrounding strings)
|
||||
|
|
|
|||
|
|
@ -33,13 +33,16 @@ class Tools_TemplateImage
|
|||
protected $data = array();
|
||||
protected $base = "c:\\windows\\fonts\\";
|
||||
protected $image;
|
||||
protected $prepare = true;
|
||||
protected $_prepare = true;
|
||||
public $debug = false;
|
||||
|
||||
function __construct ($template = false)
|
||||
public $resource;
|
||||
public $filename;
|
||||
|
||||
function __construct ($template = null)
|
||||
{
|
||||
// assert(is_string($src));
|
||||
if($template) {
|
||||
if ($template) {
|
||||
$this->data = $template;
|
||||
}
|
||||
}
|
||||
|
|
@ -116,7 +119,7 @@ class Tools_TemplateImage
|
|||
return "";
|
||||
}
|
||||
|
||||
function imageText($text, $value)
|
||||
function imageText($text, /*.stdClass.*/$value)
|
||||
{
|
||||
assert(is_string($text));
|
||||
|
||||
|
|
@ -134,7 +137,7 @@ class Tools_TemplateImage
|
|||
}
|
||||
|
||||
if ($value->valign[0]) {
|
||||
$valign = Drawing::ALIGN_TOP;
|
||||
$valign = Tools_Drawing::ALIGN_TOP;
|
||||
} elseif ($value->valign[1]) {
|
||||
$valign = Tools_Drawing::ALIGN_CENTER;
|
||||
} else {
|
||||
|
|
@ -159,7 +162,7 @@ class Tools_TemplateImage
|
|||
{
|
||||
$width = imagesx($this->image);
|
||||
$height = imagesy($this->image);
|
||||
if($new_height == false) {
|
||||
if ($new_height == null) {
|
||||
$new_height = ceil($height * $new_width / $width);
|
||||
}
|
||||
|
||||
|
|
@ -171,8 +174,8 @@ class Tools_TemplateImage
|
|||
}
|
||||
|
||||
function prepare() {
|
||||
if($this->prepare) {
|
||||
$this->prepare = false;
|
||||
if($this->_prepare) {
|
||||
$this->_prepare = false;
|
||||
foreach ($this->data as $value) {
|
||||
$this->imageText($value->text, $value); // break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,7 +25,8 @@ class Validator_Rule_Code extends Validator_Rule_Abstract
|
|||
$name = $this->field;
|
||||
|
||||
if (is_array($_POST[$name . '_code_genre'])) {
|
||||
for($n = 0; $n < count($_POST[$name . '_code_genre']); $n++) {
|
||||
$count = count($_POST[$name . '_code_genre']);
|
||||
for($n = 0; $n < $count; $n++) {
|
||||
$code = array(
|
||||
$_POST[$name . '_code_genre'][$n],
|
||||
$_POST[$name . '_code_f'][$n],
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
class Validator_Rule_Count extends Validator_Rule_Abstract
|
||||
{
|
||||
public $size = 1;
|
||||
public $max = false;
|
||||
public $max = null;
|
||||
|
||||
public function getErrorMsg()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ class Validator_Rule_Date extends Validator_Rule_Abstract
|
|||
public function isValid(Collection $container, $status = null)
|
||||
{
|
||||
$pattern = "/^([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{4})$/";
|
||||
$matches = [];
|
||||
return (preg_match($pattern, $container->get($this->field), $matches)
|
||||
&& checkdate($matches[2], $matches[1], $matches[3]));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ class Validator_Rule_Time extends Validator_Rule_Abstract
|
|||
{
|
||||
$tmp = explode($this->split, $container->get($this->field), 2);
|
||||
if ($tmp) {
|
||||
if (self::checktime ($tmp[0], $tmp[1])) {
|
||||
if (self::checktime ((int)$tmp[0], (int)$tmp[1])) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
<?php
|
||||
|
||||
function loadConfig($filename) {
|
||||
$settings = null;
|
||||
if (@include($filename)) {
|
||||
return $settings;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue