console application with zf 2.0

Post on 15-Jun-2015

2.638 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Create console applications with using ZF 1.X / 2.0

TRANSCRIPT

Console Applications with ZF 2.0

Алексей КачаевSenior Software Engineer, Cogniance

kachayev [at] gmail.com@kachayevhttp://github.com/kachayevhttp://codemehanika.com

Схема работы

Что такое и зачем, разбор кейсов

Консольное приложение в разрезе

Реализация базовых аспектов с ZF1.*/2.0

Продвинутые техники и подходы Прим. 1: more linux

Прим. 2: dev mode

Что это такое?

Request-reply

Что это такое?

Dialog

Что это такое?

Interactive

Когда это нужно?

Администрирование приложения (start, restart, status, evn management etc)

Процедуры деплоймента

Выполняемые по времени задачи

То, что не требует внешнего доступа

Везде, где консоль покрывает требования =)

Почему?

Меньше инфраструктуры

Меньше кода

Меньше багов =)

Reusable

Аналоги и заменители?

wget -O — http://webserver/supercontroler/superaction?some=params

Это сложно?/home/kachayev/fwdays/server.php Usage: php /home/kachayev/fwdays/server.php<?php foreach($_SERVER as $key => $value) { print "$key => $value\n"; }?>

Почему PHP/Zend/<подставь свое>..?

Имплементация бизнес-логики

Интеграция с веб-приложением

Реиспользование кода сервисных слоев

Попрактикуемся?

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

– просмотреть статистику,

– отфильтровать по критериям,

– получить информацию о пользователе,

– «забанить» по идентификатору

управление notification-ами:

– просмотреть шаблон по названию,

– отправить сообщение

Консольное приложение в разрезе

Особенности среды выполнения: php-cli (пользователи!), env, superglobals

stdin, stdout, stderr

Параметры вызова

Вывод результатов и форматирование

Интерактивное взаимодействие и диалоги

Zend\Console\Getopt

Arguments, short/long options

Cumulative params and options

Freeform params

Numeric options

Usage message https://github.com/zendframework/zf2/blob/master/tests/Zend/Console/GetoptTest.php

Параметры вызова скрипта

<?php print_r($_SERVER['argv']);

Zend\Console\Getopt

Zend\Console\Getopt

Оформление вывода

Zend\Text\

– Table\Table

– Figlet\Figlet

Zend\Tool\Framework\Client\Console\ResponseDecorator\

– AlignCenter

– Blockize

– Colorizer

– Indention

Zend\Text\Table

Возможности Zend\Tool\Framework

Архитектура Zend\Tool\Framework

все тот же MVC

«единая точка» входа и роутинг

Manifest, Provider

Request/Response

Help System

Manifest, Registry, Metadata

Manifest, Registry, Metadata

User provider: схема

Результат

Request, response

Request, response

Диалог с пользователем

Zend\Tool\Framework\Client\Interactive\*

Unix way: pipe

Unix way: pipe

Unix way: pipe

Unix way: перенаправление вывода

Unix way: перенаправление вывода

ZF2.0 RFC http://framework.zend.com/wiki/display/ZFDEV2/RFC+-+CLI

Компонент Zend\Console:

– Парсинг параметров

– Вывод данных в stdout, stderr

– OS env

– Interactive input

Компонент Zend\Cli

– Структура аналогична Zend\MVC, bootstrap

– application, request, response

– Mvc-like router (возможно с двойственной диспечирезацией)

– Help system

Прототипы и реализации

https://github.com/robertbasic/zf2-cli

https://github.com/zucchi/zf2-1

…?

Спасибо за внимание!

top related