ما هو cron-express؟
cron-express هي مكتبة PHP خفيفة الوزن لإنشاء وإدارة مخططي المهام (مهام تشبه cron) مباشرة في كود تطبيقك. تتيح لك تحديد دورية تنفيذ المهام باستخدام تركيب نحوي قابل للقراءة البشرية (مثل 'every 10 minutes', 'daily at 14:30')، بدلاً من تعبيرات cron المعقدة. المكتبة مثالية لأطر العمل Laravel و Symfony و PHP الخالص.
لماذا نحتاج إلى مخطط المهام؟
في تطوير الويب، غالبًا ما تكون هناك حاجة لتنفيذ عمليات خلفية: إرسال النشرات البريدية، تنظيف ذاكرة التخزين المؤقت، إنشاء التقارير، مزامنة البيانات مع API. استخدام cron النظامي يتطلب الوصول إلى الخادم وتحرير crontab. cron-express يحل هذه المشكلة من خلال السماح بإدارة المهام برمجيًا — جميع الإعدادات مخزنة في ملفات PHP، مما يبسط النشر والتحكم في الإصدارات.
التثبيت
قم بتثبيت المكتبة عبر Composer:
composer require mtdowling/cron-expressionأو لمخطط أكثر تقدمًا بتركيب نحوي قابل للقراءة البشرية:
composer require dragonmantank/cron-expressionبعد التثبيت، قم بتضمين محمل Composer التلقائي:
require 'vendor/autoload.php';الوظائف الأساسية
- فترات زمنية قابلة للقراءة البشرية: 'every 5 minutes', 'every hour', 'daily at 10:00', 'weekly on Monday'
- إعداد وقت مرن: دعم المناطق الزمنية، أيام الأسبوع، الأشهر
- التكامل مع أطر العمل: حلول جاهزة لـ Laravel (Artisan) و Symfony (Console)
- الأمان: منع التشغيل المتزامن لنفس المهمة (overlapping protection)
- التسجيل: دعم مدمج لتسجيل نتائج التنفيذ في ملف أو قاعدة بيانات
مثال كود PHP
<?phprequire 'vendor/autoload.php';
use Cron\\CronExpression;
// إنشاء مهمة: تنفيذ كل 30 دقيقة$cron = new CronExpression('*/30 * * * *');
// التحقق مما إذا كان يجب التنفيذ الآنif ($cron->isDue(new DateTime())) { echo 'نقوم بتشغيل المهمة: تنظيف ذاكرة التخزين المؤقت'; // الكود الخاص بك clearCache();}
// مثال بتركيب نحوي قابل للقراءة البشرية (يتطلب مكتبة dragonmantank/cron-expression)$expression = 'every 2 hours';$cron = CronExpression::factory($expression);echo $cron->getNextRunDate()->format('Y-m-d H:i:s'); // 2025-04-01 14:00:00?>متى تستخدم cron-express؟
- تطبيقات الويب: لإرسال الإشعارات، تحديث الإحصائيات
- خدمات API: المزامنة الدورية مع الخدمات الخارجية
- التطوير: اختبار مهام cron محليًا دون إعداد cron النظامي
- النشر: تخزين الجدول الزمني في Git مع الكود
المكتبة مفيدة بشكل خاص في المشاريع التي تكون فيها الإدارة المركزية للعمليات الخلفية مهمة. إنها تخفض حاجز الدخول للمبتدئين وتسرع التطوير للمبرمجين ذوي الخبرة.
أيضاً في المكتبة
توليد PDF في Swift (iOS/macOS): نظرة عامة على الأدوات والأمثلة
اختبار في JavaScript (Node.js): الأطر والأدوات
مقاييس Prometheus في Rust: مكتبة prometheus و metrics-exporter-prometheus
مكتبات WebSocket في Rust: Tokio-tungstenite و async-tungstenite للوقت الفعلي
تسلسل الكائنات في C++: المكتبات والطرق وأمثلة الكود