Opis Closure هي مكتبة تهدف إلى التغلب على قيود PHP فيما يتعلق بتسلسل الإغلاق من خلال توفير غلاف يجعل جميع عمليات الإغلاق قابلة للتسلسل.
الملامح الرئيسية للمكتبة:
تسلسل أي إغلاق
تسلسل الكائنات التعسفية
لا يستخدم eval
لتسلسل الإغلاق أو إلغاء التسلسل
يعمل مع أي إصدار PHP يدعم عمليات الإغلاق
يدعم بناء الجملة PHP 7
يعالج جميع المتغيرات المشار إليها/المستوردة قيد use()
ويغلف تلقائيًا جميع عمليات الإغلاق المشار إليها/المستوردة لإجراء التسلسل المناسب
يعالج عمليات الإغلاق العودية
يتعامل مع الثوابت السحرية مثل __FILE__
و __DIR__
و __LINE__
و __NAMESPACE__
و __CLASS__
و __TRAIT__
و __METHOD__
و __FUNCTION__
.
يحل تلقائيًا جميع أسماء الفئات وأسماء الوظائف وأسماء الثوابت المستخدمة داخل الإغلاق
المصدر المقيم لإغلاق المسار باستخدام التوجيه #trackme
محلل بسيط وسريع جدا
يمكن اكتشاف أي خطأ أو استثناء قد يحدث عند تنفيذ إغلاق غير متسلسل ومعالجته بشكل صحيح
يمكنك إجراء تسلسل/إلغاء تسلسل أي إغلاق مرات غير محدودة، حتى تلك التي تم إلغاء تسلسلها مسبقًا (وهذا ممكن لأن eval()
لا يستخدم لإلغاء التسلسل)
يعالج عمليات الإغلاق الثابتة
يدعم عمليات الإغلاق الموقعة بالتشفير
يوفر عاكسًا يمكن أن يوفر لك معلومات حول الإغلاق المتسلسل
يوفر محلل لمكتبة SuperClosure
يكتشف تلقائيًا عندما يحتاج النطاق و/أو الكائن المرتبط بالإغلاق إلى إجراء تسلسل حتى يعمل الإغلاق بعد إلغاء التسلسل
يمكن العثور على الوثائق الكاملة لهذه المكتبة هنا.
تم ترخيص Opis Closure بموجب ترخيص MIT (MIT).
PHP ^5.4 || ^7.0 || ^8.0
يتوفر Opis Closure على Packagist ويمكن تثبيته من واجهة سطر الأوامر باستخدام Composer.
يتطلب الملحن opis/الإغلاق
أو يمكنك الرجوع إليه مباشرة في ملف composer.json
الخاص بك باعتباره تبعية
{"يتطلب": {"التشغيل/الإغلاق": "^3.5"} }
إذا كان مشروعك يحتاج إلى دعم PHP 5.3، فيمكنك الاستمرار في استخدام الإصدار 2.x
من Opis Closure . بخلاف ذلك، بافتراض أنك لا تستخدم إحدى الفئات أو الميزات التي تمت إزالتها/إعادة هيكلتها (راجع سجل التغيير)، فإن الترحيل إلى الإصدار 3.x
هو مجرد مسألة تحديث ملف composer.json
الخاص بك.
يتبع إغلاق Opis مواصفات الإصدارات الدلالية.
لقد أضفنا هذه الميزة حتى نتمكن من دعم تسلسل كائن الإغلاق المرتبط. التنفيذ أبعد ما يكون عن الكمال، ومن الصعب جدًا جعله يعمل بلا عيوب. سنحاول تحسين هذا الأمر، لكن لا يمكننا ضمان أي شيء. لذا نصيحتنا بخصوص وظائف OpisClosureserialize|unserialize
هي استخدامها بحذر.