Merge Updates #2

Merged
Llewellyn merged 2 commits from dev into master 2023-06-02 02:49:36 +00:00
57 changed files with 1239 additions and 631 deletions

View File

@ -26,9 +26,28 @@ This repository contains an index (see below) of all the approved powers within
- **Namespace**: [VDM\Joomla](#vdm-joomla) - **Namespace**: [VDM\Joomla](#vdm-joomla)
- **trait Utilities** | [Details](src/79d765b3-7319-4988-9730-446c7f347020) | [Code](src/79d765b3-7319-4988-9730-446c7f347020/code.php) | [Settings](src/79d765b3-7319-4988-9730-446c7f347020/settings.json) | Super__79d765b3_7319_4988_9730_446c7f347020__Power - **trait Utilities** | [Details](src/79d765b3-7319-4988-9730-446c7f347020) | [Code](src/79d765b3-7319-4988-9730-446c7f347020/code.php) | [Settings](src/79d765b3-7319-4988-9730-446c7f347020/settings.json) | Super__79d765b3_7319_4988_9730_446c7f347020__Power
- **Namespace**: [VDM\Joomla\Abstraction](#vdm-joomla-abstraction)
- **abstract class BaseConfig** | [Details](src/ffbd4e1f-a342-4080-ab7d-1de3741bf319) | [Code](src/ffbd4e1f-a342-4080-ab7d-1de3741bf319/code.php) | [Settings](src/ffbd4e1f-a342-4080-ab7d-1de3741bf319/settings.json) | Super__ffbd4e1f_a342_4080_ab7d_1de3741bf319__Power
- **abstract class BaseTable** | [Details](src/e0f6ddbe-2a35-4537-942c-faff2ebd04f6) | [Code](src/e0f6ddbe-2a35-4537-942c-faff2ebd04f6/code.php) | [Settings](src/e0f6ddbe-2a35-4537-942c-faff2ebd04f6/settings.json) | Super__e0f6ddbe_2a35_4537_942c_faff2ebd04f6__Power
- **abstract class Database** | [Details](src/6cbef8f8-4813-48e3-b05a-65e1aea95171) | [Code](src/6cbef8f8-4813-48e3-b05a-65e1aea95171/code.php) | [Settings](src/6cbef8f8-4813-48e3-b05a-65e1aea95171/settings.json) | Super__6cbef8f8_4813_48e3_b05a_65e1aea95171__Power
- **abstract class Model** | [Details](src/584747d1-3a86-453d-b7a3-a2219de8d777) | [Code](src/584747d1-3a86-453d-b7a3-a2219de8d777/code.php) | [Settings](src/584747d1-3a86-453d-b7a3-a2219de8d777/settings.json) | Super__584747d1_3a86_453d_b7a3_a2219de8d777__Power
- **Namespace**: [VDM\Joomla\Componentbuilder](#vdm-joomla-componentbuilder) - **Namespace**: [VDM\Joomla\Componentbuilder](#vdm-joomla-componentbuilder)
- **class Table** | [Details](src/bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8) | [Code](src/bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8/code.php) | [Settings](src/bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8/settings.json) | Super__bfd1d6d5_56c1_4fe9_9fee_1c5910e1f5d8__Power - **class Table** | [Details](src/bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8) | [Code](src/bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8/code.php) | [Settings](src/bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8/settings.json) | Super__bfd1d6d5_56c1_4fe9_9fee_1c5910e1f5d8__Power
- **Namespace**: [VDM\Joomla\Database](#vdm-joomla-database)
- **final class Insert** | [Details](src/524eb8f6-38d4-47dc-92ad-98b94e099ac0) | [Code](src/524eb8f6-38d4-47dc-92ad-98b94e099ac0/code.php) | [Settings](src/524eb8f6-38d4-47dc-92ad-98b94e099ac0/settings.json) | Super__524eb8f6_38d4_47dc_92ad_98b94e099ac0__Power
- **final class Load** | [Details](src/06f8eada-d59b-441c-b287-0aea1793da5a) | [Code](src/06f8eada-d59b-441c-b287-0aea1793da5a/code.php) | [Settings](src/06f8eada-d59b-441c-b287-0aea1793da5a/settings.json) | Super__06f8eada_d59b_441c_b287_0aea1793da5a__Power
- **final class Update** | [Details](src/cce56585-58b0-4f72-a92c-e2635ea52d83) | [Code](src/cce56585-58b0-4f72-a92c-e2635ea52d83/code.php) | [Settings](src/cce56585-58b0-4f72-a92c-e2635ea52d83/settings.json) | Super__cce56585_58b0_4f72_a92c_e2635ea52d83__Power
- **Namespace**: [VDM\Joomla\Interfaces](#vdm-joomla-interfaces)
- **interface FactoryInterface** | [Details](src/caf33c5d-858c-4f9a-894f-ab302ec5445a) | [Code](src/caf33c5d-858c-4f9a-894f-ab302ec5445a/code.php) | [Settings](src/caf33c5d-858c-4f9a-894f-ab302ec5445a/settings.json) | Super__caf33c5d_858c_4f9a_894f_ab302ec5445a__Power
- **interface InsertInterface** | [Details](src/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48) | [Code](src/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48/code.php) | [Settings](src/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48/settings.json) | Super__ad12ca1c_d3ce_4e7f_88c5_c6c92bdedc48__Power
- **interface LoadInterface** | [Details](src/2ad31f74-f579-499d-b98b-c4f54fd615dd) | [Code](src/2ad31f74-f579-499d-b98b-c4f54fd615dd/code.php) | [Settings](src/2ad31f74-f579-499d-b98b-c4f54fd615dd/settings.json) | Super__2ad31f74_f579_499d_b98b_c4f54fd615dd__Power
- **interface ModelInterface** | [Details](src/8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff) | [Code](src/8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff/code.php) | [Settings](src/8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff/settings.json) | Super__8aef58c1_3f70_4bd4_b9e4_3f29fcd41cff__Power
- **interface Tableinterface** | [Details](src/2da6d6c4-eb29-4d69-8bc2-36d96e916adf) | [Code](src/2da6d6c4-eb29-4d69-8bc2-36d96e916adf/code.php) | [Settings](src/2da6d6c4-eb29-4d69-8bc2-36d96e916adf/settings.json) | Super__2da6d6c4_eb29_4d69_8bc2_36d96e916adf__Power
- **interface UpdateInterface** | [Details](src/7179fde6-1e51-4b51-8545-7ca18f74a0f4) | [Code](src/7179fde6-1e51-4b51-8545-7ca18f74a0f4/code.php) | [Settings](src/7179fde6-1e51-4b51-8545-7ca18f74a0f4/settings.json) | Super__7179fde6_1e51_4b51_8545_7ca18f74a0f4__Power
- **Namespace**: [VDM\Joomla\Utilities](#vdm-joomla-utilities) - **Namespace**: [VDM\Joomla\Utilities](#vdm-joomla-utilities)
- **abstract class ArrayHelper** | [Details](src/0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a) | [Code](src/0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a/code.php) | [Settings](src/0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a/settings.json) | Super__0a59c65c_9daf_4bc9_baf4_e063ff9e6a8a__Power - **abstract class ArrayHelper** | [Details](src/0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a) | [Code](src/0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a/code.php) | [Settings](src/0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a/settings.json) | Super__0a59c65c_9daf_4bc9_baf4_e063ff9e6a8a__Power
@ -41,23 +60,9 @@ This repository contains an index (see below) of all the approved powers within
- **abstract class StringHelper** | [Details](src/1f28cb53-60d9-4db1-b517-3c7dc6b429ef) | [Code](src/1f28cb53-60d9-4db1-b517-3c7dc6b429ef/code.php) | [Settings](src/1f28cb53-60d9-4db1-b517-3c7dc6b429ef/settings.json) | Super__1f28cb53_60d9_4db1_b517_3c7dc6b429ef__Power - **abstract class StringHelper** | [Details](src/1f28cb53-60d9-4db1-b517-3c7dc6b429ef) | [Code](src/1f28cb53-60d9-4db1-b517-3c7dc6b429ef/code.php) | [Settings](src/1f28cb53-60d9-4db1-b517-3c7dc6b429ef/settings.json) | Super__1f28cb53_60d9_4db1_b517_3c7dc6b429ef__Power
- **Namespace**: [VDM\Joomla\Componentbuilder\Abstraction](#vdm-joomla-componentbuilder-abstraction) - **Namespace**: [VDM\Joomla\Componentbuilder\Abstraction](#vdm-joomla-componentbuilder-abstraction)
- **abstract class BaseConfig** | [Details](src/9769f3b2-17bf-4f20-b54b-3a4ebe572b36) | [Code](src/9769f3b2-17bf-4f20-b54b-3a4ebe572b36/code.php) | [Settings](src/9769f3b2-17bf-4f20-b54b-3a4ebe572b36/settings.json) | Super__9769f3b2_17bf_4f20_b54b_3a4ebe572b36__Power
- **abstract class BaseRegistry** | [Details](src/b84e947d-2a13-44f7-ac0f-3902ae55ae0c) | [Code](src/b84e947d-2a13-44f7-ac0f-3902ae55ae0c/code.php) | [Settings](src/b84e947d-2a13-44f7-ac0f-3902ae55ae0c/settings.json) | Super__b84e947d_2a13_44f7_ac0f_3902ae55ae0c__Power - **abstract class BaseRegistry** | [Details](src/b84e947d-2a13-44f7-ac0f-3902ae55ae0c) | [Code](src/b84e947d-2a13-44f7-ac0f-3902ae55ae0c/code.php) | [Settings](src/b84e947d-2a13-44f7-ac0f-3902ae55ae0c/settings.json) | Super__b84e947d_2a13_44f7_ac0f_3902ae55ae0c__Power
- **abstract class Database** | [Details](src/6cbef8f8-4813-48e3-b05a-65e1aea95171) | [Code](src/6cbef8f8-4813-48e3-b05a-65e1aea95171/code.php) | [Settings](src/6cbef8f8-4813-48e3-b05a-65e1aea95171/settings.json) | Super__6cbef8f8_4813_48e3_b05a_65e1aea95171__Power
- **abstract class Mapper** | [Details](src/44a3367c-f9e4-406b-b396-0f452bde0f03) | [Code](src/44a3367c-f9e4-406b-b396-0f452bde0f03/code.php) | [Settings](src/44a3367c-f9e4-406b-b396-0f452bde0f03/settings.json) | Super__44a3367c_f9e4_406b_b396_0f452bde0f03__Power - **abstract class Mapper** | [Details](src/44a3367c-f9e4-406b-b396-0f452bde0f03) | [Code](src/44a3367c-f9e4-406b-b396-0f452bde0f03/code.php) | [Settings](src/44a3367c-f9e4-406b-b396-0f452bde0f03/settings.json) | Super__44a3367c_f9e4_406b_b396_0f452bde0f03__Power
- **abstract class MapperSingle** | [Details](src/c6bbc3ee-58e7-4463-adba-5c5ae839ee36) | [Code](src/c6bbc3ee-58e7-4463-adba-5c5ae839ee36/code.php) | [Settings](src/c6bbc3ee-58e7-4463-adba-5c5ae839ee36/settings.json) | Super__c6bbc3ee_58e7_4463_adba_5c5ae839ee36__Power - **abstract class MapperSingle** | [Details](src/c6bbc3ee-58e7-4463-adba-5c5ae839ee36) | [Code](src/c6bbc3ee-58e7-4463-adba-5c5ae839ee36/code.php) | [Settings](src/c6bbc3ee-58e7-4463-adba-5c5ae839ee36/settings.json) | Super__c6bbc3ee_58e7_4463_adba_5c5ae839ee36__Power
- **abstract class Model** | [Details](src/584747d1-3a86-453d-b7a3-a2219de8d777) | [Code](src/584747d1-3a86-453d-b7a3-a2219de8d777/code.php) | [Settings](src/584747d1-3a86-453d-b7a3-a2219de8d777/settings.json) | Super__584747d1_3a86_453d_b7a3_a2219de8d777__Power
- **Namespace**: [VDM\Joomla\Componentbuilder\Database](#vdm-joomla-componentbuilder-database)
- **final class Insert** | [Details](src/524eb8f6-38d4-47dc-92ad-98b94e099ac0) | [Code](src/524eb8f6-38d4-47dc-92ad-98b94e099ac0/code.php) | [Settings](src/524eb8f6-38d4-47dc-92ad-98b94e099ac0/settings.json) | Super__524eb8f6_38d4_47dc_92ad_98b94e099ac0__Power
- **final class Load** | [Details](src/06f8eada-d59b-441c-b287-0aea1793da5a) | [Code](src/06f8eada-d59b-441c-b287-0aea1793da5a/code.php) | [Settings](src/06f8eada-d59b-441c-b287-0aea1793da5a/settings.json) | Super__06f8eada_d59b_441c_b287_0aea1793da5a__Power
- **final class Update** | [Details](src/cce56585-58b0-4f72-a92c-e2635ea52d83) | [Code](src/cce56585-58b0-4f72-a92c-e2635ea52d83/code.php) | [Settings](src/cce56585-58b0-4f72-a92c-e2635ea52d83/settings.json) | Super__cce56585_58b0_4f72_a92c_e2635ea52d83__Power
- **Namespace**: [VDM\Joomla\Componentbuilder\Interfaces](#vdm-joomla-componentbuilder-interfaces)
- **interface FactoryInterface** | [Details](src/caf33c5d-858c-4f9a-894f-ab302ec5445a) | [Code](src/caf33c5d-858c-4f9a-894f-ab302ec5445a/code.php) | [Settings](src/caf33c5d-858c-4f9a-894f-ab302ec5445a/settings.json) | Super__caf33c5d_858c_4f9a_894f_ab302ec5445a__Power
- **interface InsertInterface** | [Details](src/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48) | [Code](src/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48/code.php) | [Settings](src/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48/settings.json) | Super__ad12ca1c_d3ce_4e7f_88c5_c6c92bdedc48__Power
- **interface ModelInterface** | [Details](src/8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff) | [Code](src/8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff/code.php) | [Settings](src/8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff/settings.json) | Super__8aef58c1_3f70_4bd4_b9e4_3f29fcd41cff__Power
- **interface UpdateInterface** | [Details](src/7179fde6-1e51-4b51-8545-7ca18f74a0f4) | [Code](src/7179fde6-1e51-4b51-8545-7ca18f74a0f4/code.php) | [Settings](src/7179fde6-1e51-4b51-8545-7ca18f74a0f4/settings.json) | Super__7179fde6_1e51_4b51_8545_7ca18f74a0f4__Power
- **Namespace**: [VDM\Joomla\Componentbuilder\Utilities](#vdm-joomla-componentbuilder-utilities) - **Namespace**: [VDM\Joomla\Componentbuilder\Utilities](#vdm-joomla-componentbuilder-utilities)
- **abstract class FilterHelper** | [Details](src/cddcac51-9a46-47c4-ba59-105c70453bd6) | [Code](src/cddcac51-9a46-47c4-ba59-105c70453bd6/code.php) | [Settings](src/cddcac51-9a46-47c4-ba59-105c70453bd6/settings.json) | Super__cddcac51_9a46_47c4_ba59_105c70453bd6__Power - **abstract class FilterHelper** | [Details](src/cddcac51-9a46-47c4-ba59-105c70453bd6) | [Code](src/cddcac51-9a46-47c4-ba59-105c70453bd6/code.php) | [Settings](src/cddcac51-9a46-47c4-ba59-105c70453bd6/settings.json) | Super__cddcac51_9a46_47c4_ba59_105c70453bd6__Power

View File

@ -7,7 +7,7 @@
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
``` ```
# final class Load (Details) # final class Load (Details)
> namespace: **VDM\Joomla\Componentbuilder\Database** > namespace: **VDM\Joomla\Database**
```uml ```uml
@startuml @startuml
class Load << (F,LightGreen) >> #Green { class Load << (F,LightGreen) >> #Green {

View File

@ -9,12 +9,12 @@
* @license GNU General Public License version 2 or later; see LICENSE.txt * @license GNU General Public License version 2 or later; see LICENSE.txt
*/ */
namespace VDM\Joomla\Componentbuilder\Database; namespace VDM\Joomla\Database;
use VDM\Joomla\Utilities\ArrayHelper; use VDM\Joomla\Utilities\ArrayHelper;
use VDM\Joomla\Componentbuilder\Interfaces\LoadInterface; use VDM\Joomla\Interfaces\LoadInterface;
use VDM\Joomla\Componentbuilder\Abstraction\Database; use VDM\Joomla\Abstraction\Database;
/** /**
@ -186,7 +186,7 @@ final class Load extends Database implements LoadInterface
if (isset($tables['a'])) if (isset($tables['a']))
{ {
// get the query // get the query
$query = $this->query($select, $tables, $where, $order); $query = $this->query($select, $tables, $where, $order, $limit);
// Load the items // Load the items
$this->db->setQuery($query); $this->db->setQuery($query);

View File

@ -160,7 +160,7 @@
if (isset($tables['a'])) if (isset($tables['a']))
{ {
// get the query // get the query
$query = $this->query($select, $tables, $where, $order); $query = $this->query($select, $tables, $where, $order, $limit);
// Load the items // Load the items
$this->db->setQuery($query); $this->db->setQuery($query);

View File

@ -9,7 +9,7 @@
"load_selection": null, "load_selection": null,
"name": "Load", "name": "Load",
"power_version": "1.0.0", "power_version": "1.0.0",
"system_name": "JCB.Database.Load", "system_name": "VDM.Database.Load",
"type": "final class", "type": "final class",
"use_selection": { "use_selection": {
"use_selection0": { "use_selection0": {
@ -17,7 +17,7 @@
"as": "default" "as": "default"
} }
}, },
"namespace": "VDM\\Joomla\\Componentbuilder.Database.Load", "namespace": "VDM\\Joomla\\Database.Load",
"description": "Database Load\r\n\r\n@since 3.2.0", "description": "Database Load\r\n\r\n@since 3.2.0",
"licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n", "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n",
"head": "", "head": "",

View File

@ -0,0 +1,101 @@
```
██████╗ ██████╗ ██╗ ██╗███████╗██████╗
██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗
██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝
██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗
██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
```
# interface LoadInterface (Details)
> namespace: **VDM\Joomla\Interfaces**
```uml
@startuml
interface LoadInterface #Lavender {
+ rows(array $select, array $tables, ...) : ?array
+ items(array $select, array $tables, ...) : ?array
+ row(array $select, array $tables, ...) : ?array
+ item(array $select, array $tables, ...) : ?object
+ value(array $select, array $tables, ...) : mixed
}
note right of LoadInterface::rows
Load data rows as an array of associated arrays
since: 3.2.0
return: ?array
arguments:
array $select
array $tables
?array $where = null
?array $order = null
?int $limit = null
end note
note right of LoadInterface::items
Load data rows as an array of objects
since: 3.2.0
return: ?array
arguments:
array $select
array $tables
?array $where = null
?array $order = null
?int $limit = null
end note
note right of LoadInterface::row
Load data row as an associated array
since: 3.2.0
return: ?array
arguments:
array $select
array $tables
?array $where = null
?array $order = null
end note
note right of LoadInterface::item
Load data row as an object
since: 3.2.0
return: ?object
arguments:
array $select
array $tables
?array $where = null
?array $order = null
end note
note right of LoadInterface::value
Load one value from a row
since: 3.2.0
return: mixed
arguments:
array $select
array $tables
?array $where = null
?array $order = null
end note
@enduml
```
---
```
██╗ ██████╗██████╗
██║██╔════╝██╔══██╗
██║██║ ██████╔╝
██ ██║██║ ██╔══██╗
╚█████╔╝╚██████╗██████╔╝
╚════╝ ╚═════╝╚═════╝
```
> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder)

View File

@ -0,0 +1,92 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Interfaces;
/**
* Database Load Interface
*
* @since 3.2.0
*/
interface LoadInterface
{
/**
* Load data rows as an array of associated arrays
*
* @param array $select Array of selection keys
* @param array $tables Array of tables to search
* @param array|null $where Array of where key=>value match exist
* @param array|null $order Array of how to order the data
* @param int|null $limit Limit the number of values returned
*
* @return array|null
* @since 3.2.0
**/
public function rows(array $select, array $tables, ?array $where = null,
?array $order = null, ?int $limit = null): ?array;
/**
* Load data rows as an array of objects
*
* @param array $select Array of selection keys
* @param array $tables Array of tables to search
* @param array|null $where Array of where key=>value match exist
* @param array|null $order Array of how to order the data
* @param int|null $limit Limit the number of values returned
*
* @return array|null
* @since 3.2.0
**/
public function items(array $select, array $tables, ?array $where = null,
?array $order = null, ?int $limit = null): ?array;
/**
* Load data row as an associated array
*
* @param array $select Array of selection keys
* @param array $tables Array of tables to search
* @param array|null $where Array of where key=>value match exist
* @param array|null $order Array of how to order the data
*
* @return array|null
* @since 3.2.0
**/
public function row(array $select, array $tables, ?array $where = null, ?array $order = null): ?array;
/**
* Load data row as an object
*
* @param array $select Array of selection keys
* @param array $tables Array of tables to search
* @param array|null $where Array of where key=>value match exist
* @param array|null $order Array of how to order the data
*
* @return object|null
* @since 3.2.0
**/
public function item(array $select, array $tables, ?array $where = null, ?array $order = null): ?object;
/**
* Load one value from a row
*
* @param array $select Array of selection keys
* @param array $tables Array of tables to search
* @param array|null $where Array of where key=>value match exist
* @param array|null $order Array of how to order the data
*
* @return mixed
* @since 3.2.0
**/
public function value(array $select, array $tables, ?array $where = null, ?array $order = null);
}

View File

@ -0,0 +1,68 @@
/**
* Load data rows as an array of associated arrays
*
* @param array $select Array of selection keys
* @param array $tables Array of tables to search
* @param array|null $where Array of where key=>value match exist
* @param array|null $order Array of how to order the data
* @param int|null $limit Limit the number of values returned
*
* @return array|null
* @since 3.2.0
**/
public function rows(array $select, array $tables, ?array $where = null,
?array $order = null, ?int $limit = null): ?array;
/**
* Load data rows as an array of objects
*
* @param array $select Array of selection keys
* @param array $tables Array of tables to search
* @param array|null $where Array of where key=>value match exist
* @param array|null $order Array of how to order the data
* @param int|null $limit Limit the number of values returned
*
* @return array|null
* @since 3.2.0
**/
public function items(array $select, array $tables, ?array $where = null,
?array $order = null, ?int $limit = null): ?array;
/**
* Load data row as an associated array
*
* @param array $select Array of selection keys
* @param array $tables Array of tables to search
* @param array|null $where Array of where key=>value match exist
* @param array|null $order Array of how to order the data
*
* @return array|null
* @since 3.2.0
**/
public function row(array $select, array $tables, ?array $where = null, ?array $order = null): ?array;
/**
* Load data row as an object
*
* @param array $select Array of selection keys
* @param array $tables Array of tables to search
* @param array|null $where Array of where key=>value match exist
* @param array|null $order Array of how to order the data
*
* @return object|null
* @since 3.2.0
**/
public function item(array $select, array $tables, ?array $where = null, ?array $order = null): ?object;
/**
* Load one value from a row
*
* @param array $select Array of selection keys
* @param array $tables Array of tables to search
* @param array|null $where Array of where key=>value match exist
* @param array|null $order Array of how to order the data
*
* @return mixed
* @since 3.2.0
**/
public function value(array $select, array $tables, ?array $where = null, ?array $order = null);

View File

@ -0,0 +1,18 @@
{
"add_head": "0",
"add_licensing_template": "2",
"extends": "0",
"guid": "2ad31f74-f579-499d-b98b-c4f54fd615dd",
"implements": null,
"load_selection": null,
"name": "LoadInterface",
"power_version": "1.0.0",
"system_name": "VDM.Interfaces.LoadInterface",
"type": "interface",
"use_selection": null,
"namespace": "VDM\\Joomla\\Interfaces.LoadInterface",
"description": "Database Load Interface\r\n\r\n@since 3.2.0",
"licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n",
"head": "",
"composer": ""
}

View File

@ -0,0 +1,89 @@
```
██████╗ ██████╗ ██╗ ██╗███████╗██████╗
██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗
██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝
██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗
██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
```
# interface Tableinterface (Details)
> namespace: **VDM\Joomla\Interfaces**
```uml
@startuml
interface Tableinterface #Lavender {
+ get(string $table, ?string $field = null, ...) : mixed
+ title(string $table) : ?array
+ titleName(string $table) : string
+ tables() : array
+ exist(string $table, ?string $field = null) : bool
+ fields(string $table, bool $default = false) : ?array
}
note right of Tableinterface::get
Get any value from a item/field/column of an area/view/table
Example: $this->get('table_name', 'field_name', 'value_key');
Get an item/field/column of an area/view/table
Example: $this->get('table_name', 'field_name');
Get all items/fields/columns of an area/view/table
Example: $this->get('table_name');
Get all areas/views/tables with all their item/field/column details
Example: $this->get('All');
since: 3.2.0
return: mixed
arguments:
string $table
?string $field = null
?string $key = null
end note
note right of Tableinterface::title
Get title field from an area/view/table
since: 3.2.0
return: ?array
end note
note right of Tableinterface::titleName
Get title field name
since: 3.2.0
return: string
end note
note right of Tableinterface::tables
Get all tables
since: 3.2.0
return: array
end note
note right of Tableinterface::exist
Check if a table (and field) exist
since: 3.2.0
return: bool
end note
note right of Tableinterface::fields
Get all fields of an area/view/table
since: 3.2.0
return: ?array
end note
@enduml
```
---
```
██╗ ██████╗██████╗
██║██╔════╝██╔══██╗
██║██║ ██████╔╝
██ ██║██║ ██╔══██╗
╚█████╔╝╚██████╗██████╔╝
╚════╝ ╚═════╝╚═════╝
```
> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder)

View File

@ -0,0 +1,89 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Interfaces;
/**
* The VDM Core Table Interface
*/
interface Tableinterface
{
/**
* Get any value from a item/field/column of an area/view/table
* Example: $this->get('table_name', 'field_name', 'value_key');
* Get an item/field/column of an area/view/table
* Example: $this->get('table_name', 'field_name');
* Get all items/fields/columns of an area/view/table
* Example: $this->get('table_name');
* Get all areas/views/tables with all their item/field/column details
* Example: $this->get('All');
*
* @param string $table The table
* @param string|null $field The field
* @param string|null $key The value key
*
* @return mixed
* @since 3.2.0
*/
public function get(string $table, ?string $field = null, ?string $key = null);
/**
* Get title field from an area/view/table
*
* @param string $table The area
*
* @return ?array
* @since 3.2.0
*/
public function title(string $table): ?array;
/**
* Get title field name
*
* @param string $table The area
*
* @return string
* @since 3.2.0
*/
public function titleName(string $table): string;
/**
* Get all tables
*
* @return array
* @since 3.2.0
*/
public function tables(): array;
/**
* Check if a table (and field) exist
*
* @param string $table The area
* @param string|null $field The area
*
* @return bool
* @since 3.2.0
*/
public function exist(string $table, ?string $field = null): bool;
/**
* Get all fields of an area/view/table
*
* @param string $table The area
* @param bool $default Add the default fields
*
* @return array|null On success an array of fields
* @since 3.2.0
*/
public function fields(string $table, bool $default = false): ?array;
}

View File

@ -0,0 +1,68 @@
/**
* Get any value from a item/field/column of an area/view/table
* Example: $this->get('table_name', 'field_name', 'value_key');
* Get an item/field/column of an area/view/table
* Example: $this->get('table_name', 'field_name');
* Get all items/fields/columns of an area/view/table
* Example: $this->get('table_name');
* Get all areas/views/tables with all their item/field/column details
* Example: $this->get('All');
*
* @param string $table The table
* @param string|null $field The field
* @param string|null $key The value key
*
* @return mixed
* @since 3.2.0
*/
public function get(string $table, ?string $field = null, ?string $key = null);
/**
* Get title field from an area/view/table
*
* @param string $table The area
*
* @return ?array
* @since 3.2.0
*/
public function title(string $table): ?array;
/**
* Get title field name
*
* @param string $table The area
*
* @return string
* @since 3.2.0
*/
public function titleName(string $table): string;
/**
* Get all tables
*
* @return array
* @since 3.2.0
*/
public function tables(): array;
/**
* Check if a table (and field) exist
*
* @param string $table The area
* @param string|null $field The area
*
* @return bool
* @since 3.2.0
*/
public function exist(string $table, ?string $field = null): bool;
/**
* Get all fields of an area/view/table
*
* @param string $table The area
* @param bool $default Add the default fields
*
* @return array|null On success an array of fields
* @since 3.2.0
*/
public function fields(string $table, bool $default = false): ?array;

View File

@ -0,0 +1,18 @@
{
"add_head": "0",
"add_licensing_template": "2",
"extends": "0",
"guid": "2da6d6c4-eb29-4d69-8bc2-36d96e916adf",
"implements": null,
"load_selection": null,
"name": "Tableinterface",
"power_version": "1.0.0",
"system_name": "VDM.Interfaces.Tableinterface",
"type": "interface",
"use_selection": null,
"namespace": "VDM\\Joomla\\Interfaces.Tableinterface",
"description": "The VDM Core Table Interface",
"licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n",
"head": "",
"composer": ""
}

View File

@ -7,7 +7,7 @@
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
``` ```
# final class Insert (Details) # final class Insert (Details)
> namespace: **VDM\Joomla\Componentbuilder\Database** > namespace: **VDM\Joomla\Database**
```uml ```uml
@startuml @startuml
class Insert << (F,LightGreen) >> #Green { class Insert << (F,LightGreen) >> #Green {

View File

@ -9,13 +9,13 @@
* @license GNU General Public License version 2 or later; see LICENSE.txt * @license GNU General Public License version 2 or later; see LICENSE.txt
*/ */
namespace VDM\Joomla\Componentbuilder\Database; namespace VDM\Joomla\Database;
use Joomla\CMS\Date\Date; use Joomla\CMS\Date\Date;
use VDM\Joomla\Utilities\ArrayHelper; use VDM\Joomla\Utilities\ArrayHelper;
use VDM\Joomla\Componentbuilder\Interfaces\InsertInterface; use VDM\Joomla\Interfaces\InsertInterface;
use VDM\Joomla\Componentbuilder\Abstraction\Database; use VDM\Joomla\Abstraction\Database;
/** /**

View File

@ -9,7 +9,7 @@
"load_selection": null, "load_selection": null,
"name": "Insert", "name": "Insert",
"power_version": "1.0.0", "power_version": "1.0.0",
"system_name": "JCB.Database.Insert", "system_name": "VDM.Database.Insert",
"type": "final class", "type": "final class",
"use_selection": { "use_selection": {
"use_selection0": { "use_selection0": {
@ -17,7 +17,7 @@
"as": "default" "as": "default"
} }
}, },
"namespace": "VDM\\Joomla\\Componentbuilder.Database.Insert", "namespace": "VDM\\Joomla\\Database.Insert",
"description": "Database Insert Class\r\n\r\n@since 3.2.0", "description": "Database Insert Class\r\n\r\n@since 3.2.0",
"licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n", "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n",
"head": "use Joomla\\CMS\\Date\\Date;", "head": "use Joomla\\CMS\\Date\\Date;",

View File

@ -7,7 +7,7 @@
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
``` ```
# abstract class Model (Details) # abstract class Model (Details)
> namespace: **VDM\Joomla\Componentbuilder\Abstraction** > namespace: **VDM\Joomla\Abstraction**
```uml ```uml
@startuml @startuml
abstract Model #Orange { abstract Model #Orange {

View File

@ -9,16 +9,16 @@
* @license GNU General Public License version 2 or later; see LICENSE.txt * @license GNU General Public License version 2 or later; see LICENSE.txt
*/ */
namespace VDM\Joomla\Componentbuilder\Abstraction; namespace VDM\Joomla\Abstraction;
use VDM\Joomla\Utilities\StringHelper; use VDM\Joomla\Utilities\StringHelper;
use VDM\Joomla\Utilities\ArrayHelper; use VDM\Joomla\Utilities\ArrayHelper;
use VDM\Joomla\Componentbuilder\Table; use VDM\Joomla\Interfaces\Tableinterface as Table;
/** /**
* Our base Model * Base Model
* *
* @since 3.2.0 * @since 3.2.0
*/ */
@ -114,7 +114,7 @@ abstract class Model
} }
} }
// all items must have more than one field or its empty (1 = id or guid) // all items must have more than one field or its empty (1 = key)
if ($field_number > 1) if ($field_number > 1)
{ {
return $item_bucket; return $item_bucket;
@ -342,6 +342,5 @@ abstract class Model
* @since 3.2.0 * @since 3.2.0
*/ */
abstract protected function getTable(): string; abstract protected function getTable(): string;
} }

View File

@ -88,7 +88,7 @@
} }
} }
// all items must have more than one field or its empty (1 = id or guid) // all items must have more than one field or its empty (1 = key)
if ($field_number > 1) if ($field_number > 1)
{ {
return $item_bucket; return $item_bucket;

View File

@ -7,7 +7,7 @@
"load_selection": null, "load_selection": null,
"name": "Model", "name": "Model",
"power_version": "1.0.0", "power_version": "1.0.0",
"system_name": "JCB.Abstraction.Model", "system_name": "VDM.Abstraction.Model",
"type": "abstract class", "type": "abstract class",
"use_selection": { "use_selection": {
"use_selection0": { "use_selection0": {
@ -19,12 +19,12 @@
"as": "default" "as": "default"
}, },
"use_selection2": { "use_selection2": {
"use": "bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8", "use": "2da6d6c4-eb29-4d69-8bc2-36d96e916adf",
"as": "default" "as": "Table"
} }
}, },
"namespace": "VDM\\Joomla\\Componentbuilder.Abstraction.Model", "namespace": "VDM\\Joomla\\Abstraction.Model",
"description": "Our base Model\r\n\r\n@since 3.2.0", "description": "Base Model\r\n\r\n@since 3.2.0",
"licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n", "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n",
"head": "", "head": "",
"composer": "" "composer": ""

View File

@ -7,7 +7,7 @@
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
``` ```
# abstract class Database (Details) # abstract class Database (Details)
> namespace: **VDM\Joomla\Componentbuilder\Abstraction** > namespace: **VDM\Joomla\Abstraction**
```uml ```uml
@startuml @startuml
abstract Database #Orange { abstract Database #Orange {

View File

@ -9,7 +9,7 @@
* @license GNU General Public License version 2 or later; see LICENSE.txt * @license GNU General Public License version 2 or later; see LICENSE.txt
*/ */
namespace VDM\Joomla\Componentbuilder\Abstraction; namespace VDM\Joomla\Abstraction;
use Joomla\CMS\Factory as JoomlaFactory; use Joomla\CMS\Factory as JoomlaFactory;
@ -114,6 +114,5 @@ abstract class Database
return $table; return $table;
} }
} }

