PHP Class Xpressengine\Database\DatabaseHandler

* Illuminate\Database 를 이용해 데이터 연결 * 다중 database 연결/Transaction 지원 * 각 package, plugin 에서 database connection 을 선택적으로 이용 할 수 있도록 지원 * xe.php 의 database config 설정 - laravel database config 를 이용해서 Database 연결 * Illuminate\Database 의 인터페이스 지원 - 다중 connection, proxy 처리를 위해 추가 인터페이스 지원 ## app binding * xe.db 로 바인딩 되어 있음 * XeDB facade 제공 ## interception * XeDB ## 사용법 ### Database connection * 기본 설정으로 되어 있는 database connect * database.php 의 default 설정으로 연결 php VirtualConnectionInterface $connector = XeDB::connection(); * xe.php 의 database config 'configName' 설정으로 되어 있는 database connect php $connector = XeDB::connection('configName'); ### Transaction * VirtualConnection 통해 TransactionHandler 에서 처리 * 모든 Connection 에 transaction 처리됨 php XeDB::beginTransaction(); XeDB::commit(); XeDB::rollBack(); ### Query * Database 에 query 하기 위해서 VirtualConnectionInterface 의 table(), dynamic() 메소드 사용 * table(), dynamic() 은 DynamicQuery 반환 * DynamicQuery 는 Illuminate\Database\Query\Builder 사용 * dynamic() 은 ProxyManager 를 사용하도록 함 (DynamicField 의 DatabaseProxy 참고) php $connector = app('xe.db'); $query = XeDB::table('user'); $result = XeDB::table('user')->first(); $proxyConfig = [... config for proxy ...]; $query = XeDB::dynamic('tableName', $proxyConfig);
Author: XE Developers ([email protected])
Inheritance: implements Illuminate\Database\ConnectionResolverInterface
Show file Open project: xpressengine/xpressengine Class Usage Examples

Protected Properties

Property Type Description
$config array ..], 'slave' => ['connectionName', 'connectionName', ...], ], ... ] ```
$coupler DatabaseCoupler

Public Methods

Method Description
__call ( string $method, array $parameters ) : mixed \Illuminate\Database\DatabaseManager 와 동일한 기능을 제공.
__construct ( DatabaseCoupler $coupler, array $config ) create instance
connection ( null | string $name = null ) : Xpressengine\Database\VirtualConnectionInterface get connector 실제 connection 을 만들지 않고 connector 에서 config 에 따라 master, slave 가 어떤 connection 이름을 사용할지 결정 후 connector 를 반환.
getConfig ( ) : array get config
getDefaultConnection ( ) : string Illuminate\Database\ConnectionResolverInterface
setDefaultConnection ( string $connectionName ) : void Illuminate\Database\ConnectionResolverInterface

Private Methods

Method Description
config ( string $connectorName ) : array get config
makeConnector ( string $name ) : Xpressengine\Database\VirtualConnectionInterface get connector from DatabaseCoupler

Method Details

__call() public method

\Xpressengine\Database\VirtualConnection 의 method 실행.
public __call ( string $method, array $parameters ) : mixed
$method string method name
$parameters array parameters
return mixed

__construct() public method

create instance
public __construct ( DatabaseCoupler $coupler, array $config )
$coupler DatabaseCoupler database coupler
$config array config/xe.php database 설정

connection() public method

get connector 실제 connection 을 만들지 않고 connector 에서 config 에 따라 master, slave 가 어떤 connection 이름을 사용할지 결정 후 connector 를 반환.
public connection ( null | string $name = null ) : Xpressengine\Database\VirtualConnectionInterface
$name null | string config/xe.php database connector name
return Xpressengine\Database\VirtualConnectionInterface

getConfig() public method

get config
public getConfig ( ) : array
return array

getDefaultConnection() public method

Illuminate\Database\ConnectionResolverInterface
public getDefaultConnection ( ) : string
return string

setDefaultConnection() public method

Illuminate\Database\ConnectionResolverInterface
public setDefaultConnection ( string $connectionName ) : void
$connectionName string connection 이름
return void

Property Details

$config protected property

..], 'slave' => ['connectionName', 'connectionName', ...], ], ... ] ```
protected array $config
return array

$coupler protected property

protected DatabaseCoupler,Xpressengine\Database $coupler
return DatabaseCoupler