Я склонен использовать java.util.Properties
(или подобные классы на других языках и платформах) обернутый в класс специфичной для приложений конфигурации большую часть времени, но я очень интересуюсь альтернативами или изменениями на этом. Тем более, что вещи могут стать немного хитрыми, если графические диалоговые окна конфигурации или несколько представлений о данных конфигурации включены.
, К сожалению, у меня нет опыта с определенными библиотеками для Java (кроме с теми, я записал меня), но любые указатели ценились бы.
Обновление
хорошо. Это не было совершенно верно, три Проект .
Конфигурации Java Spring
You need to be aware of the different places that Cake Helpers automagically look for data, since that is were it makes a real difference. The Form Helper will fill in fields automatically based on the contents of $this->data
. That's how form data persists when validation fails. OTOH, a elements options array is automatically taken from the pluralized field name,
например, $ form-> select ('Model.foo_id')
будет брать свои параметры из $ foos
, если установлено.
Таким образом, $ this-> data
занимает особое место, и к ним нельзя относиться легкомысленно, так же как и у именованных переменных, и их нельзя игнорировать. Используйте оба варианта по мере необходимости. Если вы не хотите автоматически устанавливать содержимое помощника по форме, set ()
ваши переменные. IMHO также более читабельно присвоить имя переменной, которое намекает на данные, которые она содержит. Все ваши представления, работающие с $ this-> data
, менее ясны, чем одно представление, работающее с $ foo
, а другое - с $ bar
.
$ controller -> data
предназначен для данных, отправленных в элемент управления из файла представления.
$ view-> data
- для общих данных.
Я бы не стал делать это, чтобы оставаться в здравом уме. кроме того, вы набираете больше в поле зрения.
Нет веских причин для непосредственной установки $ this-> data, кроме как при работе с формами.
Почему нарушается соглашение - Контроллер: set существует не просто так. Если вы хотите передать данные в представление для отображения или логических целей отображения, вам следует использовать предоставленную функцию, вместо того, чтобы пытаться использовать Controller: data для непреднамеренных целей.
В CakePHP все становится проще, если вы следуете правилам и делайте вещи ожидаемым и правильным образом.