Ferreteria/v0.6/clade/Sys/Data/Engine/Oper: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
m (Woozle moved page Ferreteria/v0.6/clade/Sys/Data/Engine/Ops to Ferreteria/v0.6/clade/Sys/Data/Engine/Oper: renamed) |
(No difference)
| |
Revision as of 16:52, 11 November 2025
| Clade Family | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| → Ops |
→ MyMar | |||||||||||||||||||
| Aliases | ||||||||||||||||||||
| ||||||||||||||||||||
About
- Purpose: engine-agnostic objects for doing operations on a Database Engine
- This mainly descends from the I/O Aspect clade. The other major aspect of Database management is the Engine Connection clade, which handles the mechanics of connecting from the Ferreteria client code to the database server, wherever it may be, and handling I/O therewith.
Code
interface iOps extends BaseIface, HasRostIface {
// ACTION: requests
function DoDataRequest(DataReqIface $oReq);
// ACTION: parameterized
function SchemaList() : SchemasIface;
function DoUserSetup();
// OBJECTS
function GetSchema(string $sName) : SchemaIface;
// INFO
function ConnSlug() : string; // connection shortname
}
abstract class caOps extends BaseClass implements SelfIface {
use HasRostTrait;
// ++ CONFIG ++ //
abstract protected function CommOpClass() : string;
abstract protected function SchemaClass() : string;
abstract protected function ScribeClass() : string;
// -- CONFIG -- //
// ++ SETUP ++ //
protected function __construct() {}
// USAGE: Only call if constructing to pass to a Conn object's constructor
static public function ForConn() : iOps {
$oThis = new static;
return $oThis;
}
static public function FromConn(ConnIface $oConn) : iOps {
$oThis = new static;
$oThis->WithConn($oConn);
return $oThis;
}
// ++ SETUP: dynamic ++ //
private $oConn=NULL;
public function WithConn(ConnIface $oConn) : void {
$this->oConn = $oConn;
#$this->RegisterThis();
}
protected function OConn() : ConnIface { return $this->oConn; }
// -- SETUP -- //
// ++ OBJECTS ++ //
// TODO: Rename to OSchema()
public function GetSchema(string $sName) : SchemaIface { return new ($this->SchemaClass())($this,$sName); }
// -- OBJECTS -- //
// ++ INFO ++ //
public function ConnSlug() : string { return $this->OConn()->ObjectSlug(); }
// -- INFO -- //
// ++ UI ++ //
// UNPROMPT
public function DescribeInline() : string { return $this->OConn()->DescribeInline(); } // sometimes not needed
// -- UI -- //
}