本文整理汇总了PHP中Process::select方法的典型用法代码示例。如果您正苦于以下问题:PHP Process::select方法的具体用法?PHP Process::select怎么用?PHP Process::select使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Process
的用法示例。
在下文中一共展示了Process::select方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: includeProcessAfterActualStep
/** zagnieżdża proces za aktualnie wykonywanym krokiem
*
* uwaga w tej chwili istnieje możliwość zagnieżdżania procesów tylko w głównym procesie,
* jeżeli kiedyś zajdzie taka potrzeba należy dorobić funkcjonalność zagnieżdzania procesów w głąb o więcej niż 1 stopień
*
* @param string $processName
*/
public function includeProcessAfterActualStep($processName)
{
$model = new Process();
$row = $model->fetchRow($model->select()->where('process_name = ?', $processName));
if (is_null($row)) {
throw new Exception('Nie znaleziono procesu o takiej nazwie');
}
$row = $row->toArray();
$processId = $row['id'];
$processDescription = $row['description'];
$model = new ProcessSteps();
$rowset = $model->fetchAll($model->select()->where('process_id = ?', $processId)->order('step_order'));
if (is_null($rowset)) {
throw new Exception('Nie znaleziono żadnych kroków przypisanych do tego procesu');
}
$rowset = $rowset->toArray();
// jeżeli jesteśmy w głównym procesie
if ($this->actualProcesName == $this->generalProcesName) {
// budowana nowa tablica kroków z zagnieżdzonym procesem
$newStepsArray = array();
for ($i = 0; $i <= $this->actualStep; $i++) {
$newStepsArray[] = $this->sessionNamespace->stepArray[$i];
}
$includedProcessArray = array(self::INCLUDED_PROCESS => true, 'processName' => $processName, 'description' => $processDescription, 'done' => false, 'stepArray' => array());
foreach ($rowset as $stepRow) {
$tmpArray = array('action_name' => $stepRow['action'], 'controller' => $stepRow['controller'], 'description' => $stepRow['description'], 'done' => false);
$includedProcessArray['stepArray'][] = $tmpArray;
}
$newStepsArray[] = $includedProcessArray;
for ($i = $this->actualStep + 1; $i < count($this->sessionNamespace->stepArray); $i++) {
$newStepsArray[] = $this->sessionNamespace->stepArray[$i];
}
$this->sessionNamespace->stepArray = $newStepsArray;
$this->setStepsToView();
} else {
// @to_do zrobić możliwość zagnieżdżania procesów w głąb więcej niż o jeden!
throw new Exception('Nie można zagnieżdżać procesów więcej niż 1 w głąb');
}
}
示例2: __call
public function __call($methodName, $args)
{
// jeżeli nie używać kolejki kroków
if (!Base_Controller_Action_Helper_Steps::getUseSteps()) {
return parent::__call($methodName, $args);
}
// jeżeli akcja nie jest akcją inicjującą proces
if (substr($methodName, -13, 7) != 'Process' || substr($methodName, -6) != 'Action') {
return parent::__call($methodName, $args);
}
$stepsHelper = $this->_helper->getHelper('steps');
$processName = substr($methodName, 0, -13);
// jeżeli akcja zamykająca proces, zakończ proces i przekieruj na wyszukiwanie
if ($processName == 'stop') {
$ownerAction = $stepsHelper->getOwnerAction();
$this->_helper->messenger->error("Proces '" . $stepsHelper->getGeneralProcesDesc() . "' został anulowany");
$stepsHelper->closeStepsQueue();
$redirector = $this->_helper->getHelper('Redirector');
$redirector->setExit(true);
if ($ownerAction === false || !is_array($ownerAction)) {
$this->_helper->redirector('index', 'index', null, array());
} else {
$this->_helper->redirector($ownerAction['action'], $ownerAction['controller'], null, $ownerAction['params']);
}
return;
}
// jeżeli jesteśmy w kolejce kroków
if ($stepsHelper->isStepsQueue()) {
// jeżeli wywołany proces jest innym procesem niż ten w kolejce
if ($stepsHelper->getGeneralProcessName() != $processName) {
$stepsHelper->closeStepsQueue();
$stepsHelper->initNewProcess($processName);
}
// jeżeli kolejka kroków nie istnieje
} else {
$model = new Process();
$row = $model->fetchRow($model->select('id')->where('process_name = ? ', $processName));
if (is_null($row)) {
return parent::__call($methodName, $args);
}
$stepsHelper->initNewProcess($processName);
}
$stepsHelper->forwardToActualStep($this->getRequest()->getParams());
}