View File

@ -7,7 +7,7 @@
"load_selection": null, "load_selection": null,
"name": "Database", "name": "Database",
"power_version": "1.0.0", "power_version": "1.0.0",
"system_name": "JCB.Abstraction.Database", "system_name": "VDM.Abstraction.Database",
"type": "abstract class", "type": "abstract class",
"use_selection": { "use_selection": {
"use_selection0": { "use_selection0": {
@ -15,7 +15,7 @@
"as": "default" "as": "default"
} }
}, },
"namespace": "VDM\\Joomla\\Componentbuilder.Abstraction.Database", "namespace": "VDM\\Joomla\\Abstraction.Database",
"description": "Database\r\n\r\n@since 3.2.0", "description": "Database\r\n\r\n@since 3.2.0",
"licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n", "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n",
"head": "use Joomla\\CMS\\Factory as JoomlaFactory;", "head": "use Joomla\\CMS\\Factory as JoomlaFactory;",

View File

@ -7,7 +7,7 @@
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
``` ```
# interface UpdateInterface (Details) # interface UpdateInterface (Details)
> namespace: **VDM\Joomla\Componentbuilder\Interfaces** > namespace: **VDM\Joomla\Interfaces**
```uml ```uml
@startuml @startuml
interface UpdateInterface #Lavender { interface UpdateInterface #Lavender {

