В моем классе Helper()
У меня есть 2 метода, которые выглядят так:
public function is_active_page($page) {
$url = explode("/",$_SERVER["REQUEST_URI"]);
if (end($url) === $page) {
return true;
}
}
public function go_to_dashboard() {
if (isset($_SESSION['login'])) {
header('Location: http://example.com');
}
}
Теперь я хотел бы назвать их так: $helper->is_active_page('page')->go_to_dashboard();
вместо использования 2 строк для каждого метода.
По какой-то причине это не работает для меня. Зачем?
Чтобы иметь возможность связывать методы, эти методы должны возвращать исходный экземпляр Helper. Попробуй вернуться $this
изнутри методы. Однако, как прокомментировал РоманПерехрест, я не думаю, что перечисленные здесь методы подходят для создания цепочки. Было бы лучше, если бы в ваш класс был добавлен еще один метод, объединяющий два метода, которые вы указали здесь.
Я не совсем уверен, что вы пытаетесь сделать, но что-то вроде приведенного ниже может быть то, что вы ищете:
public function redirect($page){
if($this->is_active_page($page)){
$this->go_to_dashboard();
}
}
Наконец, вы могли бы подумать о сокращении сферы вашего is_active_page
а также go_to_dashboard
функции, если их больше не нужно вызывать извне Helper
учебный класс.
Других решений пока нет …