Skip to content

Commit

Permalink
Merge pull request #6 from haampie/feature-bump-php-version-and-outda…
Browse files Browse the repository at this point in the history
…te-dependencies

Feature bump php version and fix outdated dependency
  • Loading branch information
matthiasnoback committed Jul 17, 2016
2 parents 458d197 + d680a6a commit 85a5583
Show file tree
Hide file tree
Showing 11 changed files with 131 additions and 232 deletions.
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -2,3 +2,4 @@
/phpunit.xml
/composer.lock
/build/
/test/SymfonyIntegration/cache/
7 changes: 1 addition & 6 deletions .travis.yml
@@ -1,22 +1,17 @@
language: php

php:
- 5.4
- 5.5
- 5.6
- 7.0

matrix:
allow_failures:
- php: 7.0

before_script:
- composer selfupdate
- composer install --prefer-dist

script:
- vendor/bin/phpunit
- php -n vendor/bin/athletic -p test/Performance
- vendor/bin/phpbench

after_script:
- vendor/bin/coveralls
Expand Down
6 changes: 3 additions & 3 deletions composer.json
Expand Up @@ -13,7 +13,7 @@
}
],
"require": {
"php": ">=5.4",
"php": ">=5.5.9",
"doctrine/instantiator": "~1.0",
"broadway/broadway": "~0.4"
},
Expand All @@ -30,7 +30,7 @@
"require-dev": {
"phpunit/phpunit": "^4.7",
"satooshi/php-coveralls": "^0.6.1",
"athletic/athletic": "^0.1.8",
"symfony/framework-bundle": "~2.7"
"symfony/framework-bundle": "~2.7",
"phpbench/phpbench": "^0.11.2"
}
}
4 changes: 4 additions & 0 deletions phpbench.json
@@ -0,0 +1,4 @@
{
"bootstrap": "vendor/autoload.php",
"path": "test/Performance"
}
87 changes: 0 additions & 87 deletions test/Performance/ReconstituteEvent.php

This file was deleted.

60 changes: 60 additions & 0 deletions test/Performance/ReconstitutionBench.php
@@ -0,0 +1,60 @@
<?php namespace BroadwaySerialization\Test\Performance;

use BroadwaySerialization\Hydration\HydrateUsingReflection;
use BroadwaySerialization\Hydration\HydrateUsingReflectionFaster;
use BroadwaySerialization\Reconstitution\ReconstituteUsingInstantiatorAndHydrator;
use BroadwaySerialization\Reconstitution\Reconstitution;
use Doctrine\Instantiator\Instantiator;

class ReconstitutionBench
{
private $deserializationData = [
'stringProperty' => 'foo',
'integerProperty' => 20,
'nullProperty' => null,
'arrayProperty' => ['foo' => 'bar', 'bar' => 'baz'],
'objectProperty' => [
'foo' => 'foo',
],
'objectsProperty' => [
[
'foo' => 'bar',
],
[
'foo' => 'baz',
],
]
];

public function setup()
{
$reconstitute = new ReconstituteUsingInstantiatorAndHydrator(new Instantiator(), new HydrateUsingReflection());

// test run, for calibration
$reconstitute->objectFrom(SerializableClassUsingTrait::class, []);
$reconstitute->objectFrom(SomeOtherSerializableClassUsingTrait::class, []);

Reconstitution::reconstituteUsing($reconstitute);
}

/**
* @Warmup(10)
* @Revs(100000)
* @Groups({"traditional"})
*/
public function benchDeserializeTraditionalObject()
{
TraditionalSerializableClass::deserialize($this->deserializationData);
}

/**
* @Warmup(10)
* @Revs(100000)
* @Groups({"trait"})
* @BeforeMethods({"setup"})
*/
public function benchDeserializeObjectUsingTrait()
{
SerializableClassUsingTrait::deserialize($this->deserializationData);
}
}
4 changes: 2 additions & 2 deletions test/Performance/SerializableClassUsingTrait.php
Expand Up @@ -29,11 +29,11 @@ protected static function deserializationCallbacks()
{
return [
'objectProperty' => [
'BroadwaySerialization\Test\Performance\SomeOtherSerializableClassUsingTrait',
SomeOtherSerializableClassUsingTrait::class,
'deserialize'
],
'objectsProperty' => [
'BroadwaySerialization\Test\Performance\SomeOtherSerializableClassUsingTrait',
SomeOtherSerializableClassUsingTrait::class,
'deserialize'
],
];
Expand Down
60 changes: 60 additions & 0 deletions test/Performance/SerializationBench.php
@@ -0,0 +1,60 @@
<?php namespace BroadwaySerialization\Test\Performance;

use Broadway\Serializer\SerializableInterface;
use BroadwaySerialization\Hydration\HydrateUsingReflection;
use BroadwaySerialization\Hydration\HydrateUsingReflectionFaster;
use BroadwaySerialization\Reconstitution\ReconstituteUsingInstantiatorAndHydrator;
use BroadwaySerialization\Reconstitution\Reconstitution;
use Doctrine\Instantiator\Instantiator;

class BenchSerialization
{
/**
* @var SerializableInterface
*/
private $traditionalSerializableClass;

/**
* @var SerializableInterface
*/
private $serializableClassUsingTrait;

public function setup()
{
$this->traditionalSerializableClass = new TraditionalSerializableClass();
$this->serializableClassUsingTrait = new SerializableClassUsingTrait();
}

public function setupReconstitute()
{
$reconstitute = new ReconstituteUsingInstantiatorAndHydrator(new Instantiator(), new HydrateUsingReflection());

// test run, for calibration
$reconstitute->objectFrom(SerializableClassUsingTrait::class, []);
$reconstitute->objectFrom(SomeOtherSerializableClassUsingTrait::class, []);

Reconstitution::reconstituteUsing($reconstitute);
}

/**
* @Warmup(10)
* @Revs(100000)
* @Groups({"traditional"})
* @BeforeMethods({"setup"})
*/
public function benchSerializeObjectWithOnlyScalarProperties()
{
$this->traditionalSerializableClass->serialize();
}

/**
* @Warmup(10)
* @Revs(100000)
* @Groups({"trait"})
* @BeforeMethods({"setup","setupReconstitute"})
*/
public function benchSerializeObjectWithOnlyScalarPropertiesWithTrait()
{
$this->serializableClassUsingTrait->serialize();
}
}

0 comments on commit 85a5583

Please sign in to comment.