Skip to content

v0.8.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@clue clue released this 31 Dec 15:52
  • Feature: Add general purpose Attributes.
    (#103)
  • BC break: Split off all GraphViz-related classes to a separate
    graphp/graphviz package.
    (#115)
  • Feature: The base Graph, Vertex and EdgeBase classes can now be
    extended in order to implement a custom behavior. As such, one can now also
    instantiate them using the normal new operator instead of having to use
    Graph::createVertex() family of methods.
    (#82)
  • BC break: Rename Algorithm\Directed::isDirected() to remove its ambiguity
    in regards to mixed and/or empty graphs
    (#80)
Old name New name
Algorithm\Directed::isDirected() Algorithm\Directed::hasDirected()
  • Feature: Add new Algorithm\Directed::hasUndirected() and
    Algorithm\Directed::isMixed() in order to complement the renamed
    Algorithm\Directed::hasDirected()
    (#80)
  • BC break: Walk::factoryCycleFromVertices() no longer tries to auto-complete
    a cycle if the first vertex does not match the last one, but now throws an
    InvalidArgumentException instead (#87)
  • Feature: Support loop Walks, i.e. a walk with only a single edge from
    vertex A back to A (#87)
  • Fix: Stricter checks for invalid cycles, such as one with an invalid
    predecessor-map or no edges at all (#87)
  • Fix: The Algorithm\ShortestPath\MooreBellmanFord now also works for unweighted
    edges. This also fixes an issue where Algorithm\DetectNegativeCycle didn't work
    for unweighted edges. (#81)
  • Fix: The Algorithm\MinimumCostFlow algorithms now work again. The reference
    to a non-existant class has been updated. Also fixed several issues with
    regards to special cases such as disconnected or undirected graphs.
    (#74)
  • BC break: Remove unneeded alias definitions of getVertexFirst(),
    getVertexSource() and getVertexTarget()
    (#76):
Old name New name
Graph::getVertexFirst() Graph::getVertices()->getVertexFirst()
Walk::getVertexSource() Walk::getVertices()->getVertexFirst()
Walk::getVertexTarget() Walk::getVertices()->getVertexLast()