Vous êtes sur la page 1sur 20

CONSTRUO DE UM FRAMEWORK PARA O DESENVOLVIMENTO DE APLICAES WEB

Lincoln Fernandes Paulino dos Santos1 Aline Maria Malachini Miotto2 Resumo Atualmente com o grande avano da tecnologia, cada vez mais as empresas esto sentindo a necessidade de ferramentas que lhes forneam velocidade, agilidade, segurana e tambm uma grande capacidade de portabilidade. Da mesma forma, a procura por sistemas Web tambm tem obtido um alto crescimento, principalmente pelo fato de tais aplicaes possibilitarem a seus usurios a facilidade de acessarem seus dados em qualquer lugar e a qualquer momento, e isso claro de uma forma segura. Assim, visando oferecer suporte a agilidade no desenvolvimento de sistemas, a portabilidade e tambm grande exigncia de qualidade exercida sobre os sistemas na atualidade, este trabalho tem como objetivo principal apresentar um framework para aplicaes Web, desenvolvido na linguagem PHP. Para alcanar tal objetivo foi realizado um estudo que se baseou em definir e descrever o que um framework, e tambm apontar os principais frameworks desenvolvidos em PHP. Por meio deste estudo, foi possvel identificar quais as tcnicas e quais os melhores padres que podero ser utilizados para a construo do framework proposto. Palavras-Chave: Frameworks, linguagem PHP, Agilidade. Abstract Nowadays with the great advancement of technology, more companies are feeling the need for tools that provide them speed, agility, security and a great capacity for portability. Similarly, the demand for Web systems has also obtained a high growth, mainly because of these applications make your users the convenience of accessing your data "anywhere and anytime", and in a secure way. Thus, to support the agility in systems development, the portability and the high demand for quality exerted on the systems at present, this work has as main objective to provide a framework for Web applications, developed in PHP language. To achieve this objective was performed a study that was based on defining and describing what is a framework, and also indicates the main frameworks developed in PHP. Through this study, it was possible to identify the techniques and what the best standards that can be used to build the proposed framework. Keywords: Frameworks, PHP language, Agility.

Discente do curso de Sistemas de Informao do Centro Universitrio de Maring, lincolnfpsantos@hotmail.com. 2 Docente dos cursos de Anlise e Desenvolvimento de Sistemas, Sistemas de Informao e Sistemas para Internet do Centro Universitrio de Maring, amiotto@cesumar.br.

1 INTRODUO
Com o passar dos anos, e tambm com o grande avano da tecnologia, cada vez mais as empresas esto sentindo a necessidade de ferramentas que lhes forneam velocidade, agilidade, segurana e tambm uma grande capacidade de portabilidade. Apesar do grande nmero de softwares desenvolvidos para o gerenciamento de processos, nas mais diversas reas do conhecimento, em geral, as empresas preferem sistemas que sejam customizados aos seus processos, para que assim, consigam atingir um gerenciamento total dos mesmos. Desta forma, a procura pela customizao de sistemas e a exigncia de uma excelncia no poder de gerenciamento destas ferramentas tm obtido um alto crescimento. Da mesma forma que, a procura por sistemas Web tambm tem obtido um alto crescimento, principalmente pelo fato de tais aplicaes possibilitarem aos seus usurios a facilidade de acessarem seus dados em qualquer lugar e a qualquer momento. Diante das dificuldades encontradas para se construir uma aplicao Web (Word Wide Web) com agilidade que seja portvel aos diversos navegadores, e considerando a crescente demanda pelo desenvolvimento de aplicaes para Internet, o objetivo principal deste trabalho apresentar os resultados parciais do desenvolvimento de um framework na linguagem PHP que vislumbra tornar possvel a construo de aplicaes portveis aos principais navegadores da atualidade e em um tempo significativamente menor. Espera-se tambm, que o framework atenda aos aspectos de adaptabilidade e extensibilidade3. Dessa forma, este trabalho esta organizado da seguinte forma, na seo 02 apresento um referencial terico sobre frameworks. Na seo 03 so apresentados alguns dos resultados obtidos at o momento com o desenvolvimento do framework. E finalmente na seo 04 so apresentadas as principais concluses trabalho realizado.
3

