Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / All-Topics

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

5.00/5 (2 votes)
10 Oct 2014CPOL 11K  
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.


License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)