namespaces — вызвать функцию в разных пространствах имен. Переполнение стека

Я изучаю MVC недавно. Я пытаюсь перебазировать свой сайт в структуре MVC, и у меня есть проблема с вызовом функции внутри другого пространства имен (возможно, я не очень разбираюсь в ООП). Вот мой код:

namespace UserFrosting;

class GroupController extends \UserFrosting\BaseController {

public function testFunction($params){
//Simple test function that i had error: Call to undefined function UserFrosting\testFunction()
$params['Password'] = $pw;
$params['JSON'] = 'Yes';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_VERBOSE, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($curl);
if (curl_errno($curl)) $obj = (object) array('Result' => 'Error', 'Error' =>      curl_error($curl));
else if (empty($response)) $obj = (object) array('Result' => 'Error', 'Error' => 'Connection failed');
else $obj = json_decode($response);
curl_close($curl);
return $obj;
}

public function loginNumber(){
$params = array("Command" => "SystemStats");
$api = testFunction($params);
echo "<h3>Server Status</h3>\r\n";
if ($api -> Result == "Error") die("Error: " . $api -> Error);
echo "Logins: " . $api -> Logins . "<br/>\r\n";
}
}

Так что в основном я позвонил loginNumber(), то это показывает эту ошибку: *
Вызов неопределенной функции UserFrosting \ testFunction () *

У меня была такая же проблема с SoupClient но я показываю эту ошибку: *
Класс ‘UserFrosting \ SoapClient’ не найден *
вот мой soapClient код в том же именах:

 public function templatePost(){

$client = SoapClient('https://www.test.com/pg/services/WebGate/wsdl', ['encoding' => 'UTF-8']);

$result = $client->PaymentRequest([
'MerchantID'     => $MerchantID,
'Amount'         => $Amount,
'Description'    => $Description,
'Email'          => $Email,
'Mobile'         => $Mobile,
'CallbackURL'    => $CallbackURL,
]);

if ($result->Status == 100) {
header('Location: https://www.test.com/pg/StartPay/'.$result->Authority);
} else {
echo'ERR: '.$result->Status;
}
}

У меня была такая же ошибка, в чем моя проблема? как я могу вызвать эти функции?

0

Решение

Объяснение: У вас нет функции testFunction, но у объекта GroupController есть метод testFuntion. Поэтому вам нужно использовать $ this-> .., так как вы уже находитесь внутри этого класса. Ваш логин должен читать:

public function loginNumber(){
$params = array("Command" => "SystemStats");
$api = $this->testFunction($params);
echo "<h3>Server Status</h3>\r\n";
if ($api -> Result == "Error") die("Error: " . $api -> Error);
echo "Logins: " . $api -> Logins . "<br/>\r\n";
}

Во втором вопросе вы неправильно импортируете класс SoapClient. Пожалуйста, попробуй:

$client = \SoapClient(...);

Это использует SoapClient из корневого пространства имен.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]