Segundo Silva (2006), entende-se como adaptabilidade, a capacidade de uma aplicao ter suas funcionalidades adaptadas s necessidades dos usurios e por extensibilidade, a possibilidade de uma aplicao poder ser estendida para acomodar um requisito no previamente identificado.

2 FRAMEWORKS
2.1 CONCEITUAO
Devido grande abrangncia que um framework utilizado para o

desenvolvimento de sistemas possui, este termo normalmente definido de diversas formas e tambm em diferentes contextos. Seguindo est idia Incio Junior (2007), define framework como uma arquitetura de software semi-completa, reutilizvel, e que pode ser adaptada para produzir aplicaes personalizadas dentro de um domnio especfico. Dentre os muitos benefcios que um framework pode agregar aos

desenvolvedores no processo de implementao de software, Fayad e Schmidt (1997) descrevem quatro como principais, sendo: 1. Modularidade: ocorre pelo encapsulamento e tambm por gerar um impacto localizado de mudanas na implementao reduzindo assim o esforo na manuteno. 2. Reusabilidade: Atravs das interfaces estveis proporcionadas pelos frameworks possvel definir componentes genricos que podem ser utilizados em novas aplicaes. 3. Extensibilidade: a capacidade que uma aplicao possui em ser estendida para acomodar um requisito previamente no identificado. 4. Inverso de controle: Beneficio este que conforme Silva E. (2006) ocorre da seguinte forma: tradicionalmente o desenvolvedor tomando um conjunto de bibliotecas ou componentes cria um programa principal que invoca esses componentes quando necessrio. Ao contrrio disso, nos sistemas baseados em frameworks os sistemas principais so reusados incumbindo o desenvolvedor de somente definir quais os componentes sero utilizados pelo sistema.

2.2 CLASSIFICAO DE FRAMEWORKS


Segundo Fayad e Schimidt (1997), os frameworks so classificados de acordo como o modo que os mesmos sero empregados. Desta forma, os frameworks podem ser classificados de acordo com o seu escopo nas seguintes categorias:

2.2.1 System Infrastructure Frameworks So frameworks utilizados no desenvolvimento de sistemas operacionais e interface com o usurio. Estes frameworks tm como funo principal simplificar a construo da infra-estrutura destes sistemas de forma que seja possvel maximizar a portabilidade e eficincia dos mesmos. Suav (1999) define este tipo de framework, como frameworks de aplicao, tambm conhecidos como frameworks horizontais. A Figura 1 ilustra o enfoque que os frameworks de aplicao (System infrastructure frameworks) oferecem quanto sua utilizao e generalizao.

Figura 01- Frameworks de aplicao (SUAV, 1999)

2.2.2 Middleware Integration Frameworks So frameworks usados para realizar a integrao de aplicaes distribudas e componentes. Para Fayad e Schmidt (1997), estes frameworks so utilizados para melhorar a habilidade no desenvolvimento de software, visando a modularizao, reutilizao e extencibilidade da infra-estrutura de forma que tais aplicaes funcionem perfeitamente em um ambiente distribudo. 2.2.3 Enterprise Application Frameworks So frameworks focados para o desenvolvimento de aplicaes comerciais e para a rea de negcios. Conforme Fayad e Shmidt (1997) so frameworks caros para se desenvolver bem como tambm para se comprar. Entretanto podem fornecer um importante retorno sobre o investimento tendo em vista que possuem a capacidade de construir aplicaes para os usurios finais. Estes

tipos de frameworks tambm podem ser classificados como frameworks de domnio, ou at frameworks verticais (SUAV, 1999).

Figure 2 - Frameworks de domnio (SUAV, 1999)

Na Figura 2 ilustrada a estrutura dos frameworks de domnio (Enterprise application frameworks), que, contrariamente aos frameworks de aplicao, focam mais na parte da aplicao e do framework que est sendo utilizado do que na generalidade. 2.2.4 WhiteBox, BlackBox e GrayBox

