estrutura do projeto

Download Estrutura do Projeto

If you can't read please download the document

Upload: rafaelbozzetti

Post on 28-Jun-2015

700 views

Category:

Technology


5 download

TRANSCRIPT

  • 1. Estrutura do Projeto: Amim Knabben < [email_address] > Rafael Bozzetti

2. Tpicos

  • Histrico do Snep 3. Zend Framework 4. Estrutura de arquivos do SNEP 5. Bootstrapping & Configurao 6. MVC & Forms 7. Bibliotecas de Apoio

8. Histrico - Snep

  • Projeto inicialmente escrito por Flvio Somensi, em PHP puro. Este modelo foi mantido at a verso1.2.2 . 9. A partir da verso1.3.0o ambiente Zend foi introduzido gradualmente no projeto. 10. A srie1.3.xconvive com dois ambientes, o legado PHP e a nova estrutura Zend. 11. A srie1.4foi totalmente reescrita utilizando o Zend Framework.

12. ZF Introduo

  • Zend Framework um conjunto de classes criadas com base em padres de desenho de software. 13. Visa a padronizao e a reutilizao de cdigo. 14. um padro da indstria. 15. Possui parceiros tecnolgicos como: IBM, Google e Microsoft. 16. Licena New BSD. 17. Verso estvel: 1.11.3

