comparison Lib/IMPL/Config.pm @ 180:d1676be8afcc

Перекодировка в utf-8
author sourcer
date Fri, 30 Dec 2011 23:40:00 +0300
parents b3d91ff7aea9
children 4d0e1962161c
comparison
equal deleted inserted replaced
179:b3d91ff7aea9 180:d1676be8afcc
125 125
126 =pod 126 =pod
127 127
128 =head1 NAME 128 =head1 NAME
129 129
130 C<IMPL::Config> - . 130 C<IMPL::Config> - базовый класс для настраиваемого приложения.
131 131
132 =head1 SYNOPSIS 132 =head1 SYNOPSIS
133 133
134 =begin code 134 =begin code
135 135
166 166
167 $app->Run(); 167 $app->Run();
168 168
169 =end code 169 =end code
170 170
171 C<default.xml> 171 Ниже приведен пример файла C<default.xml> содержащего настройки приложения
172 172
173 =begin code xml 173 =begin code xml
174 174
175 <app type='MyApp'> 175 <app type='MyApp'>
176 <SimpleString>The application</SimpleString> 176 <SimpleString>The application</SimpleString>
191 191
192 C<[Autofill]> 192 C<[Autofill]>
193 193
194 C<use parent IMPL::Object::Accessor> 194 C<use parent IMPL::Object::Accessor>
195 195
196 . , 196 Базовый класс для приложений. Использует подход, что приложение
197 , , 197 является объектом, состояние которого предтавляет собой конфигурацию,
198 - . 198 а методы - логику.
199 199
200 ( ) 200 Данный класс реализует функционал десериализации (и сериализации) экземпляра
201 XML . C<IMPL::Serialization>. 201 приложения из XML документа. Для этого используется механизм C<IMPL::Serialization>.
202 C<IMPL::Serialization::XmlFormatter> C<IdentOutput> 202 При этом используются опции C<IMPL::Serialization::XmlFormatter> C<IdentOutput> и
203 C<SkipWhitespace> . 203 C<SkipWhitespace> для записи документа в легко читаемом виде.
204 204
205 205 Поскольку в результате восстановления приложения восстанавливаются все элементы
206 , 206 из файла конфигурации, то это может потребовать значительных ресурсов для
207 , . , 207 создания частей, которые могут никогда не понадобиться. Например, не требуется инициализация
208 , . 208 источника данных для передачи пользователю статических данных, сохраненных на диске.
209 209
210 C<IMPL::Config::Activator>. 210 Для решения этой проблемы используются специальные объекты C<IMPL::Config::Activator>.
211 211
212 , C<IMPL::Config::Activator>, 212 Если у приложения описано свойство, в котором хранится C<IMPL::Config::Activator>, то
213 , 213 при первом обращении к такому свойству, будет создан объект вызовом метода
214 C<< IMPL::Config::Activator->activate() >> . 214 C<< IMPL::Config::Activator->activate() >> и возвращен как значение этого свойства.
215 , 215 Таким образом реализуется прозрачная отложенная активация объектов, что позволяет
216 . 216 экономить ресурсы.
217 217
218 =head1 MEMBERS 218 =head1 MEMBERS
219 219
220 =over 220 =over
221 221
222 =item C<[static] LoadXMLFile($fileName) > 222 =item C<[static] LoadXMLFile($fileName) >
223 223
224 XML C<$fileName> 224 Создает из XML файла C<$fileName> экземпляр приложения
225 225
226 =item C<SaveXMLFile($fileName)> 226 =item C<SaveXMLFile($fileName)>
227 227
228 C<$fileName> 228 Сохраняет приложение в файл C<$fileName>
229 229
230 =item C<[get] xml > 230 =item C<[get] xml >
231 231
232 XML . 232 Сохраняет конфигурацию приложения в XML строку.
233 233
234 =item C<[static,operator] spawn($file)> 234 =item C<[static,operator] spawn($file)>
235 235
236 C<LoadXMLFile>, . 236 Синоним для C<LoadXMLFile>, предполагается использование как оператора.
237 237
238 =item C<rawGet($propname,...)> 238 =item C<rawGet($propname,...)>
239 239
240 . 240 Метод для получения значений свойств приложения. Данный метод позволяет избежать
241 C<IMPL::Config::Activator>. 241 использование активации объектов через C<IMPL::Config::Activator>.
242 242
243 =back 243 =back
244 244
245 =cut 245 =cut