Последняя версия битрикс, с которой вам приходилось работать?

17.0

Что такое D7?

Это новое ядро Bitrix Framework, реализующее ООП принципы

Что такое модель D7?

Это класс сущности, наследованной от Bitrix\Main\Entity\Datamanager, описывающий таблицу БД и предназначенный для работы с данными таблицы.

Как перекинуть пользователя/посетителя на другой раздел отправив HTTP 301?

Как организовано кеширование в битрикс?

Кеширование в компонентах. Кешируется $arResult. Неуправляемое — когда результат кеширования не перестраивается после изменения данных. Управляемое — когда перестравивается.
Технология Композитный сайт. На странице выделяется блоки с динамичным контентом. В браузер отдается закешированная статическая страница специальный JS, который запрашивает с сервера данные и заполняет ими динамичные зоны.

Где и как хранятся сессии?

  • файлы
  • memcached — предпочтительно (возможны неблокируемые и виртуальные сессии, не нужно следить за старыми, можно разделять между серверами)
  • БД (медленнее memcached)

Что необходимо сделать для создания закрытого раздела, доступного определенной группе пользователей?

Для доступа пользователей группы ID=3 к каталогу test в файле .access.php из корневого каталога добавить:

Что необходимо сделать для создания закрытого раздела, доступного определенной группе пользователей?

Для доступа группы ID=3 к каталогу test в файле .access.php добавить:

AJAX в битрикс. Способы реализации.

В JS:

В PHP:

Многосайтовость. Способы деления системы на 2 и более сайтов.

На одном домене — создать каталог для каждого сайта и указать в настройках сайтов.
На разных доменах — для каждого сайта в конфиге веб-сервера отдельная настройка, в каталогах сайтов создать символические ссылки на bitrix, upload, local.

Asset. Что это?

Asset — класс D7 для подключения скриптов и стилей. Вместо старых AddHeadScript, SetAdditionalCss, AddHeadString.

Максимальное кол-во свойств в инфоблоке?

Ограничения нет, но могут возникать проблемы из-за превышения лимита памяти.

HighLoad-блоки. Что это? Как используется в битрикс?

Это «легкая» замена инфоблокам в высоконагруженных проектах. У каждого HLB отдельные таблицы, легко создаются индексы. В обычных проектах используются как справочники.

Как битрикс ищет шаблон к компоненту?

  • в шаблоне текущего сайта
  • в шаблоне сайта по умолчанию .default
  • в каталоге компонента

Для чего служит Cutil::InitJSCore()

Для подключения js-библиотек, например, ajax, jquery, popup.

Как битрикс ищет языковой файл?

В подкаталогах lang/[код языка]. В компонентах [компонент]/[template]/[lang][код языка]/[локализуемый файл]

Как в скрипте узнать, что «пришел» AJAX запрос средствами битрикс?

Что такое BitrixVM?

Виртуальная машина, настроенная для работы с битриксом и не только. CentOS, httpd, nginx, php, mysql, memcached и пр.

Что необходимо для выведения кол-ва пользователей «он-лайн» средствами битрикс?

Модуль статистики и CUserOnline::GetList

Чем опасно включение опции «Переместить весь Javascript в конец страницы»? Какие способы избежать трудностей?

Некоторые скрипты могут сломаться. Чтобы оставить скрипт на месте добавить атрибут <script data-skip-moving=»true»>

Для каких целей внедрен и настроен по умолчанию Sphinx?

Для быстрого и качественного полнотекстового поиска. Интегрирован с модулем Поиск.

Сколько типов данных в РНР?

Четыре скалярных типа: boolean, integer, float, string.

Четыре смешанных: array, object, callable (>=5.4), iterable ( >= 7.1, для генераторов yield)

Два специальных: resource и NULL

Что такое конструктор?

Это метод __construct класса, который вызывается при каждом создании объекта.

Обязательно ли писать закрывающий тег ?> в конце скрипта?

Нет. Стандарт PSR даже запрещает его использование.

Поддерживает ли РНР множественное наследование?

Нет, для этого используются interface и trait.

Какая разница между require(), require_once(), include() и include_once()?

require_once и include_once включают файл только один раз. Если файл не найден, require* выдает фатальную ошибку, а include* предупреждение.

Как перевернуть массив? Есть массив array(‘h’, ‘e’, ‘l’, ‘l’, ‘o’), как из него получить array(‘o’, ‘l’, ‘l’, ‘e’, ‘h’)

