تخطَّ إلى المحتوى
getnextpdf.com

Enterprise الإصدار

PHPStan

يشحن ⁨NextPDF Enterprise⁩ قاعدة ⁨PHPStan⁩ مخصّصة، EditionBoundaryRule، تُبلِّغ عن استيرادات use التي تعبر حدود الإصدارات ⁨Core⁩ → ⁨Pro⁩ → ⁨Enterprise⁩. وهي فحص ساكن مُوجَّه للمطوّر يُبلِّغ عن الانتهاكات؛ يُحلِّل عبارات الاستيراد ولا يضمن صحة شيفرتك.

تُشحن هذه القدرة في ⁨NextPDF Enterprise⁩ (nextpdf/enterprise) وتُفعَّل بمظروف ترخيص من درجة ⁨Enterprise⁩. وهي قاعدة ⁨PHPStan⁩ في وقت البناء مُسجَّلة عبر تهيئة ⁨PHPStan⁩ لديك، فتُشغَّل أثناء التحليل الساكن وليس لها مسار في وقت التشغيل؛ وبوابة الترخيص هي حدود حزمة nextpdf/enterprise، بلا رمز قدرة منفصل لكل ميزة. قارن الإصدارات واحصل على ترخيص.

Terminal window
composer require nextpdf/enterprise:^3

سجِّل القاعدة في تهيئة ⁨PHPStan⁩ لديك:

rules:
- NextPDF\Enterprise\PHPStan\EditionBoundaryRule

تفحص القاعدة كل عبارة use وتقارن فضاء الاسم المُستورِد ببادئة فضاء اسم الرمز المُستورَد. وتفرض ترتيب اعتماد أحادي الاتجاه:

  • شيفرة ⁨Core⁩ (NextPDF\، باستثناء فضاءَي الأسماء الفرعيين ⁨Pro⁩ و⁨Enterprise⁩) يجب ألّا تستورد من NextPDF\Pro\* أو NextPDF\Enterprise\*.
  • شيفرة ⁨Pro⁩ (NextPDF\Pro\*) يجب ألّا تستورد من NextPDF\Enterprise\*.
  • شيفرة ⁨Enterprise⁩ (NextPDF\Enterprise\*) هي الدرجة العليا ويجوز لها الاستيراد من أيٍّ منها.

حين يعبر استيراد الحدود، تُبلِّغ القاعدة بخطأ بالمُعرِّف nextpdf.editionBoundaryViolation ورسالة تُسمّي فضاء الاسم المُستورِد، والبادئة المحظورة، ووسوم إصدارات مقروءة للبشر. والفحص ساكن محض: يقرأ مخطط الاستيراد في وقت التحليل.

تُحاكِم القاعدة عبارات use في وقت التحليل، لا في وقت التشغيل، لأن حدود الإصدارات ثابت معماري لا قرار في وقت التشغيل. إذ تُشحن ⁨Core⁩ و⁨Pro⁩ و⁨Enterprise⁩ كحزم منفصلة، فيجب ألّا تعتمد درجة أدنى أبدًا على رموز غائبة عن تثبيت أصغر. والتقاط استيراد عابر للحدود أثناء التحليل الساكن يُفشل البناء قبل أن يُشحَن الخطأ. والبديل أسوأ: يظهر الاستيراد نفسه لاحقًا كخطأ فادح بصنف مفقود في نشر يقتصر على ⁨Core⁩. والترتيب أحادي الاتجاه عمدًا، ⁨Core⁩ → ⁨Pro⁩ → ⁨Enterprise⁩، محاكيًا كيف تتراكب حزم ⁨open-core⁩ بعضها فوق بعض. وتبقى ⁨Enterprise⁩ غير مُقيَّدة لأنها الدرجة العليا ويجوز لها الإشارة إلى كل إصدار دونها.

خلفية التصميم: نواة مفتوحة، بلا حبس مورّد.

الصنفالمسؤولية
EditionBoundaryRuleقاعدة ⁨PHPStan⁩ على عبارات use؛ تُبلِّغ بانتهاكات حدود الإصدارات.

تُنفِّذ القاعدة عقد ⁨PHPStan⁩ ‏Rule القياسي على نوع العقدة Use_ وتُصدِر أخطاءً تحت المُعرِّف nextpdf.editionBoundaryViolation.

# phpstan.neon
includes:
- vendor/nextpdf/enterprise/phpstan.neon.dist
# phpstan.neon
rules:
- NextPDF\Enterprise\PHPStan\EditionBoundaryRule
parameters:
level: 9
paths:
- src

يظهر الانتهاك في ناتج ⁨PHPStan⁩، مثلًا: يُبلَّغ عن استيراد ⁨Enterprise⁩ داخل شيفرة ⁨Core⁩ كانتهاك حدود إصدارات على سطر use المخالف، تحت nextpdf.editionBoundaryViolation.

  • تُحاكِم القاعدة فضاء اسم الملف المُحلَّل وبادئة الرمز المُستورَد. والشيفرة في فضاء اسم غير NextPDF\ ليست مُقيَّدة بهذه القاعدة.
  • فضاءات أسماء ⁨Enterprise⁩ غير مُقيَّدة بحكم التصميم؛ ولا تُعلِّم القاعدة أبدًا ملف ⁨Enterprise⁩ لاستيراده من ⁨Pro⁩ أو ⁨Core⁩.
  • تُحلِّل القاعدة عبارات use. ومرجع صنف مؤهَّل بالكامل مكتوب سطريًا دون use خارج نطاق هذه القاعدة؛ فضِّل الاستيرادات حتى تُفرَض الحدود.
  • الفحص ساكن وإرشادي: يُبلِّغ بانتهاكات الحدود. وهو لا يُثبت أن برنامجك صحيح فيما عدا ذلك.