Independentemente do escopo em que um framework est inserido, estes tambm podem ser classificados pela sua forma de reuso em 3 categorias: (FAYAD; SCHMIDT, 1997). Os frameworks caixa-branca, ora descritos whitebox, so os frameworks que se caracterizao pela presente existncia da orientao a objetos e ligao dinmica. Nestes frameworks, o reuso se da por meio da herana, onde usurios devem criar subclasses que estendem as classes abstratas e implementando ento o comportamento dos mtodos (MALDONADO et al., 2009).

Figure 3 - Framework caixa branca (Whitebox) (MALDONADO et al., 2009)

A Figura 3 apresenta o funcionamento de um framework caixa branca cuja utilizao feita atravs de um nico Hot Spot4 . Os frameworks caixa-preta diferenciam-se dos frameworks caixa-branca por trs aspectos: menor flexibilidade, tendo em vista que o reuso ocorre apenas na utilizao das classes j existentes no framework; maior facilidade de uso, pois os desenvolvedores que os utilizam no necessitam interagir diretamente com o cdigo do framework; maior dificuldade de implementao, isto porque para o desenvolvimento desse tipo de framework necessrio prever e implementar um amplo conjunto de casos de uso do domnio. Na Figura 4 ilustrado o funcionamento de um framework caixa preta que semelhantemente ao caixa branca tambm possui apenas um Hot Spot, entretanto pode-se observar que existem trs alternativas presentes no framework para a implementao da responsabilidade R, necessitando ento que o usurio escolha uma das trs para obter uma aplicao especifica. (MALDONADO et al., 2009).

Figura 04 - Frmeworks caixa preta (Blackbox) (MALDONADO et al., 2009)

Tendo em vista a discrepncia existente entre os frameworks caixa branca e caixa preta, foi criada a classificao para os frameworks caixa cinza (graybox), que classifica os frameworks que no se caracterizam como caixa branca e nem caixa preta.
Esse tipo de framework permite a extenso tanto em termos de herana quanto em termos de composio, dependendo da necessidade da aplicao. Dessa forma, os frameworks caixa-cinza possuem flexibilidade e facilidade de extenso sem ter que prever muitos casos de uso e sem expor informaes desnecessrias ao desenvolvedor (SILVA E., 2006).
4

Conforme Maldonado et al. (2009), um Hot Spot um ponto de especializao de um domnio de aplicao, onde diferentes aplicaes dentro de um mesmo domnio so distinguidas por um ou mais hot spots.

Algo muito comum no desenvolvimento de frameworks caixa preto que, dificuldade em se identificar e conhecer todo o domnio da aplicao faz com que na grande maioria das vezes a primeira verso destes frameworks seja caixa branca, de forma que com a contnua melhora passe a ser caixa cinza e posteriormente a isso caixa preta.

2.3 VANTAGENS E DESVANTAGENS


Como foi visto at o momento, a utilizao ou construo de um framework pode trazer inmeras vantagens para seus usurios, tais como, reduo de custos, maior reuso, melhor manutenabilidade, estabilizao do cdigo, extensibilidade, inverso de controle dentre outras supra citadas. Entretanto, segundo (SUAVE, 1999; FAYAD e SCHMIDT, 1997), a utilizao de frameworks pode acarretar em algumas desvantagens, tais como: a tarefa de se construir um framework difcil e demanda muito planejamento para que o reuso seja alcanado; os benefcios da utilizao de um framework so realizados a longo prazo; o custo de um treinamento e tambm o tempo necessrio para se utilizar um framework de forma adequada so altos; uma boa documentao de manuteno e apoio so necessrios (Maldonado et al., 2009). Na Figura 5 apresentando de uma forma simplificada uma comparao entre o custo e o beneficio da construo de frameworks.

Figura 05 - Custos e Benefcios na construo de um framework (MALDONADO et al., 2009)

