Nos artigos anteriores desta série, discutimos o assunto relativo a programação orientada a objetos em PHP, discutimos muitos aspectos teóricos e creio ter ficado bem claro a abordagem orientada a objetos. Toda esta introdução que foi feita, realmente era necessária para que você pudesse entender muitos aspectos práticos, utilizados em aplicações de alto nível, grandes, que demandam uma maior organização para que sejam concluídas e que possam ser mantidas no futuro sem muitos problemas. A manutenção dos sistemas desenvolvimentos é tão importante quanto o próprio desenvolvimento, pois praticamente todo sistema precisa de ajustes, seja pelo negócio da empresa que esteja mudando ou mesmo por aspectos que devem ser melhorados dentro do sistema.

Vimos toda a introdução, e com o conhecimento já adquirido somos capazes de desenvolver aplicações pequenas, mas precisamos de mais ferramentas que nos possibilitem o desenvolvimento de aplicações de médio e grande porte e não podemos, definitivamente, programar tudo do zero. Temos de utilizar conceitos que já estudamos como a reutilização de códigos. Para isso utilizaremos um framework, ele nos ajudará a não programar toda a lógica necessária e apenas focarmos nos pontos importantes do negócio envolvido no sistema. Também iremos realizar a modelagem de um pequeno banco de dados para nos servir de base para a construção da aplicação. Para você que deseja ter uma base mais sólida sobre orientação a objetos em PHP, recomendo que leia os três primeiros artigos desta série:

php orientado objetos

O QUE É UM FRAMEWORK?

Framework é uma estrutura de suporte definida em que um outro projeto de software pode ser organizado e desenvolvido. Um framework pode incluir programas de suporte, bibliotecas de código, linguagens de script e outros softwares para auxiliar no desenvolvimento e unir diferentes componentes de um projeto de software. Algumas pessoas definem framework de uma maneira mais cômica e coloquial sendo  um conjunto de scripts feitos por pessoas mais inteligentes que eu para eu programar de forma mais rápida, fácil e eficiente. Sendo a definição mais formal ou mais coloquial o framework nada mais é do que um conjunto de códigos prontos que irei reutilizar de uma forma estruturada para alcançar um objetivo, dentre os benefícios de se utilizar um framework, podemos citar os seguintes:

  • Agilidade: Esta é a vantagem mais importante de se utilizar um framework, ele ajuda no desenvolvimento ágil de aplicações. Qual o benefício prático de se programar uma funcionalidade que já existe? Para que fim criar um código gigantesco para enviar um e-mail se tenho uma extensão em meu framework que faz isso com muito mais maestria, com diversas verificações?
  • Extensibilidade: É uma fator incrível, quase todos os frameworks permitem que outros desenvolvedores que não participam diretamente do desenvolvimento do núcleo (core) do framework, desenvolvam pequenos códigos chamados de plugins ou extensões que visam criar funcionalidades que não são contempladas pelo framework.
  • Segurança: Imagine que são milhares de desenvolvedores em todo o mundo utilizando o mesmo código que você, com isso o código estará muito mais preparado para não ser invadido por qualquer um, seu código terá muito menos vulnerabilidades pois são muitos desenvolvedores que podem relatar algum problema, se você desenvolver todo o seu sistema, desde o núcleo, certamente você terá problemas com aspectos relativos a segurança da aplicação.
  • Documentação e suporte: Quase todos os frameworks do mercado possuem uma excelente documentação. Muitos reclamam de não conseguirem utilizar-se de alguns frameworks mas quando percebemos está tudo lá, na documentação, exercitando o hábito de sempre procurar as dúvidas que temos dentro da própria documentação do framework, tudo tende a se tornar mais fácil. Algo que acho muito interessante também o fato de, na maioria dos casos, existirem fóruns oficiais onde você pode encontrar pessoas de muita experiência para lhe ajudar com problemas relativos ao framework e/ou dúvidas que podem haver quanto a utilização de certos recursos. Enquanto se você desenvolver algo do zero, apenas você poderá dar suporte e sanar as dúvidas com relação a utilização das funções com a utilização de um framework você poderá ter milhares de pessoas para lhe ajudar.

O QUE É O YII?

O Yii é um framework de desenvolvimento de aplicações livre, de código-aberto, que promove um design limpo e o desenvolvimento ágil. O Yii trabalha de uma forma a garantir o desenvolvimento de softwares eficientes, extensíveis e de fácil manutenção. (WINESETT, 2010)

yii framework