18. Estrutura de Arquivos

  • /var/www/snep/ 1.1|-- Bootstrap.php 1.2|-- application.ini5. |-- default `-- forms ( Forms ) 2. |-- lib ( Models ) `-- modules `-- default |-- actions 3. |-- controllers ( Controllers ) |-- info.xml |-- resources.xml 4. ` -- views ( View)
          • | -- layouts 19. `-- scripts

20. Zend_Application

  • Responsvel por carregar o ambiente PHP, incluindo os include_paths e autoloading, alm de iniciar a classe Bootstrap (responsvel pelo cadastro de recursos utilizados no sistema). 21. A configurao da estrutura do projeto realizada no arquivoapplication.ini , e a interna do SNEP em/includes/setup.conf . 22. Ao final, o Zend_Application despacha a requisio para o Front Controller atravs do mtodo run().

23. Diagrama de Sequncia do Bootstrap 24. Application.ini

  • Arquivo de configurao utilizado para definir os caminhos, informaes padres, habilitar flags, etc. 25. [production]

resources.frontController.params.displayExceptions = 1 resources.frontController.controllerDirectory = APPLICATION_PATH "/modules/default/controllers" resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" resources.layout.layoutPath = APPLICATION_PATH "/modules/default/views/layouts" 26. /includes/setup.conf

  • Arquivo de configurao do SNEP. 27. Pode ser lido pelo Zend_Registry::( 'config' ) 28. O arquivo lido comZend_Config_Inie armazenado no Registry.

$config= Zend_Registry::get( 'config' ); echo $config -> system -> path -> base 29. Padro - MVC

  • O MVC (Model, View, Controller) se tornou um padro comum no desenho de aplicaes web modernas. 30. Divide de forma organizada as categorias de: Apresentao, Lgica de Negcio e Acesso de Dados do projeto.

31. Bibliotecas e Models

  • Na pasta /lib encontramos as bibliotecas, e Models do SNEP. 32. Atualmente utilizamos a biblioteca PHP-AGI juntamente com uma camada de abstrao para facilitar o acesso do Zend a mesma.

33. Models

  • Em / lib/Sneptemos as classes Models do projeto . 34. So classes que manipulam as entidades atravs de rotinas para acesso aos dados e alguma lgica de negcio.

/lib/Snep/ /lib/PBX/ /lib/Zend Acl.php Trunks.php Auth.php Alerts.php Interfaces.php Auth/Result.php Billing/Manager.php Rule.php Db.php Carrier/Manager.php Rule/Action.php Db/Select.php ... ... ... 35. Zend_Db

  • Zend_Db fornece uma interface simples para as tabelas do banco de dados SQL. 36. O SNEP mantm uma instncia da classe Zend_Db no Zend_Registry, permitindo que seja recuperada e utilizada em qualquer ponto da aplicao. 37. Permite que qualquer tipo de consulta ou manipulao do banco de dados seja feita utilizando o padro de desenhoTable Data Gateway .

38. Zend_Db // Instncia do registro db $db =Zend_Registry::get( db ); $select=$db ->select() ->from( peers ) ->where( name != 'admin' ) ->order( id ); $stmt=$db ->query($select); $resultado=$stmt ->fetchAll( ); 39. Banco de Dados - MySQL

  • A estrutura e dados do banco do SNEP encontram-se na pastadefault/installer/
  • schema.sql Contm a estrutura das tabelas. 40. system_data.sql Contm os dados iniciais do banco. 41. cnl_data.sql Contm os dados de localizao de chamadas.

42. Banco de Dados - Updates

  • As atualizaes do banco so versionadas e encontram-se na pastainstall/update/ . 43. A atualizao do banco de dados deve ser gradual, verso a verso.

install/update/ 1.1.0 database.sql 1.1.3 database.sql 1.1.6 database.sql 1.2.0 database.sql 1.3.0 database.sql 1.3.1 database.sql 1.3.2 database.sql 44. Controllers

  • Na pastacontrollersso definidas as classes que representam as rotinas de regras de negcio da aplicao. 45. Uma classe de controlador deve estender a classeZend_Controller_Action . 46. O mtodoindexAction() necessrio sendo este a ao padro do Zend. 47. Cada mtodo ter a uma ou maisViews . 48. Um controlador e seus mtodos definem as URL's da aplicao.

49. Controllers // Definio de uma classe de controlador // Deve informar o mdulo e ter um nome class Agents ControllerextendsZend_Controller_Action { // Mtodos de ao da Classe public functionindex Action() { } public functionadd Action() { } public functionremove Action() { } public functionedit Action() { } } 50. Controllers A estrutura do Controlador e seus mtodos definem a URL da aplicao. $base_url =http://localhost/snep/index.php/ agents / index /indexAction() agents / add / addAction() agents / remove / removeAction() agents / edit / editAction() 51. Views

  • As vises so a interface com o usurio. 52. No Snep utilizamosPHP ,HTMLeJavascript . 53. So divididas em pastas com o nome do controlador e um arquivo de template .phtml para cada mtodo. 54. /modules/default/views/scripts/controller/action.phtml

55. Views 56. Forms

  • A pasta forms deve conter todos os formulrios. 57. Cadaform definido em XML seguindo um padro. 58. Define tipo e validao do elementos do formulrio. $xml=newZend_Config_Xml("./default/forms/example.xml") 59. $form=newSnep_Form($xml); 60. $this -> view -> form=$form ;

61. Forms text Nome true hidden 62. Forms

  • Um objeto do tipoSnep_Formpossui diversos mtodos herdados deZend_Form . 63. O mtodoisValid () responsvel por validar os dados do formulrio. 64. $isValid=$form -> isValid ($_POST); if($isValid) { echo Form Vlido! ; }else{ echo Form Invlido! ; }

65. Zend_Registry

  • O Zend_Registry um recipiente onde objetos so armazenados. Permitindo que estes objetos estejam disponveis em toda aplicao. 66. Esse mecanismo substitui o uso de variveis globais. register_globals = Off.

// Armazenando um objeto no Zend_Registry Zend_Registry::set( 'index' ,$value ); // Armazenando um objeto no Zend_Registry $value= Zend_Registry::get( 'index' ); 67. Zend_Translate

  • A verso 1.4 do SNEP conta com suporte a internacionalizao. 68. Toda e qualquer string deve ser definida com Zend_Translate(), desta forma ela torna-se dinmica. 69. Como o Zend_Translate um atributo da View, seu uso diferente na Viso, Controlador e Modelo.

70. Zend_Translate // Uso na Viso echo $this ->translate( Texto ); // Uso no Controlador echo$this -> view ->translate( Texto ); // No Model deve-se recuperar a instancia. $i18n= Zend_Registry::get( 'i18n' ); $i18n ->translate( Texto ); 71. Obrigado!