3 DESENVOLVIMENTO
3.1 DESENVOLVIMENTO DO FRAMEWORK
O framework ora desenvolvido trata-se de um framework de aplicao, podendo ser classificado como um framework do tipo caixa cinza. Isto tendo em vista que em sua atual situao, so presentes caractersticas como: a generalidade e a facilidade em estend-lo, no sentido que para sua utilizao no necessrio que o usurio tenha contato direto com o cdigo do framework. O framework consiste em estrutura reutilizvel cujo foco permitir que usurios desenvolvam aplicaes Web com maior agilidade sem que seja necessria a manipulao de cdigos HTML (HyperText Markup Language) e CSS (Cascading Style Sheets).

3.1.1 Estrutura de Diretrios do Framework


Algo importante a ser ressaltado sobre o funcionamento do framework, que o mesmo est diretamente vinculado a estrutura em que as classes, arquivos de estilo, arquivos de configurao e tambm a forma que os arquivos desenvolvidos pelos usurios do framework esto organizados. A organizao e estruturao dos diretrios do framework, alm de possuir suma importncia para seu funcionamento, visam tambm, fornecer aos usurios a possibilidade de desenvolverem aplicaes seguindo padres de desenvolvimento como MVC5, separando a regra de negcios de uma aplicao d interface da mesma. A estrutura de diretrios do framework encontra-se organizada da seguinte forma:

Conforme Minetto (2007), MVC um acrnimo para Model, View, Controller (Modelo, Viso e Controlador) que se baseia na idia de separar o desenvolvimento de uma aplicao em trs partes ou camadas, ou seja, o Model onde realizado o gerenciamento dos dados, a View onde se gerencia a sada grfica (interface com usurio) e o Controller que interpreta as entradas do usurio, comandando a Viso e o Modelo para se alterarem de forma apropriada.

Tabela 1 Estrutura de diretrio do Framework


Diretrio /app /controllers /views Config.inc.php Menu.php DeskTop.php /LFClass /style /js /docs Load.inc.php Descrio Diretrio onde ficar o cdigo da aplicao. Arquivos que controlam as regras de negcio da aplicao. Arquivos de interface. Arquivo de configurao. Arquivo onde deve ser criado o Menu da aplicao. DeskTop da aplicao. Cdigo-fonte do Framework. Arquivos CSS do Framework. Javascripts do Framework. Documentao do Framework. Arquivo responsvel por carregar as classes do Framework.

Deve-se observar que os arquivos criados para o controle das regras de negcio de um determinado caso de uso (diretrio /controllers) e a interface deste mesmo caso de uso (diretrio /views) devem possui o mesmo nome. Exemplo: /controllers/CadCliente.php e /views/CadCliente.php.

3.1.2 Diagrama de Classes


Uma das melhores e mais atuais formas de se documentar o projeto de uma aplicao por meio de diagramas de classes, que descrevem as classes que formam a estrutura de uma aplicao e tambm o relacionamento existente entre as mesmas. Conforme Shalloway e Trott (2004), a UML (Unified Modeling Language) uma linguagem de visual (isto , uma notao de desenho com semntica) utilizada para criar modelos de programas, os quais podem ser entendidos como uma representao diagramtica dos programas. Esta linguagem de modelagem vem sendo utilizada como padro de fato e oferece suporte para a construo dos diagramas de classes. Neste trabalho utilizamos, em funo da sua notria aceitao tanto no meio acadmico como no meio comercial, a UML como linguagem para modelagem do diagrama de classes do framework proposto.

A figura 6 apresenta o diagrama de classe do framework desenvolvido em seu estado atual. Neste diagrama pode-se verificar que todas as classes do framework esto relacionadas por meio de herana, que por sua vez, se da a partir da classe principal Object. Herana pode ser entendida como o compartilhamento de propriedades entre classes de forma que uma classe mais especializada (por ex. Radio) herde todas as propriedades de uma classe mais geral (por ex. Object). Pode-se observar no diagrama abaixo, que visando facilitar ao mximo o trabalho dos desenvolvedores, bem como tambm fazer com que no seja necessria a manipulao de cdigo HTML para o desenvolvimento de aplicaes Web foram desenvolvidas classes para algumas das tags6 mais utilizadas como: <b>, <p>, <br>, <table> entre outros.

