يهدف Symlex إلى تبسيط تطوير الويب Agile من خلال توفير نظام عمل يعزز أفضل الممارسات بالقدوة:
منذ إصداره الأولي في عام 2014 ، أثبت أنه مناسب تمامًا لبناء الخدمات المجهرية و CLI وتطبيقات صفحة واحدة. يأتي كاملة مع أمثلة العمل من الاختبار إلى النماذج وتجريد قاعدة البيانات. ببساطة حذف ما لا تحتاجه.
إن kernel صغير ويقوم فقط بإنشاء حاوية خدمة لتطبيق تطبيقك في سياقها. إن استخدام حاوية واحدة للتكوين وحقن التبعية يقلل من التعقيد ويؤدي إلى تحسين الأداء مقارنة بالأطر الأخرى. كما أنه يمنع المطورين من تثبيت حزم دون تفكير دون فهمها. والنتيجة هي أقل ارتفاعات وأبسط وأكثر قابلية للصيانة وقابلة للاختبار والتي تعتبر أساسية للتنمية الرشيقة.
يتم استخدام الفصول العادية حيثما أمكن ذلك لتجنب قفل البائع وتمكين إعادة استخدام الكود المستقل. انظر المقايضة.
يمكنك الجمع بين الواجهة الخلفية المستندة إلى PHP مع أي مكتبة JavaScript أو عميل REST. يوجد في نهاية الواجهة الأمامية لراحتك ويضعك مباشرة على المسار الصحيح لبناء تطبيقات رائعة من صفحة واحدة مع WebPack و Vuetify ، انظر Demo.symlex.org. يتم تضمين مثال عمل لتطبيقات سطر الأوامر أيضًا.
يمكن العثور على وثائق الإطار الكاملة لدينا على docs.symlex.org. توزي ليو يحافظ على ترجمة صينية بالنسبة لنا.
ملاحظة: https://github.com/symlex/symlex-core يحتوي على kernel وأجهزة التوجيه كمكونات قابلة لإعادة الاستخدام.
قبل أن تبدأ ، تأكد من أن لديك PHP 7.3+ ، Composer و Docker مثبتة على نظامك (Howto لنظام التشغيل Mac OS X). قم بتشغيل get-composer.sh لتثبيت composer محليًا على Linux. بدلاً من استخدام Docker ، يمكنك إعداد بيئة وقت التشغيل الخاصة بك استنادًا إلى DockerFile الحالية. بالإضافة إلى ذلك ، ستحتاج إلى قاعدة بيانات بالإضافة إلى Nodejs و NPM لبناء الواجهة الأمامية.
الخطوة 1: تشغيل 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-corm.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. سيتم تنزيله تلقائيًا عند إنشاء صورة Docker.
لن تعمل تعليمات التثبيت الخاصة بنا لـ Symlex> = 4.4.0 للإصدارات السابقة لأنها لا تزال تستخدم Nginx و PHP-FPM. بدلاً من web و php ، هناك الآن خدمة app واحدة مدعومة من RoadRunner. إذا كنت تفضل NGINX ، فيمكنك استخدام إصدار أقدم أو نسخ التكوين السابق إلى الإصدار الجديد. تستخدم بعض تطبيقات الأمثلة NGINX أيضًا.
يتم الحفاظ على Symlex بواسطة Michael Mayer ويهدف إلى تبسيط تطوير الويب Agile من خلال توفير نظام عمل يعزز أفضل الممارسات بالقدوة. أصدر مايكل أول إطار له في PHP في عام 2001 وعمل مع مختلف بائعي الإطار الرئيسيين في الماضي. بناء هذا لم يكن ممكنا دون الكثير من العمل السابق من قبل المطورين الآخرين. شكرا لكم وكل من ساهم!
الاختيار هو عدو الإنتاجية. بعبارة أخرى ، إذا كان الحل الخاص بك يفعل كل شيء ، وليس لديه آراء حول أي شيء ، فإنه لا يحل شيئًا. - أسم أسلم
لا تتردد في إرسال بريد إلكتروني إلى [email protected] إذا كان لديك أي أسئلة ، أو تحتاج إلى دعم تجاري أو تريد فقط أن تقول مرحبًا. نرحب بالمساهمات من أي نوع. إذا كان لديك خطأ أو فكرة ، فاقرأ دليلنا قبل فتح مشكلة.
من الواضح أن أداء PHP Framework يعتمد بشكل أساسي على خطوط التعليمات البرمجية التي يجب تنفيذها لكل طلب. على الرغم من أن Symlex تم تصميمه ليكون بسيطًا ومتعهدًا ، إلا أن الأداء الجيد هو منتج ثانوي مهم للغاية لهذا النهج.
أفضل رمز هو لا رمز. حيث لا يوجد رمز ، لا توجد أخطاء. لا API للتعلم. لا واجهة مستخدم محرجة. أفضل عمليات إعادة التهيئة هي الحذف. - إريك إيليوت
كما نشرته موقع phpbenchmarks.com ، تكون طلبات REST أسرع أكثر من 40 ٪ مقارنة بأطر PHP الشائعة الأخرى:
لاحظ أنه تم قياس أوقات الاستجابة هذه في وضع الإنتاج المحسن بالكامل على أجهزة الخادم السريع مع 5 طلبات متزامنة فقط. في الممارسة العملية ، قد تكون الاختلافات أكبر بكثير من حيث الوقت المطلق. يجب النظر في استهلاك الذاكرة أيضًا:
لماذا يجب أن تهتم؟ أولاً ، سيحب المستخدمون ذلك. كقاعدة عامة ، فإن 100 مللي ثانية حول الحد الأقصى لجعلهم يشعرون أن النظام يتفاعل على الفور ، مما يعني أنه لا توجد تعليقات خاصة ضرورية باستثناء عرض النتيجة. يشمل إجمالي وقت الاستجابة الشبكة (~ 25 مللي ثانية) ، المتصفح وغيرها من النفقات العامة ، مما يترك فقط جزءًا صغيرًا من 100 مللي ثانية لتنفيذ منطق الأعمال الفعلي. ثانياً ، ستوفر الكثير من المال للبنية التحتية للخادم والمطورين أكثر إنتاجية لأن الاختبارات تعمل بشكل أسرع.
بدأت Symlex في عام 2014 باعتبارها لعبة Silex Boilerplate بسيطة ، لأن Silex نفسها لا تأتي مع "إصدار قياسي" يشير إليك في الاتجاه الصحيح. باستخدام Silex بدلاً من Symfony تم التوصيف من قبل Sensiolabs (المبدعين من كلا الأطر) كبديل خفيف الوزن لـ Symfony + FosrestBundle لبناء خدمات راحة عالية الأداء بسرعة وتطبيقات الويب الواحدة.
سرعان ما لوحظ أن Pimple - حاوية الخدمة التي تأتي مع Silex - تشعر بالتعلم للمطورين القادمين من Symfony وتجعل من الصعب إعادة استخدام التعليمات البرمجية الحالية. بالإضافة إلى ذلك ، تم الوصول إلى العديد من أمثلة رمز Silex وحتى التطبيقات في العالم الحقيقي إلى حاوية الخدمة من جميع أجزاء الكود (ليس فقط الإطار نفسه) ، والذي يحيط بالانعكاس ويؤدي إلى قابلية الاختبار المحرجة. وبالتالي ، يعزز Symlex الاستخدام الصارم لحقن التبعية ويجمع بين راحة حاوية الخدمة الكاملة مع سرعة العمل الفني الدقيق.
اليوم ، لدى Symlex مكون التوجيه الخاص به (استنادًا إلى Symfony 4) ولا يستخدم Silex بعد الآن. أثبت الإطار أنه مفيد لعدد كبير من التطبيقات المختلفة. استند بعضهم إلى Kernel Symfony kernel العادية من قبل وقاموا بالتغيير لأنهم كانوا يغرقون في التعقيد وعانوا من أوقات استجابة تتجاوز 30 ثانية في وضع التطوير. أعادهم Symlex إلى المسار الصحيح دون تغييرات كبيرة على قاعدة التعليمات البرمجية الحالية.
Symlex هو مشروع غير ربحي يديره بالكامل المتطوعين. اهلا وسهلك للغاية لدعمنا عبر رعاة Github ، خاصة إذا كنت بحاجة إلى مساعدة في استخدام برنامجنا. سوف يتطابقون مع كل تبرع في السنة الأولى.
يرجى ترك نجم إذا كنت تحب هذا المشروع ، فهو يوفر دافعًا إضافيًا للاستمرار. شكراً جزيلاً! <3