Отладка

Средства отладки программного кода для разработки продуктов на основе фреймворка Webasyst

Содержание...

Отладку можно выполнять в PHP-коде и в коде шаблонов Smarty.

Отладка PHP-кода

  • wa_dump()

    Выводит в браузер значения аргументов и прерывает исполнение PHP-кода.

  • wa_dumpc()

    Выводит в браузер значения аргументов без прерывания исполнения PHP-кода.

  • waLog::dump()

    Сохраняет значения в лог-файл.

  • waLog::log()

    Сохраняет значение в лог-файл с приведением значения к типу string.

Отладка кода в шаблонах Smarty

  • {debug}

    Открывает консоль отладки Smarty.

  • {wa_tpl_vars}

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

  • {wa_dump(...)}, {...|wa_dump}

    Показывает значения переменных с прерыванием исполнения кода шаблона.

  • {wa_dumpc(...)}, {...|wa_dumpc}

    Показывает значения переменных без прерывания исполнения кода шаблона.

function wa_dump ($var_1 [, $var_2, ..., $var_n])

Выводит в браузер значения переданных аргументов и прерывает исполнение PHP-кода. Можно указать любое количество аргументов.

Параметры

  • $var_1, $var_2, ..., $var_n

    Значения, которые нужно вывести в браузер.

Пример

$var_1 = 'foo';
$var_2 = 42;
$var_3 = array(1, 2, 3);

wa_dump($var_1, $var_2);
wa_dump($var_3);

Результат

'foo'

42

// Значение переменной $var_3 не будет выведено, потому что исполнение PHP-кода было прервано предыдущим вызовом wa_dump().

function wa_dumpс ($var_1 [, $var_2, ..., $var_n])

Выводит в браузер значения переданных аргументов без прерывания исполнения PHP-кода. Можно указать любое количество аргументов.

Параметры

  • $var_1, $var_2, ..., $var_n

    Значения, которые нужно вывести в браузер.

Пример

$var_1 = 'foo';
$var_2 = 42;
$var_3 = array(1, 2, 3);

wa_dump($var_1, $var_2);
wa_dump($var_3);

Результат

'foo'

42

// Значение переменной $var_3 выведено, потому что исполнение PHP-кода НЕ прерывается вызовом wa_dumpc().
array(
    0 => 1,
    1 => 2,
    2 => 3,
)

public static function waLog::dump ($var_1 [, $var_2, ..., $var_n, $file = 'dump.log'])

Сохраняет значения в лог-файл. Можно указать любое количество аргументов. В качестве последнего аргумента можно указать имя лог-файла, если нужно использовать имя, отличное от стандартного dump.log.

Содержимое лог-файлов удобно просматривать с помощью приложения «Логи».

Параметры

  • $var_1, $var_2, ..., $var_n

    Значения, которые нужно сохранить в лог-файл.

  • $file

    Имя лог-файла. Если не указывать, то по умолчанию используется стандартное имя dump.log.

Пример

$var_1 = 'foo';
$var_2 = 42;
$var_3 = array(1, 2, 3);

waLog::dump($var_1, $var_2, $var_3);

Результат

// Значения будут сохранены в файл wa-log/dump.log.
'foo'

42

array(
    0 => 1,
    1 => 2,
    2 => 3,
)

public static function waLog::log ($var, $file = 'error.log')

Сохраняет значение в лог-файл с приведением значения к типу string.

Содержимое лог-файлов удобно просматривать с помощью приложения «Логи».

Параметры

  • $var

    Значение, которое нужно сохранить в лог-файл.

  • $file

    Имя лог-файла. По умолчанию используется стандартное имя error.log.

Пример

$var_1 = 'foo';
$var_2 = 42;

waLog::log($var_1);
waLog::log($var_2);

Результат

// Значения будут сохранены в файл wa-log/error.log —
// по одному значению для каждого вызова waLog::log().
'foo'

42

Пример

// Сохранение сразу нескольких значений в лог-файл
$var_1 = 'foo';
$var_2 = 42;
$var_3 = array(1, 2, 3);

waLog::log(json_encode(compact('var_1', 'var_2', 'var_3')));

Результат

// Значения будет сохранены в файл wa-log/error.log.
{"var_1":"foo","var_2":42,"var_3":[1,2,3]}

{debug}

Открывает консоль отладки Smarty.

Пример

{debug}

{wa_tpl_vars}

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

Пример

{wa_tpl_vars}

Результат

array(
    'SCRIPT_NAME' => '/index.php',
    'wa_url' => '/',
    'wa_static_url' => waCdn object {
        *cdn_list => array()
        *url => '/'
    },
    'wa_backend_url' => '/webasyst/',
    'wa_app' => 'myapp',
    'wa_app_url' => '/webasyst/myapp/',
    'wa_app_static_url' => waCdn object {
        *cdn_list => array()
        *url => '/webasyst/myapp/'
    },
    'wa_real_app_static_url' => '/wa-apps/myapp/',
    'wa' => waViewHelper object { ** skipped ** },
    'smarty' => NULL,
)

{wa_dump($var_1 [, $var_2, ..., $var_n])}
{$var|wa_dump}

Показывает значения переменных с прерыванием исполнения кода шаблона.

Пример

{$var_1 = 'foo'}
{$var_2 = 42}

// Можно вывести значения сразу нескольких переменных.
{wa_dump($var_1, $var_2)}

Результат

'foo'

42

Пример

{$var_1 = 'foo'}
{wa_dump($var_1)}

{wa_dump($var_2)}
{$var_2 = 42}

Результат

'foo'

// Значение переменной $var_2 не будет выведено, потому что исполнение кода шаблона было прервано предыдущим вызовом wa_dump().

Пример

{$var = 'foo'}

// При использовании функции в качестве модификатора можно вывести только одно значение.
{$var|wa_dump}

Результат

'foo'

{wa_dumpc($var_1 [, $var_2, ..., $var_n])}
{$var|wa_dumpc}

Показывает значения переменных без прерывания исполнения кода шаблона.

Пример

{$var_1 = 'foo'}
{$var_2 = 42}

// Можно вывести значения сразу нескольких переменных.
{wa_dumpc($var_1, $var_2)}

Результат

'foo'

42

Пример

{$var_1 = 'foo'}
{wa_dumpc($var_1)}

{$var_2 = 42}
{wa_dumpc($var_2)}

Результат

'foo'

// Можно выводить по очереди несколько разных значений, потому что исполнение кода шаблона НЕ прерывается предыдущими вызовами wa_dumpc().
42

Пример

{$var = 'foo'}

// При использовании функции в качестве модификатора можно вывести только одно значение.
{$var|wa_dump}

Результат

'foo'