$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'а увидим вот такие записи:
Еще один момент. Чтобы не было вот такого
/etc/ansible/group_vars/bitrix-mysql /etc/ansible/group_vars/bitrix-web /root/.my.cnf
Настройки отправки email для всех сайтов лежат в файле /home/bitrix/.msmtprc. Без настройки параметров msmtp для конкретного сайта почта на этом сайте может не отправляться.
crontab -u userLogin -lЧтобы отредактировать файл задач crontab сначала переключим редактор с vi на более удобный mcedit:
export EDITOR=mceditЗатем отредактируем задачи cron, которые запускаются под пользователем "userLogin":
crontab -u userLogin -e
yum -y install memcachedВ файле /etc/sysconfig/memcached заменяем строку OPTIONS на:
OPTIONS="-l 127.0.0.1"Добавляем memcached в автозагрузку:
service memcached start chkconfig memcached onСтавим библиотеку PHP-memcache:
yum -y install php-pecl-memcacheПоследнее возможно не понадобится, т.к. в виртуальной машине Битрикс этот модуль есть по-умолчанию.
'cache' => array( 'value' => array ( 'type' => 'memcache', 'sid' => $_SERVER["DOCUMENT_ROOT"]."#site01", 'memcache' => array( 'host' => '127.0.0.1', 'port' => '11211', ), ), 'readonly' => false, ),Всё. Теперь в панели производительности Битрикс (http://site.com/bitrix/admin/perfmon_panel.php) должны увидеть: