Recommend this page to a friend! |
Download .zip |
Info | Documentation | View files (8) | Download .zip | Reputation | Support forum (1) | Blog | Links |
Last Updated | Ratings | Unique User Downloads | Download Rankings | |||||
2020-09-16 (5 months ago) | Not enough user ratings | Total: 220 This week: 1 | All time: 8,134 This week: 353 |
Version | License | PHP version | Categories | |||
cpdo 0.2.40 | Free for non-comm... | 5 | PHP 5, Databases, Cache |
Description | Author | |
This package can retrieve PDO query results from cache variables. |
Version: 0.2.3.47 beta
Github: https://github.com/marcocesarato/PHP-CPDO
Author: Marco Cesarato
This package can retrieve PDO query results from cache variables.
It extends the base PDO class and override some functions to handle database query execution and store the query results in variables.
The class can also return query results for cached queries for previously executed queries to retrieve the results faster for repeated queries.
It permit to have cached SELECT/SHOW/DESCRIBE
queries on Memory (RAM). Then after the execution the cache will be deleted.
Cache is cleaned on INSERT/UPDATE/DELETE/TRUNCATE...
only for the single table.
When we call the same query (for example on ORM based system) we retrieve from the database the same data doing the same operation and some time we overload the database server (for example retrieving big data multiple times).
This class prevent to do the same query on the database, retrieving the data from memory without overload the database server in some cases.
CPDO::connect
)You have to use this class as PDO.
CPDO introduced these new methods:
connect
This feature is a DSN autogeneration and you have to use it instead of the constructor.
connect
$db = CPDO::connect($database_type, $database_name, $database_host = null, $database_user = null, $database_pswd = null);
getTables
Return the names of all database tables as array
backup
You can backup Data (At the moment no TRIGGERS, VIEWS and EVENTS _if you need it you can request it to the developer_).
You can choose if you want the tables you want backup through an array
.
backup
$db->backup($backup_dir, $backup_tables = '*');
You can disable/enable the cache using the following methods (default is disabled):
$db->disableCache();
$db->enableCache();
or
CPDOCache::disable();
CPDOCache::enable();
You can enable/disable the debugger using the following methods (default is enabled):
$db->enableDebug();
$db->disableDebug();
or
CPDOLogger::enable();
CPDOLogger::disable();
getLogs()
array (
'count' => 3,
'queries' =>
array (
'SET NAMES \'utf8\'' =>
array (
0 =>
array (
'time' => 1530610903,
'execution_time' => 0.000247955322265625,
'cached' => false,
),
1 =>
array (
'time' => 1530610903,
'execution_time' => 0.000077955322265625,
'cached' => false,
),
),
'SELECT id FROM _deleted_records_ WHERE table = \'settings\' LIMIT 1' =>
array (
0 =>
array (
'time' => 1530610903,
'execution_time' => 0.00050687789916992188,
'cached' => false,
),
),
),
)
PS: this usage is not recommended!!!
If you want a persitent you can use the method CPDOCache::populate
for populate the cache and CPDOCache::retrieve
for retrieve the cache.
Thanks these methods you could implement a persistent cache system saving the data encoded (with json or serialization) and after restore the cache.
Pro: - Less database stress - Less queries
Cons: - Could compromise data - Could be slower (disk performance/clients connected)
// Your loader/includes... => with require_once('CPDO.php');
$database_cache_path = '/your/cache/path/database.json';
$cache = file_get_contents($database_cache_path);
$cache = json_decode($cache); // Or unserialize (slower)
CPDOCache::populate($cache);
unset($cache);
// Your code...
$cache = CPDOCache::retrieve();
$cache = json_encode($cache); // Or serialize (slower)
file_put_contents($database_cache_path, $cache);
unset($cache);
Same methods of PDO in additions the following:
| Methods | Parameters | Description | | ------------ | -------------------------------------------------- | -------------------------------------- | | connect | param $database_type<br> param null $database_name<br> param null $database_host<br> param null $database_user<br> param null $database_pswd<br> param null $database_charset<br> return bool\|static | Autogeneration of the DSN | | enableDebug | | Enable debug | | disableDebug | | Disable debug | | enableCache | | Enable cache | | disableCache | | Disable cache | | getTables | return array\|bool | Get list of database tables | | backup | param string $tables | Backup database tables or just a table | | escape | param string $value | Escape variable |
| Methods | Parameters | Description | | ------------ | -------------------------------------------------- | -------------------------------------- | | enable | | Enable logs | | disable | | Disable logs | | isEnabled | return bool | Return if logs are enabled | | addLog | param $query<br> param $time<br> param $cache | Add new log | | getLogs | return array | Get Logs | | getCounter | return int | Get Counter | | getQueries | return array | Get Counter | | cleanLogs | | Clean Logs |
| Methods | Parameters | Description | | ------------------- | -------------------------------------------------- | -------------------------------------- | | disable | | Disable cache | | isEnabled | return bool | Return if cache is enabled | | populate | param $mixed<br> return bool | Populate cache | | retrieve | return array | Retrieve Cache | | getExceptions | return array | Get all excluded tables | | addException | param $exclude | Add exception | | addExceptions | param $exclude | Add exceptions | | setcache | param $query<br> param $value<br> param null $arg | Set Cache | | getcache | param $query<br> param null $arg<br> return null | Get Cache | | deletecache | param $query | Delete Cache |
Files |
File | Role | Description | ||
---|---|---|---|---|
src (4 files) | ||||
.php_cs | Example | Example script | ||
composer.json | Data | Auxiliary data | ||
LICENSE | Lic. | License text | ||
README.md | Doc. | Documentation |
Files | / | src |
File | Role | Description |
---|---|---|
CPDO.php | Class | Class source |
CPDOCache.php | Class | Class source |
CPDOLogger.php | Class | Class source |
CPDOStatement.php | Class | Class source |
Version Control | Unique User Downloads | Download Rankings | |||||||||||||||
100% |
|
|
Applications that use this package |
If you know an application of this package, send a message to the author to add a link here.