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

Enterprise الإصدار

⁨PHPStan⁩ — مرجع متعمّق

  • فئة عامة واحدة: EditionBoundaryRule، وهي قاعدة ⁨PHPStan⁩ مخصّصة تعمل على جُمَل use.
  • تفرض ترتيب اعتماد الإصدارات أحادي الاتجاه. لا يستورد ⁨Core⁩ مطلقًا ⁨Pro⁩ أو ⁨Enterprise⁩. ولا يستورد ⁨Pro⁩ مطلقًا ⁨Enterprise⁩.
  • تُبلِغ المخالفات عن المُعرّف nextpdf.editionBoundaryViolation في سطر use المخالف.
  • وقت البناء فقط. لا تملك القاعدة مسارًا في وقت التشغيل ولا تأثيرًا على ملفات ⁨PDF⁩ المُولَّدة.
  • تُشحن ضمن nextpdf/enterprise. يستخدم التسجيل إعدادات ⁨PHPStan⁩ القياسية.

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

سطح واجهة برمجة التطبيقات العامة

قسم بعنوان «سطح واجهة برمجة التطبيقات العامة»

ثبِّت الحزمة، ثم سجِّل القاعدة في إعدادات ⁨PHPStan⁩.

Terminal window
composer require nextpdf/enterprise:^3
rules:
- NextPDF\Enterprise\PHPStan\EditionBoundaryRule
الرمزالمعاملاتالسلوك الافتراضيالقيمة المُعادةيرمي أو يفشل بـملاحظات
EditionBoundaryRuleلا شيء (لا وسائط للمُنشئ)قاعدة ⁨PHPStan⁩ عديمة الحالة مشتركة في جُمَل useلا ترمي أبدًاfinal؛ تنفّذ PHPStan\Rules\Rule على Use_
EditionBoundaryRule::getNodeType()لا شيءتُصرّح بنوع عقدة ⁨AST⁩ التي تشترك فيها القاعدةstring (Use_::class)لا ترمي أبدًاطريقة عقد Rule القياسية في ⁨PHPStan⁩
EditionBoundaryRule::processNode()Node $node، Scope $scopeتفحص كل رمز مُستورَد مقابل البادئات المحظورة على مساحة الأسماء المُحلَّلةlist<IdentifierRuleError> (فارغة عند الامتثال)لا ترمي أبدًا؛ تظهر المخالفات كأخطاء قاعدةمُعرّف الخطأ nextpdf.editionBoundaryViolation
final class EditionBoundaryRule implements Rule
{
public function getNodeType(): string;
public function processNode(Node $node, Scope $scope): array;
}

تنفّذ EditionBoundaryRule عقد Rule القياسي في ⁨PHPStan⁩ على نوع العقدة Use_. لكل جملة use تقارن مساحة أسماء الملف المُحلَّل مقابل بادئة مساحة أسماء كل رمز مُستورَد، وتفرض ترتيب اعتماد أحادي الاتجاه.

مساحة الأسماء المُحلَّلةتسمية الإصداربادئات الاستيراد المحظورة
مساحات الأسماء الفرعية NextPDF\*، باستثناء ⁨Pro⁩ و⁨Enterprise⁩⁨Core⁩NextPDF\Pro\، NextPDF\Enterprise\
NextPDF\Pro وNextPDF\Pro\*⁨Pro⁩NextPDF\Enterprise\
NextPDF\Enterprise وNextPDF\Enterprise\*⁨Enterprise⁩لا شيء (الفئة العليا)
أي مساحة أسماء خارج NextPDF\لا شيء (غير مقيَّدة)

عندما يتجاوز استيرادٌ الحدود، تُبلِغ القاعدة عن خطأ تحت المُعرّف nextpdf.editionBoundaryViolation، مثبَّتًا على سطر جملة use المخالفة. تذكر الرسالة الرمز المُستورَد، ومساحة الأسماء المُستورِدة، والبادئة المحظورة، وتسميات الإصدارات القابلة للقراءة البشرية. ينتج عن كل رمز مُستورَد خطأ واحد على الأكثر: تتوقف مطابقة البادئة عند أول بادئة محظورة مطابِقة.

الفحص ثابت واستشاري. يُبلِغ عن مخالفات الحدود في جُمَل الاستيراد. لا يُثبِت أن البرنامج المُحلَّل صحيح فيما عدا ذلك.

الحالات الحدّية وأنماط الفشل

قسم بعنوان «الحالات الحدّية وأنماط الفشل»
  • مساحات الأسماء خارج NextPDF\ والملفات بلا مساحة أسماء لا تنتج أي أخطاء؛ تُعيد القاعدة قائمة فارغة.
  • الشيفرة المُصرَّح بها في مساحة الأسماء الجذرية تمامًا NextPDF (بلا مقطع مساحة أسماء فرعية) غير مقيَّدة؛ يطابق كشف الحدود مساحات الأسماء الفرعية NextPDF\.
  • لا تُوسَم ملفات ⁨Enterprise⁩ مطلقًا لاستيرادها رموز ⁨Pro⁩ أو ⁨Core⁩ (الفئة العليا، بحكم التصميم).
  • مطابقة البادئة تراعي الفاصل. تُصنَّف مساحة أسماء مثل NextPDF\Professional على أنها ⁨Core⁩، لا ⁨Pro⁩، ولا تُنتج الاستيرادات تحتها نتيجة إيجابية زائفة مقابل البادئة NextPDF\Pro\.
  • استيراد الاسمين الحرفيين NextPDF\Pro أو NextPDF\Enterprise بلا مقطع إضافي لا يُوسَم؛ تُطابَق الرموز الواقعة تحت هاتين البادئتين فقط.
  • لا تُرشِّح القاعدة حسب نوع الاستيراد: استيرادات ⁨class⁩ وfunction وconst تحت بادئة محظورة تُبلِغ جميعها.
  • المراجع المؤهَّلة بالكامل المكتوبة سطريًا بلا جملة use خارج النطاق. فضِّل الاستيرادات لكي تُفرَض الحدود.
  • تصريحات use المجمَّعة تُحلَّل كنوع العقدة المتمايز GroupUse وتقع خارج اشتراك القاعدة في Use_؛ الاستيرادات العادية لكل رمز على حدة تُبقي الحدود مفحوصة.
  • processNode() لا ترمي أبدًا؛ تظهر جميع النتائج كأخطاء قاعدة ⁨PHPStan⁩ أو نتيجة فارغة.
  • ليست مكوّنًا في وقت التشغيل. لا تُجري أي عمليات تشفيرية، ووضع ⁨FIPS⁩ غير منطبق.

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

  • تُنفَّذ القاعدة داخل ⁨PHPStan⁩ أثناء التحليل، وتقرأ بنية المصدر فقط، ولا تؤثّر على ملفات ⁨PDF⁩ المُولَّدة أو أي خدمة منشورة.
  • يبقى تسجيل القاعدة واختيار مستوى ⁨PHPStan⁩ من مسؤولية المُدمِج.
  • الفئة final وعديمة الحالة، لذا فهي آمنة ضمن عمّال التحليل المتوازي في ⁨PHPStan⁩.
  • مُخرَجات التحليل حتمية لشجرة مصدر معيّنة: تُنتج المدخلات نفسها قائمة الأخطاء نفسها.
  • متاحة منذ nextpdf/enterprise ⁨2.1.0⁩؛ يعكس العقد أعلاه ⁨3.1.0⁩.

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