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 BaseApi

This interface represents the root level api interface. All other api interfaces extend from this root, excluding the enumerated api interface chain. This is a null api, meant to designate the origin of a chain of related interface constructs.


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

Direct known implementers

oroboros\core\interfaces\api\ClassTypeApi, oroboros\core\interfaces\api\controllers\ControllerApi, oroboros\core\interfaces\api\CoreApi, oroboros\core\interfaces\api\psr\Psr7Api

Indirect known implementers

oroboros\core\libraries\api\ClassTypes, oroboros\core\libraries\file\FileUpload, oroboros\core\libraries\request\Request, oroboros\core\libraries\request\ServerRequest, oroboros\core\libraries\response\Response, oroboros\core\libraries\stream\Message, oroboros\core\libraries\stream\Stream, oroboros\core\libraries\uri\Uri, 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/BaseApi.php

Constants summary

string OROBOROS_DECLARED_API
# self::API
string OROBOROS_DECLARED_CLASS_TYPE
# self::CLASS_TYPE
string OROBOROS_DECLARED_CLASS_SCOPE
# self::CLASS_SCOPE
Oroboros Core API documentation generated by ApiGen