Skip to content

Commit cc940f2

Browse files
committed
Unify variable function params docs
1 parent 7491ab2 commit cc940f2

6 files changed

Lines changed: 51 additions & 26 deletions

File tree

RELEASE-NOTES.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
## Version 3.0.0 (dev)
44

5+
* `ReferenceList::addNewReference` and `Statement::addNewReference` support an array of Snaks now
56
* The concept of `Claim` is no longer modelled
67
* The `Claim` class itself has been removed, though `Claim` is now a temporary alias for `Statement`
78
* `Claim::RANK_TRUTH` have been removed

src/ReferenceList.php

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
use InvalidArgumentException;
77
use Traversable;
88
use Wikibase\DataModel\Snak\Snak;
9-
use Wikibase\DataModel\Snak\SnakList;
109

1110
/**
1211
* List of Reference objects.
@@ -72,27 +71,30 @@ public function addReference( Reference $reference, $index = null ) {
7271

7372
/**
7473
* @see SplObjectStorage::attach
74+
*
7575
* @param Reference $reference
76-
* @param mixed $data
76+
* @param mixed $data Unused in the ReferenceList class.
7777
*/
7878
public function attach( $reference, $data = null ) {
7979
if ( !$reference->isEmpty() ) {
8080
parent::attach( $reference, $data );
8181
}
8282
}
8383

84-
// @codingStandardsIgnoreStart
8584
/**
8685
* @since 1.1
8786
*
88-
* @param Snak $snak
89-
* @param Snak [$snak2, ...]
87+
* @param Snak[]|Snak $snaks
88+
* @param Snak [$snak2,...]
9089
*
9190
* @throws InvalidArgumentException
9291
*/
93-
public function addNewReference( Snak $snak /* Snak, ... */ ) {
94-
// @codingStandardsIgnoreEnd
95-
$this->addReference( new Reference( new SnakList( func_get_args() ) ) );
92+
public function addNewReference( $snaks = array() /*...*/ ) {
93+
if ( $snaks instanceof Snak ) {
94+
$snaks = func_get_args();
95+
}
96+
97+
$this->addReference( new Reference( $snaks ) );
9698
}
9799

98100
/**

src/Statement/Statement.php

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -172,18 +172,20 @@ public function setReferences( ReferenceList $references ) {
172172
$this->references = $references;
173173
}
174174

175-
// @codingStandardsIgnoreStart
176175
/**
177176
* @since 2.0
178177
*
179-
* @param Snak $snak
180-
* @param Snak [$snak2, ...]
178+
* @param Snak[]|Snak $snaks
179+
* @param Snak [$snak2,...]
181180
*
182181
* @throws InvalidArgumentException
183182
*/
184-
public function addNewReference( Snak $snak /* Snak, ... */ ) {
185-
// @codingStandardsIgnoreEnd
186-
$this->references->addReference( new Reference( new SnakList( func_get_args() ) ) );
183+
public function addNewReference( $snaks = array() /*...*/ ) {
184+
if ( $snaks instanceof Snak ) {
185+
$snaks = func_get_args();
186+
}
187+
188+
$this->references->addNewReference( $snaks );
187189
}
188190

189191
/**

src/Statement/StatementList.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ class StatementList implements IteratorAggregate, Comparable, Countable {
3636

3737
/**
3838
* @param Statement[]|Traversable|Statement $statements
39-
* @param Statement [$statement2, ...]
39+
* @param Statement [$statement2,...]
4040
*
4141
* @throws InvalidArgumentException
4242
*/
43-
public function __construct( $statements = array() /* Statement, ... */ ) {
43+
public function __construct( $statements = array() /*...*/ ) {
4444
if ( $statements instanceof Statement ) {
4545
$statements = func_get_args();
4646
}

tests/unit/ReferenceListTest.php

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
use Wikibase\DataModel\Reference;
99
use Wikibase\DataModel\ReferenceList;
1010
use Wikibase\DataModel\Snak\PropertyNoValueSnak;
11-
use Wikibase\DataModel\Snak\PropertyValueSnak;
1211
use Wikibase\DataModel\Snak\SnakList;
1312

1413
/**
@@ -311,20 +310,26 @@ public function testGivenOneSnak_addNewReferenceAddsSnak() {
311310

312311
public function testGivenMultipleSnaks_addNewReferenceAddsThem() {
313312
$references = new ReferenceList();
313+
$snak1 = new PropertyNoValueSnak( 1 );
314+
$snak2 = new PropertyNoValueSnak( 3 );
315+
$snak3 = new PropertyNoValueSnak( 2 );
314316

315-
$references->addNewReference(
316-
new PropertyNoValueSnak( 1 ),
317-
new PropertyNoValueSnak( 3 ),
318-
new PropertyNoValueSnak( 2 )
319-
);
317+
$references->addNewReference( $snak1, $snak2, $snak3 );
320318

321-
$expectedSnaks = array(
319+
$expectedSnaks = array( $snak1, $snak2, $snak3 );
320+
$this->assertTrue( $references->hasReference( new Reference( $expectedSnaks ) ) );
321+
}
322+
323+
public function testGivenAnArrayOfSnaks_addNewReferenceAddsThem() {
324+
$references = new ReferenceList();
325+
$snaks = array(
322326
new PropertyNoValueSnak( 1 ),
323327
new PropertyNoValueSnak( 3 ),
324328
new PropertyNoValueSnak( 2 )
325329
);
326330

327-
$this->assertTrue( $references->hasReference( new Reference( new SnakList( $expectedSnaks ) ) ) );
331+
$references->addNewReference( $snaks );
332+
$this->assertTrue( $references->hasReference( new Reference( $snaks ) ) );
328333
}
329334

330335
public function testGivenNoneSnak_addNewReferenceThrowsException() {

tests/unit/Statement/StatementTest.php

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,11 +151,26 @@ public function testSetReferences( Statement $statement ) {
151151
/**
152152
* @dataProvider instanceProvider
153153
*/
154-
public function testAddNewReference( Statement $statement ) {
154+
public function testAddNewReferenceWithVariableArgumentsSyntax( Statement $statement ) {
155155
$snak1 = new PropertyNoValueSnak( 256 );
156156
$snak2 = new PropertySomeValueSnak( 42 );
157157
$statement->addNewReference( $snak1, $snak2 );
158-
$this->assertTrue( $statement->getReferences()->hasReference( new Reference( array( $snak1, $snak2 ) ) ) );
158+
159+
$expectedSnaks = array( $snak1, $snak2 );
160+
$this->assertTrue( $statement->getReferences()->hasReference( new Reference( $expectedSnaks ) ) );
161+
}
162+
163+
/**
164+
* @dataProvider instanceProvider
165+
*/
166+
public function testAddNewReferenceWithAnArrayOfSnaks( Statement $statement ) {
167+
$snaks = array(
168+
new PropertyNoValueSnak( 256 ),
169+
new PropertySomeValueSnak( 42 ),
170+
);
171+
$statement->addNewReference( $snaks );
172+
173+
$this->assertTrue( $statement->getReferences()->hasReference( new Reference( $snaks ) ) );
159174
}
160175

161176
/**

0 commit comments

Comments
 (0)