Modulos SNEP

1.309 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.309
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
29
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Modulos SNEP

  1. 1. Módulos no SNEPAmim Knabben <amim@thesource.com.br>Rafael Bozzetti <rafael@thesource.com.br>
  2. 2. Baixe o Módulo Exemplo http://goo.gl/whK6q
  3. 3. 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.
  4. 4. MVCO Módulo deve seguir o Padrão MVC
  5. 5. Estrutura do MóduloMODELCONTROLLERVIEWACTIONS Descritor do MóduloINSTALLERDADOSForms, Javascript,Css, Imagens.
  6. 6. Módulo – Série 1.3.x Estrutura padronizada do Módulo. Descritor do módulo.
  7. 7. Descritor de Módulo 1.3.xclass Example extendsSnep_Module_Descriptor { public function __construct() { $this->setName("ModuleName"); $this->setVersion("1.0"); $this->setDescription("Descrição"); $this->setModuleId(example); ... }}
  8. 8. 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 ) );
  9. 9. Descritor de Módulo 1.3.xInclui 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");
  10. 10. Módulo – Série 1.4.x Estrutura padronizada do Módulo. Descritor do Módulo. Define estrutura de menus e controle de acesso.
  11. 11. 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>
  12. 12. 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>
  13. 13. 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 ) { }}
  14. 14. ControllersNa 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.
  15. 15. Controllers// Definição de uma classe de controlador// Deve informar o módulo e ter um nomeclass NomeModulo_AgentsController extendsZend_Controller_Action { // Métodos da Classe public function indexAction( ) { } public function addAction( ) { } public function removeAction( ) { } public function editAction( ) { }}
  16. 16. 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/
  17. 17. 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.
  18. 18. Actionsclass TocaAudioDiscaTroncoAction extendsPBX_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 ) { }}
  19. 19. 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;}
  20. 20. Actionspublic function execute( $asterisk, $request ) { $asterisk->exec_goto( $this->config[context], $request->destino, 1 );}
  21. 21. InstallerA 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
  22. 22. 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.
  23. 23. Módulo ExemploO 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.
  24. 24. 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
  25. 25. Fork Mehttp://goo.gl/kL4PR

×