/** * add action entry point * * @access public */ function perform() { $r = $this->_getopt(array('basedir=', 'skelfile=', 'gateway=')); if (Ethna::isError($r)) { return $r; } list($opt_list, $arg_list) = $r; // action_name $action_name = array_shift($arg_list); if ($action_name == null) { return Ethna::raiseError('action name isn\'t set.', 'usage'); } $r = Ethna_Controller::checkActionName($action_name); if (Ethna::isError($r)) { return $r; } // add entry point $ret = $this->_perform('EntryPoint', $action_name, $opt_list); if (Ethna::isError($ret) || $ret === false) { return $ret; } // add action (no effects if already exists.) $ret = $this->_perform('Action', $action_name, $opt_list); if (Ethna::isError($ret) || $ret === false) { return $ret; } return true; }
/** * add action * * @access public */ function perform() { // // '-w[with-unittest]' and '-u[unittestskel]' option // are not intuisive, but I dare to define them because // -t and -s option are reserved by add-[action|view] handle // and Ethna_Getopt cannot interpret two-character option. // $r = $this->_getopt(array('basedir=', 'skelfile=', 'gateway=', 'with-unittest', 'unittestskel=')); if (Ethna::isError($r)) { return $r; } list($opt_list, $arg_list) = $r; // action_name $action_name = array_shift($arg_list); if ($action_name == null) { return Ethna::raiseError('action name isn\'t set.', 'usage'); } $r =& Ethna_Controller::checkActionName($action_name); if (Ethna::isError($r)) { return $r; } $ret =& $this->_perform('Action', $action_name, $opt_list); return $ret; }
/** * add action * * @access public */ function perform() { $r =& $this->_getopt(array('basedir=', 'skelfile=', 'gateway=')); if (Ethna::isError($r)) { return $r; } list($opt_list, $arg_list) = $r; // action_name $action_name = array_shift($arg_list); if ($action_name == null) { return Ethna::raiseError('action name isn\'t set.', 'usage'); } $r =& Ethna_Controller::checkActionName($action_name); if (Ethna::isError($r)) { return $r; } $ret =& $this->_perform('Action', $action_name, $opt_list); return $ret; }
/** * コマンドの実装 * * @access public * @return mixed 成否結果(true=>成功, Ethna_Error=>失敗) */ function &perform() { // 引数取得 $r = $this->_getopt(array("basedir=", "overwrite=", "skelton-namespace=")); if (Ethna::isError($r)) { return $r; } list($optlist, $arglist) = $r; $r =& Ethna_Controller::checkActionName($arglist[0]); if (Ethna::isError($r)) { return $r; } // 引数処理 $app_dir = isset($optlist['basedir']) ? $optlist['basedir'] : getcwd(); $baseAction = $arglist[0]; $model = $arglist[1]; // アプリケーションController取得 $c =& Ethna_Handle::getAppController($app_dir); if (Ethna::isError($c)) { echo 'Not found Project Directory!'; return $c; } // Backend取得 $backend =& $c->getBackend(); $generator =& new Ethna_Generator(); // Template AppObject生成 $r =& $generator->generate('ScaffoldTemplateAppObject', $app_dir); if (Ethna::isError($r)) { return $r; } // AppObject生成 $r =& $generator->generate('ScaffoldAppObject', $app_dir, $model); if (Ethna::isError($r)) { return $r; } // AppObject取得 $appObj =& $backend->getObject($model); $modelDefine = $appObj->prop_def; $idDefine = $appObj->getIdDef(); // ActionForm定義 $formDefine = $this->_getActionFormDefine($model, $modelDefine); // カラム名定義 $r =& $generator->generate('ScaffoldColumnName', $app_dir, $model, $modelDefine); if (Ethna::isError($r)) { return $r; } // BaseActionForm Generator $r =& $generator->generate('ScaffoldActionForm', $app_dir, $model, $modelDefine, $formDefine); if (Ethna::isError($r)) { return $r; } // Actions Generator $r =& $generator->generate('ScaffoldActions', $app_dir, $baseAction, $model, $modelDefine, $idDefine, $formDefine); if (Ethna::isError($r)) { return $r; } // Views Generator $r =& $generator->generate('ScaffoldViews', $app_dir, $baseAction, $model, $modelDefine, $idDefine, $formDefine); if (Ethna::isError($r)) { return $r; } // Templates Generator $r =& $generator->generate('ScaffoldTemplates', $app_dir, $baseAction, $model, $modelDefine, $idDefine, $formDefine); if (Ethna::isError($r)) { return $r; } // Smarty Plugin $r =& $generator->generate('ScaffoldSmartyPlugin', $app_dir); if (Ethna::isError($r)) { return $r; } // UnitTestCase Generator // UnitTestCase GeneratorはEthcaffoldの標準に含まれているものではないため無い場合がある $r =& $generator->generate('UnitTestCase', $app_dir, $model); if (Ethna::isError($r)) { if ($r->getCode() !== E_PLUGIN_NOTFOUND) { return $r; } } $true = true; return $true; }