Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pages/about/ecosystem.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ Bitrix Framework — PHP-платформа для разработки веб-
Чтобы изучить связанные темы, перейдите к статьям:
- [Архитектура](../framework/architecture.md),
- [Жизненный цикл запроса](../framework/request-lifecycle.md),
- [Роутинг](../framework/routing.md).
- [Роутинг](../framework/routing.md).

Если нужно сравнить платформу с другими решениями, используйте статьи:
- [Отличия от других CMS](./cms-comparison.md),
Expand Down
2 changes: 1 addition & 1 deletion pages/advanced/datetime.md
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ if (Date::isCorrect('31.02.2025', 'd.m.Y'))
Конструктор создает объект даты со временем.

```php
new DateTime(?string $time = null, ?string $format = null, ?DateTimeZone $timezone = null)
new DateTime(?string $time = null, ?string $format = null, ?DateTimeZone $timezone = null)
```

- `$time` — строка с датой и временем. По умолчанию — текущее время.
Expand Down
6 changes: 3 additions & 3 deletions pages/advanced/debug.md
Original file line number Diff line number Diff line change
Expand Up @@ -188,10 +188,10 @@ foreach ($queries as $query)

```php
use Bitrix\Main\Diag\Debug;

// Запись в файл по умолчанию
Debug::writeToFile($_SERVER, 'Данные сервера');

// Запись в указанный файл
Debug::writeToFile($myArray, 'Мой массив', 'local/test_log.txt');
```
Expand Down Expand Up @@ -225,7 +225,7 @@ foreach ($queries as $query)

