/** * コンストラクタ * * @param Cascade_Facade_Facade セッション * @param string スキーマ名 */ public function __construct(Cascade_Facade_Facade $session, $schema_name) { parent::__construct($session); // 基本情報を内部変数に格納 $this->schema_name = $schema_name; $this->delegate = new Cascade_Proxy_PassThroughGateway($session, $schema_name); list($this->namespace, $this->identifier) = Cascade_System_Schema::parseSchemaName($schema_name); // トリガーの設置 $this->delegate->setBeforeTrigger($this, 'callSessionBefore'); $this->delegate->setAfterTrigger($this, 'callSessionAfter'); }
/** * インスタンスを生成する * * @param string スキーマ名 * @return Cascade_DB_DataFormat インスタンス */ public static function createInstance($schema_name) { // クラス名の取得 $class_name = Cascade_System_Schema::getDataFormatClassName($schema_name); if (class_exists($class_name) === FALSE) { $ex_msg = 'Not found DataFormat {schema_name, class_name} %s %s'; $ex_msg = sprintf($ex_msg, $schema_name, $class_name); throw new Cascade_Exception_Exception($ex_msg); } // インスタンス作成 $instance = new $class_name(); if ($instance instanceof Cascade_DB_DataFormat === FALSE) { $ex_msg = 'Invalid a Instance of DataFormat {class} %s'; $ex_msg = sprintf($ex_msg, $class_name); throw new Cascade_Exception_Exception($ex_msg); } // 作成したインスタンスを返す return $instance; }
/** * インスタンスを生成する * * @param string スキーマ名 * @return Cascade_DB_Gateway インスタンス */ public static function createInstance($schema_name) { // 基本情報の取得 $data_format = Cascade::getDataFormat($schema_name); $facade = Cascade_Facade_Facade::getInstance($data_format); $class_name = Cascade_System_Schema::getGatewayClassName($schema_name); // インスタンス作成 $instance = class_exists($class_name) ? new $class_name($facade, $schema_name) : new Cascade_Proxy_PassThroughGateway($facade, $schema_name); if ($instance instanceof Cascade_Proxy_Gateway === FALSE) { $ex_msg = 'Invalid a Instance of Gateway {class} %s'; $ex_msg = sprintf($ex_msg, $class_name); throw new Cascade_Exception_Exception($ex_msg); } // 作成したインスタンスを返す return $instance; }