นิรุกติศาสตร์: ในภาษา Chichewa ของแอฟริกาคำว่า "Zolinga" หมายถึง "เป้าหมาย"
สารบัญ
ฉันมุ่งมั่นอย่างเต็มที่กับโครงการเดียวและส่วนประกอบเหล่านี้-การทำงาน, cron, โมดูลการแปล, การเข้าถึงฐานข้อมูล, CMS ที่ไม่ต้องฐานข้อมูลและการจัดการสิทธิ์อย่างง่าย-เป็นหน่วยการสร้างที่สำคัญที่จำเป็นสำหรับมัน หลังจากสองเดือนของความพยายามอย่างเข้มข้นและการวาดภาพจากประสบการณ์ยี่สิบปีฉันรู้สึกว่ามันเหมาะสมที่จะตอบแทนชุมชนโอเพนซอร์ซก่อนที่จะเจาะลึกเข้าไปในแง่มุมของโครงการปิด
คุณอาจสงสัยว่าทำไมไม่เลือกใช้โซลูชันที่มีอยู่? โครงการที่ฉันกำลังดำเนินการคาดว่าจะดำเนินการในอีก 10 ปีข้างหน้า 90% ของรหัสไม่มีคู่ขนานในโมดูลที่มีอยู่ ด้วยเหตุนี้จึงจำเป็นต้องมีทั้งแบบเรียบง่ายและไม่เปลี่ยนรูป เรียบง่ายเนื่องจากคุณสมบัติที่น้อยลงเท่ากับอาการปวดหัวการบำรุงรักษาน้อยลงและปัญหาการอัพเกรดน้อยลง ไม่เปลี่ยนรูปเพราะลดค่าใช้จ่ายในการบำรุงรักษาโมดูลอย่างมีนัยสำคัญ
ปัญหาเกี่ยวกับเฟรมเวิร์กยอดนิยมทั้งหมดคือความนิยมที่แท้จริงของพวกเขา พวกเขามีแนวโน้มที่จะถูกน้ำท่วมด้วยความต้องการการแข่งขันความคิดและข้อกำหนดซึ่งนำไปสู่วัฏจักรของการทำลายความเข้ากันได้ตลอดเวลาเพิ่มคุณสมบัติที่ไม่จำเป็นและการแก้ไขข้อบกพร่อง โครงการของฉันไม่ได้มีวัตถุประสงค์เพื่ออัพเกรดหรือเขียนใหม่ทุกสองปีซึ่งเป็นอายุการใช้งานเฉลี่ยของการเปิดตัวครั้งใหญ่ในกรอบความนิยมใด ๆ มันต้องทำงานเป็นเวลา 10 ปีด้วยการลงทุนน้อยที่สุด ทำงานบนแอพอย่างต่อเนื่องเพื่อติดตามรายการข้อบกพร่องคงที่จากผู้ขายอย่างกว้างขวางสำหรับคุณสมบัติที่คุณไม่ได้ใช้ไม่ใช่วิธีแก้ปัญหาที่เป็นไปได้
นั่นคือวิธีที่โครงการที่เรียบง่ายและไม่เปลี่ยนรูปแบบนี้เป็นอย่างไร
มันต้องเป็นไปตามเกณฑ์ดังต่อไปนี้:
ให้ฉันแนะนำคุณกับ Zolinga ซึ่งเป็นกรอบ PHP ที่ตรงตามเกณฑ์เหล่านี้ทั้งหมด
Zolinga เป็นกรอบ PHP ที่เรียบง่ายและมีความคิดดี ไม่จำเป็นต้องมีฐานข้อมูล (แม้ว่าโมดูลอาจ) มันสรุปสาระสำคัญของประสบการณ์การปฏิบัติที่ได้รับมานานหลายปีของการพัฒนาเว็บแอปพลิเคชัน มันมี API ที่เรียบง่าย แต่ครอบคลุมสำหรับการสร้างแอพพลิเคชั่นที่แข็งแกร่งมีประสิทธิภาพและมีเสถียรภาพ
นี่เป็นนวัตกรรมที่เพิ่มขึ้นในภูมิทัศน์ PHP Framework ดังนั้นฉันขอแนะนำให้คุณเข้าใกล้ด้วยความรู้สึกผจญภัยแม้ว่าจะมีความระมัดระวัง ดำน้ำในและค้นพบประสิทธิภาพและความแข็งแกร่งที่ Zolinga เสนอ
หากคุณเบื่อกับการแก้ปัญหาที่มากเกินไปและกว้างขวางสำหรับปัญหาง่าย ๆ และกระตือรือร้นที่จะสำรวจวิธีการใหม่ Zolinga เหมาะสำหรับคุณ ไม่ว่าคุณจะเป็นนักพัฒนา PHP ในทุกระดับ Zolinga เสนอทางเลือกที่สดชื่น
ด้วย Zolinga คุณสามารถสร้างโครงการของคุณได้อย่างง่ายดายโดยมุ่งเน้นไปที่การเข้ารหัสคุณสมบัติที่จำเป็นโดยไม่ต้องมีภาระของส่วนประกอบที่ไม่จำเป็น การออกแบบ API ที่เรียบง่ายของ Zolinga ทำให้เหมาะสำหรับผู้ที่ต้องการใช้คุณสมบัติขั้นต่ำหรือกระตือรือร้นที่จะเพิ่มส่วนประกอบที่เรียบง่ายให้กับโครงการของพวกเขา แม้จะมีวิธีการที่เรียบง่าย แต่ Zolinga เป็นแพลตฟอร์มที่ทรงพลังที่สามารถจัดการได้แม้กระทั่งโครงการที่ใหญ่ที่สุด
เริ่มต้นเล็กและง่ายและเติบโตด้วยโครงการของคุณในทิศทางของคุณเองในทุกทิศทางด้วยความยืดหยุ่นและความยืดหยุ่นที่ชาญฉลาดของ Zolinga
ในการติดตั้ง Zolinga ให้ทำตามขั้นตอนเหล่านี้:
git clone https://github.com/webdevelopers-eu/zolinga.git กำหนดค่าเว็บเซิร์ฟเวอร์ของคุณเพื่อให้บริการไดเรกทอรี public (ดูส่วน Apache Bellow เป็นตัวอย่าง) หรือคุณสามารถใช้เว็บเซิร์ฟเวอร์ PHP ในตัวได้โดยเรียกใช้สคริปต์ต่อไปนี้ ./bin/zolinga --server ภายในไดเรกทอรี Zolinga
นำทางไปยัง URL ขึ้นอยู่กับวิธีที่คุณเริ่มต้นเซิร์ฟเวอร์ หากคุณวิ่ง ./bin/zolinga --server ให้ทำตามคำแนะนำในคอนโซล หากคุณกำหนดค่าเว็บเซิร์ฟเวอร์ของคุณเพื่อให้บริการไดเรกทอรี public คุณจะรู้ว่าต้องทำอะไร คุณควรเยี่ยมชม /wiki/ url ก่อน รหัสผ่านเริ่มต้นของหน้า wiki คือ ZOLINGA (duh!?) Bundled Zolinga Wiki เป็นสถานที่ที่เหมาะสมในการเริ่มขุดลึกลงไปในกรอบ Zolinga
หากคุณต้องการทดสอบโครงการใหม่ภายใน Docker นี่คือคู่มือการติดตั้ง 2 นาที อย่างรวดเร็วเพื่อดึงอิมเมจ PHP และเรียกใช้เฟรมเวิร์ก Zolinga ภายในคอนเทนเนอร์ -
$ 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 ในเบราว์เซอร์ของคุณ
นี่คือตัวอย่างที่ Apache บน Debian สามารถกำหนดค่าให้บริการ 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 ที่อธิบายโมดูล
ตัวอย่างไฟล์ MONDULE:
{
"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 จากแหล่งกำเนิดระยะไกลวิธี outputPage ของคลาส Server ใน ExampleHelloWorld เนมสเปซจะถูกเรียก
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 เองก็มีคุณสมบัติการจัดทำเอกสารด้วยตนเองและวิกิ inbuilt วิกินี้แสดงเอกสารที่จำเป็นทั้งหมดสำหรับการติดตั้งเฉพาะของคุณรวมถึงโมดูลทั้งหมด
ข้อได้เปรียบนั้นชัดเจน: แต่ละโมดูลมีเอกสารประกอบของตัวเองซึ่งจะรวมกับวิกิระบบทั้งหมดโดยอัตโนมัติเมื่อติดตั้ง งานโมดูลและความคืบหน้าของคุณยังคงปรากฏให้คุณและคนอื่น ๆ ติดตั้งซอฟต์แวร์ของคุณเท่านั้น คุณจะไม่เห็นเอกสารสำหรับคุณสมบัติที่คุณยังไม่ได้ติดตั้งเพื่อให้แน่ใจว่าคุณมีเวอร์ชันเอกสารที่เหมาะสมตรงกับการติดตั้งของคุณ
มันเป็นสิ่งที่ท้าทายที่จะนำไปใช้ แต่ผลลัพธ์พูดด้วยตัวเอง - มันใช้งานได้ดี!
โดยค่าเริ่มต้น 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-commonszolinga-intl เมื่อคุณติดตั้งโมดูลมันจะถูกเพิ่มลงในไดเรกทอรี modules โดยอัตโนมัติและเอกสารประกอบจะถูกรวมเข้ากับเอกสาร zolinga wiki inbuilt ในการติดตั้ง Zolinga ของคุณ