Figura 6 Diagrama de Classes do Framework

3.1.3 Exemplo de Utilizao e Vantagens do Framework

Tags so normalmente especificas em pares, para delimitar um texto que deve sofrer alguma formatao. So identificadas pelos sinais de maior e menor ( < > ou </ >), onde dentro dos sinais so especificados os comandos propriamente ditos. Importante ressaltar que a / entre os sinais determina que a tag est finalizando a marcao de um texto (RAMALHO, 1996).

Conforme apresentando anteriormente, para a utilizao do framework no necessrio que seus usurios interajam diretamente com o cdigo do mesmo, sendo necessrio apenas realizar a estruturao dos mdulos do sistema que se pretende desenvolver, informar os parmetros necessrios para que o framework se comunique com o banco de dados e tambm realizar a codificao dos mdulos atravs dos mtodos j disponveis no framework. 3.1.3.1 Criao e Acesso dos Mdulos

Antes de qualquer coisa, importante apresentar informaes sobre a utilizao e sobre a estrutura do framework: cada arquivo criado pelo usurio tratado pelo framework como um modulo (classe Module). Isto porque, visando agilidade no desenvolvimento todo modulo criado j possui por padro o objeto $module sem que seja necessrio se criar uma instncia do mesmo para iniciar o desenvolvimento. Para o melhor entendimento de como pode ser realizado o desenvolvimento de uma aplicao e quais as verdadeiras vantagens que o framework pode trazer ao desenvolvedor, dentro do diretrio /app/views do framework criaremos como exemplo, um arquivo cadCliente.php, que por sua vez ser tratado pelo framework como o modulo cadCliente. Por padro sempre que aberta uma aplicao desenvolvida pelo framework o primeiro mdulo que ser apresentado ser o modulo DeskTop, ou seja, o arquivo DeskTop.php apresentado anteriormente na estrutura dos diretrios do framework. Para que possamos acessar nosso mdulo cadCliente, necessrio que seja criado um menu dentro do arquivo Menu.php. Seguindo o exemplo supracitado, para criamos um Menu que acesse no modulo cadCliente, basta que dentro do arquivo Menu.php seja utilizado o mtodo addMenu atravs do objeto $page (j definido por padro no framework) conforme mostrado abaixo: $page->addMenu(menu,Cadastro,cadCliente);

O resultado da execuo desta seqncia de instrues pode ser observado na Figura 7.

Figura 7 - Menu do Sistema

Assim como os demais mtodos presentes no framework, sempre que adicionado um objeto, neste caso o menu, o mesmo pode ser referenciado sem que seja instanciado pelo usurio. Ou seja, caso desejssemos criar sub-menus para nossos menu anterior basta executar o mtodo addMenu() atravs do objeto menucriado anteriormente, conforme mostrado abaixo; $page->addMenu(menu,Cadastro); $menu->addMenu(cad1,Cadastro de Clientes,cadCliente); $menu->addMenu(cad2,Cadastro de Cidade); O resultado da execuo desta seqncia de instrues pode ser observado na Figura 8.

Figura 8 - Menu e Sub-menu do Sistema

Deve-se observar que na segunda chamada do mtodo addMenu() do cdigo anterior, passado como terceiro parmetro o mdulo cadCliente. Desta forma ao clicar neste item do menu o framework ir carregar no browser o mdulo cadCliente. Para os

demais itens do menu (linhas 1 e 3) onde no foram informados nenhum mdulo, a seleo dos mesmos no resultar na apresentao de mdulo algum. 3.1.3.2 Configurao e Manipulao de Banco de Dados

Para que seja realizada a comunicao como o banco de dados necessrio apenas que o usurio atravs do arquivo Config.inc.php informe dados como: Nome do Host7, nome do banco de dados, nome do usurio e o password do usurio, conforme apresentado na Figura 9. Atualmente o framework comunica-se apenas com MySQL, que um gerenciador de banco de dados padro SQL8 e que se tornou muito popular entre os desenvolvedores, pois alm de ser gratuito encontra-se disponvel para vrias plataformas como Windows, Linux, Solaris, FreeBSD, OpenBSD e MacOS (ALVES, 2005).

