Заметки WEB-разработчика

Полезные материалы для web-разработки

Создание модуля на Zend Framework 2

В этой статье будет рассмотрен пример создания нового модуля для Zend Framework 2. Максимально кратко и сжато. Эта статья является продолжением статьи Установка Zend Framework 2 на windows 7 под xampp 1.8

Создание модуля на Zend Framework 2

Создание скелетона модуля users

Переходим в папку модулей и создадим модуль users:

	cd /d/php/zendapp.loc/CommunicationApp/module/
	$ git clone git://github.com/zendframework/ZendSkeletonModule.git Users

Создание контроллеров и представлений

Переходим в модуль users и создаем контроллер:

	cd /d/php/zendapp.loc/CommunicationApp/module/users
	mkdir -p src/Users/Controller/
	cd src/Users/Controller/
	touch IndexController.php

Добавляем следующий код в контроллер:

namespace Users\Controller;

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

class IndexController extends AbstractActionController
{
	public function indexAction()
	{
		$view = new ViewModel();
		return $view;
	}

	public function registerAction()
	{
		$view = new ViewModel();
		$view->setTemplate('users/index/new-user');
		return $view;
	}

	public function loginAction()
	{
		$view = new ViewModel();
		$view->setTemplate('users/index/login');
		return $view;
	}
}

Создадим представления:

    cd /d/php/zendapp.loc/CommunicationApp/module/users
    mkdir -p view/users/index/

Создадим здесь 3 файла представлений:

index.phtml

<h1>Welcome to Users Module</h1>
<a href="/users/index/login">Login</a> | <a href="/users/index/register">New User Registration</a>

login.phtml

<h2> Login </h2>
<p> This page will hold the content for the login form </p>
<a href="/users"><< Back to Home</a>

new-user.phtml

<h2> New User Registration </h2>
<p> This page will hold the content for the registration
   form </p>
<a href="/users"><< Back to Home</a>

Изменение конфига модулей

В файле D:\php\zendapp.loc\CommunicationApp\module\Users\autoload_classmap.php пропишем только лишь:

return [];

В файле D:\php\zendapp.loc\CommunicationApp\module\Users\config\module.config.php пропишем такой код:

return array(
    'controllers' => array(
        'invokables' => array(
            'Users\Controller\Index' => 'Users\Controller\IndexController',
        ),
    ),
    'router' => array(
        'routes' => array(
            'users' => array(
                'type'    => 'Literal',
                'options' => array(
                    // Change this to something specific to your module
                    'route'    => '/users',
                    'defaults' => array(
                        // Change this value to reflect the namespace in which
                        // the controllers for your module are found
                        '__NAMESPACE__' => 'Users\Controller',
                        'controller'    => 'Index',
                        'action'        => 'index',
                    ),
                ),
                'may_terminate' => true,
                'child_routes' => array(
                    // This route is a sane default when developing a module;
                    // as you solidify the routes for your module, however,
                    // you may want to remove it and replace it with more
                    // specific routes.
                    'default' => array(
                        'type'    => 'Segment',
                        'options' => array(
                            'route'    => '/[:controller[/:action]]',
                            'constraints' => array(
                                'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
                                'action'     => '[a-zA-Z][a-zA-Z0-9_-]*',
                            ),
                            'defaults' => array(
                            ),
                        ),
                    ),
                ),
            ),
        ),
    ),
    'view_manager' => array(
        'template_path_stack' => array(
            'users' => __DIR__ . '/../view',
        ),
    ),
);

Конфигурирование приложения

Добавим в список модулей в файле D:\php\zendapp.loc\CommunicationApp\config\application.config.php:

 'modules' => array(
        'Application',
		'Users',
    ),

Проверяем: http://zendapp.loc/users

Комментарии

Комментарии через Вконтакте