Revista Do Linux  
EDIÇÃO DO MÊS
 Produto
 Atualidades
 Slackware
 Entrevista
 CD do mês
 Capa
 Open Source
 Corporativo
 Programação
 Zope
 Digitalização

 

Classes em Zope
Aprofunde seus conhecimentos em zope e aprenda a criar novos tipos de objetos

Com a perspectiva de explorar o potencial do Zope (Z Object Publishing Environment), uma plataforma interessante para desenvolver aplicações dinâmicas para a Internet, veremos como utilizar as Z classes do Zope, por meio de sua tela de gerência, que lhe permite construir seus próprios tipos de objetos através da Web. Apresentaremos seus conceitos relevantes através de um exemplo prático.

1. Introdução

Uma das grandes características do Zope é o fato de ser um software aberto e com o código fonte liberado. O código fonte completo do Zope está disponível no site www.zope.org, para que você possa estudá-lo e estendê-lo, se necessário. O Zope é escrito na sua maior parte na linguagem de programação Python que é razoavelmente fácil de compreender. Entretanto, é um sistema grande, que executa muitas funções e inclui muitos componentes diferentes. Pode ser difícil começar a trabalhar no punho, sem alguma orientação. Tenho o objetivo de passar ao leitor um auxílio importante e, juntamente com os exemplos, fornecer a informação técnica necessária para impulsionar o início da compreensão do Zope, o método como ele trabalha e estendê-lo usando classes para servir às suas necessidades.

Este artigo está organizado em quatro seções: na primeira seção, veremos algumas opções de desenvolvimento com Zope observando algumas implicações; na segunda, conceituar as chamadas Z Classes em Zope abordando seus conceitos; na terceira seção, abordaremos a criação das Z classes em um exemplo proposto; na quarta, aprofundaremos os recursos vistos mostrando um exemplo simples de como utilizar as classes em Zope com a Web.

2. Opções de Desenvolvimento

Você não precisa modificar o código fonte do Zope para utilizá-lo. De fato, o Zope pode ser extremamente simples. É fácil expandir suas funcionalidades, porém deve-se ter algum conhecimento de seus conceitos e modos de gerenciamento. Recomenda-se ao desenvolvedor, ou até mesmo ao usuário final, ter algum conhecimento na linguagens de programação Python e DTML (Document Template Markup Language). Recomenda-se também ter familiaridade com a ferramenta do ponto de vista de um administrador Zope.

Apresentaremos algumas formas de desenvolvimento utilizando as Z Classes do Zope:

  • Você pode usar scripts no Zope usando Document Template Markup Language (DTML) em documentos DTML e métodos DTML. Isso proporciona o acesso interno ao Zope em um formulário fácil de trabalhar.
  • Você pode escrever métodos em Python e importá-los ao Zope usando objetos de método externo (External Method objects). Esse processo permite que você adicione o código complexo em Python a seus objetos do Zope.
  • Você pode usar Z classes e criar novos tipos de objetos do Zope com a Web. Criando seus próprios tipos de objetos, é possível adaptá-los às suas necessidades.
  • Você pode escrever novos tipos de objetos no Zope em Python. Esta opção fornece os mesmos benefícios que Z classes, mas em Python puro.
  • Você pode combinar métodos com as Z classes. Você pode usar pacotes da fonte do Zope em seus próprios programas de Python. Isto permite que você publique objetos sem a estrutura da gerência do Zope. Se você desejar, pode usar outros componentes do Zope, fornecer a persistência do objeto, ou potencialidades da geração de texto a seus programas em Python.
  • Você pode utilizar scripts de instalações remotas do Zope com o pacote de Zpublisher.Client. Isto permite que você conecte objetos remotos do Zope como se fossem objetos locais.
  • Você pode estender os fontes do Zope para adicionar novas funcionalidades.
  • Você pode estender o alcance do Zope, construindo novos pacotes que podem ser compartilhados com a comunidade do Zope à sua escolha, chamados de "produtos".

Suas escolhas são muitas, e de fato você encontrar-se-á provavelmente combinando diversas destas alternativas.

3. Z Classes

Uma classe é a descrição de um tipo de objeto. Todos os objetos são instâncias de classes, onde a classe descreve as propriedades e comportamentos daquele objeto. Objetos só podem ser instanciados de classes. Usamos classes para classificar os objetos que identificamos no mundo real. Uma classe pode ser a descrição de um objeto em qualquer tipo de sistema - sistemas de informação, técnicos, integrados real-time, distribuídos, software etc. O Zope engloba conceitos de orientação a objetos no tratamento de classes.

As Z classes, ou classes em Zope, representam uma nova era no seu desenvolvimento.

As Z classes permitem que você construa seus próprios tipos de objetos com a Web. De fato, em vez de se limitar aos objetos existentes como diretórios e documentos ao construir seu site, você pode agora definir suas próprias classes de objetos.

