تُستخدم الحزم @package لمساعدتك في تجميع العناصر ذات الصلة بشكل منطقي. تقوم بكتابة فئات لتجميع الوظائف والبيانات ذات الصلة معًا، ويمثل phpDocumentor محتويات الملفات (الوظائف، والتعريفات، والتضمين) على أنها "صفحات إجرائية". يتم استخدام الحزمة @package لتجميع الفئات والصفحات الإجرائية معًا بنفس الطريقة التي يقوم بها الدليل بتجميع الملفات المرتبطة معًا.
هل هذا ضروري؟؟
بالطبع لا، ولكن نوعا ما هي مهمة في إنشاء مشاريع بي اتش بي عوما ، خصوصا ا كانت هذه المشاريع كبيرة.
المبرمج يكتب الملايين من الأسطر سنوياً، كيف له أي يتذكر الأكواد كلها التي كتبها.
حتى يتذكر هو ويفهم غير ( المطورون) هذا الكود، يتم استعمال @package لتظيم الصفاحات الإجرائية أو الكلاسات.
يعني انه نفس دور التعليقات التي تشرح مثلا دول الدالة أو دور سطر معين داخل الكود. لكن التعليقات داخليا تنظم الكود. بينما @package على صعيد المشروع.
وهي أيضاً يتم استعمالها لأغراض عمر قاعدة معرفة للمشروع، لكي يفهم جميع الأطراف الأخرى الغرض الاساسي من المجموعة أو الكلاس.
أما بخصوص !defined('ABSPATH')
فكلمة define تستعمل لتعيين ثابت في الووردبريس.
أما كلمة ()defined فهي دالة ترجع قيمة منطقية ( صحيح أم خطأ) ، إذا كان صحيح يعني أن ما يوجد داخلها تم تعيينه على أنه ثابت وإلا فلا.
أما كلمة ABSPATH هي اختصار لــ ABSOLUTE PATH وتعني الامتداد المطلق للموقع.
أما المقصود من (!defined('ABSPATH')) فالتأكد من أنه تم تعيين الامتداد المطلق للموقع.
والغرض يكون بهدف التأكد من أن الدالة سواء في قالب أو بلاجن تعمل :
1.التأكر من أن هذا الامتداد معين سابقا ( النظام ووردبريس)
2.التأكر من الإضافة أو القالب مفعل ( بعض الهاكرز أو المخترقين أو الاطراف الثالثة في الموقع يمكنك إطلاق أو نداء دالة بغض الاختراق أو تعيين أو … رغم أن القالب او البلاجن غير مفعل.
هذا الطريق تستعمل في الووردبريس ومشاريع بي اتش بي عموما.
إذا كانت (!defined('ABSPATH')) موجودة في أول الكود الخاص بالبلاجن فهذا يعني لغرض أمني.