مكتبة PHP القياسية
28, نوفمبر 2008 التصنيف: برمجة
SPL أو مكتبة PHP القياسية، عبارة عن مكتبة برمجية (عدة أصناف وتوابع) لحل المشاكل الأكثر شيوعاً وتقديم بنى معطيات (Data Types)، استخدام هذه المكتبة خاص بنسخة PHP 5 فما فوق. سنتعرف عليها الآن وعلى المشاكل التي تقدم لها حلولاً وعندها ستدرك أهميتها الشديدة في حياتك البرمجية اليومية.
سنبدأ بذكر المكونات الأساسية للمكتبة:
- بنى المعطيات: مجموعة غنية ومفيدة من بنى المعطيات وهي القائمة الموصولة من الطرفين (Doubly Linked List)، المكدس (Stack)، الرتل (queueu)، الكتلة (Heap) وبعض البنى المفيدة أيضاً.
- Iterators (لم أجد لها ترجمة ولكن معناها الدوران بشكل تكراري داخل مصفوفة ما أو حلقة للحصول على معلومات): يحتوي على الدوران داخل مصفوفة، داخل مجلد، وملف XML.
- الاستثناءات (Exceptions):مهم جداً للعمل الاحترافي. التقاط الاستثناء باختصار هو إعادة توجيه التطبيق عند حدوث خطأ، فبدلاً من أن يتصرف التطبيق بشكل عشوائي وغير مفهوم تقوم أنت بتحديد ماذا سيفعل لو حدث هذا الخطأ، بأن تعرض رسالة لهذا الخطأ مثلاً.
- معلومات الملفات: أكثر من مهمة في التعامل مع الملفات، مثلاً لجلب تاريخ آخر وصول للملف، اسم الملف، اسم منشىء الملف، مسار الملف، حجم الملف، والكثير من هذه التوابع المفيدة.
مكتبة SPL مكتبة مفيدة ومهمة جداً، لاتكتفي فقط بهذه التدوينة أو بمعرفة هذه الملعومات بل عليك أن تتعلمها وتستخدمها فهذه المكتبة يستخدمها محترفوا PHP، وللمزيد عنها هذه مجموعة روابط:












وش يعني “الرتل”
اتوقع ان “الطابور” انسب كترجمة لـ Queue
الرتل هي كلمة عربية من الترتيب والتنسيق. لاحظت ترجمة “طابور” في عرب آيز ولكن لم أجد لها أصلاً في اللغة العربية!
شكرا خالد
ال php5 اتت بمكتبات كثير و اغلبها لدعم ال oop
او التوجه نحو البرمجة غرضية التوجه
فمثلا spl تحوي طرائق method للتعامل مع ال classes و تحميلها
ايضا ال php5 اتت بمكتبه جميله و هي pdo للتعامل مع قواعد البيانات
و على حسب علمي انه بال php6 سوف تصبح ال pdo هي الطريقة الوحيدة للتعامل مع قواعد البيانات
للاسف نظرا للضيق الوقت اغلبنا لا يستخدم هذه المكتبات
وشكرا
معظم ما بها موجود من قبل في ال php كدوال ومكتبات متفرقة ولكن تجميعهم ككائنات هو أهم ما يمز التعامل مع كل مكتبات php5
لعلي أطلعت عليها من قبل ولكني لا يعتبر أستخدمتها بشكل كبير في كودي
ولكن بعد هذا العرض والروابط الجيدة فأكيد سأزيد أستخدمها بإذن الله
بارك الله فيك أخوي خالد , مكتبة رائعة فعلاَ شكراً لك لإفادتنا بها
شكراً لكم على المعلومات القيمة.
تسلم اخي على هذا الموضوع المهم والله يا اخي هي SPL فعلا مهمة واذا كنت مبرمج مما يحاولون انشاء مكتبات برمجية احترافية فانت بالتاكيد لا تستطيع الاستغناء عنها
وبالنسبة لي فقد استخدمتها قديما ولكني اصطدمت في بداية اضافتها للبي اتش بي 5 بانها كانت تحوي على اخطاء برمجية في ذلك الوقت ولكن الحمد لله تم اصلاح هذه الاخطاء
اما بالنسبة لل Iterator فهي طريقة للمرور على مجموعة من عدة عناصر عنصر عنصر واليك الامثلة
$items =array(‘book’,'watch’,'pen’,'paper’)
foreach ($items as $item) //processing $item;
$items =array(‘my best friend’=>’book’,'the measure of the life’=>’watch’,'my helper’=>’pen’,'the day’=>’paper’)
foreach ($items as $item) //processing $item;
ففي هذين المثالين ستم الانتقال على كل واحد من عناصر المصفوفتين ووضع قيمتها في المتغير $item بغض النظر عن مفتاح كل عنصر فيها وهي بالتالي اداة قوية للمرور iterate على عناصر المصفوفة كلها مو دون الاحتساب الى مفاتيح عناصرها
والان لنفرض اننا قمنا بعمل class للاتصال بقاعدة البيانات واستخراج قيم اعتمادا على استعلام معين وان القيم ستوضع في مصفوفة وذلك بجعل قيمة ال id لكل قيمة سطر مستخرج من قاعدة البيانات قيمة المفتاح بتلك المصفوفة والقيمة له هي مصفوفة اخرى تحوي معلومات السطر ولكي نعمل ذلك فاننا نحتاج الى جعل class الذي عملنها مرتبط بواجهة ال spl ولفهم ذلك انظر الكود التالي وانظر الى امكانية تلك المكتبة
$rows=new myDatabaseObject();
$rows.find(array(‘job’=>’manager’));
foreach ($rows as $row) echo $row['name'];
ولك من تحياتي
بارك الله فيك على الإضافة القيمة جداً