LQueryBu means Light Query Business Unit, created to speed development and to
mantain business logic separated from controlers.
The MVC concept are translated to BMVC, Business, Model, View and Controlers
I don't like the ADODB schema and other SETTERS and GETTERS, I think that all must to be more simple.
LQueryBU makes a fusion between a query and it's actions.
Traditional models have it's own TABLEMODEL, all functions related to the actions with this table.
LQueryBU simplify it, having a file for each action, avoiding large TABLEMODEL files.
Also, increase speed, only need a small file, instead of loading a large library.
LQueryBU uses PDO as a generic wrapper, but can be configured to use any other wrapper.
To install the standalone examples, you must to:
Edit your apache conf.
Crete and point your virtual host (DocumentRoot) to the uncompressed "www" directory (example: lquerybu.local)
Add or check phtml type:
Addtype application/x-httpd-php .phtml
Add or check php type:
Addtype application/x-httpd-php .php
Edit your php.ini conf.
Add or check PDO:
For PHP 5.2:
For PHP 5.3:
Load the example database into your database:
Load /LQUeryBU/examples_db/wolrd_db/world.sql into your database
Edit /LQueryBU/database.php and change DB connection data
Now, you can open your browser and type the virtual host name (above): http://lquerybu.local
LQueryBU can execute any sql commands, SELECT, INSERT, UPDATE, DELETE, REPLACE, etc...
including procedures. You can do with transaction or without it.
Also, you can concatenate commands, Example: Multiple updates, if some of them fails, rollback, else commit.
Also, you can insert functions. Functions that can be called from any other unit or any place in a model.
For example, you need your own URFRIENDLY FUNTION CONVERTER when insert/update a product record, then you
must to create the fMakeUrl.php unit, and you can call it from the same unit that are updating/inserting records.
IMPORTANT: All unit files must to be coded in UTF-8
LQueryBU can save all information for debugging, you only have to enable it in the main config.php (LQUERYBU_SHOW_SQL_COMMANDS).
When instantiate the LQueryBU class, you must to set the "debugQuery" atttribute to TRUE.
$LQueryBU = new LQueryBU();
$result = $LQueryBU->getDataQuery("/example1",array("LIMIT_FROM" => 0,"LIMIT_TO"=>10,"ORDER_BY" => 1,"ASCDESC"=>"ASC"));
After enabling the debugger, you can retrive all formatted information with the dumpDebugQuery function:
$debugInformation = $LQueryBU->dumpDebugQuery();
You also can get only queries executed for profiler purpouses:
$queryInformation = $LQueryBU->dumpQueries();
The "dumpQueries" function return an array of all queries executed, with it's elapsed time:
$dumpQuery = array ( $numQuery => array ($queryCommand,$elapsedTime));
===USING ANOTHER WRAPPER===
You can use other wrapper, only need to modify LQueryBU_DBI, change extends from your wrapper, and implements
the general functions with your own.
public function DBprepare($sql);
public function DBexecute();
public function DBfetchAll();
public function DBrowCount();
public function DBlastInsertId();
public function DBcolumnCount();
public function DBgetColumnMeta($column);
public function DBbeginTransaction();
public function DBcommit();
public function DBqueryOne($sql);
public function DBrollBack();
The Standalone comes with four examples, three of them showing a tablegrid and it's possibilities
and the fourth, a recordgrid example, calling a UPDATE unit.
The examples comes with NavVars.php class, as makes more readable the base code.