10.26
php
saved
po-LK
Note
Example BakeTask component for 1.2 branch
Example BakeTask component for 1.2 branch
- <?php
- require('cake'.DS.'scripts'.DS.'tasks'.DS.'bake_task.php');
- // called tasks must return strings instead of print
- class BakeTaskComponent extends BakeTask {
- // rewrited parent method so it calls execute() on given task
- $class = $this->getTaskClass($taskName);
- if ($class !== null) {
- $return = $class->execute($params);
- $return = '';
- }
- return $return;
- } else {
- return 'Task not found: ' . $taskName;
- }
- }
- // calls method help() on task
- function help($taskName = '') {
- return 'You have to specify which task are You asking for help';
- }
- $class = $this->getTaskClass($taskName);
- if ($class !== null) {
- return $class->help();
- } else {
- return 'Task not found: ' . $taskName;
- }
- }
- // Uses inflector so tasknames and filenames could be underscored
- function getTaskClass($taskName) {
- $scriptDir = CAKE_CORE_INCLUDE_PATH.DS.'cake'.DS.'scripts';
- $taskPath = 'tasks'.DS.$taskName.'_task.php';
- $taskName = Inflector::camelize($taskName).'Task';
- $fileExists = true;
- require(VENDORS.$taskPath);
- require($scriptDir.DS.$taskPath);
- } else {
- $fileExists = false;
- }
- }
- if ($fileExists) {
- return new $taskName;
- }
- return null;
- }
- }
- ?>
Parsed in 0.088 seconds, using GeSHi 1.0.7.14