Symfony 2.7 получить корневой каталог в любом месте - PullRequest
0 голосов
/ 21 мая 2018

Я просто хочу спросить, есть ли способ получить корневой каталог приложения Symfony ANYHWERE ?

Что я имею в виду под любым, в любом файле моего приложения.

Я искал везде, и все, что я получаю, это:

$this->get('kernel')->getRootDir();

Что, конечно, работает!Но я не могу использовать это в моих пользовательских классах.Мне нужно получить корневой каталог в одном из моих пользовательских классов.

Я уже читал ответы о DependencyInjection / Service и других вещах, но я думаю, что это слишком сложно / излишне, чтобы реализовать их просто для решения моего текущегопроблема.

Мне просто нужен корневой каталог моего приложения, точка.Есть ли другой способ?

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Самый простой способ, который я могу придумать, - это определить константу в вашем файле app.php, например:

define("ROOTDIR", $kernel->getRootDir());

, чтобы вы могли использовать эту константу в любом месте.По сравнению с этим, статический метод тоже излишний.

0 голосов
/ 21 мая 2018

Я пересмотрел свой ответ.Действительно, это не будет соответствовать вашим потребностям.В любом случае, если вы не хотите использовать внедрение зависимостей для достижения этой цели, потому что у вас есть статические методы, где вы вызываете эти статические методы?В контроллере?В команде?В другом сервисе?Если вы не хотите создавать экземпляр своего класса, потому что вам не нужны объекты с собственными данными, у вас есть 2 варианта:

  1. Получить корневой каталог вне вашего класса и использовать его в качестве параметрадля ваших статических методов.
  2. Если ваш класс использует статические методы, что означает, что ваш класс ведет себя как вспомогательный класс, это всего лишь инструмент (конвертер, экспортер, рендер и т. д.).Поэтому я предполагаю, что вы поместили все свои вспомогательные классы в один каталог.В этом случае вы можете создать класс enum, который определяет константу, такую ​​как root dir , web dir , давая абсолютные пути.
...