getPlugins()->apply("php"); $project->setConfig(function ($c) { $c->setEntry("com/example/script/primary.php"); $c->setPackageName("com.example.script.php"); $c->setLogo("logo.png"); }); $project->getTasks()->add("taskName", function ($task) use ($console) { $task->getActions()->add("actionName1", function ($action) use ($console) { $action->setNecessary(false); $action->onPerform(function () use ($action, $console) { $console->log("taskName." . $action->getName() . " isNecessary=" . $action->isNecessary()); $console->log("taskName." . $action->getName() . " onPerform"); // 这里报错因为 setNecessary(false) 的关系, 剩下的 actionName2 还会被执行 error("1 / 0"); }); }); $task->getActions()->add("actionName2", function ($action) use ($console) { $action->setNecessary(true); $action->onPerform(function () use ($action, $console) { // actionName1 执行错误但是 setNecessary(false), 所以下面代码会执行 $console->log("taskName." . $action->getName() . " isNecessary=" . $action->isNecessary()); $console->log("taskName." . $action->getName() . " onPerform"); // 这里报错因为 setNecessary(true) 的关系, 剩下的 actionName3 不会被执行 error("1 / 0"); }); }); $task->getActions()->add("actionName3", function ($action, $console) { $action->onPerform(function () use ($action, $console) { // actionName2 执行错误并且 setNecessary(true), 所以下面代码不会执行 $console->log("taskName." . $action->getName() . " onPerform"); }); }); });