modulos snep
Post on 07-Jul-2015
1.042 Views
Preview:
TRANSCRIPT
Módulos no SNEP
Amim Knabben <amim@thesource.com.br>Rafael Bozzetti <rafael@thesource.com.br>
Baixe o Módulo Exemplo
http://goo.gl/whK6q
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.
MVCO Módulo deve seguir o
Padrão MVC
DADOS Forms, Javascript, Css, Imagens.
INSTALLER
Estrutura do Módulo
ACTIONS
MODEL
CONTROLLER
VIEW
Descritor do Módulo
Módulo – Série 1.3.x
Estrutura padronizada do Módulo.
Descritor do módulo.
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'); ... }}
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 ) );
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");
Módulo – Série 1.4.x
Estrutura padronizada do Módulo.
Descritor do Módulo.
Define estrutura de menus e controle de acesso.
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>
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>
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 ) { }}
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.
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( ) { }
}
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/
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.
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 ) { }}
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;}
Actions
public function execute( $asterisk, $request ) {
$asterisk->exec_goto( $this->config['context'], $request->destino, 1 );
}
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
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.
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.
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
Fork Mehttp://goo.gl/kL4PR
top related