Para exemplificar, se o seu site incluir regras como manuais do empregado, relatórios de erro, etc., então você pode realmente criar objetos manuais do empregado, porém, as Z classes deixarão você criar e armazenar seus "tipos de regras" em vez de somente as "regras" do ambiente Zope. Você define suas classes no painel de controle, e então você pode criar e manipular seus objetos. Esta operação ocorrerá enquanto você estiver lidando com objetos como: Folder, DTML documentos, e todos os demais objetos padrão do Zope.

Importante citar que, toda vez que você muda e atualiza suas classes, todos as instâncias existentes naquelas classes são atualizadas. Assim, se você adicionar um método novo à sua classe "manual do empregado", todos seus objetos "manuais do empregado" serão atualizados.

Você pode exportar suas Z classes e usá-las em instalações diferentes do Zope, permitindo assim que você disponibilize o "esforço" do seu trabalho através dos chamados módulos de classes, que poderã o ser utilizados em várias instalações do Zope. Estes módulos, por sua vez, são conhecidos no jargão do Zope como "produtos". No site do Zope, www.zope.org, existem vários produtos disponíveis para download, disponibilizados através das contribuições de outros usuários. Esses produtos permitem que você especifique novos tipos de objetos no Zope. Um produto contém outros objetos, incluindo uma instância chamada "fábrica" que permite que você especifique o método inicial, que será invocado quando um usuário adiciona um objeto novo.

Basicamente, as Z classes permitem ao Zope estender-se com muito mais facilidade.

De fato não há nenhuma programação de Python requerida. Pode-se, assim, construir diversas classes especializadas para resolver problemas específicos.

4. Começando com ZClasses

Para começar, você deve se familiarizar sobre como criar produtos no painel de controle do Zope. Este processo é esboçado na figura 4.1. Estão aqui as etapas básicas requeridas para construir um produto simples do Zope com Z classes:

4.1. Criar um Produto;

4.2. Criar uma Z classe;

4.3. Definir Property Sheet(s) para a Z classe;

4.4. Criar um modo de Visualização - View;

Vamos começar a usar Z classes construindo uma classe simples num exemplo que represente uma Ferramenta de Cadastro de Bibliografia. Neste cenário, nós queremos deixar os usuários armazenarem textos com suas respectivas fontes bibliográficas, preenchendo os formulários que coletam as informações em sua coleção de textos.

4.1. - Criando um Produto: usando a tela de gerência do Zope, acesse o Painel de Controle e clique no item "Products". Agora vamos adicionar um produto clicando no botão "Add". Especifique o Identificador (Id) chamado "FCB" com um Title (Título) chamado "Ferramenta de Cadastro de Bibliografia".

4.2. - Criando uma Z classe: para criar uma Z Classe, devemos acessar nosso produto "FCB". Para isso, clique no link "FCB". Dentro dele, vamos adicionar uma classe, escolhendo na lista de "Available Objects" a opção "Z Class". Precisamos agora preencher alguns itens, mostrados na Figura 4.1.

O "Id" é o identificador. Chame-o de "ClassFCB". Em "Meta Type" coloque "FCB". Este é o nome que ficará visível para usuários do sistema que quiserem inserir este objeto. Na seção da "Base Classes", temos vários objetos adicionais que podem compor nossa classe. Serão mostrados os objetos disponíveis e não selecionados na caixa "unselected". Em nosso exemplo, vamos selecionar o objeto "Folder" e adicioná-lo clicando na seta "->". A opção "Create constructor objects" deve estar marcada para que o Zope crie, além da classe, uma estrutura que forneça outros objetos com funções específicas. Muito bem, clique no botão "Add". Veja a estrutura que o Zope criou, mostrada na figura 4.2.

Uma Z classe chamada "ClassFCB" que é nossa Z classe; um método DTML chamado "ClassFCB_add"; um método DTML chamado "ClassFCB_addcForm"; uma permissão do Zope chamada "ClassFCB_add_permission"; e uma fábrica chamada "ClassFCB_factory".

Os objetos do construtor são criados pelo Zope para ajudar a criar novas instâncias da sua classe. Olhe o objeto da Z classe. Clique sobre o objeto "ClasseFCB" dentro do Folder do "FCB". Será apresentada a tela de gerência da Z classe dos " métodos ", mostrada na figura 4.2.1. Observe as abas na figura: são links que levam a telas de gerência com propósitos específicos. (figura 4.2.1)

Nossa Z classe ainda não tem nenhum método, assim como nenhum objeto do método é listado nesta tela. Clique agora sobre a aba de gerência chamada "Basic". Aqui nós podemos ajustar algumas propriedades da Z classe, como o "meta type" de uma classe e o ícone. Um "meta type" é o nome de sua classe que aparece na lista de produtos disponíveis. O "meta type" de sua classe atualmente chama-se "FCB", mas é possível mudar este nome. O ícone da classe pode ser definido aqui, procurando-se um arquivo de imagem.

