function menu() { echo chr(27) . "[1m--- Main menu (" . date("l d F H:i:s") . ") ---" . chr(27) . "[0m" . "\n"; echo "\nSelect a task:\n\n"; echo "[1] Update Mediboard SVN and user-oriented logger\n"; echo "[2] Configure groups and mods for Mediboard directories\n"; echo "[3] Update and rsync Mediboard SVN\n"; echo "[4] Launch Mediboard request\n"; echo "[5] Replace Mediboard database\n"; echo "[6] Backup database on a daily basis\n"; echo "[7] Send a file by FTP\n"; echo "[8] Log Ping for server load analysis\n"; echo "[9] Log Uptime for server load analysis\n"; echo "[10] Run MySQL performance tuning primer script\n"; echo "[11] Rotate binlogs\n"; echo "-------------------------------------------------------\n"; echo "[0] Quit\n"; // Waiting for input echo "\nSelected task: "; // Getting interactive input $task = trim(fgets(STDIN)); // According to the task... switch ($task) { // Update Mediboard SVN case "1": echo exec("clear") . "\n"; task1(); break; // Configure groups and mods // Configure groups and mods case "2": echo exec("clear") . "\n"; task2(); break; // Update and rsync Mediboard SVN // Update and rsync Mediboard SVN case "3": echo exec("clear") . "\n"; task3(); break; // Launch Mediboard request // Launch Mediboard request case "4": echo exec("clear") . "\n"; task4(); break; // Replace Mediboard database // Replace Mediboard database case "5": echo exec("clear") . "\n"; task5(); break; // Database backup // Database backup case "6": echo exec("clear") . "\n"; task6(); break; // Send a file by FTP // Send a file by FTP case "7": echo exec("clear") . "\n"; task7(); break; // Log Ping for server load analysis // Log Ping for server load analysis case "8": echo exec("clear") . "\n"; task8(); break; // Log Uptime for server load analysis // Log Uptime for server load analysis case "9": echo exec("clear") . "\n"; task9(); break; // Run MySQL performance tuning primer script // Run MySQL performance tuning primer script case "10": echo exec("clear") . "\n"; task10(); break; case "11": echo exec("clear") . "\n"; task11(); break; // Exit program // Exit program case "0": exit; break; // No action // No action default: echo exec("clear") . "\n"; echo "Incorrect input\n"; menu(); } }
<?php include_once 'Task.php'; include_once 'Scheduler.php'; function task1() { for ($i = 1; $i <= 10; ++$i) { echo "This is task 1 iteration {$i}.\n"; yield; } } function task2() { for ($i = 1; $i <= 5; ++$i) { echo "This is task 2 iteration {$i}.\n"; yield; } } $scheduler = new Scheduler(); $scheduler->newTask(task1()); $scheduler->newTask(task2()); $scheduler->run();
function task2() { for ($i = 1; $i <= 6; $i++) { $data = yield; echo '<p>Tâche 2, itération ' . $i . ', valeur envoyée : ' . $data . '</p>'; } } function task3() { for ($i = 1; $i <= 4; $i++) { $data = yield; echo '<p>Tâche 3, itération ' . $i . ', valeur envoyée : ' . $data . '</p>'; } } $taskRunner->addTask(task1()); $taskRunner->addTask(task2()); $taskRunner->addTask(task3()); $taskRunner->run(); ?> </p> <h2>La méthode throw()</h2> <p><strong>Lancer une exception à l'emplacement du <code>yield</code> dans le générateur - accepte un seul argument</strong></p> <p class="col-sm-12"> <?php // Génére une fatal error - normal - une exception est lancée par PHP // function generator3() { // echo "<p>Début</p>"; // yield;