class ad_xml_model extends \ITico_core\common_class {
public function get_info_from_ad($input_id) {
$xml_file = parent::get_set('xml');
$ad_info = $xml_file->xpath("//ad[@id='" . $input_id . "']");
parent::get_set('ad_info', $ad_info);
return $ad_info;
}
}
Приведенный выше код работает, когда модуль тестирует его, я попытался передать как строку, так и int в функцию, и она работает одновременно.передал параметр, не работающий на xpath, хотя работает в модульном тесте
<h2>get_info_from_ad</h2>
test data: 1<br>
info from ad:- <br>
<?php
$ad_xml_model->get_info_from_ad(1);
$ad_info = $ad_xml_model->get_set('ad_info');
print_r($ad_info);
, но в коде ниже, когда вызывается из контроллера ее не работает
class main_controller(){
$ad_top_limit = count($ads_from_category);
$key = rand(0, $ad_top_limit - 1);
$chosen_ad = $ads_from_category[$key];
parent::get_set('chosen_ad', $chosen_ad);
$ad_info = $ad_xml_model->get_info_from_ad($chosen_ad);
parent::get_set('ad_info', $ad_info);
if ($ad_info != null) {
switch ($ad_type) {
case NUll:
break;
case 'long':
$long_view = new long_view($ad_info);
$long_view->show_ad();
}
}
}
и тестирование отлаживать страницы
<?php
echo $main_controller->get_set('chosen_ad') . "<br>";
?>
ad information:-: <br>
<?php
print_r($main_controller->get_set('ad_info'));
Я пошел каждый шаг в пути, повторяющий все переменные, чтобы проверить, что они не являются нулевыми, но для по какой-то причине xpath просто не работает при вызове с основного контроллера, но он отлично работает с модульным тестом, даже если передаются одни и те же параметры.