Mercurial > pub > Impl
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 |