السلام عليكم ورحمة الله وبركاته،

منذ شهر تقريبًا، وددت لو أستطيع كتابة شيفرات PHP بطريقة جديدة عكس المتعارف عليها في جميع أنحاء العالم، كما وددت لو استطيع عمل نظامين للمتغيرات منفصلين عن بعضهما البعض، بحيث أستطيع مثلاً ان اقوم بتعريف متغير باسم معين وله قيمة معينة، وتعريف متغير آخر بنفس الاسم ولكن بقيمة مختلفة، واستطيع في نفس الوقت استخدام تلك المتغيرات على حدى.

رغبتي تلك بدأت تدفعني للتفكير في صنع طريقة مبسطة لكتابة شيفرات PHP بنفس المفاهيم التي أودّها (أقصد فصل المتغيرات)، وفي نفس الوقت تكون تلك الطريقة هي أسهل طريقة لصناعة Single Page Application.

خطرت لي فكرة بناء اداة أو كما نستطيع أن ندعوها لغة مبسطة غير متعددة التوجه لصناعة Single Page Application عبر ربط قواعد YAML مع PHP؛ لتخرج لغة جديدة تجمع بين YAML و PHP و Python.

لكن بالطبع لغة موحدة التوجه وهي للويب فقط وخصيصًا للـSPA، وبالطبع تلك اللغة يتم تحويلها إلى Native PHP.

بدأت أول ايام عيد الفطر المبارك بتجربة بسيطة لعمل Proof Of Concept لكي أقوم بتحديد هل استطيع فعلاً بناء تلك الأداة او تلك اللغة المصغّرة أم لا، وبالفعل بدأت في برمجة سيبال، أو بالإنجليزية Ya SiPAL وجائت تلك الكلمة إختصارًا لـ YAML Single Page Application Language.

استخدمت مكتبة لكي أستطيع تحويل مصفوفة YAML إلى مصفوفة PHP، ثم قمت ببرمجة ملف PHP يعمل كـCompiler للملفات ذات إمتداد spl الخاص بالأداة.

وبعدما انتهيت من صناعة الـCompiler قمت بإنشاء صفحة تقوم بتنفيذ جميع ملفاتك عبر الـCompiler لكي تنتج لك SPA جاهز، وتلك الصفحة نفسها قمت بإنشاءها بإستخدام SiPAL نفسها !

قد تكون الفكرة غير واضحة نوعًا ما، لكن سأضع لكم رابط الـRepository على GitHub لكي يتثنى لكم قراءة التوثيق الخاص بـSiPAL وتجربتها بأنفسكم.

طبعًا SiPAL قمت بإنشاءها سريعًا في ثلاثة أيام عمل غير متواصل؛ ولذلك لم يتثنى لي كتابتها بطريقة OOP.

أنتظر ملاحظتكم على تلك الأداة،

أتمنى أيضًا من المعلقين أن يذكروا هل تأيدون تطوير مثل تلك الأدوات التي تساعدك على كتابة PHP بطريقة مختلفة أم لا تؤيد مثل تلك الأدوات؟

ملاحظات سريعة:

  • سيبال بالفعل هي أداة وليست لغة ولا أحبذ أن أقول عليها لغة.

  • من عيوبها أنك قد تزيد من عدد الأسطر أثناء كتابتك للكود.

  • من مميزاتها، أنها تقوم بحفظ ملفاتك كما هي حتى تقوم بعمل Execute، وبالتالي تستطيع التعديل على ملف SPL كما يحلو لك مع الإحتفاظ بالنسبة السابقة من ملف PHP الذي تم إنتاجه حتى تقرر عمل Execute، كما يمكنك في تلك الحالة مع كل Commit جديدة تغيير قيمة page_name وبالتالي سينتج لك ملف جديد مع كل Commit لكي تستطيع الإحتفاظ ببرنامجك.

تحياتي.