Figura 9 Arquivo Config.inc.php

Aps realizadas tais configuraes, o framework j permite que a partir de qualquer parte, e momento da aplicao o usurio por meio do objeto $conn, realize operaes com o banco de dados definido no arquivo Config.inc.php. Isso, por meio dos mtodos execute() e executeUpdate(). Em ambos os mtodos necessrio que seja passada uma instruo SQL sendo que a diferena entre ambos se da pelo fato de que o mtodo execute() retorna um Array com os dados obtidos.

Em sistemas de informao Host qualquer mquina ligada rede, seja ela, um roteador, computador pessoal (loscalhost) e servidores. 8 SQL (Structured Query Language) uma linguagem padronizada utilizada para a definio e manipulao de bancos de dados relacionais.

Para exemplificar como os dados so retornados atravs do mtodo execute(), imaginemos que em um banco de dados que esteja se comunicando com o framework, exista um tabela chamada CLIENTE que possua os seguintes registros: Nome Jos Maria Ao executar a linha de cdigo apresentada abaixo: $dados = $conn->execute(SELECT * FROM CLIENTE); A varivel $dados passar a possuir o seguinte valor:
Array ( [0] => Array ( [NOME] => Jos [IDADE] => 22 ) [1] => Array ( [NOME] => Maria [IDADE] => 13 ) )

Idade 22 13

3.1.3.3 Desenvolvimento de um Caso de Uso Depois de realizada a criao do menu para que se possa ter acesso aos mdulos, e a configurao para que seja realizada a comunicao com o banco de dados, para se construir uma aplicao Web basta realizar a codificao da mesma, o que por sua vez torna-se mais fcil com a utilizao do framework, conforme pode ser visto abaixo: Seguindo os exemplos realizados acima, ser utilizado o arquivo cadCliente.php para exemplificar a facilidade e vantagens que a utilizao do framework fornece para o desenvolvimento de aplicaes Web. Em primeiro lugar ser criado a interface com o usurio, ou seja, a viso do caso de uso. Para isso dentro do arquivo cadCliente.php criado dentro da pasta views (/views/cadCliente.php) ser criado um formulrio a partir do objeto $module, conforme dito anteriormente.

Normalmente em uma aplicao Web desenvolvida em PHP e HTML o cdigo necessrio para se criar um formulrio neste nosso contexto, seria necessrio criar o cdigo abaixo: <form method=post action=cadCliente.phpname=form>
... Obs: Em um cdigo HTML, nesta parte do cdigo so inseridos todos os campos do formulrio ...

</form> Utilizando o framework se torna dispensvel escrever cdigos HTML iguais ao descrito acima. Sendo necessrio apenas utilizar o mtodo addForm(), passando por parmetro o nome do formulrio, conforme o cdigo abaixo: $module->addForm(form); Aps a criao do form9 ser criada a janela que ser apresentada ao usurio. Algo importante a se observar que assim como realizado na criao do menu anterior sempre que criado um objeto atravs do framework, este passa ser um objeto, de forma que o mesmo atravs de seus mtodos pode ento adicionar outros objetos em seu contexto. Assim para inserir uma janela na tela e dentro do formulrio (no caso form ) ser utilizado o mtodo addWindow(), passando por parmetro o nome da janela, ttulo da ttulo, largura e altura, conforme pode ser visto abaixo: $form->addWindow(win, Cadastro de Clientes, 500, 300); O resultado destas duas linhas de cdigo implementadas no arquivo cadCliente.php pode ser observado na Figura 9.

Figura 9 Window do Framework


9

Ferramenta do HTML que permite a criao de documentos interativos dentro do WWW. Permite que os dados informados pelo usurio sejam submetidos e processados.

