Jet\DataModel_Backend
Výchozí abstraktní třída, která je společná každému backendu.
Přehled metod - obecné metody pro práci s backendy
Metoda | Význam |
---|---|
public static addBackendType( string $type, string $class_name, string $config_class_name ) : void |
Je možné přidat úplně nový typ backendu, který Jet standardně nepodporuje. Metoda zabezpečí i nastavení továrny. Vhodné místo pro takové volání je inicializační skript ~/application/Init/Factory.php Parametry:
|
public static getAllBackendTypes( ) : array |
Vrátí seznam všech známých backendů v podobě pole identifikátorů typů. |
public static getAvlBackendTypes( ) : array |
Vrátí seznam backendů použitelných na daném systému (např. podle toho, zda má PHP nainstalované potřebné moduly) v podobě pole identifikátorů typů. |
public static getMainConfig( ) : DataModel_Config |
Vrátí instanci singletonu hlavní konfigurace. |
public static getDefaultBackendType( ) : string |
Vrátí identifikátor výchozího typu backendu. Jedná se o alias volání:
self::getMainConfig()->getBackendType();
|
public static getDefaultBackend( ) : DataModel_Backend |
Vrátí instanci výchozího backendu. |
public static setDefaultBackend( DataModel_Backend $default_backend ) : void |
Nastaví instanci výchozího backendu. |
public static get( DataModel_Definition_Model $definition ) : DataModel_Backend |
Vrátí instanci backendu pro určitou konkrétní entitu (viz dále) na základě její definice. |
public static setCustomBackend( string $data_model_class_name, DataModel_Backend $backend ) : void |
Je možné nastavit pro konkrétní třídu - entitu speciální instanci backendu. Třeba i úplně jiného typu, než je bakend výchozí, nebo pouze s jiným nastavením. |
public static getCustomBackend( string $data_model_class_name ) : DataModel_Backend|null |
Viz metoda setCustomBackend. Pokud je pro entitu nastavena speciální instance backendu, pak ji vrací. |
public static unsetCustomBackend( string $data_model_class_name ) : DataModel_Backend |
Viz metoda setCustomBackend. Ruší speciální instanci backendu pro danou entitu. |
Přehled metod - metody samotného backendu
Metoda | Význam |
---|---|
public __construct( ?DataModel_Backend_Config $config=null ) |
Jediním parametrem je instance konfigurace backendu. |
public getType( ) : string |
Vrací identifikátor typu backendu. |
public getTitle( ) : string |
Vrací titulek backendu - pro člověka čitelný název. |
public isAvailable( ) : bool |
Indikuje zda je možné na daném systému a konfiguraci daný backend použít. |
public prepareDefaultDbConnectionConfig( ) : ?Db_Backend_Config |
Může předpřipravit konfiguraci databázového spojení. Užitečné pro nástroje jako je instalátor. |
public createSelectQuery( DataModel_Query $query ) : string |
Na základě definice dotazu vytvoří dotaz typu SELECT. |
public createCountQuery( DataModel_Query $query ) : string |
Na základě definice dotazu vytvoří dotaz typu SELECT s cílem určit počet záznamů. |
public createInsertQuery( DataModel_RecordData $record ) : string |
Na základě sady dat pro uložení vytvoří dotaz typu INSERT. |
public createUpdateQuery( DataModel_RecordData $record, DataModel_Query $where ) : string |
Na základě sady dat pro uložení a dotazu (jeho WHERE části) vytvoří dotaz typu UPDATE. |
public createDeleteQuery( DataModel_Query $where $where ) : string |
Na základě definice dotazu (jeho WHERE části) vytvoří dotaz DELETE. |
public save( DataModel_RecordData $record ) : mixed |
Uloží sadu dat jako nový záznam. |
public update( DataModel_RecordData $record, DataModel_Query $where $where ) : int |
Upraví sadu dat podle dotazu (jeho WHERE části) a vrátí počet ovlivněných záznamů. |
public delete( DataModel_Query $where $where ) : int |
Na základě dotazu (jeho WHERE části) smaže záznamy a vrátí počet reálně smazaných záznamů. |
public getCount( DataModel_Query $query ) : int |
Určí kolik bude mít výsledek dotazu SELECT položek. |
public fetchAll( DataModel_Query $query ) : mixed |
Provede dotaz SELECT na základě definice. Prosté nahrání všech dat. |
public fetchAssoc( DataModel_Query $query ) : mixed |
Provede dotaz SELECT na základě definice. První vlastnost bude brána jako klíč pole výsledného seznamu. |
public fetchPairs( DataModel_Query $query ) : mixed |
Provede dotaz SELECT na základě definice. Vrátí asociované pole, kde klíčem bude první určená vlastnost a hodnotou ta druhá. |
public fetchRow( DataModel_Query $query ) : mixed |
Provede dotaz SELECT na základě definice. Vrátí pouze jeden řádek. |
public fetchOne( DataModel_Query $query ) : mixed |
Provede dotaz SELECT na základě definice. Vrátí pouze jednu hodnotu. |
public fetchCol( DataModel_Query $query ) : mixed |
Provede dotaz SELECT na základě definice. Výsledkem bude prosté jednorozměrné pole tvořené první nahranou vlastností entity. |
public transactionStart( ) : void |
Zahájí transakci. |
public getTransactionStarted( ) : bool |
Indikuje zda byla transakce již zahájena. |
public getTransactionStarter( ) : DataModel|null |
Pokud byla transakce již zahájena, tak vrátí instanci té entity, která ji zahájila. |
public setTransactionStarter( ?DataModel $transaction_starter ) : void |
Nastavuje instanci entity, která zahájila transakci. |
public transactionCommit( ) : void |
Odesílá úspěšně dokončenou transakci. |
public transactionRollback( ) : void |
Vrací zpět neúspěšnou transakci. |
protected validateResultData( DataModel_Query $query, string $fetch_method, array $data ) : array |
Převádí surová data z výsledku dotazu na správné typy dle definice. |
protected unserialize( string $string ) : mixed |
Deserializuje data. |
protected serialize( mixed $data ) : string |
Serializuje data. |
public helper_tableExists( DataModel_Definition_Model $definition ) : bool |
Určuje zda příslušná databázová tabulka již existuje. |
public helper_getCreateCommand( DataModel_Definition_Model $definition, ?string $force_table_name=null ) : string |
Vrací příkaz pro vytvoření databázové tabulky pro danou třídu - tedy zpravidla SQL kód. |
public helper_create( DataModel_Definition_Model $definition ) : void |
Provede vytvoření databázové tabulky dané třídy dle definice. |
public helper_getDropCommand( DataModel_Definition_Model $definition ) : string |
Vrátí příkaz pro zrušení databázové tabulky. |
public helper_drop( DataModel_Definition_Model $definition ) : void |
Odstraní databázovou tabulku dané třídy. |
public helper_getUpdateCommand( DataModel_Definition_Model $definition ) : array |
Vrátí sadu příkazů určených k aktualizaci databázové tabulky dané třídy dle aktuální definice. |
public helper_update( DataModel_Definition_Model $definition ) : void |
Provede aktualizaci databázové tabulky dané třídy dle aktuální definice. |