Мои bitrix сертификаты
Экзамен 1 и 2 успешно сданы.
Экзамен 1 и 2 успешно сданы.
Чтобы передать данные, например, из шаблона компонента в шаблон сайта можно воспользоваться функционалом отложенных функций.
ShowViewContent
это обычная отложенная функция такая же как и SetTitle
или SetPageProperty
.
Поэтому вывод контента с помощью ShowViewContent
может быть выше по коду, чем передача самого контента с помощью AddViewContent
или с помощью SetViewTarget
+ EndViewTarget
.
Передаём контент в буферизируемую область:
$APPLICATION->AddViewContent('myContentBlockName', '<p>Hello</p>');
И указываем где нужно выводить содержимое этой буферизируемой области, но только в некешируемой части, например в шаблоне сайта:
php
?// генерируем ключ
$keyResource = openssl_pkey_new([
'private_key_bits' => 2048,
'private_key_type' => OPENSSL_KEYTYPE_RSA,
]);
echo gettype($keyResource) . PHP_EOL; // resource
// получаем приватный ключ
openssl_pkey_export(
$keyResource,
$privateKey
);
echo $privateKey;
// -----BEGIN PRIVATE KEY-----
// MIIEvgIBADANBgkqhkiG9w0BAQEF...
// ...
// -----END PRIVATE KEY-----
// сохраняем приватный ключ в файл
file_put_contents(
'php-private-key.pem',
$privateKey
);
// получаем публичный ключ
$publicKey = openssl_pkey_get_details($keyResource);
echo $publicKey['key'];
// -----BEGIN PUBLIC KEY-----
// MIIBIjANBgkqhkiG9w0BAQEFAAO...
// ...
// -----END PUBLIC KEY-----
// сохраняем публичный ключ в файл
file_put_contents(
'php-public-key.pem',
$publicKey['key']
);
composer require vendor/package
Скачивает и устанавливает пакет, добавляет записи в файлы composer.json
и composer.lock
.
composer install
Если файла composer.lock
ещё нет, то install
создаст на основе composer.json
новый composer.lock
, и дальше скачает и установит зависимости (а так же удалит лишние, если такие есть) по данным из свежего composer.lock
.
Если файл composer.lock
уже есть, то install
скачает и установит зависимости (а так же удалит лишние) по данным из composer.lock
, а файл composer.json
будет проигнорирован.
composer update
Обновит версии пакетов и обновит файл composer.lock
.
Давайте разберёмся с массивами (объектами Array
), какие у них есть методы и как ими пользоваться.
let myArray = [];
// эквивалентно:
myArray = new Array();
Если мы не создавали массив, а получили переменную извне, то нужно проверить является ли она массивом.
А также иногда бывает полезно проверить переменную на существование проверив её тип,
чтобы избежать ошибки вроде Uncaught ReferenceError: myArray is not defined
:
if (
typeof myArray === 'object' &&
Array.isArray(myArray)
) {
console.log(true);
}
Заполнить массив можно при создании:
let myArray = [1, 2, 3];
Либо с помощью метода push
:
Если текст файла в vi выводится таким тёмным цветом, который сливается с фоном, из-за чего теряется читабельность, то нужно выполнить команду, которая это поправит:
:set background=dark
Или прописать в файле ~/.vimrc
:
set background=dark
Допустим у нас есть данные:
$data = 'My secret data!';
И мы хотим зашифровать их, чтобы позже расшифровать с использованием пароля, например такого:
$password = '1234';
Но открытый пароль мы не будем передавать, а создадим на его основе ключ с помощью хеширования и передадим его.
$key = sha1($password);
Рекомендуется использовать для шифрования библиотеку OpenSSL: openssl_encrypt()
, openssl_decrypt()
и вспомогательные функции.
Для начала нужно выбрать метод шифрования, например, aes-128-cbc
. Все доступные методы можно посмотреть вызвав функцию openssl_get_cipher_methods()
.
$method = 'aes-128-cbc';
Теперь нам нужно создать вектор инициализации (IV, Initialization Vector) - случайные данные, на основе которых будет произведено шифрование.
Для windows очень просто - скачать с официального сайта инсталлятор и установить. :)
Плюс нужно прописать в PATH путь к консольным скриптам (c:\Program Files\RabbitMQ Server\rabbitmq_server-{VERSION}\sbin\
).
И добавить в .bashrc: alias rabbitmqctl='rabbitmqctl.bat'
, чтобы удобнее было запускать консольные команды.
Для установки на Linux и macOS инструкции есть на официальном сайте.
Выполнить в консоли:
rabbitmqctl status
Выполнить в консоли:
rabbitmqctl list_queues
Устанавливаем библиотеку php-amqplib
:
composer install php-amqplib/php-amqplib
Создаём объект соединения:
Minimum viable product
- минимально жизнеспособный продукт. Подход в создании продукта, который позволяет как можно раньше получить пользовательский фидбэк, чтобы принимать правильные решения относительно развития продукта. Снижаем затраты и риски на то, что пользователям не нужно, максимизируем усилия на перспективных гипотезах.
Tty обозначает телетайп, т. е. терминал. Например, порты компьютера, к которым подключены терминалы.
Pty обозначает псевдотелетайп, т. е. программа, которая ведёт себя как терминал, т. е. имеет интерфейсы для ввода и вывода, например, winpty для git bash.