26.09.2021 01:19:13 pm
Библиотека URL находится по адресу: "include/library/phpfox/url/", файл: "url.class.php". Разумеется данная библиотека написана для работы с URLs.
Быть может я до конца не разобрался в необходимости всех методов, но мне кажется, что в данной библиотеке имеется несколько методов, которые выполняют одну и туже функции - перенаправить/отправить пользователя на другую страницу/сайт. Допустим, метод "forward", так выглядит у меня:
По сути, делает все тоже самое, что и метод "send":
Оба метода выполняют одно и тоже, выводят сообщение на экран и отправляют данные методу "_send":
Разница в методах "forward" и "send" в количестве принимаемых параметрах и то, что у "send" задействован метод "makeUrl". Я не знаю зачем разработчики движка наплодили одинаковых методов... Я бы написал всего один, который выполнял все необходимые функции для перенаправления пользователя. А, что хотели разработчики... Возможно, были какие то планы на будущее, или каждый метод предназначен для определенной ситуации... Я пока в этом не разобрался, и в планах у меня собрать все в один метод.
Быть может я до конца не разобрался в необходимости всех методов, но мне кажется, что в данной библиотеке имеется несколько методов, которые выполняют одну и туже функции - перенаправить/отправить пользователя на другую страницу/сайт. Допустим, метод "forward", так выглядит у меня:
// Send the user to a new page. Works similar to PHP "header('Location: ...');"
public function forward($url, $message = '', $header = null)
{
if ($message)
{
phpfox::addMessage($message);
}
$this->_send($url, $header);
}
По сути, делает все тоже самое, что и метод "send":
// Send a user to a new page using the URL method we use
public function send($url, $params = [], $msg = null, $header = null)
{
if ($msg !== null)
{
phpfox::addMessage($msg);
}
$url = preg_match('/(http|https):///i', $url) ? $url : $this->makeUrl($url, $params);
$this->_send($url, $header);
}
Оба метода выполняют одно и тоже, выводят сообщение на экран и отправляют данные методу "_send":
// Отправка пользователя на другую страницу / сайт
private function _send($url, $header = null)
{
// Очистка буфера
ob_clean();
if ($header !== null && isset($this->headers[$header]))
{
header($this->headers[$header]);
}
header('Location: ' . $url);
exit;
} // Отправка пользователя на другую страницу / сайт End
Разница в методах "forward" и "send" в количестве принимаемых параметрах и то, что у "send" задействован метод "makeUrl". Я не знаю зачем разработчики движка наплодили одинаковых методов... Я бы написал всего один, который выполнял все необходимые функции для перенаправления пользователя. А, что хотели разработчики... Возможно, были какие то планы на будущее, или каждый метод предназначен для определенной ситуации... Я пока в этом не разобрался, и в планах у меня собрать все в один метод.
- Жалоба
26.09.2021 03:04:03 pm
Исправил метод "send" так:
Удалил методы "forward" и "_send". Переписал обращение к удаленным методом по всему движку.
Понаблюдаю, что из этого получится.
// Отправка пользователя на другую страницу / сайт
public function send($url, $params = [], $message = null, $header = null)
{
if ($message !== null)
{
phpfox::addMessage($message);
}
$url = preg_match('/(http|https):///i', $url) ? $url : $this->makeUrl($url, $params);
// Очистка буфера
ob_clean();
if ($header !== null && isset($this->headers[$header]))
{
header($this->headers[$header]);
}
header('Location: ' . $url);
exit;
} // Отправка пользователя на другую страницу / сайт End
Удалил методы "forward" и "_send". Переписал обращение к удаленным методом по всему движку.
Понаблюдаю, что из этого получится.