Interface SubsystemRoutineContract
Appropriate use cases for this construct include wrapping an entire external system (Like Wordpress, Drupal, Magento, etc), and providing a local object that can defer to that subsystems standard means of execution for the purpose of streamlining integration between the two, or providing a control layer around the subsystem that would not otherwise exist within it's own architecture.
This can then be used to spoof any specific environment for that subsystem, and call the desired result directly, even if it would not otherwise be possbile to do that as per it's own architectural constraints. This also allows you to run post-execution logic that would otherwise not be possible (provided the subsystem doesn't explicitly call exit during it's execution).
Working with a complex subsystem is a lot of work to do right. This IS NOT a drop in answer for seamless integration, but it does provide you a starting point to effect interraction that would not otherwise be possible between two platforms. The specific specifications that apply for any given subsystem will ned to be reviewed by the developer in that systems own documentation to figure out a best-case approach to this task.
Should we develop a streamlined subsystem wrapper for any specific platform, we will release that as a separate extension package for uniform useage. Any such packages we release in the future will build upon this construct, and extend from this to implement the system-specific useage as needed for that specific system.
Contract interfaces enforce expected behavior in a non-colliding way. They are tasked with enforcing methods, and extending interfaces provided by standards and other packages for compatibility.
All valid oroboros classes MUST extend at
least one Contract Interface to be considered valid.
- oroboros\core\interfaces\contract\routines\subsystem\SubsystemRoutineContract implements oroboros\core\interfaces\contract\routines\RoutineContract
Package: oroboros\core\routines
Category: contract-interfaces
License: The MIT License (MIT)
Author: Brian Dayhoff mopsyd@me.com
Version: 0.2.4-alpha
Since: 0.2.4-alpha
Link: bitbucket.org/oroborosframework/oroboros-core/wiki/development/api/contract_interface.md
Located at core/interfaces/contract/routines/subsystem/SubsystemRoutineContract.php