Vamos Falar sobre Zend Framework

Vamos Falar sobre Zend Framework

Julho 29, 2020 0 Por tocadigital

Quando comecei a programar, isso já há uns 10 anos. Utilizava a linguagem do PHP 4.0, nessa época mal se falava em Frameworks, apesar de já terem o Zend desde 2005 e algumas comunidades a respeito, não era muito divulgado, então acabei chegando tarde a seu conhecimento, também não corri muito atrás na época, pois eu estava inventando a roda ainda… Com o tempo descobrimos o que é reaproveitamento de código, e aí ficamos “cada vez mais preguiços”, quero dizer, criamos mais códigos e trabalhamos até mais para no final trabalharmos menos, ou para melhorar o suporte de nossos sistemas, não que isso seja uma regra absoluta, mas tem diversas vantagens… Pois bem, burocratizamos tudo, se é que me entendem.

O Zend Framework se tornou uma ferramenta que permite criar um sistema com um longo período de prospecção mas que tem um resultado final muito satisfatório, além da facilidade tremenda de manutenção e modularidade, há uma eficiência de reutilização de códigos, fora de série. Fora as diversas outras possibilidades infinitas e inimagináveis que sua mente precisará descobrir afundando-se em seu estudo mais complexo e profundo entre cafés e energéticos durante a madrugada…

O que posso dizer é que o Zend Framework 2 (ZF2) possibilita fazer sistemas complexos seguros e eficientes, para empresas a longo prazo (a questão de prazo se deve considerar também quanto se tem progredido com o produto final do seu sistema), enquanto o Zend Framework 1.12, permite criar sites simples em pouco tempo, com prospecção independente de reaproveitamento.

Ambos tem suas vantagens e desvantagens.

Mas se vc começar a trabalhar com o ZF2, não vai mais querer voltar para o 1.12. “Perde se tempo no começo e ganha se tempo no futuro”.

O mais trabalhoso do ZF2 eu diria que é configurar as rotas, a integração do composer com o doctrine, e saber fazer o mapeamento do banco, o resto, é igual a qualquer outro framework. Mas a vantagem dele é que ele segue um padrão de projeto vale a pena ver aqui: www.php-fig.org

Para começar a instalar o ZendFramwork 2, vc irá precisa do ZendSkeleton, que é nada mais e nada menos que o esqueleto padrão do projeto: http://framework.zend.com/manual/2.0/en/user-guide/skeleton-application.html
e do composer: https://getcomposer.org/

Além disso o Zend Framework 2 conta com uma biblioteca cheia de recursos para você trabalhar, como paginação, indexação e pesquisa como Zend Lucene, etc. Você também pode adquirir complementos para expandir essa biblioteca instalando-os através do composer.
No próprio site do composer tem o caminho, mas eu vou facilitar, colocando ele aqui: https://packagist.org/, esse endereço vc consegue busca ferramentas para ampliar a Library do Zend.

Se você não tem ideia de como começar a instalar o Zend, vc pode assistir a essa vídeo aula grátis:
https://www.youtube.com/channel/UCsMR_iixPPlYl6QysW3kkyQ

Além disso, ele funciona basicamente assim:

Começa assim:
/config (nesta pasta fica as configurações padrões do doctrine, banco, e ativação dos modulos) que continua dentro da pasta /autoload que contém o autoload das classes, que se orientam pela declaração de “namespace” (requer no mínimo php 5.3 ou superior, recomendo 5.5, ZF1.12 utilizava o underline “_” para criar essa orientação de pastas, já com o namespace, essa prática se tornou obsoleta) para o mapeamento das classes, métodos etc.

Exemplo de configuração do banco:


/data/ são arquivos para download, armazenamento, etc.
/module/ (pasta onde ficam os módulos, os mini sistemas que irão em conjunto fazer a sua ferramenta ter o pacote de soluções modulares), dentro desta pasta vem a subpasta do modulo (no caso Album que seria um Application), e o arquivo de configuração do módulo: /module/Album/config/module.config.php ( é basicamente onde vc coloca as rotas do sistema e o mapeamento das views )
/module/Album/src/ (nesta pasta encontram-se a camada MVC do modulo)
/module/Album/src/Album/Controller/ (como o próprio nome diz, o controle, que faz basicamente o comando de chamar os modelos, que por sua vez estarão /module/Album/src/Album/Model/, que eu não acrescentei na imagem acima, mas eles estarão aí.
O arquivo Module.php é onde você mapeará o serviços que irão ser executados junto com sua aplicação.

Os serviços, estarão em uma pasta assim:
/module/Album/src/Model/Services/Service/Album.php

É nele que vc cria suas chamadas do banco e processos que deverão obter um comportamento através do repositório do seu modelo, que no caso poderia ser  uma consulta através da entidade do banco que foi mapeada, relacionando e obtendo heranças de métodos de outras entidades relacionais.

E neste caso seu modelo de entidade, ficará em uma outra pasta chamada:
/module/Album/src/Model/Entities/Entity/Album.php

E como disse, também tem essa outra camada chamada repositório que seria basicamente assim, que é o modelo propriamente dito:
/module/Album/src/Model/Repositories/Repository/Album.php

Esta camada é responsável por criar a mágica, a regra do negócio por assim dizer, neste arquivo vc faz a chamada dos serviços, faz a coleção e depois envia para a view.
a view ficará na pasta:
/module/Album/src/view/album/album-view.phtml
Lembrando que ela será mapeada no (/module/Album/config/module.config.php), como já havia dito.
Você também pode criar nesta pasta uma pasta chamada  /module/Album/src/view/album/partials/menu.phtml
e criar arquivos que funcionam como includes.

E também pode criar um layout padrão para que tenha sempre o mesmo cabeçalho e mesmo rodapé em todas as suas views desse módulo:
/module/Album/src/view/album/layout/layout.phtml

Para concluir a chamada do site começa numa pasta pública através do arquivo index.php, que é justamente onde vc disponibilizará tudo que for público, como imagens, css, javascripts, jquery, angularjs, etc…

/public/index.php
/public/css/style.css
/public/js/script.js
/public/lib/…
/public/core/…
/public/img/fig.jpg

etc…

E por fim tem a pasta /vendor/ que é onde estará o framework propriamente dito, nesta pasta você nem precisará mexer, a menos que saiba o que está fazendo.

Acredito que essas informações básicas já podem te dar um pontapé inicial para você começar a entender melhor e poder trabalhar com esse Framework poderoso.
E para tirar suas dúvidas, tem toda uma documentação acessível através desse site:

Espero ter ajudado!