I'm always excited to take on new projects and collaborate with innovative minds.

Phone

+20 115 052 9992

Website

https://ibrahimahmed.online/

Social Links

ازاي توفر وقتك وتعمل أتمتة للمهام اليومية باستخدام PHP CLI

ازاي توفر وقتك وتعمل أتمتة للمهام اليومية باستخدام PHP CLI أهلاً بيك يا صديقي المبرمج في عالم الإنتاجية الحقيقية! زهقت من تكرار نفس المهام كل يوم؟ نقل ملفات، مس

ازاي توفر وقتك وتعمل أتمتة للمهام اليومية باستخدام PHP CLI
Reading Count: 3

ازاي توفر وقتك وتعمل أتمتة للمهام اليومية باستخدام PHP CLI

أهلاً بيك يا صديقي المبرمج في عالم الإنتاجية الحقيقية! زهقت من تكرار نفس المهام كل يوم؟ نقل ملفات، مسح مجلدات مؤقتة (Temporary Folders)، تعديل قواعد بيانات، أو حتى إرسال تقارير دورية يدوياً؟ لو إنت مبرمج ويب (Web Developer) وبتستعمل لغة PHP في الشغل، غالباً فاكر إنها مخصصة بس للمواقع والـ APIs. لكن خليني أقولك إن عندك كنز في إيدك اسمه سطر أوامر بي إتش بي أو زي ما بنسميه PHP CLI (Command Line Interface).

في المقال ده، هناخد رحلة مفصلة وعملية جداً عشان نتعلم ازاي نحول سكريات PHP العادية لأدوات قوية لـ أتمتة المهام اليومية (Task Automation) توفر عليك ساعات من الشغل اليدوي الممل.

ليه تستخدم PHP CLI في أتمتة المهام (Automation)؟

ممكن يجيلك سؤال في دماغك: "ليه أكتب سكريبت أتمتة بـ PHP وأنا عندي بايثون (Python) أو باش (Bash Script)؟" الإجابة ببساطة هي: الخبرة المسبقة. لو إنت شغال PHP Developer، فإنت مش محتاج تتعلم لغة جديدة من الصفر عشان تعمل سكريبت بسيط. عندك بالفعل معرفة بالـ Syntax، وبتعرف تتعامل مع قواعد البيانات (Databases)، وAPIs، وملفات الـ JSON والـ CSV.

استخدام واجهة سطر الأوامر (Command Line Interface) بيخليك تقدر تشغل السكريبت ده في الخلفية، أو تربطه بـ أدوات جدولة زي الـ Cron Jobs في أنظمة لينكس (Linux)، وتنسى تماماً الشغل الروتيني.

الخطوة الأولى: إعداد بيئة العمل والبدء في تشغيل PHP من الـ Terminal

ع عشان تبدأ تكتب سكريبتات سطر أوامر، لازم تتأكد إن الـ PHP متصطبة عندك على الجهاز ومضافة للـ System PATH عشان تقدر تناديها من أي مكان في الـ Terminal أو Command Prompt.

افتح الـ Terminal واكتب الأمر ده عشان تتأكد من النسخة:

php -v

لو ظهرتلك النسخة، فإنت جاهز تماماً. تعالوا نعمل أول سكريبت بسيط خالص. أنشئ ملف جديد وسميه hello.php واكتب فيه الكود ده:


<?php
echo "أهلاً بيك يا بطل في عالم الـ PHP CLI!\n";
?>

عشان تشغل السكريبت ده، افتح الـ Terminal في نفس المكان اللي فيه الملف واكتب:

php hello.php

مبروك! إنت كده شغلت أول سكريبت PHP من غير سيرفر ويب (Apache أو Nginx) ومن غير متصفح!

استقبال المدخلات والمتغيرات من سطر الأوامر (CLI Arguments)

عشان السكريبت بتاعه يكون ذكي ومفيد، لازم يكون تفاعلي. يعني مثلاً، لو عايز تعمل سكريبت ياخد اسم المستخدم ويرحب بيه، هتعمل ده إزاي؟

لغة PHP بتوفرلنا مصفوفة جاهزة اسمها $argv ومصفوفة تاني اسمها $argc. المصفوفة $argv دي بتشيل كل الكلمات اللي بتكتبها في الـ Terminal ورا أمر التشغيل.

شوف المثال العملي ده في ملف greet.php:


<?php
// التأكد من إدخال الاسم
if (!isset($argv[1])) {
    echo "من فضلك اكتب اسمك بعد اسم الملف يا صديقي!\n";
    echo "مثال: php greet.php أحمد\n";
    exit(1);
}