View File

@ -9,7 +9,7 @@
* @license GNU General Public License version 2 or later; see LICENSE.txt * @license GNU General Public License version 2 or later; see LICENSE.txt
*/ */
namespace VDM\Joomla\Componentbuilder\Interfaces; namespace VDM\Joomla\Interfaces;
/** /**
@ -68,6 +68,5 @@ interface UpdateInterface
* @since 3.2.0 * @since 3.2.0
**/ **/
public function item(object $data, string $key, string $table): bool; public function item(object $data, string $key, string $table): bool;
} }

View File

@ -7,10 +7,10 @@
"load_selection": null, "load_selection": null,
"name": "UpdateInterface", "name": "UpdateInterface",
"power_version": "1.0.0", "power_version": "1.0.0",
"system_name": "JCB.Interfaces.UpdateInterface", "system_name": "VDM.Interfaces.UpdateInterface",
"type": "interface", "type": "interface",
"use_selection": null, "use_selection": null,
"namespace": "VDM\\Joomla\\Componentbuilder.Interfaces.UpdateInterface", "namespace": "VDM\\Joomla\\Interfaces.UpdateInterface",
"description": "Database Update Interface\r\n\r\n@since 3.2.0", "description": "Database Update Interface\r\n\r\n@since 3.2.0",
"licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n", "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n",
"head": "", "head": "",

