2013-03-19 4 views
2

Я использую zfcUser, и мне было интересно, можно ли отключить маршруты по умолчанию, такие как zfcUser/login, zfcUser/register и т. Д., Потому что я не хочу их раскрывать.Отключить маршруты по умолчанию zfcUser?

Я посмотрел на zfcuser.global.php, но, похоже, такого варианта нет?

Благодаря

ответ

3

Вы можете просто переопределить конфигурацию, установив нулевой контроллер или Потрясающая конфигурацию маршрутизации.

Решение 1: переопределить invokable zfcuser контроллера:

// YourApp\Module#getConfig() or config/autoload/zfcuser.override.global.php 

return array(
    'controllers' => array(
     'invokables' => array(
      'zfcuser' => null, 
     ), 
    ), 
); 

Решение 2: Игнорирование маршрутизации конфигурации, используя собственный маршрут конфигурации (Hacky, рекомендуется):

// YourApp\Module#getConfig() or config/autoload/zfcuser.override.global.php 

return array(
    'router' => array(
     'routes' => array(
      'zfcuser' => array(
       // changing to hostname route - using an unreachable hostname 
       'type' => 'Hostname', 
       // minimum possible priority - all other routes come first. 
       'priority' => ~PHP_INT_MAX, 
       'options' => array(
        // foo.bar does not exist - never matched 
        'route' => 'foo.bar', 
        'defaults' => array(
         'controller' => null, 
         'action' => 'index', 
        ), 
       ), 

       // optional - just if you want to override single child routes: 
       'child_routes' => array(
        'login' => array(
         'options' => array(
          'defaults' => array(
           'controller' => null, 
          ), 
         ), 
        ), 
        'authenticate' => array(
         'options' => array(
          'defaults' => array(
           'controller' => null, 
          ), 
         ), 
        ), 
        'logout' => array(
         'options' => array(
          'defaults' => array(
           'controller' => null, 
          ), 
         ), 
        ), 
        'register' => array(
         'options' => array(
          'defaults' => array(
           'controller' => null, 
          ), 
         ), 
        ), 
        'changepassword' => array(
         'options' => array(
          'defaults' => array(
           'controller' => null, 
          ), 
         ), 
        ), 
        'changeemail' => array(
         'options' => array(
          'defaults' => array(
           'controller' => null, 
          ), 
         ), 
        ), 
       ), 
      ), 
     ), 
    ), 
); 
+0

Это кажется ваш ответ был прерван; можете ли вы снова отправить предложение NullRoute? – KaiserJohaan

+0

@ KaiserJohaan предложение 'NullRoute' на самом деле слишком хакерское. Я решил и убрал его, поскольку он длинный, и он не имеет преимуществ по сравнению с решениями, опубликованными выше. – Ocramius

+0

FYI, первое решение должно быть прекрасным, поскольку оно в основном полностью удаляет контроллер 'zfcuser', что также безопасно использовать. – Ocramius