O Yii é uma ótima escolha para projetos de qualquer porte, mas foi projetado para aplicações empresariais de grande porte. O desenvolvedor possui total controle sobre sua configuração, tanto no design das aplicações, quanto em suas funcionalidades. O Yii também possui uma vasta documentação, clara e abrangente.

A HISTÓRIA DO YII FRAMEWORK

Yii é fruto da imaginação de seu fundador, Qiang Xue, que iniciou o projeto Yii em 01 de janeiro de 2008. Qiang havia desenvolvido e mantido o framework Prado. Os anos de experiência adquiridos e o feedback dos desenvolvedores se juntaram em um projeto que consolidou a necessidade de um framework extremamente rápido, seguro e profissional que é feito sob medida para atender às expectativas de desenvolvimento de aplicações Web 2.0. Em 03 de dezembro de 2008, depois de quase um ano de desenvolvimento, o Yii 1.0 foi oficialmente lançado para o público.

PREPARANDO O AMBIENTE PARA O DESENVOLVIMENTO COM O YII FRAMEWORK

Para a utilização do Yii Framework é necessário um servidor web com suporte para PHP, como a aplicação demonstrada neste trabalho utilizará o banco de dados MySQL, logo também será necessário um servidor MySQL para hospedar nosso banco de dados. Para conseguir a configuração do Apache, PHP e MySQL pode ser um tanto difícil para um desenvolvedor iniciante, para amenizar estas dificuldades foram criados alguns pacotes que instalam todas estas ferramentas, e algumas outras, de forma rápida e prática, neste trabalho vamos usar o WAMP Server.

O WAMP é o acrônimo de Windows, Apache, MySQL e PHP, ou seja, é uma servidor apache com php e MySQL instalado sobre um Sistema Operacional Windows. O WampServer é um software livre desenvolvido pela equipe PHP para facilitar os testes de códigos PHP. Depois do WAMPServer devidamente instalado é necessário acessar o seguinte endereço para verificar os pré-requisitos para a utitlização do Yii: http://localhost/yii/requirements/index.php. Se todos os pré-requisitos forem satisfeitos, também é preciso criar um arquivo .htaccess na raiz do diretório da aplicação com o seguinte conteúdo:

RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php

Depois destas configurações iniciais o servidor está pronto e o desenvolvimento pode ser iniciado.

CRIANDO A APLICAÇÃO INICIAL

A partir de agora toda a agilidade do Yii Framework começará a ser mostrada. Para iniciar o desenvolvimento da aplicação, será utilizado um comando chamado webapp do Yii. Com ele, o Yii criará toda a estrutura de uma aplicação web, criando as pastas necessárias para o funcionamento da aplicação, além de criar as páginas HTML, o código CSS e os códigos Javascript, estes praticamente não precisarão ser alterados no futuro, o procedimento é mostrado a seguir:

criando aplicação inicial

Para utilizar o comando webapp do yii, é preciso abrir o prompt do MS-DOS e digitar as seguintes informações: endereço\para\o\php endereço\para\o\yii\framework\yiic.php webapp endereço\para\www\nome-da-aplicação, com isso o yii monta toda a estrutura da aplicação como é mostrado na imagem acima.

Depois do comando executado podemos visualizar a nova aplicação em http://localhost/nome-da-aplicação

aplicação web

O QUE É CRUD?

CRUD é o acrônimo da expressão em língua Inglesa Create, Retrieve, Update e Delete, usada para definir quatro operações básicas usadas em bancos de dados relacionais (RDBMS) ou em interface para usuários para criação, consulta, atualização e destruição de dados. Praticamente todas as vezes que partimos para uma nova funcionalidade de nossa aplicação utilizaremos comandos padrões do Yii para a criação dos modelos e também dos CRUD’s. Para exemplicar vamos pensar em um cadastro de clientes, com um só comando criamos todo o CRUD, ou seja a adição, alteração, consulta e exclusão de clientes, restando ao programados apenas ajustar  para que os sistema esteja em conformidade com o que foi proposta nas modelagens e esboços de tela.

CRIANDO OS MODELOS

Para a criação dos modelos, controles e visões será usado um móduo Yii chamado Gii. O Gii é um gerador de modelos e CRUD’s, que pode ser executado diretamente no navegador. O Gii facilitou ainda mais a vida do desenvolvedor, pois antes o mesmo precisava acessar o prompt do MS-DOS para gerar os modelos e CRUD’s. Se possui alguma dúvida com relação a modelos, controles e visões, recomendo que leia o artigo sobre MVC que já publicamos aqui no Escola Criativade: PHP Orientado a Objetos: MVC em PHP

