Symfony 1.4 использует sfConfig :: get ('my_value'), который похож на ваш первый вариант, только обернутый в объект.
Symfony 2 использует внедрение зависимостей для уменьшения связи, что походит на ваш второй вариант. Убедитесь, что вы проверили эту ссылку для хорошего объяснения внедрения зависимости.
Однако уменьшение сцепления увеличивает сложность. Итак, это действительно компромисс. Я думаю, что главное в том, чтобы был последовательным в вашем приложении . Какой бы метод ни использовался, его можно изменить, если вы последовательны в его использовании.
Я бы выбрал внедрение зависимости. Мало того, что его легко использовать, если вы используете его все время, это гораздо более вероятно приведет к к повторно используемому коду . Самая медленная часть компьютера - разработчик, поэтому я стараюсь по возможности создавать высококачественные компоненты многократного использования. Я также должен отметить, что использование внедрения зависимостей значительно упрощает создание модульных тестов, если вы решите повысить качество и согласованность своего кода путем добавления модульных тестов.
Надеюсь, это поможет ...