Oroboros Core
  • Namespace
  • Class
  • Tree
  • Deprecated
  • Todo

Namespaces

  • None
  • oroboros
    • core
      • abstracts
        • adapters
        • bootstrap
        • controllers
        • libraries
          • auth
          • bootstrap
          • cache
          • codex
          • config
          • container
          • data
          • database
          • dns
          • entity
          • enum
          • error
          • event
          • extension
          • file
          • flags
          • hooks
          • job
          • logger
          • manager
          • message
          • prototype
          • request
          • response
          • routine
          • shell
          • startup
          • stream
          • template
          • uri
          • utility
          • validation
            • workers
          • worker
        • models
        • patterns
          • behavioral
          • creational
        • utilities
          • exception
            • cache
            • container
          • http
        • views
      • interfaces
        • adapters
          • interpreters
          • sdk
        • api
          • adapters
          • bootstrap
          • controllers
          • psr
        • contract
          • adapters
          • bootstrap
          • codex
          • components
          • controllers
          • data
          • entities
          • errors
          • events
          • extensions
          • jobs
          • libraries
            • auth
            • cache
            • config
            • container
            • enum
            • file
            • flags
            • hooks
            • module
            • promise
            • record
            • request
            • response
            • server
            • shutdown
            • site
            • stream
            • template
            • theme
            • uri
          • models
          • patterns
            • behavioral
            • concurrency
            • creational
            • structural
          • routes
          • routines
            • bootload
            • declarative
            • procedural
            • subsystem
          • services
            • consumer
              • cgi
              • rest
                • local
                • remote
                  • authenticated
                  • unauthenticated
            • provider
              • cgi
              • rest
                • local
                • remote
                  • authenticated
                  • unauthenticated
          • utilities
            • datetime
            • exception
              • cache
              • container
            • filebase
            • http
            • math
            • parser
            • regex
            • session
          • views
        • enumerated
          • environment
          • flags
          • http
          • views
        • libraries
          • manager
          • worker
      • libraries
        • api
        • codex
        • container
        • enum
          • http
        • file
        • hooks
        • logger
        • math
        • psr4
        • request
        • response
        • stream
        • uri
      • patterns
        • creational
      • traits
        • adapters
        • bootstrap
        • codex
        • components
        • controllers
        • data
        • entities
        • events
        • extensions
        • jobs
        • libraries
          • container
          • file
          • request
          • response
          • stream
          • uri
        • models
        • modules
        • patterns
          • behavioral
          • concurrency
          • creational
          • structural
        • routes
        • services
        • utilities
          • core
            • api
            • config
            • contract
              • contract
            • enum
            • environment
            • routines
          • datetime
          • error
          • exception
          • filebase
          • hooks
          • html
          • http
          • logic
          • math
          • parsers
          • regex
          • session
        • views
      • utilities
        • exception
          • cache
          • container
        • http
      • views
    • tests
      • patterns
        • creational
      • psr
        • psr7
      • utilities
        • exception
  • PasswordCompat
    • binary
  • PHP

Interfaces

  • AdapterApi
  • AuthApi
  • BaseApi
  • BehavioralPatternApi
  • BootstrapApi
  • CacheApi
  • ClassScopeApi
  • ClassTypeApi
  • CodexApi
  • CollectionApi
  • ConcurrencyPatternApi
  • ContainerApi
  • ControllerApi
  • CoreApi
  • CreationalPatternApi
  • DatabaseApi
  • DataObjectApi
  • DataObjectCollectionApi
  • DefaultApi
  • EntityApi
  • EntityCollectionApi
  • EnumApi
  • EnvironmentApi
  • EventApi
  • ExceptionApi
  • ExceptionCodeApi
  • ExceptionMessageApi
  • ExtensionrApi
  • FlagApi
  • HtmlTemplateApi
  • JobApi
  • JobCollectionApi
  • LibraryApi
  • LoggerApi
  • LogLevelApi
  • MathApi
  • ModelApi
  • ModuleApi
  • OroborosApi
  • ParserApi
  • PatternApi
  • RecordApi
  • RecordCollectionApi
  • RegexApi
  • RequestApi
  • ResponseApi
  • RouteApi
  • RouterApi
  • RoutineApi
  • ServerApi
  • ServiceApi
  • ServiceCollectionApi
  • ShellApi
  • StreamApi
  • StructuralPatternApi
  • TemplateApi
  • UtilityApi
  • ViewApi

Interface CoreApi

This interface represents method contract for the Oroboros core global accessor. This requires the methods neccessary for dynamic line item usage of the static accessor.


PURPOSE

An Api Interface is used to declare a family of related classes, and what they are meant to satisfy. It also declares any dependencies, and any interoperability that can occur with it, or any additional apis that it provides.

This information is used internally to validate the execution plan.

This information can be indexed by checking the Codex


USAGE

Effective useage of this interface construct without collisions requires that these interfaces ONLY BE IMPLEMENTED BY CONCRETE, FINAL CLASSES

The traits and abstractions of this system are built to honor the considerations if these without directly implementing them.

Concrete classes can implement them as proof that they honor their api. Internally, the system will FAVOR the object for jobs related to it's DECLARED API when it has MULTIPLE AVAILABLE OPTIONS that all honor a scope.

DECLARE THE API IN THE CONCRETE CLASS if it is not met by inheritance (traits cannot accomplish this for you. You must either declare this yourself or inherit it from one of our base classes).

const API = '\oroboros\core\interfaces\api\adapters\AdapterApi'; //honors the adapter api

Api Interfaces serve as an index of how class type and class scope relate to specific api use cases. This information is available by checking the Codex

oroboros\core\interfaces\api\CoreApi implements oroboros\core\interfaces\api\BaseApi

Direct known implementers

oroboros\Oroboros

Namespace: oroboros\core\interfaces\api
Author: Brian Dayhoff brian@mopsyd.me
Since: 0.2.4-alpha
See:

\oroboros\core\codex\Codex

Which can also be done by any class using the codex trait


See:

\oroboros\core\traits\codex\CodexTrait

Or by extending the abstract


See:

\oroboros\core\abstracts\codex\Codex


CONSIDERATIONS

These interfaces DO enforce methods

,

for objects to report their api. This condition can be satisfied by including the api trait in your class. Most traits use this one

,

so it is likely already available if you are implementing any other trait.


See:

\oroboros\core\traits\api\ApiTrait

These interfaces DO declare numerous constants. There is a low probability of constant collision with external codebases. If this causes an issue

,

wrap the object that implements the api in one that doesn't

,

and use a pass-through to obtain it's values.

There is a trait that can accomplish this strict enumeration based off of any interface attached to a class that uses it

,

which can also filter results by prefix or suffix of the constant name. It's super handy for indexing these in any class that uses them.


See:

\oroboros\core\traits\libraries\enum\EnumTrait

There are also sets of provided defaults under the concrete namespace


See: \oroboros\core\libraries\enum
Satisfies: \oroboros\core\interfaces\api\ClassTypeApi::CLASS_TYPE_API_VALID
Located at core/interfaces/api/CoreApi.php

Constants summary

Constants inherited from oroboros\core\interfaces\api\BaseApi

OROBOROS_DECLARED_API, OROBOROS_DECLARED_CLASS_SCOPE, OROBOROS_DECLARED_CLASS_TYPE

Oroboros Core API documentation generated by ApiGen