$name = $argv[1];
echo "أهلاً بيك يا " . $name . "، نتمنى لك يوم إنتاجية متميز!\n";
?>

لما تيجي تشغله في الـ Terminal، اكتب كده:

php greet.php محمد

تطبيق عملي: بناء أداة لترتيب وتنظيف المجلدات تلقائياً (File Organizer Script)

تعالوا نعمل مشروع حقيقي ومفيد جداً لأي مبرمج. كتير مننا بيكون عنده مجلد الـ Downloads مليان صور وملفات مضغوطة وبايثون ومستندات والدنيا باظت خالص. هنعمل سكريبت PHP يلف على المجلد ويرتب الملفات دي في فئات بناءً على امتدادها (Extensions).

أنشئ ملف اسمه organizer.php:


<?php
$targetDirectory = isset($argv[1]) ? $argv[1] : getcwd();

if (!is_dir($targetDirectory)) {
    echo "المجلد غير موجود!\n";
    exit(1);
}

echo "جاري فحص المجلد: " . $targetDirectory . "\n";

$files = scandir($targetDirectory);

foreach ($files as $file) {
    if ($file == '.' || $file == '..') continue;
    
    $filePath = $targetDirectory . '/' . $file;
    
    if (is_dir($filePath)) continue; // تجاهل المجلدات الفرعية
    
    $extension = strtolower(pathinfo($filePath, PATHINFO_EXTENSION));
    
    if (empty($extension)) continue;
    
    $categoryDir = $targetDirectory . '/' . strtoupper($extension) . '_Files';
    
    if (!is_dir($categoryDir)) {
        mkdir($categoryDir, 0777, true);
    }
    
    $destination = $categoryDir . '/' . $file;
    rename($filePath, $destination);
    echo "تم نقل الملف: $file إلى مجلد " . strtoupper($extension) . "_Files\n";
}

echo "تم الانتهاء من ترتيب المجلد بنجاح!\n";
?>

الأداة البسيطة دي هتوفر عليك وقت كبير جداً في تنظيم ملفاتك الشخصية أو ملفات مشاريعك بضغطة زر واحدة من الـ Terminal.

التعامل مع قواعد البيانات وإرسال التقارير

من أقوى مميزات استخدام برمجة سكريبتات الأتمتة (Automation Scripts) بـ PHP هي قدرتك على الاتصال بقاعدة البيانات (MySQL مثلاً)، أخذ نسخة احتياطية (Backup)، أو فحص السجلات (Logs) وإرسال تقارير بريدية للمدير أو ليك شخصياً.

ممكن تستخدم مكتبات خارجية زي PHPMailer أو تتعامل مع الـ PDO مباشرة جوه الـ CLI بدون أي مشاكل، لأن البيئة واحدة والمكتبات اللي بتستخدمها في الويب هي هي اللي تقدر تستخدمها في الـ CLI.

نصيحة من أخ: ازاي تطور مهاراتك في الـ PHP CLI؟

يا صديقي، الاحتراف بيجي بالتجربة. أبسط طريقة تتعلم بيها هي إنك تبص على المهام المملة اللي بتعملها أكتر من مرتين في يومك، وتفكر فوراً: "هل أقدر أعمل سكريبت PHP يخلص الموضوع ده في ثانية؟". في الأول الموضوع هياخد معاك وقت، بس بعدين هتلاقي نفسك بنيت مجموعة أدوات خاصة بيك (Toolbox) بتسهل عليك شغلك كله وبتخليك مبرمج أسرع وأكثر كفاءة.

كمان ابدأ اقرأ عن مكتبات متقدمة زي Symfony Console Component اللي بتخليك تعمل أوامر متقدمة جداً بـ Options و Arguments وشكل احترافي في الـ Terminal زي أشهر الـ Frameworks العالمية.


Share

Related posts

Jul 26, 2026 • 2 min read
Reading Count: 1
عنوان تلقائي

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

Jul 25, 2026 • 2 min read
Reading Count: 9
التشفير المتقدم في PHP: إزاي تحمي بيانات مستخدميك باستخدام Sodium وتنسى الطرق القديمة؟

التصنيف: تطوير الـ ويب (Web Development) وشروحات برمجية (Tutorials) التشفير المتقدم في PHP: إزاي تحم...

Jul 25, 2026 • 2 min read
Reading Count: 3
عنوان تلقائي

يا هلا بيك يا بشمهندس! لو بتكتب سكربتات PHP طويلة الأمد (Long-running scripts)، زي الـ Daemon proces...