어원 : 아프리카의 치카와 언어에서 "Zolinga"라는 단어는 "목표"를 의미합니다.
목차
저는 단일 프로젝트에 전적으로 최선을 다하고 있으며 이러한 구성 요소 (프레임 워크, CRON, 번역 모듈, 데이터베이스 액세스, 데이터베이스없는 CMS 및 간단한 권리 관리)가 필요한 중요한 빌딩 블록입니다. 2 개월간의 강렬한 노력과 20 년의 경험을 얻은 후, 나는 프로젝트의 폐쇄 소스 측면을 탐구하기 전에 오픈 소스 커뮤니티에 환원하는 것이 적합하다고 느꼈습니다.
기존 솔루션을 선택하지 않는 이유가 궁금하십니까? 글쎄, 내가 작업하고있는 프로젝트는 향후 10 년 동안 운영 될 것으로 예상됩니다. 코드의 90%가 기존 모듈에서 평행하지 않습니다. 이런 이유로, 그것은 미니멀하고 불변이어야합니다. 적은 수의 기능이 유지 보수 두통이 적고 업그레이드 문제가 적기 때문에 최소화됩니다. 모듈 유지 비용을 크게 줄이기 때문에 불변.
모든 인기있는 프레임 워크의 문제점은 그들의 인기입니다. 그들은 경쟁 요구, 아이디어 및 요구 사항에 침수되어 호환성을 깨고 불필요한 기능을 추가하며 버그를 고정하는 영구적 인주기를 초래하는 경향이 있습니다. 내 프로젝트는 2 년마다 업그레이드되거나 다시 작성되는 것이 아니며, 이는 대중적인 프레임 워크에서 주요 릴리스의 평균 수명입니다. 최소한의 투자로 10 년 동안 노력해야합니다. 앱에서 끊임없이 작업하여 공급 업체의 고정 버그 목록을 따라 사용하지 않으면 사용하지 않는 기능에 대해서는 실행 가능한 솔루션이 아닙니다.
이것이 바로이 미니멀하고 최대적으로 불변의 프로젝트가 된 방식입니다.
다음 기준을 충족해야했습니다.
이러한 모든 기준을 충족하는 PHP 프레임 워크 인 Zolinga를 소개하겠습니다.
Zolinga는 미니멀하고 잘 고려한 PHP 프레임 워크입니다. 데이터베이스가 필요하지 않습니다 (모듈은 가능하지만). 그것은 웹 애플리케이션을 개발하는 수년에 걸쳐 얻은 실질적인 경험의 증류 된 본질을 캡슐화합니다. 강력하고 효율적이며 안정적인 응용 프로그램을 구축하기위한 간단하면서도 포괄적 인 API를 제공합니다.
이것은 PHP 프레임 워크 환경에 혁신적인 추가 사항이므로 조심 스럽지만 모험 감으로 접근하는 것이 좋습니다. Zolinga가 제공하는 간소화 된 효율성과 견고성을 발견하십시오.
간단한 문제에 대한 과도하게 복잡하고 광범위한 솔루션에 지쳤고 새로운 접근법을 탐구하고 싶어한다면 Zolinga는 당신을위한 것입니다. Zolinga는 모든 수준의 PHP 개발자이든 상쾌한 대안을 제공합니다.
Zolinga를 사용하면 불필요한 구성 요소의 부담없이 필수 기능을 코딩하는 데 중점을 두어 프로젝트를 쉽게 만들 수 있습니다. Zolinga의 미니멀리스트 API 디자인은 최소한의 기능을 선호하거나 프로젝트에 최소 구성 요소를 추가하기를 간절히 원합니다. 미니멀리스트 접근 방식에도 불구하고 Zolinga는 가장 큰 프로젝트조차 처리 할 수있는 강력한 플랫폼으로 무기한 성장 잠재력을 제공합니다.
Zolinga의 현명한 유연성과 확장 성 덕분에 작고 쉽게 시작하고 자신의 속도로 어떤 방향 으로든 성장하십시오.
Zolinga를 설치하려면 다음 단계를 따르십시오.
git clone https://github.com/webdevelopers-eu/zolinga.git 웹 서버가 public 디렉토리에 서비스하도록 구성하십시오 (예시 Apache Bellow 섹션 참조). 또는 Zolinga 디렉토리 내부의 다음 스크립트 ./bin/zolinga --server 실행하여 내장 PHP 웹 서버를 사용할 수 있습니다.
서버 시작 방법에 따라 URL로 이동하십시오. 당신이 ./bin/zolinga --server 콘솔의 지침을 따르십시오. public 디렉토리에 서비스를 제공하도록 웹 서버를 구성한 경우 어떻게 해야하는지 알 수 있습니다. 먼저 /wiki/ url을 방문해야합니다. 위키 페이지 기본 비밀번호는 ZOLINGA (duh!?)입니다. 번들 Zolinga Wiki는 Zolinga 프레임 워크에 더 깊이 파고 들기 시작하기에 적합한 장소입니다.
Docker 내부에서 새로운 프로젝트를 테스트하는 것을 선호하는 경우 PHP 이미지를 끌어 내고 컨테이너 내부에서 Zolinga 프레임 워크를 실행하는 빠른 2 분 설치 안내서가 있습니다. ?
$ 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 --server그런 다음 브라우저에서 http : // localhost : 8888을 방문하십시오.
이것은 Debian의 Apache가 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 apache2그런 다음 브라우저에서 http : //zolinga.localhost를 방문하십시오.
물론 PHP는 이미 시스템에 설치되어 있다고 가정합니다. 그렇지 않은 경우 다음 명령을 실행하여 설치할 수 있습니다.
apt install libapache2-mod-php8.2
a2enmod php8.2 모듈은 zolinga.json 파일이 포함 된 디렉토리로, 시스템에 대한 모듈의 기능을 설명합니다. 이 파일은 스크립트 자동로드 규칙과 모듈이 듣는 이벤트를 지정합니다. 리스너 매니페스트 섹션을 사용하면 다양한 시스템 이벤트에 응답하는 이벤트 핸들러를 정의하여 HTTP, AJAX 및 명령 줄과 같은 다양한 유형의 요청을 처리 할 수 있습니다. 특별 이벤트는 또한 최대 속도와 다양성을 위해 $api->{serviceName} 구문을 통해 다른 코드에 의해 직접 액세스 할 수 있도록 이벤트 핸들러를 시스템 서비스로 인스턴스화 할 수 있습니다.
각 모듈에는 모듈을 설명하는 zolinga.json 파일이 포함되어 있습니다.
모듈 매니페스트 파일 예 :
{
"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! ?? "
}
}
} 예, 당신이 추측 할 수 있듯이, 이벤트 system:content 발송하면 ExampleHelloWorld 네임 스페이스에서 Server 클래스의 outputPage 메소드가 호출됩니다.
use Zolinga System Events Event ;
( new Event ( ' system:content ' , Event:: ORIGIN_REMOTE ))-> dispatch ();이것이 전부입니다. 모듈을 쉽게 작성하고 읽을 수 있도록 몇 가지 선택적인 구문 설탕을 제외 하고이 예제보다 더 많은 것을 알 필요는 없습니다. 당신은 실제로 Zolinga 전문가입니다!
새 모듈을 설치하려면 다음 명령을 실행합니다.
./bin/zolinga install --module={ID}예:
./bin/zolinga install --module=zolinga-cms사용 가능한 모든 모듈을 나열하려면 다음 명령을 실행합니다.
./bin/zolinga install --listZolinga는 다양한 모듈을 갖춘 매우 확장 가능한 시스템으로, 그 중 일부는 문서와 함께 독점적 일 수 있습니다. 이는 단일의 포괄적 인 온라인 문서가 없음을 의미합니다. 그러나 다른 시스템과 달리 Zolinga 자체는 광범위한 자체 문서화 기능과 내장 된 위키를 자랑합니다. 이 Wiki는 모든 모듈을 포함하여 특정 설치에 필요한 모든 문서를 표시합니다.
장점은 분명합니다. 각 모듈은 자체 문서를 전달하여 설치시 All-System Wiki와 자동으로 병합됩니다. 귀하의 작업, 모듈 및 진행 상황은 소프트웨어를 설치 한 상태에서 귀하와 다른 사람에게만 눈에 띄게 표시됩니다. 설치하지 않은 기능에 대한 문서를 볼 수 없으므로 항상 설치와 일치하는 올바른 문서 버전이 있는지 확인합니다.
구현하기가 어려웠지만 결과는 스스로 말합니다. 훌륭하게 작동합니다!
기본적으로 Wiki는 URL / Wiki /에서 초기 설치시 제공됩니다. 구성 파일에서 URL 경로와 비밀번호를 모두 변경할 수 있습니다.
즐기다! ?
다른 모듈도 확인하고 싶을 수도 있습니다. 달리면 Zolinga에 추가하십시오
./bin/zolinga install --module=ID[,ID,...]예를 들어
./bin/zolinga install --list
./bin/zolinga install --module=zolinga-cron,zolinga-db,zolinga-rms,zolinga-intl,zolinga-cmszolinga-cmszolinga-cronzolinga-dbzolinga-rmszolinga-commons 들어 있습니다.zolinga-intl 모듈을 설치하면 modules 디렉토리에 자동으로 추가되며 해당 문서는 Zolinga 설치에서 바로 Zolinga Wiki 문서로 병합됩니다.