View File

@ -7,7 +7,7 @@
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
``` ```
# interface ModelInterface (Details) # interface ModelInterface (Details)
> namespace: **VDM\Joomla\Componentbuilder\Interfaces** > namespace: **VDM\Joomla\Interfaces**
```uml ```uml
@startuml @startuml
interface ModelInterface #Lavender { interface ModelInterface #Lavender {

View File

@ -9,7 +9,7 @@
* @license GNU General Public License version 2 or later; see LICENSE.txt * @license GNU General Public License version 2 or later; see LICENSE.txt
*/ */
namespace VDM\Joomla\Componentbuilder\Interfaces; namespace VDM\Joomla\Interfaces;
/** /**
@ -90,6 +90,5 @@ interface ModelInterface
* @since 3.2.0 * @since 3.2.0
*/ */
public function last(?string $table = null): ?int; public function last(?string $table = null): ?int;
} }

View File

@ -7,10 +7,10 @@
"load_selection": null, "load_selection": null,
"name": "ModelInterface", "name": "ModelInterface",
"power_version": "1.0.0", "power_version": "1.0.0",
"system_name": "JCB.Interfaces.ModelInterface", "system_name": "VDM.Interfaces.ModelInterface",
"type": "interface", "type": "interface",
"use_selection": null, "use_selection": null,
"namespace": "VDM\\Joomla\\Componentbuilder.Interfaces.ModelInterface", "namespace": "VDM\\Joomla\\Interfaces.ModelInterface",
"description": "Model Interface\r\n\r\n@since 3.2.0", "description": "Model Interface\r\n\r\n@since 3.2.0",
"licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n", "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n",
"head": "", "head": "",

View File

@ -7,7 +7,7 @@
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
``` ```
# interface InsertInterface (Details) # interface InsertInterface (Details)
> namespace: **VDM\Joomla\Componentbuilder\Interfaces** > namespace: **VDM\Joomla\Interfaces**
```uml ```uml
@startuml @startuml
interface InsertInterface #Lavender { interface InsertInterface #Lavender {

View File

@ -9,7 +9,7 @@
* @license GNU General Public License version 2 or later; see LICENSE.txt * @license GNU General Public License version 2 or later; see LICENSE.txt
*/ */
namespace VDM\Joomla\Componentbuilder\Interfaces; namespace VDM\Joomla\Interfaces;
/** /**
@ -74,6 +74,5 @@ interface InsertInterface
* @since 3.2.0 * @since 3.2.0
**/ **/
public function item(object $data, string $table): bool; public function item(object $data, string $table): bool;
} }

View File

@ -10,7 +10,7 @@
"system_name": "JCB.Interfaces.InsertInterface", "system_name": "JCB.Interfaces.InsertInterface",
"type": "interface", "type": "interface",
"use_selection": null, "use_selection": null,
"namespace": "VDM\\Joomla\\Componentbuilder.Interfaces.InsertInterface", "namespace": "VDM\\Joomla\\Interfaces.InsertInterface",
"description": "Database Insert Interface\r\n\r\n@since 3.2.0", "description": "Database Insert Interface\r\n\r\n@since 3.2.0",
"licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n", "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n",
"head": "", "head": "",

View File

