Symlex ตั้งเป้าหมายที่จะทำให้การพัฒนาเว็บ Agile ง่ายขึ้นโดยการจัดหาระบบการทำงานที่ส่งเสริมแนวปฏิบัติที่ดีที่สุดโดยตัวอย่าง:
นับตั้งแต่เปิดตัวครั้งแรกในปี 2014 ได้พิสูจน์แล้วว่าเหมาะสมสำหรับการสร้างไมโครเซิร์ต Microservices, CLI และแอปพลิเคชันหน้าเดียวอย่างรวดเร็ว มันมาพร้อมกับตัวอย่างการทำงานจากการทดสอบไปจนถึงแบบฟอร์มและฐานข้อมูลที่เป็นนามธรรม เพียงแค่ลบสิ่งที่คุณไม่ต้องการ
เคอร์เนลมีขนาดเล็กและสร้างคอนเทนเนอร์บริการสำหรับ bootstrapping แอปพลิเคชันของคุณภายในบริบท การใช้คอนเทนเนอร์เดียวสำหรับการกำหนดค่าและการฉีดพึ่งพาช่วยลดความซับซ้อนและนำไปสู่ประสิทธิภาพที่ดีขึ้นเมื่อเทียบกับเฟรมเวิร์กอื่น ๆ นอกจากนี้ยังป้องกันไม่ให้นักพัฒนาไม่สามารถติดตั้งชุดรวมโดยไม่เข้าใจพวกเขา ผลที่ได้คือการขยายตัวน้อยกว่าและง่ายขึ้นรหัสที่สามารถบำรุงรักษาได้และทดสอบได้ซึ่งเป็นพื้นฐานสำหรับการพัฒนาแบบคล่องแคล่ว
มีการใช้คลาสธรรมดาทุกที่ที่เป็นไปได้เพื่อหลีกเลี่ยงการล็อคผู้ขายและเปิดใช้งานการใช้รหัสอิสระเฟรมเวิร์ก ดูการแลกเปลี่ยน
คุณสามารถรวมแบ็กเอนด์ที่ใช้ PHP เข้ากับไลบรารี JavaScript หรือ REST ไคลเอนต์ใด ๆ แผ่นหม้อไอน้ำส่วนหน้าอยู่ที่นั่นเพื่อความสะดวกของคุณและทำให้คุณสามารถติดตามการสร้างแอปพลิเคชันหน้าเดียวที่น่าประทับใจด้วย Webpack และ Vuetify ดู demo.symlex.org ตัวอย่างการทำงานสำหรับแอปพลิเคชันบรรทัดคำสั่งรวมอยู่ด้วยเช่นกัน
เอกสารกรอบการทำงานที่สมบูรณ์ของเราสามารถพบได้ใน docs.symlex.org Tuzi Liu ยังคงแปลภาษาจีนให้เรา
หมายเหตุ: https://github.com/symlex/symlex-core มีเคอร์เนลและเราเตอร์เป็นส่วนประกอบที่นำกลับมาใช้ใหม่ได้
ก่อนที่คุณจะเริ่มตรวจสอบให้แน่ใจว่าคุณติดตั้ง PHP 7.3+, นักแต่งเพลงและนักเทียบท่าที่ติดตั้งในระบบของคุณ (HOWTO สำหรับ Mac OS X) เรียกใช้ get-composer.sh เพื่อติดตั้ง composer ท้องถิ่นบน Linux แทนที่จะใช้ Docker คุณสามารถตั้งค่าสภาพแวดล้อมรันไทม์ของคุณเองตาม DockerFile ที่มีอยู่ นอกจากนี้คุณจะต้องมีฐานข้อมูลบวก NodeJS และ NPM เพื่อสร้างส่วนหน้า
ขั้นตอนที่ 1: Run composer เพื่อสร้างโครงการ Symlex ใหม่:
composer create-project symlex/symlex myapp
นักแต่งเพลงจะขอค่าการกำหนดค่าเพื่อสร้าง app/config/parameters.yml สำหรับคุณ
ตรวจสอบให้แน่ใจว่า storage/cache สามารถเขียนได้เพื่อให้สามารถสร้างไฟล์แคชได้โดยแอป
ขั้นตอนที่ 2: เริ่ม Roadrunner และ Mariadb โดยใช้ docker-compose :
cd myapp
docker-compose up
หมายเหตุ: การกำหนดค่านี้มีไว้เพื่อการทดสอบและการพัฒนาเท่านั้นดูความคิดเห็นใน Docker-compose.yml สำหรับรายละเอียด คุณอาจต้องปรับแต่งถ้าคุณเรียกใช้ Docker กับผู้ใช้รายอื่นด้วยเหตุผลด้านความปลอดภัย ใน OS X การเปิดตัว Docker ปัจจุบันช้ามากในการดำเนินการ PHP จากระบบไฟล์ของโฮสต์ docker-compose up -d เรียกใช้ Docker ในพื้นหลัง แต่คุณจะไม่เห็นข้อความบันทึกที่เป็นประโยชน์ในกรณีนี้
ขั้นตอนที่ 3: ให้เริ่มต้นฐานข้อมูลและสร้างส่วนประกอบส่วนหน้าให้คุณ:
make terminal
make all database
เพื่อตรวจสอบว่าทุกอย่างใช้งานได้ให้ทำการ make test
หมายเหตุ: คุณสามารถใช้วิธีนี้เพื่อดำเนินการคำสั่ง CLI อื่น ๆ ในภายหลัง Make ควรติดตั้งไว้ล่วงหน้าในสภาพแวดล้อมการพัฒนา UNIX ทั่วไป-มิฉะนั้นคุณอาจต้องได้รับก่อนเช่นการติดตั้งเครื่องมือบรรทัดคำสั่ง XCode บน OS X ผ่าน xcode-select --install หรือโดยการเพิ่มแพ็คเกจ build-base หรือ build-essential บน Linux Makefile มีรายการเป้าหมายทั้งหมด
หลังจากการติดตั้งที่ประสบความสำเร็จให้เปิดเว็บไซต์ที่ http: // localhost: 8081/และเข้าสู่ระบบเป็น [email protected] โดยใช้รหัสผ่าน passwd
ไฟล์ YAML ที่อยู่ใน app/config กำหนดค่าแอปตามพารามิเตอร์และบริการ ไฟล์กำหนดค่าหลักคือ app/config/web.yml และ app/config/console.yml
หากคุณเพิ่ม localhost-debug ใน /etc/hosts ของคุณและเข้าถึงเว็บไซต์ด้วยสิ่งนั้นจะโหลดในโหมดดีบัก (คุณจะเห็นการติดตามสแต็กและข้อมูลการดีบักอื่น ๆ ในหน้าข้อผิดพลาด)
อินเทอร์เฟซผู้ใช้ Mailhog มีอยู่ที่ http: // localhost: 8025/ สามารถใช้เพื่อรับและดูอีเมลที่ส่งโดยอัตโนมัติโดยระบบเช่นเมื่อผู้ใช้ใหม่ถูกสร้างขึ้น
หากคุณต้องการสร้างแอพที่มีน้ำหนักเบามากขึ้นลองดูตัวอย่างอื่น ๆ ของเรา:
เอกสารฉบับเต็ม: https://docs.symlex.org/en/latest/framework/
Symlex ตอนนี้รวมถึง Roadrunner - แอปพลิเคชัน PHP ที่มีประสิทธิภาพสูง - เป็นทางเลือกแทน Nginx มันจะถูกดาวน์โหลดโดยอัตโนมัติเมื่อคุณสร้างอิมเมจนักเทียบท่า
คำแนะนำการติดตั้งของเราสำหรับ Symlex> = 4.4.0 จะไม่ทำงานสำหรับรุ่นก่อนหน้าเนื่องจากพวกเขายังคงใช้ Nginx และ PHP-FPM แทนที่จะเป็น web และ php ตอนนี้มีบริการ app เดียวที่ขับเคลื่อนโดย Roadrunner หากคุณต้องการ NGINX คุณสามารถใช้รุ่นเก่าหรือคัดลอกการกำหนดค่าก่อนหน้าไปยังรุ่นใหม่ แอพตัวอย่างบางส่วนของเราใช้ Nginx เช่นกัน
Symlex ได้รับการดูแลโดย Michael Mayer และตั้งเป้าหมายที่จะทำให้การพัฒนาเว็บ Agile ง่ายขึ้นโดยการจัดหาระบบการทำงานที่ส่งเสริมแนวปฏิบัติที่ดีที่สุดโดยตัวอย่าง ไมเคิลเปิดตัวเฟรมเวิร์ก PHP ครั้งแรกของเขาในปี 2544 และได้ทำงานร่วมกับผู้ขายที่สำคัญต่าง ๆ ในอดีต การสร้างสิ่งนี้จะเป็นไปไม่ได้หากไม่มีการทำงานก่อนหน้านี้โดยนักพัฒนาอื่น ๆ ขอบคุณผู้ที่มีส่วนร่วม!
ทางเลือกคือศัตรูของผลผลิต ใส่วิธีอื่นหากโซลูชันของคุณทำทุกอย่างและไม่มีความคิดเห็นเกี่ยวกับสิ่งใดเลยมันจะไม่สามารถแก้ไขได้ - Asim Aslam
อย่าลังเลที่จะส่งอีเมลไปที่ [email protected] หากคุณมีคำถามใด ๆ ต้องการการสนับสนุนเชิงพาณิชย์หรือเพียงแค่ต้องการทักทาย เรายินดีต้อนรับการมีส่วนร่วมทุกชนิด หากคุณมีข้อผิดพลาดหรือความคิดให้อ่านคำแนะนำของเราก่อนที่จะเปิดปัญหา
เห็นได้ชัดว่าประสิทธิภาพของเฟรมเวิร์ก PHP ส่วนใหญ่ขึ้นอยู่กับบรรทัดของรหัสที่ต้องดำเนินการสำหรับแต่ละคำขอ ในขณะที่ Symlex ได้รับการออกแบบให้เรียบง่ายและผอม แต่ประสิทธิภาพที่ดีเป็นผลพลอยได้ที่สำคัญมากของวิธีการนี้
รหัสที่ดีที่สุดคือไม่มีรหัส ในกรณีที่ไม่มีรหัสไม่มีข้อบกพร่อง ไม่มี API ที่จะเรียนรู้ ไม่มี UI ที่น่าอึดอัดใจ refactors ที่ดีที่สุดคือการลบ - เอริคเอลเลียต
ตามที่เผยแพร่โดย phpbenchmarks.com คำขอ REST นั้นเร็วกว่า 40% เมื่อเทียบกับเฟรมเวิร์กทั่วไปอื่น ๆ :
โปรดทราบว่าเวลาตอบสนองเหล่านี้ถูกวัดในโหมดการผลิตที่เหมาะสมที่สุดบนฮาร์ดแวร์เซิร์ฟเวอร์ที่รวดเร็วโดยมีคำขอพร้อมกันเพียง 5 คำขอ ในทางปฏิบัติความแตกต่างอาจมีขนาดใหญ่กว่าในแง่ของเวลาสัมบูรณ์ การใช้หน่วยความจำควรได้รับการพิจารณาเช่นกัน:
ทำไมคุณควรดูแล? ก่อนอื่นผู้ใช้ของคุณจะรักมัน ตามกฎของหัวแม่มือ 100 ms เป็นเรื่องเกี่ยวกับขีด จำกัด สำหรับการให้พวกเขารู้สึกว่าระบบกำลังทำปฏิกิริยาทันทีซึ่งหมายความว่าไม่จำเป็นต้องมีการตอบรับพิเศษยกเว้นเพื่อแสดงผลลัพธ์ เวลาตอบสนองทั้งหมดยังรวมถึงเครือข่าย (~ 25 ms), เบราว์เซอร์และค่าใช้จ่ายอื่น ๆ ซึ่งเหลือเพียงส่วนเล็ก ๆ ของ 100 ms สำหรับการใช้ตรรกะทางธุรกิจจริง ประการที่สองคุณจะประหยัดเงินจำนวนมากสำหรับโครงสร้างพื้นฐานเซิร์ฟเวอร์และนักพัฒนามีประสิทธิภาพมากขึ้นเนื่องจากการทดสอบทำงานเร็วขึ้น
Symlex เริ่มต้นขึ้นในปี 2014 ในฐานะ Simple Silex Boilerplate เนื่องจาก Silex เองไม่ได้มาพร้อมกับ "Edition Standard Edition" ซึ่งชี้ให้คุณเห็นในทิศทางที่ถูกต้อง การใช้ Silex แทน symfony ได้รับการแนะนำโดย sensiolabs (ผู้สร้างเฟรมเวิร์กทั้งสอง) เป็นทางเลือกที่มีน้ำหนักเบาสำหรับ Symfony + Fosrestbundle สำหรับการสร้างบริการพักผ่อนประสิทธิภาพสูงและเว็บแอปพลิเคชันหน้าเดียว
ในไม่ช้าก็สังเกตเห็นว่าสิว - ภาชนะบริการที่มาพร้อมกับ Silex - รู้สึกยุ่งยากสำหรับนักพัฒนาที่มาจาก Symfony และทำให้ยากที่จะนำรหัสที่มีอยู่กลับมาใช้ใหม่ นอกจากนี้ตัวอย่างรหัส Silex จำนวนมากและแม้กระทั่งแอปพลิเคชันในโลกแห่งความเป็นจริงเข้าถึงคอนเทนเนอร์บริการจากทุกส่วนของรหัส (ไม่เพียง แต่เฟรมเวิร์กเท่านั้น) ซึ่งหลีกเลี่ยงการผกผันของการควบคุมและนำไปสู่ความสามารถในการทดสอบที่น่าอึดอัดใจ Symlex จึงส่งเสริมการใช้การฉีดพึ่งพาอย่างเข้มงวดและรวมความสะดวกสบายของภาชนะบริการเต็มรูปแบบด้วยความเร็วของการทำงานขนาดเล็ก
วันนี้ Symlex มีองค์ประกอบการกำหนดเส้นทางของตัวเอง (ขึ้นอยู่กับ Symfony 4) และไม่ใช้ Silex อีกต่อไป เฟรมเวิร์กได้รับการพิสูจน์แล้วว่ามีประโยชน์สำหรับแอปพลิเคชันที่แตกต่างกันจำนวนมาก บางคนมีพื้นฐานมาจากเคอร์เนล symfony ปกติก่อนและทำการเปลี่ยนแปลงเพราะพวกเขาจมน้ำในความซับซ้อนและได้รับความทุกข์ทรมานจากเวลาตอบสนองที่ดีกว่า 30 วินาทีในโหมดการพัฒนา Symlex นำพวกเขากลับมาติดตามโดยไม่มีการเปลี่ยนแปลงครั้งใหญ่ในฐานรหัสที่มีอยู่
Symlex เป็นโครงการที่ไม่แสวงหาผลกำไรดำเนินการโดยอาสาสมัครทั้งหมด คุณยินดีเป็นอย่างยิ่งที่จะสนับสนุนเราผ่านผู้สนับสนุน GitHub โดยเฉพาะอย่างยิ่งหากคุณต้องการความช่วยเหลือในการใช้ซอฟต์แวร์ของเรา พวกเขาจะจับคู่การบริจาคทุกครั้งในปีแรก
กรุณาทิ้งดาวไว้ถ้าคุณชอบโครงการนี้มันจะให้แรงจูงใจเพิ่มเติมเพื่อดำเนินต่อไป ขอบคุณมาก! <3