Ferreteria/v0.6/clade/Sys/Data/Things/Array

From WoozleCodes
Jump to navigation Jump to search
clade: Sys\Data\Things\Array
Clade Family

StandardBase [c,i]
Keyed [i,t]
Series [i,t]
Whole [i,t]

Array
Clade Aliases
Alias Clade
Base* [c,i] aux\StandardBase
KeyedTrait Sys\Data\Things\Array\ifaces\Keyed
SelfIface Sys\Data\Things\Array
SeriesTrait Sys\Data\Things\Series
WholeTrait Sys\Data\Things\Array\ifaces\Whole
Subpages

About

  • Purpose: object-based access to all the stuff you can do with standard PHP arrays
    • This is where Keyed, Series, and Whole are combined.

Pages

Concepts

  • An Array is always a Series (i.e. it retains order), but a Series is not necessarily an Array. (It could be more like a stream.)
  • An Array always has a key, but sometimes the key is just a sequential number. A Keyed array is an Array with assigned key-values.
  • (not implemented) A Flags[et] is a collection of boolean values, i.e. predefined items which are either present or absent
    • It probably makes more sense to just implement these as integer constants defined with binary values, rather than a clade... unless you want a user-friendly readout? To be explored.
  • (not implemented) An enum is a fixed set of values, and can represent each of those values individually. A wrapper for this could provide additional services not permitted by PHP's enum implementaton.

Clade structure

subject to revision while I think through the concepts (2025-08-16)

History

  • 2024-12-21 reconstructing from [WF]Data\Mem\xArray and any podlings that don't introduce more locally-stored data
    • ...because why were they separate in the first place? I'm going on the idea that what's needed is to separate the functions into different interfaces, but implement them all in the same class.
  • 2025-01-14 All viewing/rendering fx() now moved to aux\View classes
    • ShowList() -> Inspect()->ValuesList()
  • 2025-04-23 Moving all the Q/Ref stuff from here to ArrayQ
  • 2025-04-27 Rearranging again: moved this from [WFe]Sys\Data\Things\Array\ifaces\base\xArray -> [WFe]Sys\Data\Things\xArray, cannibalized almost everything from [WFe]Sys\Data\Things\Array\ifaces\V\xArray
  • 2025-07-08 commented out `tArray` and `caArray`
  • 2025-08-14 reactivated both so `caArray` can be used as a semantic referent / placeholder (no code, just iface/traits).
  • 2025-08-15 I keep getting muddled about how this is supposed to work, and therefore writing problematic code -- so, finally mapping it out conceptually.