@ -11,76 +11,8 @@
```uml ```uml
@startuml @startuml
class Table #Gold { class Table #Gold {
+ get(string $table, ?string $field = null, ...) : mixed
+ title(string $table) : ?array
+ titleName(string $table) : string
+ tables() : array
+ exist(string $table, ?string $field = null) : bool
+ fields(string $table, bool $default = false) : ?array
# addDefault(array $fields) : array
} }
note right of Table::get
Get any value from a item/field/column of an area/view/table
Example: $this->get('table_name', 'field_name', 'value_key');
Get an item/field/column of an area/view/table
Example: $this->get('table_name', 'field_name');
Get all items/fields/columns of an area/view/table
Example: $this->get('table_name');
Get all areas/views/tables with all their item/field/column details
Example: $this->get('All');
since: 3.2.0
return: mixed
arguments:
string $table
?string $field = null
?string $key = null
end note
note right of Table::title
Get title field from an area/view/table
since: 3.2.0
return: ?array
end note
note right of Table::titleName
Get title field name
since: 3.2.0
return: string
end note
note right of Table::tables
Get all tables
since: 3.2.0
return: array
end note
note right of Table::exist
Check if a table (and field) exist
since: 3.2.0
return: bool
end note
note right of Table::fields
Get all fields of an area/view/table
since: 3.2.0
return: ?array
end note
note right of Table::addDefault
Add the default fields
since: 3.2.0
return: array
end note
@enduml @enduml
``` ```

View File

@ -12,7 +12,8 @@
namespace VDM\Joomla\Componentbuilder; namespace VDM\Joomla\Componentbuilder;
use VDM\Joomla\Componentbuilder\Interfaces\Tableinterface; use VDM\Joomla\Interfaces\Tableinterface;
use VDM\Joomla\Abstraction\BaseTable;
/** /**
@ -20,7 +21,7 @@ use VDM\Joomla\Componentbuilder\Interfaces\Tableinterface;
* *
* @since 3.2.0 * @since 3.2.0
*/ */
class Table implements Tableinterface class Table extends BaseTable implements Tableinterface
{ {
/** /**
* All areas/views/tables with their field details * All areas/views/tables with their field details
@ -5544,198 +5545,5 @@ class Table implements Tableinterface
], ],
], ],
]; ];
/**
* Get any value from a item/field/column of an area/view/table
* Example: $this->get('table_name', 'field_name', 'value_key');
* Get an item/field/column of an area/view/table
* Example: $this->get('table_name', 'field_name');
* Get all items/fields/columns of an area/view/table
* Example: $this->get('table_name');
* Get all areas/views/tables with all their item/field/column details
* Example: $this->get('All');
*
* @param string $table The table
* @param string|null $field The field
* @param string|null $key The value key
*
* @return mixed
* @since 3.2.0
*/
public function get(string $table, ?string $field = null, ?string $key = null)
{
// return the item/field/column of an area/view/table
if (is_string($field) && is_string($key))
{
// return the value of a item/field/column of an area/view/table
if (isset($this->tables[$table][$field][$key]))
{
return $this->tables[$table][$field][$key];
}
return null;
}
// return the item/field/column of an area/view/table
elseif (is_string($field))
{
if (isset($this->tables[$table][$field]))
{
return $this->tables[$table][$field];
}
return null;
}
// return an area/view/table
elseif ($table !== 'All')
{
if (isset($this->tables[$table]))
{
return $this->tables[$table];
}
return null;
}
// return all
return $this->tables;
}
/**
* Get title field from an area/view/table
*
* @param string $table The area
*
* @return ?array
* @since 3.2.0
*/
public function title(string $table): ?array
{
// return the title item/field/column of an area/view/table
if (($table = $this->get($table)) !== null)
{
foreach ($table as $item)
{
if ($item['title'])
{
return $item;
}
}
}
// none found
return null;
}
/**
* Get title field name
*
* @param string $table The area
*
* @return string
* @since 3.2.0
*/
public function titleName(string $table): string
{
// return the title name of an area/view/table
if (($field = $this->title($table)) !== null)
{
return $field['name'];
}
// none found default to ID
return 'id';
}
/**
* Get all tables
*
* @return array
* @since 3.2.0
*/
public function tables(): array
{
// return all areas/views/tables
return array_keys($this->tables);
}
/**
* Check if a table (and field) exist
*
* @param string $table The area
* @param string|null $field The area
*
* @return bool
* @since 3.2.0
*/
public function exist(string $table, ?string $field = null): bool
{
if (isset($this->tables[$table]))
{
// if we have a field
if (is_string($field))
{
if (isset($this->tables[$table][$field]))
{
return true;
}
}
else
{
return true;
}
}
return false;
}
/**
* Get all fields of an area/view/table
*
* @param string $table The area
* @param bool $default Add the default fields
*
* @return array|null On success an array of fields
* @since 3.2.0
*/
public function fields(string $table, bool $default = false): ?array
{
// return all fields of an area/view/table
if (($table = $this->get($table)) !== null)
{
if ($default)
{
return $this->addDefault(array_keys($table));
}
else
{
return array_keys($table);
}
}
// none found
return null;
}
/**
* Add the default fields
*
* @param array $fields The table dynamic fields
*
* @return array Fields (with defaults added)
* @since 3.2.0
*/
protected function addDefault(array $fields): array
{
// add default fields
array_unshift($fields, 'id');
$fields[] = 'ordering';
$fields[] = 'published';
$fields[] = 'modified_by';
$fields[] = 'modified';
$fields[] = 'created_by';
$fields[] = 'created';
$fields[] = 'hits';
$fields[] = 'version';
return $fields;
}
} }

View File

@ -5,195 +5,3 @@
* @since 3.2.0 * @since 3.2.0
**/ **/
protected array $tables = ###ALL_COMPONENT_FIELDS###; protected array $tables = ###ALL_COMPONENT_FIELDS###;
/**
* Get any value from a item/field/column of an area/view/table
* Example: $this->get('table_name', 'field_name', 'value_key');
* Get an item/field/column of an area/view/table
* Example: $this->get('table_name', 'field_name');
* Get all items/fields/columns of an area/view/table
* Example: $this->get('table_name');
* Get all areas/views/tables with all their item/field/column details
* Example: $this->get('All');
*
* @param string $table The table
* @param string|null $field The field
* @param string|null $key The value key
*
* @return mixed
* @since 3.2.0
*/
public function get(string $table, ?string $field = null, ?string $key = null)
{
// return the item/field/column of an area/view/table
if (is_string($field) && is_string($key))
{
// return the value of a item/field/column of an area/view/table
if (isset($this->tables[$table][$field][$key]))
{
return $this->tables[$table][$field][$key];
}
return null;
}
// return the item/field/column of an area/view/table
elseif (is_string($field))
{
if (isset($this->tables[$table][$field]))
{
return $this->tables[$table][$field];
}
return null;
}
// return an area/view/table
elseif ($table !== 'All')
{
if (isset($this->tables[$table]))
{
return $this->tables[$table];
}
return null;
}
// return all
return $this->tables;
}
/**
* Get title field from an area/view/table
*
* @param string $table The area
*
* @return ?array
* @since 3.2.0
*/
public function title(string $table): ?array
{
// return the title item/field/column of an area/view/table
if (($table = $this->get($table)) !== null)
{
foreach ($table as $item)
{
if ($item['title'])
{
return $item;
}
}
}
// none found
return null;
}
/**
* Get title field name
*
* @param string $table The area
*
* @return string
* @since 3.2.0
*/
public function titleName(string $table): string
{
// return the title name of an area/view/table
if (($field = $this->title($table)) !== null)
{
return $field['name'];
}
// none found default to ID
return 'id';
}
/**
* Get all tables
*
* @return array
* @since 3.2.0
*/
public function tables(): array
{
// return all areas/views/tables
return array_keys($this->tables);
}
/**
* Check if a table (and field) exist
*
* @param string $table The area
* @param string|null $field The area
*
* @return bool
* @since 3.2.0
*/
public function exist(string $table, ?string $field = null): bool
{
if (isset($this->tables[$table]))
{
// if we have a field
if (is_string($field))
{
if (isset($this->tables[$table][$field]))
{
return true;
}
}
else
{
return true;
}
}
return false;
}
/**
* Get all fields of an area/view/table
*
* @param string $table The area
* @param bool $default Add the default fields
*
* @return array|null On success an array of fields
* @since 3.2.0
*/
public function fields(string $table, bool $default = false): ?array
{
// return all fields of an area/view/table
if (($table = $this->get($table)) !== null)
{
if ($default)
{
return $this->addDefault(array_keys($table));
}
else
{
return array_keys($table);
}
}
// none found
return null;
}
/**
* Add the default fields
*
* @param array $fields The table dynamic fields
*
* @return array Fields (with defaults added)
* @since 3.2.0
*/
protected function addDefault(array $fields): array
{
// add default fields
array_unshift($fields, 'id');
$fields[] = 'ordering';
$fields[] = 'published';
$fields[] = 'modified_by';
$fields[] = 'modified';
$fields[] = 'created_by';
$fields[] = 'created';
$fields[] = 'hits';
$fields[] = 'version';
return $fields;
}

View File