```php
use Bitrix\Main\Diag\Debug;

// Запись структурированных данных в файл
Debug::dumpToFile($_SESSION, 'Текущая сессия', 'local/logs/session_dump.log');
```
Expand Down
23 changes: 12 additions & 11 deletions pages/advanced/http-client.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ return [

```php
use Bitrix\Main\Config\Configuration;

print_r(Configuration::getValue('http_client_options'));
```

Expand Down Expand Up @@ -180,11 +181,11 @@ $url = "http://www.example.ru";
$url2 = "http://www.example.ru/form_request";
$post = "val1=true&val2=false";

$httpClient = new HttpClient();
$httpClient = new HttpClient();
$httpClient->query('GET', $url);
$cookie = $httpClient->getCookies()->toArray();

$httpClient->setHeader('Content-Type', 'application/x-www-form-urlencoded');
$httpClient->setHeader('Content-Type', 'application/x-www-form-urlencoded');
$httpClient->setCookies($cookie);
$response = $httpClient->post($url2, $post);
```
Expand All @@ -200,7 +201,7 @@ $response = $httpClient->post($url2, $post);
```php
use Bitrix\Main\Web\HttpClient;
use Bitrix\Main\Web\Http\Response;
use Psr\Http\Message\RequestInterface;
use Psr\Http\Message\RequestInterface;

$http = new HttpClient();

Expand Down Expand Up @@ -286,7 +287,7 @@ $request = new Request(Method::POST, $uri, [], $body);
try
{
$response = $http->sendRequest($request);

var_dump($response->getStatusCode());
var_dump($response->getHeaders());
var_dump((string)$response->getBody());
Expand Down Expand Up @@ -328,8 +329,8 @@ $data = [
'k1' => 'v1',
'k2' => 'v2',
'k3' => [
'resource' => $res, // ссылка на открытый файл
'filename' => 'pic.jpg', // имя файла, которое увидит сервер
'resource' => $res, // ссылка на открытый файл
'filename' => 'pic.jpg', // имя файла, которое увидит сервер
],
];

Expand All @@ -352,7 +353,7 @@ fclose($res);
try
{
$response = $http->sendRequest($request);

var_dump($response->getStatusCode());
var_dump($response->getHeaders());
var_dump((string)$response->getBody());
Expand Down Expand Up @@ -391,9 +392,9 @@ $request = new Request(Method::GET, $uri);
try
{
do
{
{
$response = $http->sendRequest($request);

if ($response->hasHeader('Location'))
{
$location = $response->getHeader('Location')[0];
Expand Down Expand Up @@ -617,7 +618,7 @@ return [
'loggers' => [
'value' => [
'main.HttpClient' => [
'constructor' => function (\Bitrix\Main\Web\Http\DebugInterface $debug, \Psr\Http\Message\RequestInterface $request) {
'constructor' => function (\Bitrix\Main\Web\Http\DebugInterface $debug, \Psr\Http\Message\RequestInterface $request) {
$debug->setDebugLevel(\Bitrix\Main\Web\HttpDebug::ALL);
return new \Bitrix\Main\Diag\FileLogger('/home/bitrix/www/httplog'. spl_object_hash($request) . '.log');
},
Expand All @@ -643,7 +644,7 @@ return [
$logger = new \Bitrix\Main\Diag\FileLogger($_SERVER['DOCUMENT_ROOT'] . '/http.log');

$logger->setFormatter(
new class($request) implements \Bitrix\Main\Diag\LogFormatterInterface
new class($request) implements \Bitrix\Main\Diag\LogFormatterInterface
{
public function __construct(public \Psr\Http\Message\RequestInterface $request) {}

Expand Down
6 changes: 3 additions & 3 deletions pages/advanced/images.md
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ if ($image->load())
{
// Исходный прямоугольник по текущим размерам изображения
$source = new Rectangle($image->getWidth(), $image->getHeight());

// Целевой прямоугольник с максимальными размерами
$destination = new Rectangle(400, 400);

Expand Down Expand Up @@ -303,10 +303,10 @@ $image = new Image('/home/bitrix/www/sticker.gif');

if ($image->load())
{
// ... после обработки
// ... после обработки
$image->saveAs("/home/bitrix/www/resized_sticker.gif", 95, Image::FORMAT_GIF);
// Освобождаем память
$image->clear();
$image->clear();
}
```

Expand Down
11 changes: 6 additions & 5 deletions pages/advanced/localization.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,9 @@ Loc::loadMessages($_SERVER['DOCUMENT_ROOT'] . '/local/myscript.php');
Метод `getMessage` возвращает сообщение по коду.

```php
\Bitrix\Main\Localization\Loc::getMessage($code, $replace, $language)
use Bitrix\Main\Localization\Loc;

Loc::getMessage($code, $replace, $language)
```

- `$code` — код сообщения. Должен быть уникальным.
Expand All @@ -167,7 +169,7 @@ Loc::loadMessages($_SERVER['DOCUMENT_ROOT'] . '/local/myscript.php');
В коде замените статичный текст на вызов метода `getMessage` с кодом языкового сообщения.

```php
<?=Loc::getMessage('MYMODULE_GREETING')?>
<?= Loc::getMessage('MYMODULE_GREETING') ?>
```

**Пример.** Сообщение в языковом файле содержит шаблоны, вместо которых можно подставить данные.
Expand All @@ -183,8 +185,7 @@ $MESS['WELCOME_TEXT'] = 'Привет, #NAME#! Количество новых
В параметре `$replace` укажем, на что заменить шаблоны.

```php
<?php
echo Loc::getMessage('WELCOME_TEXT', ['#NAME#' => 'Алексей', '#NUM#' => 5]);
<?= Loc::getMessage('WELCOME_TEXT', ['#NAME#' => 'Алексей', '#NUM#' => 5]); ?>
```

Результат — сообщение с текстом `Привет, Алексей! Количество новых сообщений: 5`.
Expand Down Expand Up @@ -348,7 +349,7 @@ beforeCreate()
{
// Установить одну фразу
this.$bitrix.Loc.setMessage('DEMO_COUNTER', 'Счетчик: #COUNTER#');

// Установить несколько фраз
this.$bitrix.Loc.setMessage({
DEMO_COUNTER: 'Счетчик: #COUNTER#',
Expand Down
26 changes: 13 additions & 13 deletions pages/advanced/logger.md
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ $logger->setFormatter($formatter);
use Bitrix\Main\Diag\Helper;

$logger->debug(
"{date} - {host}\n{trace}{delimiter}\n",
"{date} - {host}\n{trace}{delimiter}\n",
[
'trace' => Diag\Helper::getBackTrace(6, DEBUG_BACKTRACE_IGNORE_ARGS, 3)
]
Expand Down Expand Up @@ -222,7 +222,7 @@ use Psr\Log;
class MyClass implements Log\LoggerAwareInterface
{
use Log\LoggerAwareTrait;

public function doSomething()
{
if ($this->logger)
Expand Down Expand Up @@ -253,7 +253,7 @@ use Psr\Log;
class MyClass implements Log\LoggerAwareInterface
{
use Log\LoggerAwareTrait;

public function doSomething()
{
if ($logger = $this->getLogger())
Expand Down Expand Up @@ -376,7 +376,7 @@ return [
'value' => [
'main.HttpClient' => [
'constructor' => function (\Bitrix\Main\Web\HttpClient $http, $method, $url)
{
{
$http->setDebugLevel(\Bitrix\Main\Web\HttpDebug::ALL);
return new \Bitrix\Main\Diag\FileLogger('/home/bitrix/www/log.txt');
},
Expand Down Expand Up @@ -428,8 +428,8 @@ return [
'value' => [
'main.HttpClient' => [
'constructor' => function (\Bitrix\Main\Web\Http\DebugInterface $debug, \Psr\Http\Message\RequestInterface $request)
{
// Включаем полную отладку HTTP-клиента
{
// Включаем полную отладку HTTP-клиента
$debug->setDebugLevel(\Bitrix\Main\Web\HttpDebug::ALL);
// Генерируем уникальное имя файла на основе хеша объекта запроса
// Создаем отдельный файловый логгер для текущего запроса
Expand All @@ -454,31 +454,31 @@ return [
'main.HttpClient' => [
'constructor' => function (\Bitrix\Main\Web\Http\DebugInterface $debug, \Psr\Http\Message\RequestInterface $request)
{
// Включаем только логирование заголовков запроса
// Включаем только логирование заголовков запроса
$debug->setDebugLevel(\Bitrix\Main\Web\HttpDebug::REQUEST_HEADERS);

// Единый файл для всех внешних вызовов
$logger = new \Bitrix\Main\Diag\FileLogger($_SERVER['DOCUMENT_ROOT'] . '/http.txt');

// Назначаем анонимный форматтер
$logger->setFormatter(
new class($request) implements \Bitrix\Main\Diag\LogFormatterInterface
new class($request) implements \Bitrix\Main\Diag\LogFormatterInterface
{
public function __construct(public \Psr\Http\Message\RequestInterface $request) {}

public function format($message, array $context = []): string
{
// Игнорируем запросы к push-серверу
if ($this->request->getUri()->getPort() === 1337)
{
return '';
}

return $this->request->getUri() . " \t" . $_SERVER['REQUEST_URI'] . "\n";
}
}
);

return $logger;
},
'level' => \Psr\Log\LogLevel::DEBUG,
Expand Down
14 changes: 7 additions & 7 deletions pages/advanced/multisite.md
Original file line number Diff line number Diff line change
Expand Up @@ -301,18 +301,18 @@ Bitrix Framework поддерживает два режима многосайт
<html>
<head><title>Создание символических ссылок</title></head>
<body>
<?
<?php
error_reporting(E_ALL & ~E_NOTICE);
@ini_set("display_errors", 1);

$path = rtrim($_POST['path'] ?? '../site_main', "/\\");
$strError = '';

if ($_POST['create'])
{
// Формируем абсолютный путь
$full_path = preg_match("#^/#", $path) ? $path : realpath($_SERVER['DOCUMENT_ROOT'].'/'.$path);

if (file_exists($_SERVER["DOCUMENT_ROOT"]."/bitrix"))
{
$strError = "В текущей папке уже существует папка bitrix.";
Expand Down Expand Up @@ -348,7 +348,7 @@ Bitrix Framework поддерживает два режима многосайт
{
$strError = 'Неверно указан путь или ошибка прав доступа.';
}

if ($strError)
{
echo '<font color="red">' . $strError . '</font><br>Путь: ' . htmlspecialchars($full_path);
Expand All @@ -357,7 +357,7 @@ Bitrix Framework поддерживает два режима многосайт
?>
<form method="post">
Путь к папке с ядром:<br>
<input type="text" name="path" value="<?=htmlspecialchars($path)?>" size="50"><br><br>
<input type="text" name="path" value="<?= htmlspecialchars($path) ?>" size="50"><br><br>
<input type="submit" value="Создать ссылки" name="create">
</form>
</body>
Expand All @@ -383,7 +383,7 @@ Bitrix Framework поддерживает два режима многосайт
- `.access.php` — ограничивает доступ к публичной части сайта. Добавьте файл, если он есть на основном сайте. Файл содержит строку, которая разрешает всем пользователям просматривать корень сайта.

```php
<? $PERM["/"]["*"]="R"; ?>
<?php $PERM["/"]["*"]="R"; ?>
```

#### Настроить виртуальные хосты
Expand Down
10 changes: 5 additions & 5 deletions pages/advanced/numerator.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ $templateWords = Numerator::getTemplateWordsForType('DOCUMENT');
#|
|| **Генератор** | **Служебные слова** ||
|| `RandomNumberGenerator` |`{RANDOM}` — случайная строка из заглавных латинских букв и цифр ||
|| `DateNumberGenerator` |`{DAY}` — день месяца в момент генерации номера с ведущим нулем: `01`, `23`
|| `DateNumberGenerator` |`{DAY}` — день месяца в момент генерации номера с ведущим нулем: `01`, `23`
`{MONTH}` — месяц в момент генерации номера с ведущим нулем: `03`, `11`
`{YEAR}` — текущий год на момент генерации кода ||
|| `SequentNumberGenerator` | `{NUMBER}` — уникальный последовательный номер ||
Expand Down Expand Up @@ -117,9 +117,9 @@ $settings = Numerator::getSettingsFields('DOCUMENT');
['settingName' => 'year', 'value' => 'year', 'title' => 'В пределах года',],],
],
['settingName' => 'timezone', 'type' => 'array', 'values' => [...]],
...,
// ...,
],
...,
// ...,
],
'settingsWords' => [
'Bitrix_Main_Numerator_Generator_SequentNumberGenerator' => ['{NUMBER}' => 'Последовательный номер',],
Expand Down Expand Up @@ -346,7 +346,7 @@ $numerators = Numerator::getListByType('CRM_INVOICE');
### Получить следующий номер

```php
$number = $numerator->getNext();
$number = $numerator->getNext();
```

## Изменить настройки нумератора
Expand Down Expand Up @@ -449,7 +449,7 @@ echo $numerator->getNext('A') . PHP_EOL;

```php
use Bitrix\Main\Numerator\Numerator;

Numerator::load($numeratorId, $hashable);
```

Expand Down
Loading