tbp
1.0.0
TBP ist ein leichtes Framework, das für die Entwicklung kleiner und mittlerer Websites entwickelt wurde. Fokussiert auf Komponentenorientiert
Anschluss zu SQLite3. Arbeitet mit vorbereiteten Aussagen (obligatorisch). Unterstützung für Transaktionen.
PHP-Erweiterung ext-sqlite3 erforderlich. Überprüfen Sie phpinfo() . Standardmäßig unterstützt tbp-web-server -Docker-Bild SQLite.
Fügen Sie Ihrem composer.json hinzu, um einen Abschnitt require :
"ext-sqlite3": "*"
Erstellen Sie eine Konfigurationsdatei wie 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=
Erstellen Sie eine Domäne , die AbstractSqliteDomain erweitert und Ihre Konfigurationsdatei übergeben. Fügen Sie eine Methode für jede benötigte Abfrage hinzu.
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 ));
}
}Beispiel für direkten Code:
$ domain = new MyDomain ();
$ results = $ domain -> getRegisters ( 9391 ); // get an arrayBeispielcode mit Transaktionen:
$ 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" ;
}