Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Módulos no SNEPAmim 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 ...
MVCO Módulo deve seguir o    Padrão MVC
Estrutura do MóduloMODELCONTROLLERVIEWACTIONS              Descritor                     do MóduloINSTALLERDADOSForms, Jav...
Módulo – Série 1.3.x              Estrutura              padronizada do              Módulo.              Descritor do mód...
Descritor de Módulo 1.3.xclass Example extendsSnep_Module_Descriptor {     public function __construct() {       $this->se...
Descritor de Módulo 1.3.xDefinição do menu, no método __construct( )$menu_item =new Snep_Menu_Item( "Example",            ...
Descritor de Módulo 1.3.xInclui o caminho do Lib/ no include_path.$path = Zend_Registry::get(config)->system              ...
Módulo – Série 1.4.x           Estrutura padronizada           do Módulo.           Descritor do Módulo.           Define ...
Descritor de Módulo 1.4                Info.xml<module>  <name> Snep Example Module </name>  <description> Example </descr...
Descritor de Módulo 1.4              resources.xml<example>  <group id="example" label="Example">     <resource id="x" lab...
Model      Cada módulo possui suas próprias      classes, estas ficam acessíveis a         qualquer rotina do sistema.clas...
ControllersNa pasta controllers são definidas classes que     representam as rotinas da aplicação. Uma classe de controlad...
Controllers// Definição de uma classe de controlador// Deve informar o módulo e ter um nomeclass NomeModulo_AgentsControll...
Controllers   A estrutura do Controlador e seus  métodos definem a URL da aplicação.  O módulo do controlador é informado....
ActionsActions são classes que definem Ações para Regras de Negócio.Uma classe de ação deve estender  a classe PBX_Rule_Ac...
Actionsclass TocaAudioDiscaTroncoAction extendsPBX_Rule_Action {   public function __construct( ) { }   public function ge...
Actionspublic function getConfig() {  if( isset( $this->config[ccustos] ) ) {      $ccustos = "<value>{$this->config[ccust...
Actionspublic function execute( $asterisk, $request ) {    $asterisk->exec_goto( $this->config[context],                  ...
InstallerA pasta installer contém a estrutura do          banco do módulo. A subpasta installer/update contém atualizações...
Módulo Exemplo Disponibilizamos um módulo exemplo para incentivar o desenvolvimento de   novos projetos baseados na infra-...
Módulo ExemploO módulo foi criado para exemplificar as possibilidades dos módulos do SNEP. Cadastro simples em banco de da...
Fork MeÉ nosso objetivo que o projeto seja   facilmente copiado e alterado,estimulando o surgimento de novos             m...
Fork Mehttp://goo.gl/kL4PR
Upcoming SlideShare
Loading in …5
×

Modulos SNEP

1,393 views

Published on

  • Be the first to comment

  • Be the first to like this

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

×