Комментарии

Вспомогательный файл модуля PHP (часть 1)
( 0 Голосов )

В листинге ниже приведена первая часть вспомогательного файла РНР с объявлением класса modJoomProArticlesAuthorHelper.

Исходный код из файла helper.php (часть 1)

/**
* @copyright Copyright (С) 2012 Mark Dexter and Louis Landry. All rights reserved.
* @license  GNU General Public License version 2 or later; see LICENSE.txt
*/
// прямой доступ отсутствует defined('_JEXEC') or die;
JLoader::register('ContentHelperRoute',
JPATH_SITE.'/components/com_content/helpers/route.php');
abstract class modJoomProArticlesAuthorHelper {
public static function getList(&$params) (
// инициализировать возвращаемую переменную $items = array();
// обработать только в том случае, если это
// представление для единственной статьи
$option = JRequest::getCmd('option');
$view = JRequest::getCmd('view');
if ($option == 'com_content' && $view == 'article')
{

В этом файле сначала регистрируется метод из класса ContentHelperRoute, который будет использоваться в дальнейшем, а затем объявляется абстрактный класс. Возможность создавать абстрактные классы была внедрена в версии языка РНР 5. Объект абстрактного класса создать нельзя. Как правило, абстрактные классы применяются в следующих целях.

  • Для создания класса с одним или более статическим методом.
  • Для создания класса, предназначенного исключительно в качестве прототипа для подклассов (характерным тому примером служит класс JDatabase из файла libraries/joomla/database/database.php).

В данном случае у абстрактного класса будет лишь один статический метод get Lis t (). Он принимает в качестве аргумента переменную &$params со ссылкой на объект типа JRegistry, содержащий введенные параметры данного модуля.

В первой строке кода из тела данного метода переменная $items инициализируется пустым массивом. Инициализировать переменные в языке РНР совсем не обязательно. Но если попытаться воспользоваться неинициализированной переменной, то в конечном итоге будет получено сообщение, называемое в терминологии языка РНР уведомляющим. Поэтому настоятельно рекомендуется инициализировать все переменные, задав их начальные значения, прежде чем пользоваться ими. Если режим извещения об ошибках в среде разработки настроен на максимальную чувствительность, то выводимые уведомляющие сообщения языка РНР позволят отловить типичные программные ошибки в процессе разработки.

Одной из частых причин появления уведомляющих сообщений языка РНР служит установка переменной только в кодовом блоке условных операторов if /then. Если этот блок пропускается из-за того, что проверяемое условие оказывается ложным, то переменная в нем вообще не устанавливается. И если она используется в дальнейшем, то появляется сообщение языка РНР, уведомляющее о том, что она не инициализирована. Поэтому рекомендуется выработать в себе хорошую привычку инициализировать переменные, используемые в кодовых блоках условных операторов if/then. Это же относится и к другим кодовым блокам, включая циклы, поскольку они могут быть пропущены во время выполнения.

В двух следующих строках обе переменные инициализируются данными, полученными из запроса. В частности, метод JRequest:: getCmd () вызывается для получения значений элементов option и view из массива запроса. Метод getCmd () отфильтровывает запрос, чтобы он содержал только буквы, числа, дефисы и знаки подчеркивания. Этим предотвращаются всякие попытки внедрить в переменные злонамеренный код (например, команды JavaScript или SQL).


Понравился материал? Пригодилась информация? Плюсани в социалки!


 
Похожие новости