@ -1,7 +1,7 @@
{ {
"add_head": "0", "add_head": "0",
"add_licensing_template": "2", "add_licensing_template": "2",
"extends": "0", "extends": "e0f6ddbe-2a35-4537-942c-faff2ebd04f6",
"guid": "bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8", "guid": "bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8",
"implements": [ "implements": [
"2da6d6c4-eb29-4d69-8bc2-36d96e916adf" "2da6d6c4-eb29-4d69-8bc2-36d96e916adf"

View File

@ -7,7 +7,7 @@
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
``` ```
# interface FactoryInterface (Details) # interface FactoryInterface (Details)
> namespace: **VDM\Joomla\Componentbuilder\Interfaces** > namespace: **VDM\Joomla\Interfaces**
```uml ```uml
@startuml @startuml
interface FactoryInterface #Lavender { interface FactoryInterface #Lavender {

View File

@ -9,7 +9,7 @@
* @license GNU General Public License version 2 or later; see LICENSE.txt * @license GNU General Public License version 2 or later; see LICENSE.txt
*/ */
namespace VDM\Joomla\Componentbuilder\Interfaces; namespace VDM\Joomla\Interfaces;
use Joomla\DI\Container; use Joomla\DI\Container;
@ -37,6 +37,5 @@ interface FactoryInterface
* @since 3.2.0 * @since 3.2.0
*/ */
public static function getContainer(): Container; public static function getContainer(): Container;
} }

View File

@ -7,10 +7,10 @@
"load_selection": null, "load_selection": null,
"name": "FactoryInterface", "name": "FactoryInterface",
"power_version": "1.0.0", "power_version": "1.0.0",
"system_name": "JCB.Interfaces.FactoryInterface", "system_name": "VDM.Interfaces.FactoryInterface",
"type": "interface", "type": "interface",
"use_selection": null, "use_selection": null,
"namespace": "VDM\\Joomla\\Componentbuilder.Interfaces.FactoryInterface", "namespace": "VDM\\Joomla\\Interfaces.FactoryInterface",
"description": "The Container Factory Interface", "description": "The Container Factory Interface",
"licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n", "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n",
"head": "use Joomla\\DI\\Container;", "head": "use Joomla\\DI\\Container;",

View File

@ -7,7 +7,7 @@
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
``` ```
# final class Update (Details) # final class Update (Details)
> namespace: **VDM\Joomla\Componentbuilder\Database** > namespace: **VDM\Joomla\Database**
```uml ```uml
@startuml @startuml
class Update << (F,LightGreen) >> #Green { class Update << (F,LightGreen) >> #Green {

View File

@ -9,11 +9,11 @@
* @license GNU General Public License version 2 or later; see LICENSE.txt * @license GNU General Public License version 2 or later; see LICENSE.txt
*/ */
namespace VDM\Joomla\Componentbuilder\Database; namespace VDM\Joomla\Database;
use VDM\Joomla\Componentbuilder\Interfaces\UpdateInterface; use VDM\Joomla\Interfaces\UpdateInterface;
use VDM\Joomla\Componentbuilder\Abstraction\Database; use VDM\Joomla\Abstraction\Database;
/** /**
@ -184,6 +184,5 @@ final class Update extends Database implements UpdateInterface
// convert to an array // convert to an array
return $this->row((array) get_object_vars($data), $key, $table); return $this->row((array) get_object_vars($data), $key, $table);
} }
} }

View File

@ -9,10 +9,10 @@
"load_selection": null, "load_selection": null,
"name": "Update", "name": "Update",
"power_version": "1.0.0", "power_version": "1.0.0",
"system_name": "JCB.Database.Update", "system_name": "VDM.Database.Update",
"type": "final class", "type": "final class",
"use_selection": null, "use_selection": null,
"namespace": "VDM\\Joomla\\Componentbuilder.Database.Update", "namespace": "VDM\\Joomla\\Database.Update",
"description": "Database Update Class\r\n\r\n@since 3.2.0", "description": "Database Update Class\r\n\r\n@since 3.2.0",
"licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n", "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n",
"head": "", "head": "",

View File

@ -0,0 +1,98 @@
```
██████╗ ██████╗ ██╗ ██╗███████╗██████╗
██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗
██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝
██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗
██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
```
# abstract class BaseTable (Details)
> namespace: **VDM\Joomla\Abstraction**
```uml
@startuml
abstract BaseTable #Orange {
# array $tables
+ get(string $table, ?string $field = null, ...) : mixed
+ title(string $table) : ?array
+ titleName(string $table) : string
+ tables() : array
+ exist(string $table, ?string $field = null) : bool
+ fields(string $table, bool $default = false) : ?array
# addDefault(array $fields) : array
}
note right of BaseTable::get
Get any value from a item/field/column of an area/view/table
Example: $this->get('table_name', 'field_name', 'value_key');
Get an item/field/column of an area/view/table
Example: $this->get('table_name', 'field_name');
Get all items/fields/columns of an area/view/table
Example: $this->get('table_name');
Get all areas/views/tables with all their item/field/column details
Example: $this->get('All');
since: 3.2.0
return: mixed
arguments:
string $table
?string $field = null
?string $key = null
end note
note right of BaseTable::title
Get title field from an area/view/table
since: 3.2.0
return: ?array
end note
note right of BaseTable::titleName
Get title field name
since: 3.2.0
return: string
end note
note right of BaseTable::tables
Get all tables
since: 3.2.0
return: array
end note
note right of BaseTable::exist
Check if a table (and field) exist
since: 3.2.0
return: bool
end note
note right of BaseTable::fields
Get all fields of an area/view/table
since: 3.2.0
return: ?array
end note
note right of BaseTable::addDefault
Add the default fields
since: 3.2.0
return: array
end note
@enduml
```
---
```
██╗ ██████╗██████╗
██║██╔════╝██╔══██╗
██║██║ ██████╔╝
██ ██║██║ ██╔══██╗
╚█████╔╝╚██████╗██████╔╝
╚════╝ ╚═════╝╚═════╝
```
> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder)

View File

@ -0,0 +1,225 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 4th September, 2022
* @author Llewellyn van der Merwe <https://dev.vdm.io>
* @git Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace VDM\Joomla\Abstraction;
use VDM\Joomla\Interfaces\Tableinterface;
/**
* Base Table
*
* @since 3.2.0
*/
abstract class BaseTable implements Tableinterface
{
/**
* All areas/views/tables with their field details
*
* @var array
* @since 3.2.0
**/
protected array $tables;
/**
* Get any value from a item/field/column of an area/view/table
* Example: $this->get('table_name', 'field_name', 'value_key');
* Get an item/field/column of an area/view/table
* Example: $this->get('table_name', 'field_name');
* Get all items/fields/columns of an area/view/table
* Example: $this->get('table_name');
* Get all areas/views/tables with all their item/field/column details
* Example: $this->get('All');
*
* @param string $table The table
* @param string|null $field The field
* @param string|null $key The value key
*
* @return mixed
* @since 3.2.0
*/
public function get(string $table, ?string $field = null, ?string $key = null)
{
// return the item/field/column of an area/view/table
if (is_string($field) && is_string($key))
{
// return the value of a item/field/column of an area/view/table
if (isset($this->tables[$table][$field][$key]))
{
return $this->tables[$table][$field][$key];
}
return null;
}
// return the item/field/column of an area/view/table
elseif (is_string($field))
{
if (isset($this->tables[$table][$field]))
{
return $this->tables[$table][$field];
}
return null;
}
// return an area/view/table
elseif ($table !== 'All')
{
if (isset($this->tables[$table]))
{
return $this->tables[$table];
}
return null;
}
// return all
return $this->tables;
}
/**
* Get title field from an area/view/table
*
* @param string $table The area
*
* @return ?array
* @since 3.2.0
*/
public function title(string $table): ?array
{
// return the title item/field/column of an area/view/table
if (($table = $this->get($table)) !== null)
{
foreach ($table as $item)
{
if ($item['title'])
{
return $item;
}
}
}
// none found
return null;
}
/**
* Get title field name
*
* @param string $table The area
*
* @return string
* @since 3.2.0
*/
public function titleName(string $table): string
{
// return the title name of an area/view/table
if (($field = $this->title($table)) !== null)
{
return $field['name'];
}
// none found default to ID
return 'id';
}
/**
* Get all tables
*
* @return array
* @since 3.2.0
*/
public function tables(): array
{
// return all areas/views/tables
return array_keys($this->tables);
}
/**
* Check if a table (and field) exist
*
* @param string $table The area
* @param string|null $field The area
*
* @return bool
* @since 3.2.0
*/
public function exist(string $table, ?string $field = null): bool
{
if (isset($this->tables[$table]))
{
// if we have a field
if (is_string($field))
{
if (isset($this->tables[$table][$field]))
{
return true;
}
}
else
{
return true;
}
}
return false;
}
/**
* Get all fields of an area/view/table
*
* @param string $table The area
* @param bool $default Add the default fields
*
* @return array|null On success an array of fields
* @since 3.2.0
*/
public function fields(string $table, bool $default = false): ?array
{
// return all fields of an area/view/table
if (($table = $this->get($table)) !== null)
{
if ($default)
{
return $this->addDefault(array_keys($table));
}
else
{
return array_keys($table);
}
}
// none found
return null;
}
/**
* Add the default fields
*
* @param array $fields The table dynamic fields
*
* @return array Fields (with defaults added)
* @since 3.2.0
*/
protected function addDefault(array $fields): array
{
// add default fields
array_unshift($fields, 'id');
$fields[] = 'ordering';
$fields[] = 'published';
$fields[] = 'modified_by';
$fields[] = 'modified';
$fields[] = 'created_by';
$fields[] = 'created';
$fields[] = 'hits';
$fields[] = 'version';
return $fields;
}
}

View File

@ -0,0 +1,199 @@
/**
* All areas/views/tables with their field details
*
* @var array
* @since 3.2.0
**/
protected array $tables;
/**
* Get any value from a item/field/column of an area/view/table
* Example: $this->get('table_name', 'field_name', 'value_key');
* Get an item/field/column of an area/view/table
* Example: $this->get('table_name', 'field_name');
* Get all items/fields/columns of an area/view/table
* Example: $this->get('table_name');
* Get all areas/views/tables with all their item/field/column details
* Example: $this->get('All');
*
* @param string $table The table
* @param string|null $field The field
* @param string|null $key The value key
*
* @return mixed
* @since 3.2.0
*/
public function get(string $table, ?string $field = null, ?string $key = null)
{
// return the item/field/column of an area/view/table
if (is_string($field) && is_string($key))
{
// return the value of a item/field/column of an area/view/table
if (isset($this->tables[$table][$field][$key]))
{
return $this->tables[$table][$field][$key];
}
return null;
}
// return the item/field/column of an area/view/table
elseif (is_string($field))
{
if (isset($this->tables[$table][$field]))
{
return $this->tables[$table][$field];
}
return null;
}
// return an area/view/table
elseif ($table !== 'All')
{
if (isset($this->tables[$table]))
{
return $this->tables[$table];
}
return null;
}
// return all
return $this->tables;
}
/**
* Get title field from an area/view/table
*
* @param string $table The area
*
* @return ?array
* @since 3.2.0
*/
public function title(string $table): ?array
{
// return the title item/field/column of an area/view/table
if (($table = $this->get($table)) !== null)
{
foreach ($table as $item)
{
if ($item['title'])
{
return $item;
}
}
}
// none found
return null;
}
/**
* Get title field name
*
* @param string $table The area
*
* @return string
* @since 3.2.0
*/
public function titleName(string $table): string
{
// return the title name of an area/view/table
if (($field = $this->title($table)) !== null)
{
return $field['name'];
}
// none found default to ID
return 'id';
}
/**
* Get all tables
*
* @return array
* @since 3.2.0
*/
public function tables(): array
{
// return all areas/views/tables
return array_keys($this->tables);
}
/**
* Check if a table (and field) exist
*
* @param string $table The area
* @param string|null $field The area
*
* @return bool
* @since 3.2.0
*/
public function exist(string $table, ?string $field = null): bool
{
if (isset($this->tables[$table]))
{
// if we have a field
if (is_string($field))
{
if (isset($this->tables[$table][$field]))
{
return true;
}
}
else
{
return true;
}
}
return false;
}
/**
* Get all fields of an area/view/table
*
* @param string $table The area
* @param bool $default Add the default fields
*
* @return array|null On success an array of fields
* @since 3.2.0
*/
public function fields(string $table, bool $default = false): ?array
{
// return all fields of an area/view/table
if (($table = $this->get($table)) !== null)
{
if ($default)
{
return $this->addDefault(array_keys($table));
}
else
{
return array_keys($table);
}
}
// none found
return null;
}
/**
* Add the default fields
*
* @param array $fields The table dynamic fields
*
* @return array Fields (with defaults added)
* @since 3.2.0
*/
protected function addDefault(array $fields): array
{
// add default fields
array_unshift($fields, 'id');
$fields[] = 'ordering';
$fields[] = 'published';
$fields[] = 'modified_by';
$fields[] = 'modified';
$fields[] = 'created_by';
$fields[] = 'created';
$fields[] = 'hits';
$fields[] = 'version';
return $fields;
}

View File

@ -0,0 +1,20 @@
{
"add_head": "0",
"add_licensing_template": "2",
"extends": "0",
"guid": "e0f6ddbe-2a35-4537-942c-faff2ebd04f6",
"implements": [
"2da6d6c4-eb29-4d69-8bc2-36d96e916adf"
],
"load_selection": null,
"name": "BaseTable",
"power_version": "1.0.0",
"system_name": "VDM.Abstraction.BaseTable",
"type": "abstract class",
"use_selection": null,
"namespace": "VDM\\Joomla\\Abstraction.BaseTable",
"description": "Base Table\r\n\r\n@since 3.2.0",
"licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n",
"head": "",
"composer": ""
}

View File

@ -7,13 +7,11 @@
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
``` ```
# abstract class BaseConfig (Details) # abstract class BaseConfig (Details)
> namespace: **VDM\Joomla\Componentbuilder\Abstraction** > namespace: **VDM\Joomla\Abstraction**
```uml ```uml
@startuml @startuml
abstract BaseConfig #Orange { abstract BaseConfig #Orange {
# Input $input + __construct()
# JoomlaRegistry $params
+ __construct(?Input $input = null, ?JoomlaRegistry $params = null)
+ __set(string $key, mixed $value) + __set(string $key, mixed $value)
+ __get(string $key) + __get(string $key)
+ get(string $path, mixed $default = null) : mixed + get(string $path, mixed $default = null) : mixed

View File

@ -9,13 +9,10 @@
* @license GNU General Public License version 2 or later; see LICENSE.txt * @license GNU General Public License version 2 or later; see LICENSE.txt
*/ */
namespace VDM\Joomla\Componentbuilder\Abstraction; namespace VDM\Joomla\Abstraction;
use Joomla\Registry\Registry as JoomlaRegistry; use Joomla\Registry\Registry as JoomlaRegistry;
use Joomla\CMS\Factory;
use Joomla\Input\Input;
use VDM\Joomla\Utilities\Component\Helper;
use VDM\Joomla\Utilities\String\ClassfunctionHelper; use VDM\Joomla\Utilities\String\ClassfunctionHelper;
@ -26,36 +23,13 @@ use VDM\Joomla\Utilities\String\ClassfunctionHelper;
*/ */
abstract class BaseConfig extends JoomlaRegistry abstract class BaseConfig extends JoomlaRegistry
{ {
/**
* Hold a JInput object for easier access to the input variables.
*
* @var Input
* @since 3.2.0
*/
protected Input $input;
/**
* The Params
*
* @var JoomlaRegistry
* @since 3.2.0
*/
protected JoomlaRegistry $params;
/** /**
* Constructor * Constructor
* *
* @param Input|null $input Input
* @param Registry|null $params The component parameters
*
* @throws \Exception
* @since 3.2.0 * @since 3.2.0
*/ */
public function __construct(?Input $input = null, ?JoomlaRegistry $params = null) public function __construct()
{ {
$this->input = $input ?: Factory::getApplication()->input;
$this->params = $params ?: Helper::getParams('com_componentbuilder');
// Instantiate the internal data object. // Instantiate the internal data object.
$this->data = new \stdClass(); $this->data = new \stdClass();
} }
@ -144,6 +118,5 @@ abstract class BaseConfig extends JoomlaRegistry
return $this->append($path, $value); return $this->append($path, $value);
} }
} }

