سيبال، أداة جديدة لتطوير برامج PHP وخصوصًا لبرمجة SPA

  • LilEssam

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

منذ شهر تقريبًا، وددت لو أستطيع كتابة شيفرات 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 لكي تستطيع الإحتفاظ ببرنامجك.

تحياتي.


wgh أضف ردا

نظرت الى المثال وما وجدته هو تحويل ملف من صيغة الى صيغة وليست لغة برمجة.

واعتقد ان طريقة كتابة الكود في سيبال غير جيدة، حيث تخلط بين كود ال php و كود ال html كما ان صفحة واحدة تطلبت كم اكواد اكثر من الناتج الذي تنتجه ! وهذا غير منطقي.

على العموم قيمتك +1 لانك قمت ببناء شيئ جديد، مع انه لم يعجبني لكن ربما يساعدك في نوعية مشاريعك. بالتوفيق.

تمام ملاحظة حضرتك ممتازة، وهو فعلاً ما لاحظته عندما قمت بتجربة إنشاء صفحة عبرها، أن عدد الأسطر زادت.

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

طريقة كتابة الكود في سيبال كما ذكرت في الموضوع بالفعل غير جيدة لأنني لم أقم بكتابتها OOP.

أفضل ما في الموضوع هو تطوير طريقة جديدة لكتابة شيفراتك، كما أنها تقوم تلقائيًا بتوفير نسخة إحتياطية لك من الملف، بحيث لو قمت بإنشاء ملف SPL ثم قمت بتحويله إلى PHP، ثم قمت بتطوير ملف SPL مرة أخرى، لن تحدث أي تعديلات سوى بعد أن تقوم بعمل Execute وبالتالي تحتفظ بالنسبة الموجودة، او تستطيع تغيير قيمة page_name لكي يكون كل Commit جديد على الملف له ناتج بإسم مختلف لحفظ عملك.