<?php
//базовый класс контроллера
class AppController{
protected $request ;
protected $response ;
protected $args ;
protected $container ;
public function __construct( $request , $response , $container , $args = null ) {
$this -> request = $request ;
$this -> response = $response ;
$this -> args = $args ;
$this -> container = $container ;
}
}
//класс контроллера
class TestController extends AppController {
public function __construct( $request , $response , $container , $args = null ) {
parent:: __construct( $request , $response , $container , $args ) ;
}
public function testRedirect( ) {
//проблема в том что у меня отлично работает к примеру
//все отрисовывается как нужно
$this -> container -> view -> render ( $this -> response , 'test.php' , $data ) ;
// но не работает редирект
return $this -> response -> withRedirect ( '/' , 301 ) ;
// в классе TestController объект $response доступен как $this->response и он доступен,
// через var_dump печатается, но метод withRedirect не работает
}
}
$app -> get ( '/test' , function ( $request , $response ) {
//так я вызываю нужный контроллер и его метод
//this в данном контексте - это контейнер который опеределяется в самом $app - слим
return ( new Controllers\TestController( $request , $response , $this ) ) -> testRedirect ( ) ;
} ) ;
PD9waHAKCi8v0LHQsNC30L7QstGL0Lkg0LrQu9Cw0YHRgSDQutC+0L3RgtGA0L7Qu9C70LXRgNCwCmNsYXNzIEFwcENvbnRyb2xsZXJ7CgogIHByb3RlY3RlZCAkcmVxdWVzdCA7CiAgcHJvdGVjdGVkICRyZXNwb25zZTsKICBwcm90ZWN0ZWQgJGFyZ3M7CiAgcHJvdGVjdGVkICRjb250YWluZXI7CgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkcmVxdWVzdCwgJHJlc3BvbnNlLCAkY29udGFpbmVyICwkYXJncyA9IG51bGwpewogICAgJHRoaXMtPnJlcXVlc3QgPSAkcmVxdWVzdDsKICAgICR0aGlzLT5yZXNwb25zZSA9ICRyZXNwb25zZTsKICAgICR0aGlzLT5hcmdzID0gJGFyZ3M7CiAgICAkdGhpcy0+Y29udGFpbmVyID0gJGNvbnRhaW5lcjsKCiB9Cgp9CgovL9C60LvQsNGB0YEg0LrQvtC90YLRgNC+0LvQu9C10YDQsApjbGFzcyBUZXN0Q29udHJvbGxlciBleHRlbmRzIEFwcENvbnRyb2xsZXIgewoKCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UsICRjb250YWluZXIgLCRhcmdzID0gbnVsbCl7CgogICAgcGFyZW50OjpfX2NvbnN0cnVjdCgkcmVxdWVzdCwgJHJlc3BvbnNlLCAkY29udGFpbmVyICwkYXJncyk7CgogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHRlc3RSZWRpcmVjdCgpewoJLy/Qv9GA0L7QsdC70LXQvNCwINCyINGC0L7QvCDRh9GC0L4g0YMg0LzQtdC90Y8g0L7RgtC70LjRh9C90L4g0YDQsNCx0L7RgtCw0LXRgiDQuiDQv9GA0LjQvNC10YDRgwoJLy/QstGB0LUg0L7RgtGA0LjRgdC+0LLRi9Cy0LDQtdGC0YHRjyDQutCw0Log0L3Rg9C20L3QvgoJJHRoaXMtPmNvbnRhaW5lci0+dmlldy0+cmVuZGVyKCAkdGhpcy0+cmVzcG9uc2UsICd0ZXN0LnBocCcsICRkYXRhICk7CiAgICAvLyDQvdC+INC90LUg0YDQsNCx0L7RgtCw0LXRgiDRgNC10LTQuNGA0LXQutGCCiAgICByZXR1cm4gJHRoaXMtPnJlc3BvbnNlLT53aXRoUmVkaXJlY3QoJy8nLCAzMDEpOwoKCS8vINCyINC60LvQsNGB0YHQtSAJVGVzdENvbnRyb2xsZXIg0L7QsdGK0LXQutGCICRyZXNwb25zZSDQtNC+0YHRgtGD0L/QtdC9INC60LDQuiAkdGhpcy0+cmVzcG9uc2Ug0Lgg0L7QvSDQtNC+0YHRgtGD0L/QtdC9LAoJLy8g0YfQtdGA0LXQtyB2YXJfZHVtcCDQv9C10YfQsNGC0LDQtdGC0YHRjywg0L3QviDQvNC10YLQvtC0IHdpdGhSZWRpcmVjdCDQvdC1INGA0LDQsdC+0YLQsNC10YIKCiAgfQoKfQoKJGFwcC0+Z2V0KCcvdGVzdCcsZnVuY3Rpb24oJHJlcXVlc3QsICRyZXNwb25zZSl7CgkKLy/RgtCw0Log0Y8g0LLRi9C30YvQstCw0Y4g0L3Rg9C20L3Ri9C5INC60L7QvdGC0YDQvtC70LvQtdGAINC4INC10LPQviDQvNC10YLQvtC0Ci8vdGhpcyAg0LIg0LTQsNC90L3QvtC8INC60L7QvdGC0LXQutGB0YLQtSAtINGN0YLQviDQutC+0L3RgtC10LnQvdC10YAg0LrQvtGC0L7RgNGL0Lkg0L7Qv9C10YDQtdC00LXQu9GP0LXRgtGB0Y8g0LIg0YHQsNC80L7QvCAkYXBwIC0g0YHQu9C40LwKCnJldHVybiAobmV3IENvbnRyb2xsZXJzXFRlc3RDb250cm9sbGVyKCRyZXF1ZXN0LCAkcmVzcG9uc2UsICR0aGlzKSktPnRlc3RSZWRpcmVjdCgpOwoKfSk7CgoK