Instalação
1Pré-requisitos
Para usar o Temma, você precisa de uma hospedagem web que utilize o interpretador PHP na versão 8.3 ou superior.
O Temma pode usar todos os bancos de dados suportados pela extensão PDO, além do banco de dados noSQL Redis, e do servidor de cache Memcached.
2Instalação com Composer
Se você tem o gerenciador de dependências Composer instalado no seu computador, pode usá-lo para criar um projeto baseado no Temma.
Para criar um projeto de site web:
$ composer create-project digicreon/temma-project-web meu_site |
Para criar um projeto de API:
$ composer create-project digicreon/temma-project-api minha_api |
A diferença:
- Um projeto web retorna principalmente páginas HTML, e por isso embute o mecanismo de templates Smarty.
- Uma API retorna, por padrão, fluxos JSON e gerencia sua autenticação por meio de pares de chaves pública/privada. Por isso, ela não embute o Smarty, e ativa o plugin API.
3Instalação sem Composer
Se você não tem o Composer instalado no seu computador, ou não quer usá-lo, o Temma oferece um script de instalação fácil de usar. Você pode até simplesmente clonar um repositório de código Git.
3.1Versão estável
Para criar seu projeto com base na versão estável mais recente do Temma:
$ curl -Ls https://temma.net/release | sh - |
Ou, de forma abreviada:
$ curl -Ls temma.net/r | sh - |
O script vai solicitar o nome do diretório de destino a ser criado. O nome padrão é temma_project.
Se preferir, você pode extrair o arquivo você mesmo.
A versão estável mais recente do Temma é a 2.20.0.
$ wget https://github.com/Digicreon/Temma/archive/refs/tags/2.20.0.tar.gz $ tar xzf 2.20.0.tar.gz $ mv Temma-2.20.0 meu_projeto $ chmod 777 meu_projeto/log meu_projeto/tmp
3.2Última versão das fontes
Você pode baixar as versões mais recentes das fontes do Temma. Essas fontes estão em fase de testes (por isso ainda não fazem parte de uma versão estável) e podem conter bugs.
Mais uma vez, um script de instalação é fornecido:
$ curl -Ls https://temma.net/release/latest | sh - |
Ou, de forma abreviada:
$ curl -Ls temma.net/r/l | sh - |
Mais uma vez, o script vai solicitar o nome do diretório de destino a ser criado. O nome padrão é temma_project.
Se preferir, você pode extrair o arquivo você mesmo:
$ wget https://github.com/Digicreon/Temma/archive/main.tar.gz $ tar xzf main.tar.gz $ mv Temma-main meu_projeto $ chmod 777 meu_projeto/log meu_projeto/tmp
Você pode até clonar diretamente o repositório git:
$ git clone git@github.com:Digicreon/Temma.git meu_projeto $ chmod 777 meu_projeto/log meu_projeto/tmp $ rm -rf meu_projeto/.git
3.3Instalar o Smarty
Se você usa o Temma para criar uma API sem geração de páginas HTML, não vai precisar do mecanismo de templates Smarty. Caso contrário, o Temma funciona igualmente bem com o Smarty 4 ou o Smarty 5. O Smarty 4 é compatível com PHP 7.1 a 8.4, e o Smarty 5 com PHP 7.2 a 8.5. Como o Temma exige PHP 8.3 ou superior, as duas versões do Smarty são adequadas; basta usar o Smarty 5 se você estiver rodando PHP 8.5.
Observe que a versão 5 do Smarty introduz mudanças que não são retrocompatíveis.
Observe que a versão 5.4.0 (ou superior) do Smarty é altamente recomendada. O Temma ativa a opção de auto-escape para variáveis, o que elimina a necessidade de usar o modificador escape. No entanto, versões do Smarty anteriores à 5.4.0 não oferecem o modificador raw, que permite cancelar o auto-escape sempre que necessário. Ainda assim, é possível desativar o auto-escape por padrão.
Você pode instalar o Smarty de duas maneiras diferentes: usando o Composer, ou baixando o arquivo manualmente.
Para instalar a versão estável mais recente do Smarty com o Composer, digite este comando a partir da raiz do projeto (mais informações na documentação):
$ composer require smarty/smarty |
Para instalar o Smarty manualmente, baixe o arquivo (formato ZIP ou TAR.GZ) da versão desejada. Ao descompactar o arquivo, você verá um subdiretório libs/ (Smarty 4) ou src/ (Smarty 5). Renomeie-o para smarty4 (Smarty 4) ou Smarty (Smarty 5) e depois mova-o para dentro do diretório lib/ do seu projeto.
4Configuração do servidor web
Depois que o Temma for instalado, você precisa configurar o servidor web que vai executar sua aplicação web.
Para isso, você pode usar a configuração Apache/Nginx ou arquivos .htaccess.
4.1Arquivos .htaccess
Os arquivos .htaccess são necessários em caso de hospedagem compartilhada.
Se for o seu caso, você não precisa fazer nada. Os arquivos já estão presentes (.htaccess na raiz e www/.htaccess).
4.2Servidor Apache ou Nginx
Use a configuração do Apache ou do Nginx se você tiver seu próprio servidor (dedicado, virtual ou container Docker).
Você vai encontrar configurações de exemplo (arquivos etc/apache.conf e etc/nginx.conf), que você pode modificar de acordo com suas necessidades.
Você também vai precisar excluir os arquivos .htaccess existentes:
$ cd meu_projeto
$ rm -f .htaccess www/.htaccess
5Estrutura do projeto
Aqui está o conteúdo de um projeto Temma:
meu_projeto/
bin/
cli/
controllers/
etc/
temma.php
apache.conf
lib/
Temma/
Smarty/
smarty-plugins/
log/
temma.log
templates/
tmp/
var/
vendor/
www/
index.php
- bin: Contém programas utilitários.
- cli: Contém seus scripts de linha de comando.
- controllers: Diretório principal para seus controladores.
-
etc: Diretório de configuração
- temma.php: Arquivo de configuração do projeto.
- apache.conf: Arquivo de configuração do "virtual host", no caso de um servidor Apache.
-
lib: Diretório base contendo as bibliotecas externas, mas também seus objetos de negócio.
- Temma: O código do framework (para instalações sem Composer).
- Smarty (ou smarty4): mecanismo de templates Smarty (para instalações sem Composer).
- smarty-plugins: plugins Smarty oferecidos pelo Temma.
-
log: Diretório contendo os arquivos de log.
- temma.log: Arquivo de log do projeto.
- templates: Diretório contendo os templates.
- tmp: Diretório de arquivos temporários.
- var: diretório opcional, que pode conter os arquivos de dados da sua aplicação.
- vendor: Este diretório existe se você instalou o Temma usando o Composer, ou se carregou bibliotecas externas com o Composer.
-
www: Diretório raiz do site, contendo todos os arquivos CSS, Javascript e imagens.
- index.php: Script PHP principal, que inicia o framework.