Контрольный файл приложения |
Этот файл служит в качестве точки входа в рассматриваемое здесь приложение. Его имя указывается как команда для выполнения из командной строки. Ниже приведена первая часть исходного кода из этого файла. // объявить, что это достоверная точка входа в Joomla!, если еще не объявлено if ( defined ('_JEXEC') ) { define ('_JEXEC'); } В этой части исходного кода из контрольного файла проверяется, определены ли константы JEXEC и JPATHBASE. Следует иметь в виду, что в данном примере файл начальной загрузки bootstrap.php не используется, а вместо него включается файл импорта. Кроме того, команда require настраивается на поиск файла import.php относительно местоположения текущего файла (т.е. контрольного файла monitor.php). Как только файл import.php будет загружен, из библиотеки могут быть импортированы все классы, необходимые для нормальной работы данного приложения. Для этой цели требуется только класс JLog. Затем включается программный файл subscriptionmonitor.php. Ниже приведена следующая часть исходного кода из контрольного файла. // загрузить конфигурационный файл configuration.php $config = JFactory::getConfig(JPATH_BASE.'/configuration.php'); В этой части исходного кода устанавливается конфигурация с помощью созданного ранее файла configuration. php. Следует заметить, что для этой цели вместо объекта в переменной $conf ig при выполнении метода getConf ig () создается объект типа JConfig (JFactory: : $config), который используется сначала в методе JFactory: :getDate (), а затем и в методе JFactory: :getMailer (). Благодаря этому в самом начале данного приложения задается нужный конфигурационный файл configuration.php. Если же, например, вызвать метод JFactory: : getDate () до создания объекта типа JConfig, то загружен будет файл configuration.php из места, задаваемого по умолчанию с помощью константы JPATHPLATFORM, а это совсем не то, что нам требуется. Далее файл журнала регистрации создается средствами класса JLog. В его имя включается текущая дата, и благодаря этому каждый день получается новый файл. Этот файл размещается в созданной ранее папке logs. Ниже приведена следующая часть исходного кода из контрольного файла. // заключить выполнение кода в блок операторов try/catch, чтобы перехватить любые исключения, генерируемые в сценарии try { В этой части исходного кода создается блок операторов try/catch, в котором сначала получается экземпляр объекта типа JCli, а затем выполняется метод execute () из класса SubscriptionMonitor. Как будет показано далее, в этом классе имеется целый ряд методов, генерирующих исключения, поэтому если метод execute () вызывается внутри блока оператора try, то этим гарантируется перехват и обработка любых исключений, генерируемых в каком угодно месте этого метода. А в блоке оператора catch сообщение о возникшей исключительной ситуации записывается в журнал регистрации. Следует иметь в виду, что данное приложение предназначено для автоматического выполнения на сервере, поэтому возникающие в нем ошибки лучше записывать в журнал регистрации, чем выводить на консоль. Весь код текущего контроля подписок можно было бы поместить в одном этом контрольном файле, чтобы не создавать еще один. Принятый в данном случае подход имеет следующее важное преимущество: он позволяет очень легко вводить дополнительные функции текущего контроля. Допустим, требуется также контролировать дату окончания публикации статей. Для этого достаточно создать новый класс текущего контроля статей и добавить строку кода для его выполнения в блок оператора try из файла monitor. php. В одном этом файле можно было бы организовать функции текущего контроля всего вебсайта, назначив его выполнение на сервере в виде одного простого задания по команде сгоn.
Понравился материал? Пригодилась информация? Плюсани в социалки!
|
Похожие новости | |