ii02735 / cron-scheduler
cron-scheduler : permet de créer ses tâches CRON en PHP depuis un CLI
Requires
- php: >=5.6
- doctrine/orm: >=2.5
- mtdowling/cron-expression: >=1.2
- peppeocchi/php-cron-scheduler: >=2.4
- symfony/config: >=3.4
- symfony/console: >=3.4
- symfony/dotenv: >=3.4
- symfony/yaml: >=3.4
This package is auto-updated.
Last update: 2025-03-26 02:46:07 UTC
README
That dependency allows you to define your cron tasks for bash instructions from a PHP CLI (made with symfony/console)
Warning : you must create a cron task that will run every minutes from Linux crontab
* * * * * php <PHP project path>/vendor/ii02735/cron.php
Installation
Add the depedency to your project :
composer require ii02735/cron-scheduler
Configuration
You must create the environment .cron-scheduler-env file somewhere in your project folder with the following environment variables in order to fill database's crendentials for Doctrine :
- DB_DRIVER with your database driver
- DB_NAME with your database's name
- DB_HOST with your database's DSN
- DB_USER with the database's user
- DB_PASSWORD with the user's password
Important
- Don't forget to also add the Entity's path in your Doctrine configuration in order to update your Database after with Doctrine's CLI.
- Don't also forget to provide your YAML file with your bash commands in CRON_BASE_FILE variable (refer to syntax below)
- You can specify the language interface in the CRON_SCHEDULER_LANG variable ("en" for English by default, "fr" for French).
- You must be at the environment file's path in order to be able to use the package's dependency
Usage
Three commands are available :
- To add a task :
php ./vendor/ii02735/console cron:scheduler:add
It will look the list of bash commands in the file that you provided its path in CRON_BASE_FILE variable. If you want to add more, please respect the syntax below :
<task identifier>: ... cmd: <bash command> schedule: <cron expression> disable: true #(optional if you want to disable your task after its addition)
- To list the created tasks :
php ./vendor/ii02735/console cron:scheduler:list
- Options :
- -f, --filter=FILTER Sort tasks from their status (on|off)
- -d, --del=DEL Delete a task
- -t, --toggle=TOGGLE Enable/disable a task
- Load a YAML file as tasks to be loaded :
php ./vendor/ii02735/console cron:scheduler:load <YAML file path>
Thanks
- NoUseFreak and his collaborators for their PHP implementation for CRON jobs
- peppeocchi and his collaborateurs for their advanced implementation for CRON jobs
- dragonmantank for his CRON expression parser
Planificateur de tâches CRON
Cette dépendance vous permet de définir vos tâches CRON pour des instructions bash depuis une interface de commande en PHP.
Attention : Il vous est nécessaire de définir une tâche CRON qui s'exécutera toutes les minutes depuis Linux crontab
* * * * * php <chemin de votre projet PHP>/vendor/ii02735/cron.php
Installation
Ajouter la dépendance à votre projet :
composer require ii02735/cron-scheduler
Configuration
Vous devez créer le fichier d'environnement .cron-scheduler-env quelque part dans votre dossier de projet avec les variables d'environnement suivantes afin de donner accès à Doctrine à votre base de données :
- DB_DRIVER avec le driver de votre base de données
- DB_NAME avec le nom de votre base de données
- DB_HOST avec le DSN de votre base de données
- DB_USER avec l'utilisateur de la base de données
- DB_PASSWORD avec le mot de passe de ce dernier
Important
- N'oubliez pas de préciser le chemin de l'entité dans votre configuration de Doctrine afin de mettre à jour votre base de données avec le CLI de Doctrine
- N'oubliez pas de préciser le chemin du fichier YAML avec vos commandes bash dans la variable CRON_BASE_FILE (vérifier la syntaxe ci-dessous)
- Vous pouvez préciser la langue de l'interface dans la variable CRON_SCHEDULER_LANG ("en" pour l'anglais par défaut, "fr" pour le français).
- Vous devez être au niveau du chemin du fichier d'environnement afin de pouvoir utiliser les commandes de la dépendance
Utilisation
Trois commandes sont disponibles pour l'utilisation de la dépendance :
- Pour ajouter une tâche :
php ./vendor/ii02735/console cron:scheduler:add
La commande ira piocher la liste des instructions bash dans le fichier que vous avez précisé dans CRON_BASE_FILE Si vous souhaitez rajouter des instructions, veuillez respecter la syntaxe du fichier yml :
<id de la tâche>: ... cmd: <commande bash> schedule: <expression cron> disable: true #(optionnel si vous désactiver la commande lors de son ajout en tâche CRON)
- Pour lister les tâches :
php ./vendor/ii02735/console cron:scheduler:list
-
Options :
- -f, --filter=FILTER Trie les tâches selon leur état (on|off)
- -d, --del=DEL Supprimer une tâche
- -t, --toggle=TOGGLE Activer/désactiver une tâche
-
Pour charger un fichier contenant des instructions bash :
php ./vendor/ii02735/console cron:scheduler:load <chemin du fichier YAML>
Remerciements
- NoUseFreak et ses collaborateurs pour leur implémentation en PHP des tâches CRON
- peppeocchi et ses collaborateurs pour leur implémentation avancée des tâches CRON
- dragonmantank pour son parseur/analyseur d'expression CRON