تُشغَّل القاعدة لكل عبارة use أثناء تحليل ⁨PHPStan⁩ وتُجري مقارنات بادئة نصية. وعبؤها يتناسب مع عدد عبارات الاستيراد وهو ضئيل نسبةً إلى زمن التحليل الإجمالي.

هذه قاعدة تحليل ساكن. تُنفَّذ في وقت البناء داخل ⁨PHPStan⁩، وتقرأ بنية المصدر فقط، وليس لها أثر في وقت التشغيل على ملفات ⁨PDF⁩ المُولَّدة.

إقامة البيانات وتخفيفات المعلومات الشخصية

قسم بعنوان «إقامة البيانات وتخفيفات المعلومات الشخصية»

تعالج القاعدة شيفرة المصدر في وقت التحليل ولا تتعامل مع أي مستند أو بيانات شخصية.

القياس الآمن وتنقية السجلات

قسم بعنوان «القياس الآمن وتنقية السجلات»

ناتج القاعدة تشخيصات ⁨PHPStan⁩. وهو يحتوي فضاءات أسماء وأسماء رموز من شيفرتك أنت؛ عامِل سجلات التحليل بالعناية نفسها التي تُخصِّصها لمصدرك.

لا يُدَّعى أي مطابقة معايير. هذه قاعدة أدوات مطوّر تفرض قيدًا معماريًا داخليًا (تطبّق طبقات الإصدارات) في عمليات البناء اللاحقة.

لا ينطبق؛ لا تُجري القاعدة أي عمليات تشفيرية وليس لها مسار في وقت التشغيل.

ليست مكوّنًا في وقت التشغيل. غرض القاعدة التقاط خطأ معماري — استيراد عبر حدود الإصدارات — قبل أن يُشحَن، بإفشال مرحلة التحليل الساكن.

  • تفحص القاعدة كل عبارة use وتفرض ترتيب اعتماد أحادي الاتجاه: ⁨Core⁩ يجب ألّا يستورد ⁨Pro⁩ أو ⁨Enterprise⁩؛ و⁨Pro⁩ يجب ألّا يستورد ⁨Enterprise⁩؛ و⁨Enterprise⁩ يجوز له الاستيراد من أيٍّ.
  • يُبلَّغ عن استيراد عابر للحدود تحت المُعرِّف nextpdf.editionBoundaryViolation مع فضاء الاسم المُستورِد والبادئة المحظورة.
  • الشيفرة في فضاء اسم غير NextPDF\ ليست مُقيَّدة بهذه القاعدة.
  • مرجع صنف سطري مؤهَّل بالكامل دون use خارج نطاق هذه القاعدة؛ فضِّل الاستيرادات حتى تُفرَض الحدود.

توثّق هذه الصفحة السلوك القابل للملاحظة خارجيًا وسطح الـ ⁨API⁩ العام المدعوم فقط. أما مسارات فضاءات الأسماء الداخلية، والأصناف المساعِدة، وجداول الآليات، وأسماء ملفات أدلة التشغيل، وبادئات التذاكر فخارج النطاق.

لا يشحن ⁨NextPDF Core⁩ قاعدة ⁨PHPStan⁩ لحدود الإصدارات. والمستهلك الذي يقتصر على ⁨Core⁩ ويريد فرض طبقات الإصدارات في بنائه الخاص عليه أن يكتب قاعدة مكافئة أو يحصل عليها بنفسه.

لا يشحن ⁨NextPDF Pro⁩ قاعدة ⁨PHPStan⁩ لحدود الإصدارات؛ فهي جزء من حزمة nextpdf/enterprise فقط. ونشر يقتصر على ⁨Pro⁩ لا يملك مكوّن ⁨Enterprise⁩ يُسجِّل منه هذه القاعدة. انظر نظرة عامة على ⁨Enterprise⁩ لسطح ⁨Enterprise⁩.

تبقى تفاصيل الآلية الداخلية في التوثيق الداخلي لمستودع المصدر وهي خارج نطاق هذا الدليل.

هذه قاعدة تحليل ساكن في وقت البناء. تُنفَّذ داخل ⁨PHPStan⁩ أثناء التحليل، وتقرأ بنية المصدر فقط، وليس لها أثر في وقت التشغيل على ملفات ⁨PDF⁩ المُولَّدة ولا على أي خدمة منشورة. وتسجيلها واختيار مستوى ⁨PHPStan⁩ مسؤولية المُكامِل.

تصف هذه الصفحة قاعدة تحليل ساكن من أدوات المطوّر. وهي لا تقدّم أي ضمان امتثال أو شهادة أو صحة لشيفرتك؛ بل تُبلِّغ بانتهاكات استيراد حدود الإصدارات فقط وهي إرشادية. ولا تشكّل مشورة قانونية. والحكم على ما إذا كان بناؤك يستوفي التزاماتك المعمارية أو التعاقدية الخاصة مسؤوليتك.