Para utilizar o Gii, é necessário habilitá-lo, para isso é preciso inserir os seguintes parâmetros no arquivo path/to/server/gescon/protected/config/main.php:

return array(
    ......
    'modules'=>array(
        'gii'=>array(
            'class'=>'system.gii.GiiModule',
            'password'=>123',
            // 'ipFilters'=>array(...a list of IPs...),
            // 'newFileMode'=>0666,
            // 'newDirMode'=>0777,
        ),
    ),
);

CONCLUSÃO

Neste artigo aprendemos o funcionamento do Yii Framework e seus benefícios no processo de desenvolvimento de software, estamos praticamente preparados para “meter a mão na massa” e produzir aplicações web de forma ágil e em conformidade com a maioria dos padrões existentes atualmente. Nos próximos artigos iremos aprender a criar os controles e visões e também iremos mostrar a modelagem da aplicação que será desenvolvida para demonstrar o uso do Yii Framework, também ensinaremos a gerar uma engenharia reversa para que não precisemos criar todo o banco de dados manualmente. Até lá!

Abraços,

 

Autor: Jair Rebello

Blog do Autor | Artigos do Autor:

Analista de Sistemas, empreendedor e blogueiro que dedica parte de seu tempo para a partilha de material de grande qualidade relacionados a Wordpress, SEO, Tableless, JQuery, PHP, Android e outras tecnologias mais. Pode me encontrar no Escola Sites ou O Android.

  • Explorer - Factory Construction & Ship Building Joomla Theme
  • Justice - Attorney and Law Firm Joomla Template
  • OwnFolio - One Page Personal Portfolio / vCard / Resume / Showcase Joomla Template
  • Big Business - Responsive Template
  • Merab - Creative Multipurpose Drupal 8 Theme
  • Fitness Academy Joomla Template
  • Fruition - Business Joomla Template
  • Educate | Education & Courses, Kindergartens Joomla Template
  • Constructive - Contractors Multipurpose Joomla Landing Page Theme
  • Vina Bubox - VirtueMart Joomla Template for Online Stores
  • BizOne - One Page Parallax Drupal Theme
  • LawHouse - Responsive Lawyers Attorneys Joomla Template

Gostou deste artigo? Então torne-se fã do Blog no Facebook!



Comentários dos Alunos


  1. Gustavo Madi
    11 de dezembro de 2012

    Parabéns Jair, pela iniciativa, ficou muito boa a didática desse conteúdo, me ajudou bastante como iniciante no Yii Framework, obrigado.

    Vlw!



    • Jair Rebello
      12 de dezembro de 2012

      Gustavo, que bom que gostou. Teve alguma dificuldade na configuração do ambiente ou mesmo no entendimento do artigo?



  2. André Reus
    12 de dezembro de 2012

    Parabéns, tenho acompanhado divulgado junto a amigos teu blog, está perfeito, obrigado por compartilhar teus conhecimentos, e aproveitando o momento um feliz natal caro amigo.
    abraços



  3. Marcelo
    8 de janeiro de 2013

    Alguma data para a continuação do artigo?



  4. Pablo Castro
    10 de janeiro de 2013

    Parabéns pela qualidade do artigo.
    Continue assim, aguardamos continuidade.
    Grato



  5. Maurilio Vilela
    30 de abril de 2013

    Muito bom o artigo, ótima didática e clareza no assunto. Continue sempre assim.
    Aguardando os próximos artigos.



  6. Alexandre Beneducci Afonso
    13 de outubro de 2013

    Obrigado Jair! excelente trabalho!
    não ficou claro pra mim a habilitação do Gii:
    “…path/to/server/gescon/protected/config/main.php…”
    onde fica esse arquivo?
    quais parametros devo inserir?

    um grande abraço!



  7. Maycon Alessander
    17 de outubro de 2013

    Olá Jair,

    onde fica o arquivo path/to/server/gescon/protected/config/main.php ??


RSS
Twitter
Facebook
Comentários
ASSINANTES
SEGUIDORES
FÃS
COMENTÁRIOS
7794

Subscrever Newsletter
Subscreva a Newsletter:



Aplicativos Android, iPhone e Muito Mais!




Assine a Escola Criatividade Assine a Newsletter da Escola Criatividade Escola Criatividade no Twitter Escola Criatividade no Facebook Escola Criatividade no Youtube Escola Criatividade no Google Buzz