March 11, 2015

Home » » » Zend Framework 2 - Install and Create New Module Zend 2 on Ubuntu

Zend Framework 2 - Install and Create New Module Zend 2 on Ubuntu

Posted by Unknown
0

Install PHP, MySQL, Apache2

$ sudo apt-get update
$ sudo apt-get apache2
$ sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
$ sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
$ curl -s https://getcomposer.org/installer | php --
May be, install curl if dont have on your systems.

Clone ZendSkeletonApplication and install

$ cd
$ mkdir Workspace
$ cd Workspace
$ git clone git://github.com/zendframework/ZendSkeletonApplication.git
$ cd ZendSkeletonApplication
$ php composer.phar self-update
$ php composer.phar install

Web server setup (use PHP CLI for development env)

$ cd ZendSkeletonApplication
$ php -s 0.0.0.0:8080 -t public/ public/index.php

Then, open web browser and point to : http://localhost:8080

Create new module (Album module)

Create the directory structure for the album is as follows:

<?php
 
namespace Album;

use Zend\ModuleManager\Feature\AutoloaderProviderInterface;
use Zend\ModuleManager\Feature\ConfigProviderInterface;

class Module implements AutoloaderProviderInterface, ConfigProviderInterface
{
    public function getAutoloaderConfig()
    {
        return array(
            'Zend\Loader\ClassMapAutoloader' => array(
             //   __DIR__ . '/autoload_classmap.php',
            ),
            'Zend\Loader\StandardAutoloader' => array(
                'namespaces' => array(
                    __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
                ),
            ),
        );
    }

    public function getConfig()
    {
        return include __DIR__ . '/config/module.config.php';
    }
}

Create ZendSkeletonApplication/module/Album/config/module.config.php

<?php
return array(
    'controllers' => array(
        'invokables' => array(
            'Album\Controller\Album' => 'Album\Controller\AlbumController',
        ),
    ),
    'view_manager' => array(
        'template_path_stack' => array(
            'album' => __DIR__ . '/../view',
        ),
    ),
);

Tell ZendSkeletonApplication that use modules Album Open ZendSkeletonApplication / config / application.config.php and add the line:

<?php
return array(
    'modules' => array(
        'Application',
        'Album',                  // <-- data-blogger-escaped-add="" data-blogger-escaped-line="" data-blogger-escaped-module_listener_options="" data-blogger-escaped-this=""> array(
        'config_glob_paths'    => array(
            'config/autoload/{,*.}{global,local}.php',
        ),
        'module_paths' => array(
            './module',
            './vendor',
        ),
    ),
);

Create routes for controller and script views

Add following line to module.config.php

# ZendSkeletonApplication/module/Album/config/module.config.php

     // The following section is new and should be added to your file
     'router' => array(
         'routes' => array(
             'album' => array(
                 'type'    => 'segment',
                 'options' => array(
                     'route'    => '/album[/:action][/:id]',
                     'constraints' => array(
                         'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                         'id'     => '[0-9]+',
                     ),
                     'defaults' => array(
                         'controller' => 'Album\Controller\Album',
                         'action'     => 'index',
                     ),
                 ),
             ),
         ),
     ),

The code above will take on the module Album app with the default index.php page

Create controller

Create AlbumController.php in module/Album/src/Album/Controller/

<?php
 
namespace Album\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

class AlbumController extends AbstractActionController
{
    public function indexAction()
    {
    }

    public function addAction()
    {
    }

    public function editAction()
    {
    }

    public function deleteAction()
    {
    }
}

Create views script for AlbumController

module/Album/view/album/album/index.phtml 
module/Album/view/album/album/add.phtml 
module/Album/view/album/album/edit.phtml 
module/Album/view/album/album/delete.phtml 

Test module setup

http://localhost:8080/album  => index page
http://localhost:8080/album/add  => add album page
http://localhost:8080/album/edit  => edit album page
http://localhost:8080/album/delete  => delete album page

Screenshots






0 comments:

Post a Comment

Popular Posts

Labels

Archive

 

Blogroll

Recepies

Flickr Images

Copyright © 2014. Tutorials Blog - All Rights Reserved