ребята, пожалуйста, помогите мне разобраться в этом коде
на рисунке 1 маршрутизатор вызывает с помощью информационного метода
, как вы можете видеть в AccountController, уже есть информация (), тогда почему __call () эта магическая функция вызывает
, и каковы эти параметры: $ this-> request, $ this-> response
мы можем сохранить все данные как
$ request =$ арг [0];$ response = $ args [1];$ attribute = $ args [2];
почему используется синтаксис $ this-> что означает эта строка $ this -> $ name ();
Router.php
<?php
$app->get('/account', '\App\Controller\AccountController:info');
?>
AccountController.php
<?php
/**
* AccountController
* @package Controllers
*/
namespace App\Controller;
final class AccountController extends \App\Core\Controller
{
protected function info()
{
echo $this->client_id;
}
}
Controller.php
<?php
namespace App\Core;
class Controller
{
public function __call($name,$args) { //line 25
//echo "Call method : ".$name;
$this->request = $args[0];
$this->response = $args[1];
$this->attributes = $args[2];
//print_r($this->attributes);
$this->client_id = $this->request->getAttribute("client_id");
$this->$name();
}
}
?>