Releases: Blackprint/engine-php
Releases · Blackprint/engine-php
v0.9.0
v0.8.15
Bug Fix
- Fix incorrect condition check
- Catch error to reset flag/status
v0.8.14
Bug Fix
- Fix unrecognized type when determining port type
v0.8.13
Bug Fix
- Fix error for event and function node
- Fix imported instance event
v0.8.12
Features
- Add
initPorts
for dynamically initializing ports - Emit
destroy
event when the instance was destroyed - Add experimental feature to lock the instance
- Improve security for environment variable node by using connection rule
- Add experimental
Blackprint.Types.Slot
for ports with lazy type assignment - Add event nodes feature
- Handle namespaced variable or nodes
Bug Fix
- Emit internal event when function port was renamed
- Fix event to be emitted to root instance
- Fix function node that was not being initialized if created manually at runtime
- Fix route port connection and array input data
- Immediate init interface for single node creation
- Improve performance and fix execution order for with
StructOf
feature - Reset updated cable status when disconnected
- Save port configuration and use it for creating function port
- Improve code for step mode execution
- Replace dot settings's internal save name with underscore
- Disable port manipulation on locked instance
- Put id as title if doesn't have custom title
- Avoid calling update on cable connection when the node having input route
- Remove internal marker to avoid dynamic port connection on outer function port
- Fix node update using default input value when cable was disconnected
- Fix dynamic port marker on internal interface
- Fix type assigned on variable node
- Force output port that use union to be Any type
- Move port type re-assigment for output port
- Improve output port's type when using port feature
- Validate namespace name
- Add options to disable cleaning the instance when importing JSON
v0.8.0
Features
- Add
waitOnce
for waiting for an event with Promise - Add pausible execution feature and change node execution order (experimental, please expect changes in version 0.8)
Bug Fix
- Fix
value
event trigger - Fix execution order for custom function node
- Fix incorrect value when using function port's node
- Fix cable input order
- Fix route and partial update
- Fix incorrect iface id references
- Fix port switches initialization
- Reset every struct port into null
- Clear port cache when reusing port
- Avoid re-emitting event on updated cable
- Avoid using ArrayOf port for custom function node
Breaking Changes
- Remove deprecated function
instance->getNode()
, please useinstance->iface[id]
orinstance->ifaceList[index]
$instance = new Blackprint.Engine();
$instance->importJSON('...');
// Get iface by node id
$instance->getNode('nodeId'); // Before
$instance->iface['nodeId']; // After
// Get iface by node index
$instance->getNode(0); // Before
$instance->ifaceList[0]; // After
.update
function will no longer receive cable parameter if.partialUpdate
is not set to true
// Before
class MyNode extends \Blackprint\Node {
function update($cable){...}
}
// After
class MyNode extends \Blackprint\Node {
function __construct($instance){
// ...
$this->partialUpdate = true;
}
function update($cable){...}
}
v0.7.3
Features
- Add
isGhost
on interface for standalone port
Bug Fix
- Fix index error when creating new function
- Fix skipped cache removal for route mode
v0.7.1
Features
- Add feature to allow output resynchronization
v0.7.0
Most features is adapted from engine-js.
Feature
- Finishing environment variables feature
- Add function, variable, environment node support
- Add route feature to handle data flow
- Add
instance->ref
where theinstance
can be\Blackprint\Engine
thisref
will have reference toOutput
orInput
port - Add
instance->deleteNode
to delete node manually by using code Blackprint->Engine
is now usingCustomEvent
- and more
Breaking Changes
iface->const
andnode->const
now changed intoiface->ref
andnode->ref
- Something may get changes
v0.3.0
New Feature
- You can register nodes with namespace that follow PSR-4 with
Blackprint\registerNamespace
, please see./example/init.php
for reference
Breaking Changes
This changes is supposed to improve efficiency, and reduce possible future breaking changes.
.outputs, .inputs, .properties
field is changed into.output, .input, .property
fornode
andiface
outputs:[]
field is now changed tooutput:[]
for JSON export$instance->registerNode()
and$instance->registerInterface()
will now being replaced withBlackprint\registerNode()
andBlackprint\registerInterface()
- Because PHP support namespace,
Blackprint\registerNamespace
is more recommended $instance->registerNode()
and$instance->registerInterface()
will now only accept class instead of function- Node must extends
Blackprint\Node
and Interface must extendsBlackprint\Interfaces
BPAO
must be changed toBPIC
- When constructing Node,
$node->interface = '...'
now must be changed to$node->setInterface('...')
before accessing the target interface. - Port
Listener
now changed to event listener, please use$port->on('value', callback)
instead - Interface Data now must be a class (to support getter and setter)