private static function _createMigrationClassName($argTblName) { $migrationName = ORMapper::getGeneratedModelName($argTblName); if (strlen($migrationName) - strlen('migration') === strpos(strtolower($migrationName), 'migration')) { // 何もしない } else { $migrationName = $migrationName . "Migration"; } return $migrationName; }
/** * 登録する * @param string DB接続情報 */ public static function registration($argID = NULL, $argPass = NULL, $argDSN = NULL) { if (FALSE === self::$_initialized) { self::_init($argDSN); } $id = $argID; $pass = $argPass; if (NULL === $id) { if (TRUE === class_exists('Flow', FALSE) && isset(Flow::$params) && isset(Flow::$params['post']) && TRUE === is_array(Flow::$params['post']) && isset(Flow::$params['post'][self::$authIDField])) { // Flowに格納されているPOSTパラメータを自動で使う $id = Flow::$params['post'][self::$authIDField]; } if (isset($_REQUEST) && isset($_REQUEST[self::$authIDField])) { // リクエストパラメータから直接受け取る $id = $_REQUEST[self::$authIDField]; } } if (NULL === $pass) { if (TRUE === class_exists('Flow', FALSE) && isset(Flow::$params) && isset(Flow::$params['post']) && TRUE === is_array(Flow::$params['post']) && isset(Flow::$params['post'][self::$authPassField])) { // Flowに格納されているPOSTパラメータを自動で使う $pass = Flow::$params['post'][self::$authPassField]; } if (isset($_REQUEST) && isset($_REQUEST[self::$authPassField])) { // リクエストパラメータから直接受け取る $pass = $_REQUEST[self::$authPassField]; } } $id = self::_resolveEncrypted($id, self::$authIDEncrypted); $pass = self::_resolveEncrypted($pass, self::$authPassEncrypted); $gmtDate = Utilities::date('Y-m-d H:i:s', NULL, NULL, 'GMT'); $query = '`' . self::$authIDField . '` = :' . self::$authIDField . ' AND `' . self::$authPassField . '` = ' . self::$authPassField . ' '; $binds = array(self::$authIDField => $id, self::$authPassField => $pass); $User = ORMapper::getModel(self::$_DBO, self::$authTable, $query, $binds); $User->{'set' . str_replace(' ', '', ucwords(str_replace('_', ' ', self::$authIDField)))}($id); $User->{'set' . str_replace(' ', '', ucwords(str_replace('_', ' ', self::$authPassField)))}($pass); $User->{'set' . str_replace(' ', '', ucwords(str_replace('_', ' ', self::$authCreatedField)))}($gmtDate); $User->{'set' . str_replace(' ', '', ucwords(str_replace('_', ' ', self::$authModifiedField)))}($gmtDate); if (TRUE === $User->save()) { // ユーザーの登録は完了とみなし、コミットを行う! self::$_DBO->commit(); } return $User; }
protected function _getModel($argModel, $argIdentifierORQuery = NULL, $argBinds = NULL, $argDSN = NULL) { if (NULL !== $argIdentifierORQuery) { return ORMapper::getModel(self::_getDBO($argDSN), $argModel, $argIdentifierORQuery, $argBinds); } else { return ORMapper::getModel(self::_getDBO($argDSN), $argModel); } }
public static function clear() { if (FALSE === self::$_initialized) { // 自動セッションスタート self::_init(); } // 8バイト以下の$_COOKIE[self::$_tokenKeyName]はセットされていてもTOKENとして認めない if (isset($_COOKIE[self::$_tokenKeyName]) && strlen($_COOKIE[self::$_tokenKeyName]) > 8) { // Cookieが在る場合はCookieからトークンと固有識別子を初期化する $token = $_COOKIE[self::$_tokenKeyName]; // SESSIONレコードを走査 $binds = array(self::$_sessionPKeyName => $token); $Session = ORMapper::getModel(self::$_DBO, self::$_sessionTblName, '`' . self::$_sessionPKeyName . '` = :' . self::$_sessionPKeyName . ' limit 1', $binds); if (strlen($Session->{self::$_sessionPKeyName}) > 0) { // 該当レコードを削除 $Session->remove(); } // check無しの$identifierの特定 $identifier = self::_tokenToIdentifier($token, TRUE); if (FALSE !== $identifier && strlen($identifier) > 0) { // 該当のSessionDataも削除 parent::clear($identifier); } debug('cookie clear!'); // 二度処理しない為に削除する unset($_COOKIE[self::$_tokenKeyName]); setcookie(self::$_tokenKeyName, '', time() - 3600); } return TRUE; }
/** * identifierに紐づくセッションデータレコードをクリアする * @param string セッションデータのプライマリーキー * @param int 有効期限の直指定 * @param mixed DBDSN情報の直指定 */ public static function clear($argPKey = NULL, $argExpiredtime = NULL, $argDSN = NULL) { if (FALSE === self::$_initialized) { self::_init($argExpiredtime, $argDSN); } $binds = array(self::$_sessionDataPKeyName => $argPKey); $Session = ORMapper::getModel(self::$_DBO, self::$_sessionDataTblName, '`' . self::$_sessionDataPKeyName . '` = :' . self::$_sessionDataPKeyName . ' limit 1', $binds); $Session->remove(); }