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("taskName1", function ($task) use ($console) { $task->setNecessary(false); $task->getActions()->add("actionName", function ($action) use ($console) { $action->onPerform(function () use ($console, $action) { $console->log("taskName." . $action->getName() . " onPerform"); // 这里报错, 因为 setNecessary(false) 所以 taskName2 还是会执行 error("1 / 0"); }); }); $console->log("isNecessary", $task->isNecessary()); }); $project->getTasks()->add("taskName2", function ($task) use ($console) { $task->dependsOn("taskName1"); $task->getActions()->add("actionName", function ($action) use ($console) { $action->onPerform(function () use ($console, $action) { $console->log("taskName." . $action->getName() . " onPerform"); // 这里报错, 所以 taskName3 不会执行, 默认 isNecessary() 为 true error("1 / 0"); }); }); $console->log("isNecessary", $task->isNecessary()); }); $project->getTasks()->add("taskName3", function ($task) use ($console) { $task->dependsOn("taskName2"); $task->getActions()->add("actionName", function ($action) use ($console) { $action->onPerform(function () use ($console, $action) { // 这里不会执行 $console->log("taskName." . $action->getName() . " onPerform"); }); }); $console->log("isNecessary", $task->isNecessary()); });