View File

@ -1,33 +1,10 @@
/**
* Hold a JInput object for easier access to the input variables.
*
* @var Input
* @since 3.2.0
*/
protected Input $input;
/**
* The Params
*
* @var JoomlaRegistry
* @since 3.2.0
*/
protected JoomlaRegistry $params;
/** /**
* Constructor * Constructor
* *
* @param Input|null $input Input
* @param Registry|null $params The component parameters
*
* @throws \Exception
* @since 3.2.0 * @since 3.2.0
*/ */
public function __construct(?Input $input = null, ?JoomlaRegistry $params = null) public function __construct()
{ {
$this->input = $input ?: Factory::getApplication()->input;
$this->params = $params ?: Helper::getParams('com_componentbuilder');
// Instantiate the internal data object. // Instantiate the internal data object.
$this->data = new \stdClass(); $this->data = new \stdClass();
} }

View File

@ -2,27 +2,23 @@
"add_head": "1", "add_head": "1",
"add_licensing_template": "2", "add_licensing_template": "2",
"extends": "-1", "extends": "-1",
"guid": "9769f3b2-17bf-4f20-b54b-3a4ebe572b36", "guid": "ffbd4e1f-a342-4080-ab7d-1de3741bf319",
"implements": null, "implements": null,
"load_selection": null, "load_selection": null,
"name": "BaseConfig", "name": "BaseConfig",
"power_version": "1.0.0", "power_version": "1.0.0",
"system_name": "JCB.Abstraction.BaseConfig", "system_name": "VDM.Abstraction.BaseConfig",
"type": "abstract class", "type": "abstract class",
"use_selection": { "use_selection": {
"use_selection0": { "use_selection0": {
"use": "640b5352-fb09-425f-a26e-cd44eda03f15",
"as": "default"
},
"use_selection1": {
"use": "30c5b4c2-f75f-4d15-869a-f8bfedd87358", "use": "30c5b4c2-f75f-4d15-869a-f8bfedd87358",
"as": "default" "as": "default"
} }
}, },
"namespace": "VDM\\Joomla\\Componentbuilder.Abstraction.BaseConfig", "namespace": "VDM\\Joomla\\Abstraction.BaseConfig",
"description": "Config\r\n\r\n@since 3.2.0", "description": "Config\r\n\r\n@since 3.2.0",
"extends_custom": "JoomlaRegistry", "extends_custom": "JoomlaRegistry",
"licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n", "licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n",
"head": "use Joomla\\Registry\\Registry as JoomlaRegistry;\r\nuse Joomla\\CMS\\Factory;\r\nuse Joomla\\Input\\Input;", "head": "use Joomla\\Registry\\Registry as JoomlaRegistry;",
"composer": "" "composer": ""
} }

View File

