Futilities/v0.6/clade/Sys/dba/InReq: Difference between revisions
< Futilities | v0.6 | clade | Sys | dba
Jump to navigation
Jump to search
m (fixed template usage) |
No edit summary |
||
| (One intermediate revision by the same user not shown) | |||
| Line 4: | Line 4: | ||
[WFe]{{l/ver/clade|p=Ferreteria|Sys\Data\Engine\aux\is|RqActor}} [t]<br> | [WFe]{{l/ver/clade|p=Ferreteria|Sys\Data\Engine\aux\is|RqActor}} [t]<br> | ||
(base){{l/ver/clade/base|InReq}} | (base){{l/ver/clade/base|InReq}} | ||
{{!}} & | {{!}} align=center {{!}} ⇒ {{l/ver/clade|Sys\dba|InReq}} ⇒ | ||
{{!}} | {{!}} | ||
→ {{l/ver/clade|Sys\dba\InReq|DoExport}}<br> | → {{l/ver/clade|Sys\dba\InReq|DoExport}}<br> | ||
| Line 16: | Line 16: | ||
|alia= | |alia= | ||
{{! | {{!-!}} '''Array'''* [i] {{!!}} [WFe]{{l/ver/clade/full|p=ferreteria|Sys\Data\Things|Array}} | ||
{{!-!}} '''Base'''* [c,i] {{!!}} {{l/ver/clade/full||InReq}} | |||
{{! | {{!-!}} '''DbStuff'''* [i,t] {{!!}} {{l/ver/clade/full|Sys\dba\InReq\infmts|DbStuff}} | ||
{{!-!}} '''FilePaths'''* [c] {{!!}} [WFe]{{l/ver/clade/full|p=ferreteria|Sys\Data\tplts\FileName|Config}} | |||
{{! | {{!-!}} '''Kiosk'''* [e] {{!!}} {{l/ver/clade/full|Sys\dba|Kiosk}} | ||
{{!-!}} '''InData'''* [t] {{!!}} {{l/ver/clade/full|Sys\dba|InRqData}} | |||
{{! | {{!-!}} '''QObj'''* [c,i] {{!!}} [WFe]{{l/ver/clade/full|p=ferreteria|Data\Mem\QVar|Obj}} | ||
{{!-!}} '''QStr'''* [i] {{!!}} [WFe]{{l/ver/clade/full|p=ferreteria|Data\Mem\QVar|Str}} | |||
{{! | {{!-!}} '''Self'''* [i] {{!!}} {{l/ver/clade/full|Sys\dba|InReq}} | ||
{{! | |||
{{! | |||
{{! | |||
{{! | |||
}} | }} | ||
== | ==About== | ||
* '''Purpose''': base class for DBA Action-classes | |||
To make use of additional user arguments (after the first), {{l/ver/clade|p=Ferreteria|Sys\Events|InputRq}} podlings (aka {{l/ver/clade/base|InReq}} podlings) can implement {{ | Each object encapsulates a given input (request) term. Podling-clades will implement actions and provide functions to access needed values from the input, which is encapsulated by a <code>c{{l/ver/clade|Sys\dba|InRqData}}</code> object which can be retrieved from <code>function {{l/ver/fx|OAUserInput}}()</code>. | ||
To make use of additional user arguments (after the first), <code>{{l/ver/clade|p=Ferreteria|Sys\Events|InputRq}}</code> podlings (aka <code>{{l/ver/clade/base|InReq}}</code> podlings) can implement <code>function {{l/ver/fx|ParseInputArgs}}(array $ar)</code>. | |||
==Doing Stuff== | ==Doing Stuff== | ||
* To access input arguments, get an appropriate c{{l/ver/clade|Sys\dba|InRqData}} object: | * To access input arguments, get an appropriate <code>c{{l/ver/clade|Sys\dba|InRqData}}</code> object: | ||
** {{ | ** <code>$this->{{l/ver/fx|OAUserInput}}()</code> returns the raw input value strings (split but not parsed), one element for each term in the user input | ||
==History== | |||
* {{fmt/date|2024|10|30}} started | |||
* {{fmt/date|2025|01|28}} renamed Actor -> InReq | |||
* {{fmt/date|2025|02|02}} added SchemaTrait | |||
* {{fmt/date|2025|09|21}} moved all the <code>New*Request()</code> functions to respective [WFe]<code>{{l/ver/clade/full|Sys\Data\reqs\Engine\ActionRq\Admin\dbase|EngDb}}</code>* traits | |||
** ...or maybe in some cases [WFe]<code>{{l/ver/clade/full|Sys\Data\reqs\Engine\ActionRq\Admin\ToSchema|EngSc}}</code>*; still sorting this out as of {{fmt/date|2025|09|25}}. | |||
* {{fmt/date|2025|09|25}} reparenting all <code>Do</code>* clades to their respective [WFe]<code>{{l/ver/clade/full|Sys\Data\reqs\Engine\ActionRq\Admin\ToSchema|EngSc}}</code>* clades | |||
** ...and moving most of the code into a trait | |||
==Code== | ==Code== | ||
''as of 2025 | * [[/@removed/]] | ||
* ''as of {{fmt/date|2025|10|25}}:'' | |||
{{fmt/php/block|1= | {{fmt/php/block|1= | ||
interface iInReq extends BaseIface, DbStuffIface { | interface iInReq extends BaseIface, DbStuffIface { | ||
| Line 51: | Line 54: | ||
} | } | ||
trait tInReq { | trait tInReq { | ||
use DbStuffTrait; // 2025-10-11 needed for QOFData() | |||
use InDataTrait; // 2025-09-25 might create a conflict | use InDataTrait; // 2025-09-25 might create a conflict | ||
| Line 81: | Line 85: | ||
protected function SaveAsEngConnName(string $s) { | protected function SaveAsEngConnName(string $s) { | ||
$this->OAUserInput()-> | $this->OAUserInput()->QDbConnSlug()->SetIt($s); // 2025-10-08 Does this work? (Fix it, if not.) | ||
} | } | ||
Latest revision as of 17:39, 20 November 2025
| ||||||||||||||||||||||||||||||
About
- Purpose: base class for DBA Action-classes
Each object encapsulates a given input (request) term. Podling-clades will implement actions and provide functions to access needed values from the input, which is encapsulated by a cInRqData object which can be retrieved from function OAUserInput().
To make use of additional user arguments (after the first), InputRq podlings (aka InReq podlings) can implement function ParseInputArgs(array $ar).
Doing Stuff
- To access input arguments, get an appropriate
cInRqDataobject:$this->OAUserInput()returns the raw input value strings (split but not parsed), one element for each term in the user input
History
- 2024-10-30 started
- 2025-01-28 renamed Actor -> InReq
- 2025-02-02 added SchemaTrait
- 2025-09-21 moved all the
New*Request()functions to respective [WFe]Sys\Data\reqs\Engine\ActionRq\Admin\dbase\EngDb* traits - 2025-09-25 reparenting all
Do* clades to their respective [WFe]Sys\Data\reqs\Engine\ActionRq\Admin\ToSchema\EngSc* clades- ...and moving most of the code into a trait
Code
interface iInReq extends BaseIface, DbStuffIface {
// OUTPUT
function ListHosts() : string;
}
trait tInReq {
use DbStuffTrait; // 2025-10-11 needed for QOFData()
use InDataTrait; // 2025-09-25 might create a conflict
// ++ OBJECTS: requests ++ //
protected function QOSchemaMeta() : QObjIface {
// check to see if we *can* get a Schema object
$of = FilePaths::Me()->ImportFoNode();
$oStat = $of->IndexIt();
echo $oStat->RenderMessages(); // any messages, error or otherwise
if ($oStat->GetOkay()) {
$sScSlug = $this->QSSchema()->GetIt();
$osSchNode = $of->FindSchema($sScSlug); // TODO: possibly this should go in aux\has\tSchema
} else {
$osSchNode = QObjClass::AsNew();
}
return $osSchNode;
}
// -- OBJECTS -- //
// ++ INPUTS: processing ++ //
// CEMENT
protected function ParseInputArgs(array $ar) {
$nXArgs = count($ar);
if ($nXArgs > 0) {
$this->AmHere('TODO 2025-10-04: interpret optional additional arguments');
}
}
protected function SaveAsEngConnName(string $s) {
$this->OAUserInput()->QDbConnSlug()->SetIt($s); // 2025-10-08 Does this work? (Fix it, if not.)
}
// ++ INPUTS: parsed/stored ++ //
protected function QDbConnSlug() : QStrIface {
return $this->OAUserInput()->QDbConnSlug();
}
protected function QSchemaSlug() : QStrIface {
return $this->OAUserInput()->QSchemaSlug();
}
// -- INPUT -- //
}