Ao criar a janela pode se notar algumas caractersticas como o posicionamento no centro da tela por default (o que por sua vez pode ser alterado atravs no mtodo setPosition()), a possibilidade de movimentar a mesma na tela dentro do browser e tambm o boto X no canto superior da janela que serve para fechar o mdulo atual e voltar para o ltimo mdulo aberto, neste nosso caso o mdulo Desktop. Conforme pode-se observar a partir do momento que ser criado o formulrio passando form (nome dado ao formulrio) passa-se a acessar os mtodos atravs de $form, da mesma forma ao adicionar a janela passando o nome de win, todos os objetos pertencentes a janela sero adicionados atravs do objeto $win. Desta forma, para inserir os campos dentro janela, basta utilizar o mtodo addInput(), passando por parmetro o nome do input, o tipo de dado que ser informado no campo, largura, posio Y e posio X que ser apresentado dentro da janela, conforme cdigo abaixo: $win->addInput(nome, texto, 200, 15, 10); Algo importante que deve ser destacado sobre o mtodo addInput(), o segundo parmetro (Tipo de Texto) que serve para definir qual ser o tipo do texto a ser inserido no campo. Atualmente so configurados os seguintes tipos: Text: permite a insero de qualquer caractere; Number: permite insero apenas de nmeros e cria uma mscara; CEP: permite insero apenas de nmeros e cria uma mscara (99999-999); CPF: permite insero apenas de nmeros e cria uma mscara (999.999.999-99); CNPJ: permite insero apenas de nmeros e cria uma mscara (99.999.999/9999-99); Date: permite insero apenas de nmeros e cria uma mscara (99/99/9999); Hour: permite insero apenas de nmeros e cria uma mscara (99:99); Datehour: permite insero apenas de nmeros e cria uma mscara (99/99/9999 99:99); Phone: permite insero apenas de nmeros e cria uma mscara ((99) 9999-9999); Moeda: permite insero apenas de nmeros e cria uma mscara de moeda com duas casas decimais.

Para definir um label10 que indique qual informao ser inserida no campo em questo bata utilizar o mtodo setLabel(), passando por parmetro o label em questo, conforme cdigo abaixo: $nome->setLabel(Nome); Assim basta inserirmos os demais campos na tela, conforme mostrado abaixo: $win->addInput("nome","text", 250, 15, 10); $nome->setLabel("Nome"); $win->addInput("idade","number", 50, 15, 270); $idade->setLabel("Idade"); $win->addInput("cpf","cpf", 150, 15, 330); $cpf->setLabel("CPF"); Para inserir os botes utiliza-se o mtodo addSubmit() passando o nome do boto, a legenda, a posio Y e posio X,conforme abaixo: $win->addSubmit("btn_salvar","Salvar", 45, 280); $win->addSubmit("btn_novo","Novo", 45, 380); O resultado da execuo destes cdigos pode ser visto na Figura 10.

Figura 10 Tela do caso de uso, Janela e campos.

Alm dos campos e botes j inseridos, atravs do framework pode-se tambm facilmente criar tabelas, atravs do mtodo addTable(), passando por parmetro o nome da tabela, nmero de colunas e largura, altura, posio Y e posio X. $win->addTable("table",4, 486, 205, 70, 1);

10

Label um tag HTML que utilizada juntamente com os campos do formulrio e que possui a finalidade de definir um rtulo para tais elementos.

Aps criada a tabela, pode-se ento adicionar os labels em cada coluna atravs do mtodo addLabel(), onde so passadas a linha, a coluna e o valor que ser inserido na linha e coluna em questo, segue o cdigo abaixo: $table->addLabel(1,1,"Cdigo"); $table->addLabel(1,2,"Nome"); $table->addLabel(1,3,"Idade"); $table->addLabel(1,4,"CPF"); O resultado da execuo destes cdigos apresentado na Figura 11.

Figura 11 Tela do Caso de Uso completa

Assim, toda a parte de viso (toda interface com usurio), finaliza com apenas 15 linhas de cdigo fonte, o que por sua vez, torna-se praticamente invivel de se fazer quando se programa diretamente em HTML e CSS, isso claro deixando o cdigo legvel. Feito isso, o prximo passo para se concluir o caso de uso ora exemplificado realizar a cdigo que tratar da regra de negcio, que por sua vez pode ser desenvolvido separadamente em um arquivo com o mesmo nome de onde foi programada a viso s que na pasta de controllers, neste caso, /controllers/cadCliente.php.

