Package Home

Zend Framework 2 Documentation (Manual)

PHK Home

File: /modules/zend.navigation.quick-start.html

Size:21159
Storage flags:no_autoload,compress/gzip (19%)

Quick Start — Zend Framework 2 2.4.2 documentation

Quick Start

The fastest way to get up and running with Zend\Navigation is by the navigation key in your service manager configuration and the navigation factory will handle the rest for you. After setting up the configuration simply use the key name with the Zend\Navigation view helper to output the container.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 <?php
 // your configuration file, e.g. config/autoload/global.php
 return array(
     // ...

     'navigation' => array(
         'default' => array(
             array(
                 'label' => 'Home',
                 'route' => 'home',
             ),
             array(
                 'label' => 'Page #1',
                 'route' => 'page-1',
                 'pages' => array(
                     array(
                         'label' => 'Child #1',
                         'route' => 'page-1-child',
                     ),
                 ),
             ),
             array(
                 'label' => 'Page #2',
                 'route' => 'page-2',
             ),
         ),
     ),
     'service_manager' => array(
         'factories' => array(
             'navigation' => 'Zend\Navigation\Service\DefaultNavigationFactory',
         ),
     ),
     // ...
 );
1
2
3
4
5
6
7
 <!-- in your layout -->
 <!-- ... -->

 <body>
     <?php echo $this->navigation('navigation')->menu(); ?>
 </body>
 <!-- ... -->

Using multiple navigations

If you want to use more than one navigation, you can register the abstract factory \Zend\Navigation\Service\NavigationAbstractServiceFactory in the service manager.

Once the service factory is registered, you can create as many navigation definitions as you wish, and the factory will create navigation containers automatically. This factory can also be used for the default container.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
// your configuration file, e.g. config/autoload/global.php
return array(
    // ...

    'navigation' => array(

        // navigation with name default
        'default' => array(
            array(
                'label' => 'Home',
                'route' => 'home',
            ),
            array(
                'label' => 'Page #1',
                'route' => 'page-1',
                'pages' => array(
                    array(
                        'label' => 'Child #1',
                        'route' => 'page-1-child',
                    ),
                ),
            ),
            array(
                'label' => 'Page #2',
                'route' => 'page-2',
            ),
        ),

        // navigation with name special
        'special' => array(
            array(
                'label' => 'Special',
                'route' => 'special',
            ),
            array(
                'label' => 'Special Page #2',
                'route' => 'special-2',
            ),
        ),

        // navigation with name sitemap
        'sitemap' => array(
            array(
                'label' => 'Sitemap',
                'route' => 'sitemap',
            ),
            array(
                'label' => 'Sitemap Page #2',
                'route' => 'sitemap-2',
            ),
        ),
    ),
    'service_manager' => array(
        'abstract_factories' => array(
            'Zend\Navigation\Service\NavigationAbstractServiceFactory'
        ),
    ),
    // ...
);

Note

There is one important point if you use the NavigationAbstractServiceFactory: The name of the service in your view must start with Zend\Navigation\ followed by the name of the configuration key. This helps ensure that no naming collisions occur with other services.

The following example demonstrates rendering the navigation menus for the named default, special and sitemap containers.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<!-- in your layout -->
<!-- ... -->

<body>
    <?php echo $this->navigation('Zend\Navigation\Default')->menu(); ?>

    <?php echo $this->navigation('Zend\Navigation\Special')->menu(); ?>

    <?php echo $this->navigation('Zend\Navigation\Sitemap')->menu(); ?>
</body>
<!-- ... -->

Table Of Contents

Previous topic

Introduction to Zend\Navigation

Next topic

Pages

This Page

Note: You need to stay logged into your GitHub account to contribute to the documentation.

Edit this document

Edit this document

The source code of this file is hosted on GitHub. Everyone can update and fix errors in this document with few clicks - no downloads needed.

  1. Login with your GitHub account.
  2. Go to Quick Start on GitHub.
  3. Edit file contents using GitHub's text editor in your web browser
  4. Fill in the Commit message text box at the end of the page telling why you did the changes. Press Propose file change button next to it when done.
  5. On Send a pull request page you don't need to fill in text anymore. Just press Send pull request button.
  6. Your changes are now queued for review under project's Pull requests tab on GitHub.

For more information about the PHK package format: http://phk.tekwire.net