O slideshow foi denunciado.
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
Próximos SlideShares
Carregando em…5
×

Modulos SNEP

1.363 visualizações

Publicada em

  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

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

×