mitoteam/jpgraph

JpGraph library composer package with PHP 8.4 support

10.4.2-rc 2024-11-11 14:37 UTC

README

Packagist Version Packagist PHP Version Support Packagist Total Downloads Packagist Monthly Downloads

GitHub Version GitHub Release Date GitHub code size in bytes GitHub contributors GitHub commit activity

Current JpGraph library version: 4.4.2

PHP versions support: from 5.5 to 8.4. Original notes about PHP versions.

Usage with composer

This package is a helper to load original JpGraph library after declaring it as your dependency in composer.json:

composer require mitoteam/jpgraph

Then you can load library from anywhere in your code:

use mitoteam\jpgraph\MtJpGraph;

// load library and modules
MtJpGraph::load();                # not really useful without modules
//or
MtJpGraph::load('bar');           # load with single module
//or
MtJpGraph::load(['bar', 'line']); # load with several modules
//or
MtJpGraph::load(['bar', 'line'], true); # load with several modules in Extended Mode (see below)

//using original JpGraph classes
$graph = new Graph(200, 300);

You can call MtJpGraph::load() method as many times as you need everywhere in your code. Internally it checks if library or module was already loaded and does not load it another time.

Usage without composer

Download latest version archive from Releases page and unpack it.

Version numbers

We started with version 4.3.5 as latest available library version in time we started. But we need to make some patches to original library (for example to support latest PHP versions). So we had to switch to own version numbers to be able to release updates.

At 2022-02-25 we decided to switch to version number 10.0.0 to leave some margin in numbering from original library v4.3.5.

Current version numbers:

  • Version 10.4.x of this package is latest version of JpGraph library with php 8.2-8.4 compatibility patches (latest code in "main" branch). Can be loaded in Extended Mode (see below).
  • Version 4.4.x of this package provides latest version of original JpGraph library as-is without any compatibility patches (latest code in "original" branch).

All changes to the original library can be examined as difference between main and original branches.

Extended Mode

We started with just patches for compatibility with recent PHP versions. Before version 10.3 there were no any changes to original code except adding some typecasting or declaring some class members explicitly.

But after library was used wider there were some bugs discovered in original code. We aware to change functionality of the original library so Extended Mode was introduced in version 10.3.0. Now you can pass true as second argument to MtJpGraph::load() method to enable Extended Mode. This will enable several more patches to the original code to overcome some bugs.

Extended Mode is disabled by default, you can enable it explicitly only.

Links

Star History

Star History Chart