mirror of
https://gitlab.com/hashborgir/d2tools.git
synced 2025-04-27 14:55:38 +00:00
168 lines
4.4 KiB
PHP
168 lines
4.4 KiB
PHP
<?php
|
|
|
|
namespace RedBeanPHP;
|
|
|
|
use RedBeanPHP\OODB as OODB;
|
|
use RedBeanPHP\QueryWriter as QueryWriter;
|
|
use RedBeanPHP\Adapter\DBAdapter as DBAdapter;
|
|
use RedBeanPHP\Adapter as Adapter;
|
|
|
|
/**
|
|
* ToolBox.
|
|
*
|
|
* The toolbox is an integral part of RedBeanPHP providing the basic
|
|
* architectural building blocks to manager objects, helpers and additional tools
|
|
* like plugins. A toolbox contains the three core components of RedBeanPHP:
|
|
* the adapter, the query writer and the core functionality of RedBeanPHP in
|
|
* OODB.
|
|
*
|
|
* @file RedBeanPHP/ToolBox.php
|
|
* @author Gabor de Mooij and the RedBeanPHP community
|
|
* @license BSD/GPLv2
|
|
*
|
|
* @copyright
|
|
* copyright (c) G.J.G.T. (Gabor) de Mooij and the RedBeanPHP Community.
|
|
* This source file is subject to the BSD/GPLv2 License that is bundled
|
|
* with this source code in the file license.txt.
|
|
*/
|
|
class ToolBox
|
|
{
|
|
/**
|
|
* @var OODB
|
|
*/
|
|
protected $oodb;
|
|
|
|
/**
|
|
* @var QueryWriter
|
|
*/
|
|
protected $writer;
|
|
|
|
/**
|
|
* @var DBAdapter
|
|
*/
|
|
protected $adapter;
|
|
|
|
/**
|
|
* Constructor.
|
|
* The toolbox is an integral part of RedBeanPHP providing the basic
|
|
* architectural building blocks to manager objects, helpers and additional tools
|
|
* like plugins. A toolbox contains the three core components of RedBeanPHP:
|
|
* the adapter, the query writer and the core functionality of RedBeanPHP in
|
|
* OODB.
|
|
*
|
|
* Usage:
|
|
*
|
|
* <code>
|
|
* $toolbox = new ToolBox( $oodb, $adapter, $writer );
|
|
* $plugin = new MyPlugin( $toolbox );
|
|
* </code>
|
|
*
|
|
* The example above illustrates how the toolbox is used.
|
|
* The core objects are passed to the ToolBox constructor to
|
|
* assemble a toolbox instance. The toolbox is then passed to
|
|
* the plugin, helper or manager object. Instances of
|
|
* TagManager, AssociationManager and so on are examples of
|
|
* this, they all require a toolbox. The toolbox can also
|
|
* be obtained from the facade using: R::getToolBox();
|
|
*
|
|
* @param OODB $oodb Object Database, OODB
|
|
* @param DBAdapter $adapter Database Adapter
|
|
* @param QueryWriter $writer Query Writer
|
|
*/
|
|
public function __construct( OODB $oodb, Adapter $adapter, QueryWriter $writer )
|
|
{
|
|
$this->oodb = $oodb;
|
|
$this->adapter = $adapter;
|
|
$this->writer = $writer;
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Returns the query writer in this toolbox.
|
|
* The Query Writer is responsible for building the queries for a
|
|
* specific database and executing them through the adapter.
|
|
*
|
|
* Usage:
|
|
*
|
|
* <code>
|
|
* $toolbox = R::getToolBox();
|
|
* $redbean = $toolbox->getRedBean();
|
|
* $adapter = $toolbox->getDatabaseAdapter();
|
|
* $writer = $toolbox->getWriter();
|
|
* </code>
|
|
*
|
|
* The example above illustrates how to obtain the core objects
|
|
* from a toolbox instance. If you are working with the R-object
|
|
* only, the following shortcuts exist as well:
|
|
*
|
|
* - R::getRedBean()
|
|
* - R::getDatabaseAdapter()
|
|
* - R::getWriter()
|
|
*
|
|
* @return QueryWriter
|
|
*/
|
|
public function getWriter()
|
|
{
|
|
return $this->writer;
|
|
}
|
|
|
|
/**
|
|
* Returns the OODB instance in this toolbox.
|
|
* OODB is responsible for creating, storing, retrieving and deleting
|
|
* single beans. Other components rely
|
|
* on OODB for their basic functionality.
|
|
*
|
|
* Usage:
|
|
*
|
|
* <code>
|
|
* $toolbox = R::getToolBox();
|
|
* $redbean = $toolbox->getRedBean();
|
|
* $adapter = $toolbox->getDatabaseAdapter();
|
|
* $writer = $toolbox->getWriter();
|
|
* </code>
|
|
*
|
|
* The example above illustrates how to obtain the core objects
|
|
* from a toolbox instance. If you are working with the R-object
|
|
* only, the following shortcuts exist as well:
|
|
*
|
|
* - R::getRedBean()
|
|
* - R::getDatabaseAdapter()
|
|
* - R::getWriter()
|
|
*
|
|
* @return OODB
|
|
*/
|
|
public function getRedBean()
|
|
{
|
|
return $this->oodb;
|
|
}
|
|
|
|
/**
|
|
* Returns the database adapter in this toolbox.
|
|
* The adapter is responsible for executing the query and binding the values.
|
|
* The adapter also takes care of transaction handling.
|
|
*
|
|
* Usage:
|
|
*
|
|
* <code>
|
|
* $toolbox = R::getToolBox();
|
|
* $redbean = $toolbox->getRedBean();
|
|
* $adapter = $toolbox->getDatabaseAdapter();
|
|
* $writer = $toolbox->getWriter();
|
|
* </code>
|
|
*
|
|
* The example above illustrates how to obtain the core objects
|
|
* from a toolbox instance. If you are working with the R-object
|
|
* only, the following shortcuts exist as well:
|
|
*
|
|
* - R::getRedBean()
|
|
* - R::getDatabaseAdapter()
|
|
* - R::getWriter()
|
|
*
|
|
* @return DBAdapter
|
|
*/
|
|
public function getDatabaseAdapter()
|
|
{
|
|
return $this->adapter;
|
|
}
|
|
}
|