4 CONSIDERAES FINAIS
Com base no que foi apresentado ao longo deste trabalho, pode-se concluir que a construo e tambm a utilizao de frameworks uma soluo til quando se espera agregar a um software aspectos como o reuso, estruturao, flexibilidade e manutenabilidade alm de agilidade no desenvolvimento. No entanto, como um passo futuro desta pesquisa devero ser realizados experimentos para comprovar a viabilidade do uso do framework proposto. Tambm, pode-se destacar que o framework proposto neste trabalho classifica-se como um framework de aplicao do tipo caixa-cinza, uma vez que apresenta caractersticas tais como, generalidade que permite desenvolver diferentes aplicaes e facilidade de uso tendo em vista para sua utilizao no necessrio que o usurio tenha contato direto com o cdigo do framework. Deve-se observar tambm a necessidade de algumas alteraes para que o framework possa ento ser se classificados como um framework caixa preta. Dentro deste contexto, como continuidade deste trabalho, sero realizadas alteraes para que o framework se torne ainda mais flexvel em sua forma de desenvolvimento (ou seja, se transforme em um framework caixa preta) bem como em aspectos como comunicao com novos gerenciadores de banco de dados.

5 REFERENCIAS BIBLIOGRFICAS
MINETTO, Elton Luis. Frameworks para Desenvolvimento em PHP. So Paulo: Novatec, 2007. 192p. SHALLOWAY, Alan; TROTT, James R. Explicando Padres de Projeto: Uma Nova Perspectiva em Projeto Orientado a Objeto. Bookman, 2004. 317p. RAMALHO, Jos Antonio Alves. HTML Dinmico. So Paulo: Berkeley Brasil, 1999. 719p. ALVES, William Pereira. Delphi 2005: Aplicaes de Banco de Dados com InterBase 7.5 e MySql 4.0.23. So Paulo: rica, 2005. 542p. FAYAD, Mohamed; SCHIMIDT, Douglas C. Object-Oriented Application Frameworks. Communications of the ACM, v.40, n.10, Oct, 1997. Disponvel em: <http://www.cse.wustl.edu/~schmidt/CACM-frameworks.html>. Data de Acesso: 07/05/2009. SAUV, Jacques Philippe. Frameworks. Paraba, Campina Grande: Universidade Federal da Paraba. 1999. (Notas de Aula). Disponvel em: <http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/oque.htm>. Data de Acesso: 19/05/2009 MALDONADO, Jos Carlos; BRAGA, Rosana Terezinha Vaccare, GERMANO, Ferno Stella Rodrigues; MASIERO, Paulo Cesar. Padres e Frameworks de Sofware. So Paulo: Universidade de So Paulo, 37 p. (Notas Didticas ). Disponvel em: <http://www.icmc.sc.usp.br/~rtvb/apostila.pdf>. Data de Acesso: 19/05/2009. SILVA, Elaine Quintino da. Um Framework baseado em componentes para o desenvolvimento de aplicaes Web e um processo de instanciao associado. 2006. 167 p. Tese (Doutorado em Cincias de Computao e Matemtica Computacional) Instituto de Cincias Matemticas e de Computao Universidade de So Paulo, So Carlos, So Paulo. Disponvel em: <http://www.teses.usp.br/teses/disponiveis/55/55134/tde-26092006-15265>2/ Data de Acesso: 30/04/2009. INCIO JUNIOR, Valter dos Reis. Um Framework para Desenvolvimento de Interfaces Multimodais em Aplicaes de Computao Ubqua. 2007. 119 p. Dissertao (Mestrado em Cincias de Computao e Matemtica Computacional) Instituto de Cincias Matemticas e de Computao Universidade de So Paulo, So Carlos, So Paulo. Disponvel em: <http://www.teses.usp.br/teses/disponiveis / 55/55134/tde-11122007-105843/> Data de Acesso: 01/05/2009.

Vous aimerez peut-être aussi