array_reverse(array(‘h’, ‘e’, ‘l’, ‘l’, ‘o’))

Как перевернуть строку? «Привет» → «тевирП»

 

Есть ли разница между одинарными и двойными кавычками в PHP?

Есть, внутри двойных можно использовать переменные и управляющие последовательности спецсимволов

Нарисуй (напиши) форму для отправки файла + файл-приемник

file_send.html

 

file_save.php

 

Сгенерировать 3 случайных числа в диапазоне от 0 до 10. Если сумма этих чисел меньше 14, сгенерировать новую тройку.

 

Для чего в PHP 5 используется тип данных “указатель“?

Такого типа я не знаю.

Какой будет результат выполнения этого скрипта?

567

Какие магические методы знаешь? Что это вообще такое?

Магические методы вызываются неявным образом при определенных условиях.
__construct – конструктор
__destruct – деструктор
__toString – вызывается при преобразовании в строку
__get – чтение из недоступного свойства
__set – запись в недоступное свойство
__clone – вызывается при клонировании
__invoke – вызывается при обращении к объекту как к функции
__call – вызов недоступного метода
__callStatic – вызов недоступного статического метода
__isset – вызывается при использовании isset()
__unset — вызывается при использовании unset()
__sleep – вызывается при сериализации
__wakeup – вызывается при десериализации

Как можно переадресовать пользователя на другую страницу?

header(‘Location: http://yandex.ru/‘)

Чему равно $b в данном отрезке кода:

304

Что такое первичный ключ?

Это поле, значение которого является уникальным идентификатором записи таблицы. Это поле проиндексировано, а его значение сохраняется в каждом индексе.

Что такое mysql_pconnect? Чем он отличается от mysql_connect?

mysql_pconnect устанавливает постоянное соединение с базой данных, которое не закрывается после завершения работы скрипта.

Что такое MyISAM и InnoDB?

Это системы хранения данных в MySQL.

Чем они отличаются?

MyISAM – нет транзакций и внешних ключей, каждая таблица в своем файле, при записи блокируется вся таблица. Если только вставка или чтение, то быстрее InnoDB.

InnoDB — есть транзакции, внешние ключи, больше соответствует реляционной модели. Блокировка на уровне строк. Быстрее при смешанных операциях SELECT, INSERT, UPDATE.

Есть две таблицы: users — таблица с пользователями (users_id, name) orders — таблица с заказами (orders_id, users_id, status)

  1. Выбрать всех пользователей из таблицы users, у которых ВСЕ записи в таблице orders имеют status = 0;
  2. Выбрать всех пользователей из таблицы users, у которых больше 5 записей в таблице orders имеют status = 1;

 

Какая разница между LEFT, RIGHT и INNER JOIN

INNER — выбираются только те строки, которые есть одновременно в объединяемых таблицах
LEFT — все из левой, отсутствующие в правой заполняются NULL
RIGHT — все из правой, отсутствующие в левой заполняются NULL

Что делает команда EXPLAIN?

Предоставляет информацию о порядке и методе связывания таблиц.

Как вывести все поля из таблицы my_table

Вывести всех производителей за исключением тех, которые находятся в Китае, Таджикистане и России; табл.: manufacture (id, country, count, date_add, tag)

Мы не помним как точно пишется “Mercedes“ или “Mersedes“, но нужно из таблицы выбрать автобусы именно этой марки. Как быть? табл.: bus (id, name)

Порядок транзакции

Напишите пример процедуры возвращающей конкатенацию входных параметров (2х входных параметров) типа varchar, с проверкой на наличие значений (not null), и сообщением в качестве возвращаемого значения, в случае если один из параметров не прошел проверку.

Что такое триггер? Возможные применения?

Хранимая процедура, которая вызывается при наступлении определенного события (INSERT, UPDATE, DELETE), до или после (BEFORE или AFTER). Применяются чтобы выполнить дополнительные операции. Например, записать в журнал дату изменения записи.

PDO. Что это?

PHP Data Objects — расширение для универсального доступа к различным БД. Для каждой БД используется родной драйвер, а программный интерфейс одинаков. PDO предоставляет объектно-ориентированный подход для работы с БД.

Как сделать сортировку при отключенном количественном учете описано здесь.

1. Добавить числовое свойство IS_AVAILABLE в инфоблок товаров.

2. Добавить в init.php

Но по-хорошему еще нужно добавить индекс по добавленному свойству PROPERTY