modulos snep

25
Módulos no SNEP Amim Knabben <[email protected]> Rafael Bozzetti <[email protected]>

Upload: rafaelbozzetti

Post on 07-Jul-2015

1.032 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Modulos SNEP

Módulos no SNEP

Amim Knabben <[email protected]>Rafael Bozzetti <[email protected]>

Page 2: Modulos SNEP

Baixe o Módulo Exemplo

http://goo.gl/whK6q

Page 3: Modulos SNEP

O que é um Módulo

Um módulo é uma parte de um programa que pode ser

desenvolvido independentemente.

Adiciona funcionalidades extras ao SNEP, é facilmente instalado e atualizado.

Deve seguir o padrão da Estrutura do Projeto.

Page 4: Modulos SNEP

MVCO Módulo deve seguir o

Padrão MVC

Page 5: Modulos SNEP

DADOS Forms, Javascript, Css, Imagens.

INSTALLER

Estrutura do Módulo

ACTIONS

MODEL

CONTROLLER

VIEW

Descritor do Módulo

Page 6: Modulos SNEP

Módulo – Série 1.3.x

Estrutura padronizada do Módulo.

Descritor do módulo.

Page 7: Modulos SNEP

Descritor de Módulo 1.3.x

class Example extends Snep_Module_Descriptor { public function __construct() { $this->setName("ModuleName"); $this->setVersion("1.0"); $this->setDescription("Descrição"); $this->setModuleId('example'); ... }}

Page 8: Modulos SNEP

Descritor de Módulo 1.3.xDefinição do menu, no método __construct( )

$menu_item = new Snep_Menu_Item( "Example", "Consulta no Banco",

"example/teste/database/");$menu = new Snep_Menu_Item( 'example', 'Module',

null, $menu_item );

$this->setMenuTree( array( $menu ) );

Page 9: Modulos SNEP

Descritor de Módulo 1.3.x

Inclui o caminho do Lib/ no include_path.

$path = Zend_Registry::get('config')->system ->path ->base;

set_include_path( get_include_path() . PATH_SEPARATOR . $path . "/modules/example/lib");

Page 10: Modulos SNEP

Módulo – Série 1.4.x

Estrutura padronizada do Módulo.

Descritor do Módulo.

Define estrutura de menus e controle de acesso.

Page 11: Modulos SNEP

Descritor de Módulo 1.4

Info.xml

<module> <name> Snep Example Module </name> <description> Example </description> <author> OpenS Tecnologia </author> <website> www.snep.com.br </website></module>

Page 12: Modulos SNEP

Descritor de Módulo 1.4

resources.xml

<example> <group id="example" label="Example"> <resource id="x" label="x"> </resource> <resource id="y" label="y"> </resource> <resource id="z" label="z"> </resource> </group></example>

Page 13: Modulos SNEP

Model

Cada módulo possui suas próprias classes, estas ficam acessíveis a

qualquer rotina do sistema.

class Example_Manager { public static function get( $id ) { } public static function add( $dados ) { } public static function remove( $id ) { } public static function update( $dados ) { }}

Page 14: Modulos SNEP

Controllers

Na pasta controllers são definidas classes que representam as rotinas da aplicação.

Uma classe de controlador deve estender a classe Zend_Controller_Action.

O método indexAction é necessário.

Cada método terá a sua View.

Page 15: Modulos SNEP

Controllers

// Definição de uma classe de controlador// Deve informar o módulo e ter um nome

class NomeModulo_AgentsController extends Zend_Controller_Action {

// Métodos da Classe public function indexAction( ) { } public function addAction( ) { } public function removeAction( ) { } public function editAction( ) { }

}

Page 16: Modulos SNEP

Controllers

A estrutura do Controlador e seus métodos definem a URL da aplicação.

O módulo do controlador é informado.

http://localhost/snep/index.php/

/NomeModulo/agents/ indexAction()/NomeModulo/agents/add//NomeModulo/agents/remove//NomeModulo/agents/edit/

Page 17: Modulos SNEP

ActionsActions são classes que definem Ações para Regras de Negócio.

Uma classe de ação deve estender a classe PBX_Rule_Action.

Estas classes são instanciadas automaticamente pelo SNEP.

Page 18: Modulos SNEP

Actionsclass TocaAudioDiscaTroncoAction extends PBX_Rule_Action { public function __construct( ) { } public function getName( ) { } public function getVersion( ) { } public function getDesc( ) { } public function getConfig( ) { } public function setConfig( $config ) { } public function execute( $asterisk,

$request ) { }}

Page 19: Modulos SNEP

Actionspublic function getConfig() { if( isset( $this->config['ccustos'] ) ) { $ccustos = "<value>{$this->config['ccustos']}</value>"; }else{

$ccustos = " "; } return <<<XML<params> <ccustos> <id>ccustos</id> $ccustos </ccustos></params>XML;}

Page 20: Modulos SNEP

Actions

public function execute( $asterisk, $request ) {

$asterisk->exec_goto( $this->config['context'], $request->destino, 1 );

}

Page 21: Modulos SNEP

Installer

A pasta installer contém a estrutura do banco do módulo.

A subpasta installer/update contém atualizações do banco versionadas.

$ mysql -u snep -p snep25 < schema.sql

Page 22: Modulos SNEP

Módulo Exemplo

Disponibilizamos um módulo exemplo para incentivar o desenvolvimento de

novos projetos baseados na infra-estrutura do SNEP.

Disponível nas duas versões: 1.4 e 1.3.x.

Page 23: Modulos SNEP

Módulo Exemplo

O módulo foi criado para exemplificar as possibilidades dos módulos do SNEP.

Cadastro simples em banco de dados.

Uso de Model ( Example_Manager )

Demostração do CRUD.

Demonstração da criação e validação de formulários.

Page 24: Modulos SNEP

Fork MeÉ nosso objetivo que o projeto seja

facilmente copiado e alterado, estimulando o surgimento de novos

módulos.

O Projeto do módulo exemplo está disponível no GitHub.

Cadastre-se e faça um fork

Necessita ter o git instalado.# apt-get install git

Page 25: Modulos SNEP

Fork Mehttp://goo.gl/kL4PR