IOFactory

IOFactory is done in order to:

  • create empty PhpTabs,
  • load PhpTabs from files, strings and arrays
use PhpTabs\IOFactory;

$song = IOFactory::create();

$song = IOFactory::fromArray($array);

$song = IOFactory::fromFile($filename);

$song = IOFactory::fromString($string, $format);

$song = IOFactory::fromJsonFile($jsonFile);

$song = IOFactory::fromSerializedFile($phpSerializedFilename);

$song = IOFactory::fromJson($jsonString);

$song = IOFactory::fromSerialized($phpSerializedString);

All these methods return a PhpTabs instance.


create()

This method returns an empty PhpTabs instance.

Type

PhpTabs\PhpTabs

Example

use PhpTabs\IOFactory;

// Equivalent to 'new PhpTabs()'
$tab = IOFactory::create();

// Print track number
echo "Track count=" . $tab->countTracks();

// Should return "Track count=0"

fromArray($data)

This method returns a PhpTabs resource, loaded from a PHP array.

Parameters

array $data An array previously exported with $phptabs->toArray()

Type

PhpTabs\PhpTabs

Example

use PhpTabs\IOFactory;

// Create an empty tabs
$tab = IOFactory::create();

// Export as an array
$data = $tab->export();

// Now you can reimport as an array
$tab = IOFactory::fromArray($data);

// Print track number
echo "Track count=" . $tab->countTracks();

// Should return "Track count=0"

fromFile($filename, $type)

This method returns a PhpTabs instance, loaded from a file.

Parameters

string $filename string $type Optional

Type

PhpTabs\PhpTabs

Example

use PhpTabs\IOFactory;

// Create a PhpTabs instance
$tab = IOFactory::fromFile('mytabs.gp4');

// Print track number
echo "Track count=" . $tab->countTracks();

// Should return "Track count=2"

In case you need to force a parser type, use the second parameter.

use PhpTabs\IOFactory;

// Create a PhpTabs instance from a JSON file
$tab = IOFactory::fromFile('mytabs.dat', 'json');

// Print track number
echo "Track count=" . $tab->countTracks();

// Should return "Track count=2"

fromString($content, $type)

This method returns a PhpTabs instance, loaded from a string (binary or not).

Parameters

string $content string $type

Type

PhpTabs\PhpTabs

Example

use PhpTabs\IOFactory;

$content = file_get_contents('mytabs.gp4');

// Create a PhpTabs instance
$song = IOFactory::fromString($content, 'gp4');

// Work with the song
echo $song->getName();

In case you need to force a parser type, use the second parameter.


fromJsonFile($filename)

This method returns a PhpTabs resource, loaded from a JSON file.

Parameters

string $filename

Type

PhpTabs\PhpTabs

Example

use PhpTabs\IOFactory;

// Create a PhpTabs instance
$tab = IOFactory::fromJsonFile('mytabs.json');

// Print track number
echo "Track count=" . $tab->countTracks();

// Should return "Track count=2"

fromSerializedFile($filename)

This method returns a PhpTabs resource, loaded from a PHP serialized file.

Parameters

string $filename

Type

PhpTabs\PhpTabs

Example

use PhpTabs\IOFactory;

// Create a PhpTabs instance
$tab = IOFactory::fromSerializedFile('mytabs.ser');

// Print track number
echo "Track count=" . $tab->countTracks();

// Should return "Track count=2"

fromJson($string)

This method returns a PhpTabs instance loaded from a JSON string.

Parameters

string string

Type

PhpTabs\PhpTabs

Example

use PhpTabs\IOFactory;

// Create a PhpTabs instance
$tab = IOFactory::fromJson('{"song":{"name":null,"artist":null,"album":null,"author":null,"copyright":null,"writer":null,"comments":null,"channels":[],"measureHeaders":[],"tracks":[]}}');

// Print track number
echo "Track count=" . $tab->countTracks();

// Should return "Track count=0"

fromSerialized($string)

This method returns a PhpTabs instance, loaded from a PHP serialized string.

Parameters

string string

Type

PhpTabs\PhpTabs

Example

use PhpTabs\IOFactory;

// Create a PhpTabs instance
$tab = IOFactory::fromSerialized('a:1:{s:4:"song";a:10:{s:4:"name";N;s:6:"artist";N;s:5:"album";N;s:6:"author";N;s:9:"copyright";N;s:6:"writer";N;s:8:"comments";N;s:8:"channels";a:0:{}s:14:"measureHeaders";a:0:{}s:6:"tracks";a:0:{}}}');

// Print track number
echo "Track count=" . $tab->countTracks();

// Should return "Track count=0"