Returns Result
, which contains all data needed for render.
use Tlapnet\Report\DataSources\DataSource;
class FooDataSource implements DataSource
{
public function compile(Parameters $parameters): Resultable {}
}
- NetteDatabaseDataSource
- NetteDatabaseWrapperDataSource (wraps nette database connection)
- MultiNetteDatabaseWrapperDataSource (wraps nette database connection + contains more sql queries)
- DibiDataSource
- DibiWrapperDataSource (wraps dibi connection)
- MultiDibiWrapperDataSource (wraps dibi connection + contains more sql queries)
- RandomDataSource (require nette/utils)
- DevNullDataSource
- DummyDataSource
Database data sources (nette and dibi) contains special methods:
setSql($sql)
setDefaultSql($sql)
Default sql query is used if no parameters are available. (If form is not defined or filled)
Database multi-datasources are used e.g. for vertical tables. They support multiple database queries.
addSql($title, $sql)
Returns MultiResult
which contains Result
s from individual queries.
Generate random data for tests.
datasource:
factory: Tlapnet\Report\Bridges\Nette\DataSource\RandomDataSource
setup:
- addRange(price, 1, 100000)
- addDate(date)
- addDateTime(datetime)
- addRange(count, 1, 100000)
- setRows(40)
Data sources support simple caching
datasource:
factory: @report.datasource.dibi.db.wrapper
tags: [report.cache: [key: table1, expiration: +1 day]]
Supports key
and expiration
.