1. Go to this page and download the library: Download nagyatka/pandabase library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
$connectionManager->initializeConnection([
"name" => "test_connection", // Connection's name.
"driver" => "mysql", // Same as PDO parameter
"dbname" => "test_dbname", // Same as PDO parameter
"host" => "127.0.0.1", // Same as PDO parameter
"user" => "root", // Same as PDO parameter
"password" => "" // Same as PDO parameter
"attributes"=> [
attributeName => value,
...
] // Optional, PDO attributes
]);
$connectionManager->initializeConnections(
[
[
"name" => "test_connection1", // Connection's name.
"driver" => "mysql", // Same as PDO parameter
"dbname" => "test_dbname1", // Same as PDO parameter
"host" => "127.0.0.1", // Same as PDO parameter
"user" => "root", // Same as PDO parameter
"password" => "" // Same as PDO parameter
],
[
"name" => "test_connection2", // Connection's name.
"driver" => "mysql", // Same as PDO parameter
"dbname" => "test_dbname2", // Same as PDO parameter
"host" => "127.0.0.1", // Same as PDO parameter
"user" => "root", // Same as PDO parameter
"password" => "" // Same as PDO parameter
],
]
);
// Set the 'test_connection2' Connection instance as the default
$connectionManager->setDefault("test_connection2");
// Returns with the instance of 'test_connection2' if exists
$connection = $connectionManager->getConnection();
// Fetch a result row as an associative array
$queryResult = ConnectionManager::fetchAssoc("SELECT * FROM table1 WHERE table_id = :_id", [
"_id" => 11
]);
// Fetch result from default connection
$queryResult1 = ConnectionManager::fetchAll("SELECT * FROM table1");
// Fetch result from default connection with parameters
$queryResult2 = ConnectionManager::fetchAll("SELECT * FROM table1 WHERE store_date > :actual_date",[
"actual_date" => date("Y-m-d H:i:s")
]);
// Fetch result from specified connection (without parameters)
$queryResult3 = ConnectionManager::fetchAll("SELECT * FROM table1",[],"test_connection2");
$result = $connection->fetchAssoc("SELECT * FROM table1 WHERE id = :id",["id" => $id]);
$result = $connection->fetchAll("SELECT * FROM table1",[]);
class Transaction extends SimpleRecord {
}
$connectionManager->initializeConnection([
"name" => "test_connection", // Connection's name.
"driver" => "mysql", // Same as PDO parameter
"dbname" => "database_name", // Same as PDO parameter
"host" => "127.0.0.1", // Same as PDO parameter
"user" => "root", // Same as PDO parameter
"password" => "" // Same as PDO parameter
"attributes"=> [
attributeName => value,
...
], // Optional, PDO attributes
"tables" => [
Transaction::class => new Table([
Table::TABLE_NAME => "transactions",
Table::TABLE_ID => "transaction_id",
]),
...
]
]);
// Create a new empty record (if your table scheme allows it)
$emptyRecord = new Transaction();
// Create a new record with values
$newRecord = new Transaction([
"transaction_value" => 5000,
"user_id" => 1234,
"store_date" => date('Y-m-d H:i:s')
]);
// To create new records in table you have to call ConnectionManager's persist function
ConnectionManager::persist($emptyRecord);
ConnectionManager::persist($newRecord);
// An other option is to use persistAll function
ConnectionManager::persistAll([
$emptyRecord,
$newRecord
]);
// Now $emptyRecord and $newRecord have transaction_id attribute
echo $emptyRecord["transaction_id"]." ".$newRecord["transaction_id"]."\n";
// Load record
$transaction = new Transaction($transactionId);
echo $transation->get("store_date").": ".$transaction["transaction_value"]; // You can use object as an array
// Load multiple record from transaction table (get all transaction of an user)
$transactions = ConnectionManager::getInstanceRecords(
Transaction::class,
"SELECT * FROM transactions WHERE user_id = :user_id",
[
"user_id" => 1234
]
);
// Update record
$transaction = new Transaction($transactionId);
$transation->set("transaction_value",4900);
$transation["store_date"] = date('Y-m-d H:i:s'); //You can use object as an array
ConnectionManager::persist($transation);
// Remove record
$transaction = new Transaction($transactionId);
$transation->remove();
class Order extends HistoryableRecord {
const Pending = 0;
const Processing = 1;
const Completed = 2;
const Declined = 3;
const Cancelled = 4;
/**
* Constructor
*/
public function __construct($parameters) {
$parameters["order_status"] = Order::Pending;
parent::__construct($parameters);
}
...
}
$connectionManager->initializeConnection([
"name" => "test_connection", // Connection's name.
"driver" => "mysql", // Same as PDO parameter
"dbname" => "database_name", // Same as PDO parameter
"host" => "127.0.0.1", // Same as PDO parameter
"user" => "root", // Same as PDO parameter
"password" => "" // Same as PDO parameter
"attributes"=> [
attributeName => value,
...
], // Optional, PDO attributes
"tables" => [
Order::class => new Table([
Table::TABLE_NAME => "orders",
Table::TABLE_ID => "order_id",
Table::TABLE_SEQ_ID => "order_sequence_id"
]),
...
]
]);
$order = new Order($order_id);
// Get full history
$orderHistory = $order->getHistory();
// You can also specify a date interval
$orderHistory = $order->getHistoryBetweenDates("2017-01-05","2017-01-08");
$transaction = new Transaction($transactionId);
$order = new Order($transaction->get("order_id")); // We suppose that a transaction table also stores a valid order_id
class Transaction extends SimpleRecord {
// ...
/** @var Order */
private $order;
// ...
/** @return Order */
public function getOrder() {
if($this->order == null) {
$this->order = new Order($this->get("order_id"));
}
return $this->order;
}
}
$connectionManager->initializeConnection([
"name" => "test_connection", // Connection's name.
"driver" => "mysql", // Same as PDO parameter
"dbname" => "database_name", // Same as PDO parameter
"host" => "127.0.0.1", // Same as PDO parameter
"user" => "root", // Same as PDO parameter
"password" => "" // Same as PDO parameter
"attributes"=> [
attributeName => value,
...
], // Optional, PDO attributes
"tables" => [
Order::class => new Table([
Table::TABLE_NAME => "orders",
Table::TABLE_ID => "order_id",
Table::TABLE_SEQ_ID => "order_sequence_id"
]),
Transaction::class => new Table([
Table::TABLE_NAME => "transactions",
Table::TABLE_ID => "transaction_id",
Table::LAZY_ATTRIBUTES => [
"order" => new LazyAttribute("order_id",Order::class)
]
]),
...
]
]);
// Load Transaction instance from db
$transaction = new Transaction($transactionId);
echo $transation->get("store_date").": ".$transaction["transaction_value"]; // You can use object as an array
/** @var Order $transactionOrder */
$transactionOrder = $transaction["order"]; // Return with an Order instance
$transactionOrderHistory = $transactionOrder->getHistory();
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.