tbp
1.0.0
TBP 는 중소기 웹 사이트를 개발하도록 설계된 가벼운 프레임 워크입니다. 구성 요소 지향에 중점을 둡니다
SQLITE 3에 대한 커넥터. 준비된 진술 (필수)과 함께 작동합니다. 거래 지원.
PHP Extension ext-sqlite3 필요합니다. phpinfo() 확인하십시오. 기본적으로 tbp-web-server DOCKER IMAGE는 SQLITE를 지원합니다.
composer.json 에 추가하여 require 섹션에 추가하십시오.
"ext-sqlite3": "*"
config/my-sqlite.config 와 같은 구성 파일을 만듭니다
# TBP/SQLite config file.
# ALL PARAMETERS ARE OPTIONAL!
# Database file name (if not defined, will use 'default.db')
filename=resources/test.db
# Access type
# readOnly=yes
# Encryption key (if not defined, no encryption used)
# encryptionKey=
AbstractSqliteDomain 확장하고 구성 파일을 전달하는 도메인을 만듭니다. 필요한 각 쿼리에 대해 하나의 메소드를 추가하십시오.
class MyDomain extends AbstractSqliteDomain
{
public function __construct ()
{
$ configReader = new Config ( __CONFIG_PATH__ ); // <-- get a config reader, passing your config folder
$ config = $ configReader -> getConfig ( ' my-sqlite ' ); // <-- read your configuration, passing your config base name
$ config -> filename = // <-- convert your relative path into absolute path
__BASE_PATH__ .
DIRECTORY_SEPARATOR .
$ config -> filename ;
parent :: __construct ( $ config );
$ this -> open (); // <-- open a db connection and let's rock!
}
public function addRegister ( $ a , $ b )
{
$ sql = " INSERT INTO `MyTableWithAutoInc` (`a`, `b`) VALUES (?, ?) " ;
$ params = array ( $ a , $ b );
return self :: insertWithAutoincrement ( $ this -> connection -> command ( $ sql , $ params ));
}
public function addAnotherRegister ( $ a , $ b )
{
$ sql = " INSERT INTO `MyOtherTable` (`a`, `b`) VALUES (?, ?) " ;
$ params = array ( $ a , $ b );
return $ this -> connection -> command ( $ sql , $ params );
}
public function getRegisters ( $ b )
{
$ sql = " SELECT * FROM `MyTableWithAutoInc` WHERE `b` <= ? " ;
$ params = array ( $ b );
return self :: getAll ( $ this -> connection -> select ( $ sql , $ params ));
}
public function getRegisterById ( $ id )
{
$ sql = " SELECT * FROM `MyTableWithAutoInc` WHERE `MyId` = ? " ;
$ params = array ( $ id );
return self :: getSingle ( $ this -> connection -> select ( $ sql , $ params ));
}
}간단한 코드 샘플 :
$ domain = new MyDomain ();
$ results = $ domain -> getRegisters ( 9391 ); // get an array트랜잭션이있는 샘플 코드 :
$ domain = new MyDomain ();
try {
$ domain -> begin ();
$ lastId = $ domain -> addRegister ( 1 , 2 );
echo " first query: last inserted id: $ lastId n" ;
$ lastId = $ domain -> addRegister ( 3 , 4 );
echo " second query: last inserted id: $ lastId n" ;
$ domain -> commit ();
} catch ( Exception $ e ) {
$ domain -> rollback ();
echo " ERROR: " . $ e -> getMessage () . "n" ;
}