MVC в Drupal. Внедряем Page Controller’ы.

Хочу поделиться с комьюнити модулем controller, который можно взять здесь. В чем смысл модуля?

Модуль позволяет для каждого УРЛа, который вы определяете в hook_menu() прописать действие контроллера. Для этого есть специальный новый элемент ‘action’:

<?php
/**
 * Implements hook_menu().
 */
function controller_menu() {
  
$items = array();
  
$items['admin/settings/controller'] = array(
    
'title' => 'Controller settings',
    
'action' => 'SettingsController::indexAction',
    
'access arguments' => array('access administration pages'),
  );
  return 
$items;

?>

Здесь объявляется новый контроллер SettingsController и действие indexAction() которое будет вызывано для УРЛа ‘admin/settings/controller’.

По умолчанию контроллеры должны лежать в специальной папке controllers/. Которую можно создать в папке своего модуля. Имя файла будет таким же как и прописано в ‘action’, однако имя класса нужно дополнять префиксом, который будет равен имени модуля после применения СamelCase нотации (с первой большой буквой). Звучит сложно, чтобы понять какие префиксы добавятся для разных модулей, несколько примеров:

foo_bar станет FooBar
my станет My
test_my_super станет TestMySuper
и т. д.

В примере выше, в хуке меню объявлен контроллер SettingsController, имя модуля controller, значит полное имя класса будет ControllerSettingsController, а имя файла SettingsController.php. Пример как все это дело работает можно найти в самом модуле.

Надеюсь, понятно описал, если есть вопросы, спрашивайте!

P.S. У темы появилось продолжение.

Источник: http://www.drupal.ru/node/74262

Добавить комментарий к записи "MVC в Drupal. Внедряем Page Controller’ы."

Чтобы комментировать, необходимо войти в систему.

© 2009 Обзор CMS