$url = "/bitrix/admin/update_system.php?BX_SUPPORT_PROTOCOL".date('j', time())."=Y"
$params = array(
'filter' => array(
'ACTIVE' => 'Y',
'>DATE_CREATE' => \Bitrix\Main\Type\DateTime::createFromTimestamp(time() - 86400))
),
'select' => array(
new \Bitrix\Main\Entity\ExpressionField('FOUND_ROWS', 'SQL_CALC_FOUND_ROWS %s','ID'),
'ID',
'NAME',
),
'order' => array('ID'=>'asc'),
'limit' => 10,
);
$rs = \Bitrix\Iblock\ElementTable::getList($params)->fetchAll();
$totalCount = 0;
if ($resultTotal = \Bitrix\Main\Application::getConnection()->queryScalar('SELECT FOUND_ROWS() as TOTAL'))
{ // более быстрое получение количества строк
$totalCount = $resultTotal;
}
$orderFilter = array(
'>=DATE_INSERT' => \Bitrix\Main\Type\DateTime::createFromTimestamp(time()-86400),
'PROP__SOMEPROPERTY' => 'blablabla'
);
$params = array(
'filter' => $orderFilter,
'select' => array(
'ID',
'ACCOUNT_NUMBER',
'DATE_INSERT',
'PRICE',
'CURRENCY',
'DELIVERY_ID',
'PAY_SYSTEM_ID',
'PROP__SOMEPROPERTY' => 'SOMEPROPERTY.VALUE',
),
);
$params['runtime'] = array(
new \Bitrix\Main\Entity\ReferenceField(
'SOMEPROPERTY',
'\Bitrix\Sale\Internals\OrderPropsValueTable',
array(
'=this.ID' => 'ref.ORDER_ID',
'=ref.CODE' => new \Bitrix\Main\DB\SqlExpression('?s', 'SOMEPROPERTY')
)
),
);
$rs = \Bitrix\Sale\Internals\OrderTable::getList($params);
while($r = $rs->fetch())
{
var_export($r);
}
Работает с одиночными свойствами. Со множественными не проверял. define('ENABLE_XHPROF',true);
if(ENABLE_XHPROF && function_exists('xhprof_enable'))
{
global $getMicrotime;
$getMicrotime = function(){
list($usec,$sec) = explode(' ', microtime());
return doubleval($usec) + doubleval($sec);
};
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
$GLOBALS['xhprof_start_time'] = $getMicrotime();
register_shutdown_function(function() {
global $getMicrotime;
$xhprof_data = xhprof_disable();
$tStart = $GLOBALS['xhprof_start_time'];
$diffTime = $getMicrotime()-$tStart;
if($diffTime > 1)
{
$timeF = round($diffTime, 3) . "";
$timeF = str_replace('.', '-', $timeF);
$client = $_SERVER['SHELL']?'shell':'http';
$uri = $_SERVER['REQUEST_URI']?$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']:$_SERVER['PHP_SELF'];
$uri = explode('/', $uri);
$uri = implode('|',$uri);
$xhprofCode = $client.'__'.$uri.'__'.$timeF.'s';
$xhprofCode = preg_replace('#[^a-z0-9_|-]#i', '_', $xhprofCode);
$pathXhprof = $_SERVER['DOCUMENT_ROOT'].'/xhprof-0.9.4';
include_once $pathXhprof.'/xhprof_lib/utils/xhprof_lib.php';
include_once $pathXhprof.'/xhprof_lib/utils/xhprof_runs.php';
$xhprof_runs = new XHProfRuns_Default();
$run_id = $xhprof_runs->save_run($xhprof_data, $xhprofCode);
}
});
} Данный код отлавливает все хиты, работающие больше 1 сек, и заносит их в лог xhprof. В результате в логах Xhprof'а увидим вот такие записи:
Еще один момент. Иногда граф не прорисовывается до конца и изображение прерывается.
В этом случае нужно установить в PHP настройку mbstring.func_overload=0. Соответственно для Битрикса это будет плохо, поэтому интерфейс просмотра логов xhprof желательно вынести на отдельный хост.
/etc/ansible/group_vars/bitrix-mysql /etc/ansible/group_vars/bitrix-web /root/.my.cnf
Настройки отправки email для всех сайтов лежат в файле /home/bitrix/.msmtprc. Без настройки параметров msmtp для конкретного сайта почта на этом сайте может не отправляться.