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 |
