Etimologia: Na língua Chichewa da África, a palavra "zolinga" significa "objetivos".
Índice
Estou totalmente comprometido com um único projeto, e esses componentes-FRameWork, Cron, Módulo de Tradução, acesso ao banco de dados, um CMS sem banco de dados e gerenciamento simples de direitos-são os blocos de construção vitais necessários para ele. Após dois meses de intenso esforço e se destacando de vinte anos de experiência, senti que era apropriado retribuir à comunidade de código aberto antes de mergulhar no aspecto de código fechado do projeto.
Você pode se perguntar por que não optar por uma solução existente? Bem, prevê -se que o projeto em que esteja trabalhando nos próximos 10 anos. 90% do código não tem paralelo nos módulos existentes. Por esse motivo, ele precisa ser minimalista e imutável. Minimalista, porque menos recursos equivale a menos dores de cabeça de manutenção e menos problemas de atualização. Imutável porque reduz significativamente o custo de manutenção de módulos.
O problema com todas as estruturas populares é sua pura popularidade. Eles tendem a ser inundados com necessidades, idéias e requisitos concorrentes, levando a um ciclo perpétuo de quebra de compatibilidade, adicionando recursos desnecessários e corrigindo bugs. Meu projeto não pretende ser atualizado ou reescrito a cada dois anos, que é a vida útil média de um grande lançamento em qualquer estrutura popular. Ele precisa correr por 10 anos com o mínimo de investimento. Trabalhar constantemente no aplicativo para acompanhar a extensa lista de bugs fixos de fornecedores, para recursos que você nem usa, não é uma solução viável.
Então, foi assim que esse projeto minimalista e maximamente imutável surgiu.
Teve que atender aos seguintes critérios:
Deixe -me apresentá -lo a Zolinga, uma estrutura PHP que atende a todos esses critérios.
Zolinga é uma estrutura PHP minimalista e bem pensada. Não requer um banco de dados (embora os módulos possam). Ele encapsula a essência destilada da experiência prática obtida ao longo de anos de desenvolvimento de aplicativos da Web. Oferece uma API simples, mas abrangente, para criar aplicativos robustos, eficientes e estáveis.
Esta é uma adição inovadora ao cenário da estrutura do PHP, por isso encorajo você a abordá -lo com um senso de aventura, embora com cautela. Mergulhe e descubra a eficiência e a robustez simplificadas que Zolinga oferece.
Se você está cansado de soluções supercomplicadas e extensas para problemas simples e está ansioso para explorar novas abordagens, Zolinga é para você. Seja você um desenvolvedor de PHP em qualquer nível, o Zolinga oferece uma alternativa refrescante.
Com o Zolinga, você pode criar seu projeto com facilidade, concentrando -se na codificação de recursos essenciais sem o ônus dos componentes desnecessários. O design da API minimalista de Zolinga o torna perfeito para quem prefere usar recursos mínimos ou está ansioso para adicionar componentes minimalistas a seus projetos. Apesar de sua abordagem minimalista, a Zolinga é uma plataforma poderosa capaz de lidar até os maiores projetos, oferecendo potencial de crescimento indefinido.
Comece pequeno e fácil e cresça com seu projeto no seu próprio ritmo em qualquer direção, graças à flexibilidade e escalabilidade inteligentes de Zolinga.
Para instalar o Zolinga, siga estas etapas:
git clone https://github.com/webdevelopers-eu/zolinga.git Configure seu servidor da Web para servir o diretório public (consulte a seção Apache abaixo como exemplo). Como alternativa, você pode usar o servidor Web PHP embutido executando o seguinte script ./bin/zolinga --server dentro do diretório Zolinga.
Navegue até a URL, dependendo de como você iniciou o servidor. Se você executou ./bin/zolinga --server , siga as instruções no console. Se você configurou seu servidor da web para servir o diretório public , sabe o que fazer. Você deve primeiro visitar o /wiki/ url. A senha padrão da página wiki é ZOLINGA (duh!?). O Zolinga Wiki agrupado é o lugar certo para começar a se aprofundar na estrutura de Zolinga.
Se você preferir testar um novo projeto dentro do Docker, aqui está um rápido guia de instalação de 2 minutos para puxar a imagem PHP e executar a estrutura Zolinga dentro de um contêiner. ?
$ docker pull php
$ docker run -p 8888:8888 -it --name my_php_container php /bin/bash
dock:$ apt update && apt install -y git
dock:$ git clone https://github.com/webdevelopers-eu/zolinga.git /tmp/zolinga
dock:$ /tmp/zolinga/bin/zolinga --serverEm seguida, visite http: // localhost: 8888 no seu navegador.
Este é um exemplo de como o Apache no Debian pode ser configurado para servir Zolinga.
# Checkout the repository into /var/www folder
$ git clone https://github.com/webdevelopers-eu/zolinga.git /var/www/zolinga.localhost
# Set the correct permission - www-data user is the common user for Apache
$ chown -R www-data.www-data /var/www/zolinga.localhost
# Generate example Apache configuration file and put it into /etc/apache2/sites-available
$ /var/www/zolinga.localhost/bin/zolinga skeleton:apache --serverName=zolinga.local --ip=127.0.0.1 > /etc/apache2/sites-available/010-zolinga.conf
# Enable the newly created configuration file
$ a2ensite 010-zolinga.conf
# Restart Apache
$ systemctl restart apache2Em seguida, visite http: //zolinga.localhost no seu navegador.
É claro que presume que o PHP já está instalado no seu sistema. Caso contrário, você pode instalá -lo executando os seguintes comandos:
apt install libapache2-mod-php8.2
a2enmod php8.2 Um módulo é um diretório que contém um arquivo zolinga.json , que descreve a funcionalidade do módulo no sistema. Este arquivo especifica as regras do script automaticamente e os eventos para os quais o módulo ouve. A seção Manifesto do ouvinte permite definir os manipuladores de eventos que respondem a vários eventos do sistema, resultando no processamento de vários tipos de solicitações, como HTTP, AJAX e Linha de comando. Eventos especiais também podem instanciar seu manipulador de eventos como um serviço de sistema a ser acessado diretamente por outro código através da sintaxe $api->{serviceName} para velocidade e versatilidade máxima.
Cada módulo contém um arquivo zolinga.json que descreve o módulo.
Exemplo de arquivo de manifesto do módulo:
{
"name" : " Hello World " ,
"description" : " A simple Hello World module. " ,
"version" : " 1.0.0 " ,
"authors" : [ " John Doe <[email protected]> " ],
"listen" : [
{
"event" : " system:content " ,
"class" : " \ Example \ HelloWorld \ Server " ,
"method" : " outputPage " ,
"priority" : 0.8 ,
"origin" : [ " remote " ]
}
],
"autoload" : {
"Example \ HelloWorld \ " : " src/ "
},
"config" : {
"helloWorld" : {
"myGreeting" : " Hello World! ?? "
}
}
} Sim, como você imaginaria, se você despachar um system:content de uma origem remota, o método outputPage da classe Server no ExampleHelloWorld namespace será chamado.
use Zolinga System Events Event ;
( new Event ( ' system:content ' , Event:: ORIGIN_REMOTE ))-> dispatch ();Isso é tudo o que há para isso. Exceto por alguns açúcares de sintaxe opcionais para facilitar o manifesto do módulo, você não precisa saber nada mais do que o que está neste exemplo. Você é praticamente o especialista em Zolinga agora!
Para instalar o novo módulo, execute o seguinte comando:
./bin/zolinga install --module={ID}Exemplo:
./bin/zolinga install --module=zolinga-cmsPara listar todos os módulos disponíveis, execute o seguinte comando:
./bin/zolinga install --listZolinga é um sistema altamente extensível com vários módulos, alguns dos quais podem ser proprietários junto com sua documentação. Isso significa que não há documentação on -line abrangente e única disponível. No entanto, ao contrário de outros sistemas, o próprio Zolinga possui extensos recursos de autocumentação e um wiki embutido. Este wiki exibe toda a documentação necessária para sua instalação específica, incluindo todos os módulos.
A vantagem é clara: cada módulo carrega sua própria documentação, que se funde automaticamente com o wiki do sistema de todos os sistemas após a instalação. Seu trabalho, módulos e progresso permanecem visíveis apenas para você e outros com seu software instalado. Você nunca verá a documentação para os recursos que não instalou, garantindo que sempre tenha a versão de documentação correta que corresponde à sua instalação.
Foi um desafio implementar, mas os resultados falam por si mesmos - funciona muito bem!
Por padrão, o wiki está disponível no URL / wiki / na instalação inicial. Você pode alterar o caminho da URL e a senha no arquivo de configuração.
Aproveitar! ?
Você pode querer verificar também outros módulos. Basta adicioná -los a Zolinga correndo
./bin/zolinga install --module=ID[,ID,...]Por exemplo
./bin/zolinga install --list
./bin/zolinga install --module=zolinga-cron,zolinga-db,zolinga-rms,zolinga-intl,zolinga-cmszolinga-cmszolinga-cronzolinga-dbzolinga-rmszolinga-commonszolinga-intl Ao instalar um módulo, ele será adicionado automaticamente ao diretório modules e sua documentação será mesclada na documentação do Wiki da Zolinga, diretora na sua instalação de Zolinga.