4.3. - Definir Property Sheet(s) para a Z classe: a primeira coisa a ser feita é acessar a aba "Property Sheets". Agora vamos dar à nossa classe algumas propriedades. Nós podemos fazer isso, criando uma ou mais propriedades para nossa classe. Uma Property Sheets é um esquema que descreve quais tipos de propriedades terão as instâncias da nossa classe. Nesta tela, vamos criar uma "Property Sheet" clicando em "Add". O Zope necessitará de um nome para o ID - chame-o de "FCB_info" ou como preferir.

Este será tratado pelo Zope como a identificaçã o da Property Sheet. No campo "Title", especifique um comentá rio qualquer, mas esta ação é opcional. Feito isso, clique em "Add" novamente. Agora você deve ter um objeto novo da Property Sheet listado na tela da gerência das Property Sheets. Clique sobre o identificador "FCB_info" que foi criado pelo Zope para editar sua Property Sheet. Você verá uma tela como a da a figura 4.3.

Aqui podemos criar variá veis para serem utilizadas na nossa aplicação FCB. É importante recordar que agora nós não estamos ajustando as propriedades de um FCB individual, mas sim definindo as propriedades que todas as instâ ncias FCB terão. Crie propriedades chamadas "autor" , "título" e "fonte", todas do tipo string. Crie, então, uma propriedade do tipo text chamada "resumo". Para demonstrar, forneça um nome para o ID (ex. autor), em seguida selecione um tipo, clicando nas opções "Type" (ex. selecione tipo STRING). A opção "Value" representa o valor inicial que a variável "autor" terá . Como nossa variável exemplo é do tipo string, e portanto somente poderá ter valores do tipo caracteres, não é necessário preencher nada. Lembrando: se você utilizar variá veis do tipo (float, int...), deverá ter um valor inicial. Após criar as três variáveis, retorne para a tela das abas, conforme figura 4.2.1.

4.4 - Criar um modo de Visualização - View: agora vamos adicionar uma "View" à nossa classe que permitirá usar e controlar suas propriedades. Uma View é uma aba (tela) de gerência que será exibida ao usuário que acessar o objeto FCB depois de "pronto". Clique na aba "Views" para acessar os controles de visualização. Agora você deve ver que a nossa classe tem atualmente alguns modos de views associados a métodos da classe. Como nós incluímos um Folder para compor nossa classe, temos, por padrão, vários modos de visualização, conforme mostrado na figura 4.4.

Crie uma View nova, chamada "Referências", que chame o método de propertysheets/FCB_info/manage da classe. Preencha o formulário "New" e clique em "Add". Agora você deve ver que sua classe tem outra View. Vamos transformar a view "Referências" na primeira opção a ser mostrada, marcando o checkbox ao seu lado e clicando em "First". Agora "Referências" deve estar no topo da lista das views.

5. Criando Instâncias Z Class

Agora é hora de criar um exemplo. Vá ao Folder top-level do Zope ou em qualquer outro lugar que não seja dentro do "Control Panel", escolha no "Available Objetcs" a opção "FCB" que estará presente na lista de opções. Será solicitada uma identificação. Chame-a de "meuFCB " e clique em "Add". Parábens você criou sua primeira instância da Z classe da "ClasseFCB". Observe a figura 4.5.

Clique sobre o objeto FCB "meuFCB" que foi criado. Você notará que pode editar as propriedades do FCB com a aba "Referências", bem como editar seus ajustes de segurança com a aba "Security". Através da relação de gerência você tem o acesso às abas de gerência que você definiu como "views" da Z classe. Preencha alguns dados para compor nosso exemplo e salve. Observe a figura 4.5.1.

6. Usando Instâncias Z Class

Como exemplo, suponha que você criou um FCB objeto chamado "meuFCB". Em um método DTML qualquer, você pode perguntar a este objeto utilizando um código como mostrado abaixo:



<p>Informações sobre FCB: </p>
<dtml-with meuFCB>
<p>Autor: <dtml-var autor></p>
<p>Tí tulo: <dtml-var titulo></p>
<p>Resumo: <dtml-var resumo></p>
</dtml-with>

Crie um "DTML method", copie este código acima e salve. Feito isso, clique na aba View deste DTML method. O resultado: seu objeto DTML method consultou as propriedades do objeto FCB chamado "meuFCB". As instâncias das Z classes herdam todos os métodos de suas superclasses. Em nosso exemplo simples, nossa classe FCB herda os métodos básicos disponíveis a todos os produtos do Zope, automaticamente sem ter que especificar isto.

7. Conclusão

Com um pouco de experiência, você poderá aperfeiçoar suas classes podendo até construir verdadeiros programas com o Zope. A criação de um ambiente de produção Web para a comunidade de desenvolvedores em orientação a objetos era uma necessidade antiga. O Zope realmente incorporou muitos recursos que dão à "linguagem", uma extensibilidade muito grande.

 

A Revista do Linux é editada pela Conectiva S/A
Todos os Direitos Reservados.

Política de Privacidade