function actionPhase() { $dispatcher =& CSR::get('dispatcher'); $parsed = $dispatcher->getParsedParams(); switch (true) { case $parsed['target'][0] === '/': CSR::addPhase(PHASE_ACTION, array('CSR_DefaultPhases', 'fileActionPhase')); break; case (PHP_OS === 'WIN32' || PHP_OS === 'WINNT') && preg_match('#^[a-zA-Z]+:#', $parsed['target']) > 0: CSR::addPhase(PHASE_ACTION, array('CSR_DefaultPhases', 'fileActionPhase')); break; case strpos($parsed['target'], '://') !== false: CSR::addPhase(PHASE_ACTION, array('CSR_DefaultPhases', 'urlActionPhase')); break; case strpos($parsed['target'], '/') !== false: CSR::addPhase(PHASE_ACTION, array('CSR_DefaultPhases', 'mvcActionPhase')); break; default: CSR::addPhase(PHASE_ACTION, array('CSR_DefaultPhases', 'unknownActionPhase')); } // Retry action phase CSR::phaseTo(PHASE_ACTION); }