65.9K
CodeProject is changing. Read more.
Home

Getting started with Zend 2 – “Hello World” Part-1

starIconstarIconstarIconstarIconstarIcon

5.00/5 (2 votes)

Oct 11, 2014

CPOL
viewsIcon

10951

Hi all, in my last blog I explained how to “Install Zend framework 2 in Linux”. Now, I am try to explaining how we can write code in Zend Framework 2. After installing Zend Framework 2, Project folder structure will look like below Now, we need to modify 3 files in setting. 1.

Hi all, in my last blog I explained how to “Install Zend framework 2 in Linux”.
Now, I am try to explaining how we can write code in Zend Framework 2.

After installing Zend Framework 2, Project folder structure will look like below

zf2-demo
|--config
|  |--aplication.config.php
|  |--autoload
|     |--global.php
|--module
|  |--Application
|     |--config
|     |  |--module.config.php
|     |--src
|     |  |--Application
|     |     |--Controller
|     |        |--IndexController.php
|     |--view
|     |  |--application
|     |     |--index
|     |     |  |-index.phtml
|     |     |--error
|     |     |  |--404.phtml
|     |     |  |--index.phtml
|     |     |--layout
|     |     |  |--layout.phtml
|     |--autoload_classmap.php
|     |--Module.php
|--public
|  |--.htaccess
|  |--index.php
|  |--css
|  |--js
|  |--img
|--vendor
|  |--autoload.php
|  |--bin
|  |--composer
|  |--zendframework
|--composer.json
|--composer.lock 

Now, we need to modify 3 files in setting.
1. zf2-demo/public/.htaccess (if not present create it)
2. zf2-demo/public/.index.php
3. zf2-demo/config/application.config.php

Open first file i.e .htaccess in terminal (ctrl+alt+t)

  sudo vim zf2-demo/public/.htaccess
 

Now, overwrite .htaccess file with following code :-

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Save it and open index.php and overwrite with following code:-

<?php
chdir(dirname(__DIR__));

// Setup autoloading
require 'init_autoloader.php';

// Run the application!
Zend\Mvc\Application::init(require 'config/application.config.php')->run();

Save it and open config/application.config.php and overwrite following code :-

<?php
return array(
    'modules' => array(
        'Application'
    ),
    'module_listener_options' => array(
        'config_glob_paths'    => array(
            'config/autoload/{,*.}{global,local}.php',
        ),
        'module_paths' => array(
            './module',
            './vendor',
        ),
    ),
);

Check for local.php and global.php
if they don’t exist create them as shown above in folder structure with
following code.

<?php
return [
];

That’s all for setting up, now we need to write code for Module.
Open module/Application/config/module.config.php and write the following code.

<?php
return [
    'router'    => [
        'routes' => [
            'home' => [
                'type'      => 'Literal',
                'options'   => [
                    'route'     => '/',
                    'defaults'  => [
                        '__NAMESPACE__' => 'Application\Controller',
                        'controller'    => 'Index',
                        'action'        => 'index',
                    ],
                ],
            ],
        ],
    ],
    'navigation' => [
        'default' => [
            'home' => [
                'label' => 'Home',
                'route' => 'home'
            ],
        ],
    ],
    'view_manager'  => [
        'doctype'                   => 'HTML5',
        'display_exceptions'        => true,
        'exception_template'        => 'error/index',
        'display_not_found_reason'  => true,
        'not_found_template'        => 'error/404',
        'template_map'              => [
            'layout/layout'           => __DIR__ . '/../view/layout/layout.phtml',
            'error/404'               => __DIR__ . '/../view/error/404.phtml',
            'error/index'             => __DIR__ . '/../view/error/index.phtml',
            'application/index/index' => __DIR__ . '/../view/application/index/index.phtml',
        ],
    ],
];

Now, we are done with the initial set-up of project using Zend Framework 2. In my next blog we will go through the actual code which will print “Hello World” for us, the reason we are reading this post.