• 1000 Надеюсь, мое разъяснение проясняет это.
Раньше я вводил класс BaseHelper по зависимости, но это вызывало проблемы с удобочитаемостью, поскольку файлы становились больше и требовали дополнительных услуг.
namespace App\Helpers\Users\Profiles;
use App\Core\BaseHelper;
class ProfileHelper
{
public function __construct(BaseHelper $helper)
{
$this->base = $helper;
$this->data = $this->base->data;
}
public function getPageData()
{
return $this->data;
}
}
Используемый файл BaseHelper для вызова пользовательских функций, которые указаны c для basehelper и не вызываются из какого-либо другого файла:
namespace App\Core;
use App\Services\security\SecurityService;
use App\Services\users\UserService;
class BaseHelper
{
private $security;
private $user;
public function __construct(SecurityService $security, UserService $user)
{
$this->sec = $security;
$this->user = $user;
$this->data = $this->checkUserExists();
}
private function checkUserExists()
{
if ($this->sec->isLoggedIn()) {
$this->identity = $this->sec->data();
return $data = $this->user->parseUser($this->identity->getUserCode());
} else {
return $data = (object) [];
}
}
}
ProfileHelper затем извлекает объект данных и добавляет данные c страницы, здесь возникает ошибка появляется, поскольку в нем говорится, что объект $ data не определен:
namespace App\Helpers\Users\Profiles;
use App\Core\BaseHelper;
class ProfileHelper extends BaseHelper
{
public function __construct()
{
$this->data = $this->data;
}
public function getPageData()
{
return $this->data;
}
}
Я экстраполировал соответствующий код, чтобы показать пример ошибки, в основные файлы введено гораздо больше служб, поэтому я пытается расширить basehelper для доступа к свойству данных. Проект построен с использованием symfony 5