@ -2,7 +2,7 @@
"06f8eada-d59b-441c-b287-0aea1793da5a": { "06f8eada-d59b-441c-b287-0aea1793da5a": {
"name": "Load", "name": "Load",
"type": "final class", "type": "final class",
"namespace": "VDM\\Joomla\\Componentbuilder\\Database", "namespace": "VDM\\Joomla\\Database",
"code": "src\/06f8eada-d59b-441c-b287-0aea1793da5a\/code.php", "code": "src\/06f8eada-d59b-441c-b287-0aea1793da5a\/code.php",
"power": "src\/06f8eada-d59b-441c-b287-0aea1793da5a\/code.power", "power": "src\/06f8eada-d59b-441c-b287-0aea1793da5a\/code.power",
"settings": "src\/06f8eada-d59b-441c-b287-0aea1793da5a\/settings.json", "settings": "src\/06f8eada-d59b-441c-b287-0aea1793da5a\/settings.json",
@ -54,6 +54,28 @@
"spk": "Super__1f28cb53_60d9_4db1_b517_3c7dc6b429ef__Power", "spk": "Super__1f28cb53_60d9_4db1_b517_3c7dc6b429ef__Power",
"guid": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef" "guid": "1f28cb53-60d9-4db1-b517-3c7dc6b429ef"
}, },
"2ad31f74-f579-499d-b98b-c4f54fd615dd": {
"name": "LoadInterface",
"type": "interface",
"namespace": "VDM\\Joomla\\Interfaces",
"code": "src\/2ad31f74-f579-499d-b98b-c4f54fd615dd\/code.php",
"power": "src\/2ad31f74-f579-499d-b98b-c4f54fd615dd\/code.power",
"settings": "src\/2ad31f74-f579-499d-b98b-c4f54fd615dd\/settings.json",
"path": "src\/2ad31f74-f579-499d-b98b-c4f54fd615dd",
"spk": "Super__2ad31f74_f579_499d_b98b_c4f54fd615dd__Power",
"guid": "2ad31f74-f579-499d-b98b-c4f54fd615dd"
},
"2da6d6c4-eb29-4d69-8bc2-36d96e916adf": {
"name": "Tableinterface",
"type": "interface",
"namespace": "VDM\\Joomla\\Interfaces",
"code": "src\/2da6d6c4-eb29-4d69-8bc2-36d96e916adf\/code.php",
"power": "src\/2da6d6c4-eb29-4d69-8bc2-36d96e916adf\/code.power",
"settings": "src\/2da6d6c4-eb29-4d69-8bc2-36d96e916adf\/settings.json",
"path": "src\/2da6d6c4-eb29-4d69-8bc2-36d96e916adf",
"spk": "Super__2da6d6c4_eb29_4d69_8bc2_36d96e916adf__Power",
"guid": "2da6d6c4-eb29-4d69-8bc2-36d96e916adf"
},
"30c5b4c2-f75f-4d15-869a-f8bfedd87358": { "30c5b4c2-f75f-4d15-869a-f8bfedd87358": {
"name": "ClassfunctionHelper", "name": "ClassfunctionHelper",
"type": "abstract class", "type": "abstract class",
@ -101,7 +123,7 @@
"524eb8f6-38d4-47dc-92ad-98b94e099ac0": { "524eb8f6-38d4-47dc-92ad-98b94e099ac0": {
"name": "Insert", "name": "Insert",
"type": "final class", "type": "final class",
"namespace": "VDM\\Joomla\\Componentbuilder\\Database", "namespace": "VDM\\Joomla\\Database",
"code": "src\/524eb8f6-38d4-47dc-92ad-98b94e099ac0\/code.php", "code": "src\/524eb8f6-38d4-47dc-92ad-98b94e099ac0\/code.php",
"power": "src\/524eb8f6-38d4-47dc-92ad-98b94e099ac0\/code.power", "power": "src\/524eb8f6-38d4-47dc-92ad-98b94e099ac0\/code.power",
"settings": "src\/524eb8f6-38d4-47dc-92ad-98b94e099ac0\/settings.json", "settings": "src\/524eb8f6-38d4-47dc-92ad-98b94e099ac0\/settings.json",
@ -112,7 +134,7 @@
"584747d1-3a86-453d-b7a3-a2219de8d777": { "584747d1-3a86-453d-b7a3-a2219de8d777": {
"name": "Model", "name": "Model",
"type": "abstract class", "type": "abstract class",
"namespace": "VDM\\Joomla\\Componentbuilder\\Abstraction", "namespace": "VDM\\Joomla\\Abstraction",
"code": "src\/584747d1-3a86-453d-b7a3-a2219de8d777\/code.php", "code": "src\/584747d1-3a86-453d-b7a3-a2219de8d777\/code.php",
"power": "src\/584747d1-3a86-453d-b7a3-a2219de8d777\/code.power", "power": "src\/584747d1-3a86-453d-b7a3-a2219de8d777\/code.power",
"settings": "src\/584747d1-3a86-453d-b7a3-a2219de8d777\/settings.json", "settings": "src\/584747d1-3a86-453d-b7a3-a2219de8d777\/settings.json",
@ -134,7 +156,7 @@
"6cbef8f8-4813-48e3-b05a-65e1aea95171": { "6cbef8f8-4813-48e3-b05a-65e1aea95171": {
"name": "Database", "name": "Database",
"type": "abstract class", "type": "abstract class",
"namespace": "VDM\\Joomla\\Componentbuilder\\Abstraction", "namespace": "VDM\\Joomla\\Abstraction",
"code": "src\/6cbef8f8-4813-48e3-b05a-65e1aea95171\/code.php", "code": "src\/6cbef8f8-4813-48e3-b05a-65e1aea95171\/code.php",
"power": "src\/6cbef8f8-4813-48e3-b05a-65e1aea95171\/code.power", "power": "src\/6cbef8f8-4813-48e3-b05a-65e1aea95171\/code.power",
"settings": "src\/6cbef8f8-4813-48e3-b05a-65e1aea95171\/settings.json", "settings": "src\/6cbef8f8-4813-48e3-b05a-65e1aea95171\/settings.json",
@ -145,7 +167,7 @@
"7179fde6-1e51-4b51-8545-7ca18f74a0f4": { "7179fde6-1e51-4b51-8545-7ca18f74a0f4": {
"name": "UpdateInterface", "name": "UpdateInterface",
"type": "interface", "type": "interface",
"namespace": "VDM\\Joomla\\Componentbuilder\\Interfaces", "namespace": "VDM\\Joomla\\Interfaces",
"code": "src\/7179fde6-1e51-4b51-8545-7ca18f74a0f4\/code.php", "code": "src\/7179fde6-1e51-4b51-8545-7ca18f74a0f4\/code.php",
"power": "src\/7179fde6-1e51-4b51-8545-7ca18f74a0f4\/code.power", "power": "src\/7179fde6-1e51-4b51-8545-7ca18f74a0f4\/code.power",
"settings": "src\/7179fde6-1e51-4b51-8545-7ca18f74a0f4\/settings.json", "settings": "src\/7179fde6-1e51-4b51-8545-7ca18f74a0f4\/settings.json",
@ -167,7 +189,7 @@
"8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff": { "8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff": {
"name": "ModelInterface", "name": "ModelInterface",
"type": "interface", "type": "interface",
"namespace": "VDM\\Joomla\\Componentbuilder\\Interfaces", "namespace": "VDM\\Joomla\\Interfaces",
"code": "src\/8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff\/code.php", "code": "src\/8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff\/code.php",
"power": "src\/8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff\/code.power", "power": "src\/8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff\/code.power",
"settings": "src\/8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff\/settings.json", "settings": "src\/8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff\/settings.json",
@ -186,17 +208,6 @@
"spk": "Super__91004529_94a9_4590_b842_e7c6b624ecf5__Power", "spk": "Super__91004529_94a9_4590_b842_e7c6b624ecf5__Power",
"guid": "91004529-94a9-4590-b842-e7c6b624ecf5" "guid": "91004529-94a9-4590-b842-e7c6b624ecf5"
}, },
"9769f3b2-17bf-4f20-b54b-3a4ebe572b36": {
"name": "BaseConfig",
"type": "abstract class",
"namespace": "VDM\\Joomla\\Componentbuilder\\Abstraction",
"code": "src\/9769f3b2-17bf-4f20-b54b-3a4ebe572b36\/code.php",
"power": "src\/9769f3b2-17bf-4f20-b54b-3a4ebe572b36\/code.power",
"settings": "src\/9769f3b2-17bf-4f20-b54b-3a4ebe572b36\/settings.json",
"path": "src\/9769f3b2-17bf-4f20-b54b-3a4ebe572b36",
"spk": "Super__9769f3b2_17bf_4f20_b54b_3a4ebe572b36__Power",
"guid": "9769f3b2-17bf-4f20-b54b-3a4ebe572b36"
},
"9c513baf-b279-43fd-ae29-a585c8cbc4f0": { "9c513baf-b279-43fd-ae29-a585c8cbc4f0": {
"name": "GuidHelper", "name": "GuidHelper",
"type": "abstract class", "type": "abstract class",
@ -244,7 +255,7 @@
"ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48": { "ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48": {
"name": "InsertInterface", "name": "InsertInterface",
"type": "interface", "type": "interface",
"namespace": "VDM\\Joomla\\Componentbuilder\\Interfaces", "namespace": "VDM\\Joomla\\Interfaces",
"code": "src\/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48\/code.php", "code": "src\/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48\/code.php",
"power": "src\/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48\/code.power", "power": "src\/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48\/code.power",
"settings": "src\/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48\/settings.json", "settings": "src\/ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48\/settings.json",
@ -288,7 +299,7 @@
"caf33c5d-858c-4f9a-894f-ab302ec5445a": { "caf33c5d-858c-4f9a-894f-ab302ec5445a": {
"name": "FactoryInterface", "name": "FactoryInterface",
"type": "interface", "type": "interface",
"namespace": "VDM\\Joomla\\Componentbuilder\\Interfaces", "namespace": "VDM\\Joomla\\Interfaces",
"code": "src\/caf33c5d-858c-4f9a-894f-ab302ec5445a\/code.php", "code": "src\/caf33c5d-858c-4f9a-894f-ab302ec5445a\/code.php",
"power": "src\/caf33c5d-858c-4f9a-894f-ab302ec5445a\/code.power", "power": "src\/caf33c5d-858c-4f9a-894f-ab302ec5445a\/code.power",
"settings": "src\/caf33c5d-858c-4f9a-894f-ab302ec5445a\/settings.json", "settings": "src\/caf33c5d-858c-4f9a-894f-ab302ec5445a\/settings.json",
@ -299,7 +310,7 @@
"cce56585-58b0-4f72-a92c-e2635ea52d83": { "cce56585-58b0-4f72-a92c-e2635ea52d83": {
"name": "Update", "name": "Update",
"type": "final class", "type": "final class",
"namespace": "VDM\\Joomla\\Componentbuilder\\Database", "namespace": "VDM\\Joomla\\Database",
"code": "src\/cce56585-58b0-4f72-a92c-e2635ea52d83\/code.php", "code": "src\/cce56585-58b0-4f72-a92c-e2635ea52d83\/code.php",
"power": "src\/cce56585-58b0-4f72-a92c-e2635ea52d83\/code.power", "power": "src\/cce56585-58b0-4f72-a92c-e2635ea52d83\/code.power",
"settings": "src\/cce56585-58b0-4f72-a92c-e2635ea52d83\/settings.json", "settings": "src\/cce56585-58b0-4f72-a92c-e2635ea52d83\/settings.json",
@ -339,5 +350,27 @@
"path": "src\/db87c339-5bb6-4291-a7ef-2c48ea1b06bc", "path": "src\/db87c339-5bb6-4291-a7ef-2c48ea1b06bc",
"spk": "Super__db87c339_5bb6_4291_a7ef_2c48ea1b06bc__Power", "spk": "Super__db87c339_5bb6_4291_a7ef_2c48ea1b06bc__Power",
"guid": "db87c339-5bb6-4291-a7ef-2c48ea1b06bc" "guid": "db87c339-5bb6-4291-a7ef-2c48ea1b06bc"
},
"e0f6ddbe-2a35-4537-942c-faff2ebd04f6": {
"name": "BaseTable",
"type": "abstract class",
"namespace": "VDM\\Joomla\\Abstraction",
"code": "src\/e0f6ddbe-2a35-4537-942c-faff2ebd04f6\/code.php",
"power": "src\/e0f6ddbe-2a35-4537-942c-faff2ebd04f6\/code.power",
"settings": "src\/e0f6ddbe-2a35-4537-942c-faff2ebd04f6\/settings.json",
"path": "src\/e0f6ddbe-2a35-4537-942c-faff2ebd04f6",
"spk": "Super__e0f6ddbe_2a35_4537_942c_faff2ebd04f6__Power",
"guid": "e0f6ddbe-2a35-4537-942c-faff2ebd04f6"
},
"ffbd4e1f-a342-4080-ab7d-1de3741bf319": {
"name": "BaseConfig",
"type": "abstract class",
"namespace": "VDM\\Joomla\\Abstraction",
"code": "src\/ffbd4e1f-a342-4080-ab7d-1de3741bf319\/code.php",
"power": "src\/ffbd4e1f-a342-4080-ab7d-1de3741bf319\/code.power",
"settings": "src\/ffbd4e1f-a342-4080-ab7d-1de3741bf319\/settings.json",
"path": "src\/ffbd4e1f-a342-4080-ab7d-1de3741bf319",
"spk": "Super__ffbd4e1f_a342_4080_ab7d_1de3741bf319__Power",
"guid": "ffbd4e1f-a342-4080-ab7d-1de3741bf319"
} }
} }