Skip to content

Commit 9bf80fc

Browse files
committed
Add better warning for missing factories
1 parent b42fb90 commit 9bf80fc

8 files changed

+47
-5
lines changed

composer.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,15 @@
1919
"php-http/message-factory": "^1.0"
2020
},
2121
"require-dev": {
22-
"php-http/utils": "dev-factories",
22+
"php-http/utils": "^0.2",
2323
"zendframework/zend-diactoros": "^1.0",
2424
"guzzlehttp/psr7": "^1.0",
2525
"php-http/guzzle6-adapter": "^0.2",
2626
"phpspec/phpspec": "^2.4",
2727
"henrikbjorn/phpspec-code-coverage" : "^1.0"
2828
},
2929
"suggest": {
30-
"php-http/utils": "To use Message Factories"
30+
"php-http/utils": "To use Guzzle or Diactoros factories"
3131
},
3232
"autoload": {
3333
"psr-4": {

spec/MessageFactoryDiscoverySpec.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ function it_is_a_class_discovery()
1616
$this->shouldHaveType('Http\Discovery\ClassDiscovery');
1717
}
1818

19+
function it_is_a_factory_discovery()
20+
{
21+
$this->shouldHaveType('Http\Discovery\FactoryDiscovery');
22+
}
23+
1924
function it_finds_an_http_message_factory()
2025
{
2126
$this->find()->shouldHaveType('Http\Message\MessageFactory');

spec/StreamFactoryDiscoverySpec.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ function it_is_a_class_discovery()
1616
$this->shouldHaveType('Http\Discovery\ClassDiscovery');
1717
}
1818

19+
function it_is_a_factory_discovery()
20+
{
21+
$this->shouldHaveType('Http\Discovery\FactoryDiscovery');
22+
}
23+
1924
function it_finds_an_http_stream_factory()
2025
{
2126
$this->find()->shouldHaveType('Http\Message\StreamFactory');

spec/UriFactoryDiscoverySpec.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ function it_is_a_class_discovery()
1616
$this->shouldHaveType('Http\Discovery\ClassDiscovery');
1717
}
1818

19+
function it_is_a_factory_discovery()
20+
{
21+
$this->shouldHaveType('Http\Discovery\FactoryDiscovery');
22+
}
23+
1924
function it_finds_an_http_uri_factory()
2025
{
2126
$this->find()->shouldHaveType('Http\Message\UriFactory');

src/FactoryDiscovery.php

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
3+
namespace Http\Discovery;
4+
5+
/**
6+
* Finds a Factory.
7+
*
8+
* @author Márk Sági-Kazár <[email protected]>
9+
*/
10+
abstract class FactoryDiscovery extends ClassDiscovery
11+
{
12+
/**
13+
* {@inheritdoc}
14+
*/
15+
public static function find()
16+
{
17+
try {
18+
return parent::find();
19+
} catch (NotFoundException $e) {
20+
throw new NotFoundException(
21+
'No factories found. Install php-http/utils >= 0.2 to use Guzzle or Diactoros factories.',
22+
0,
23+
$e
24+
);
25+
}
26+
}
27+
}

src/MessageFactoryDiscovery.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*
1010
* @author Márk Sági-Kazár <[email protected]>
1111
*/
12-
final class MessageFactoryDiscovery extends ClassDiscovery
12+
final class MessageFactoryDiscovery extends FactoryDiscovery
1313
{
1414
/**
1515
* @var MessageFactory

src/StreamFactoryDiscovery.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*
1010
* @author Михаил Красильников <[email protected]>
1111
*/
12-
final class StreamFactoryDiscovery extends ClassDiscovery
12+
final class StreamFactoryDiscovery extends FactoryDiscovery
1313
{
1414
/**
1515
* @var StreamFactory

src/UriFactoryDiscovery.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*
1010
* @author David de Boer <[email protected]>
1111
*/
12-
final class UriFactoryDiscovery extends ClassDiscovery
12+
final class UriFactoryDiscovery extends FactoryDiscovery
1313
{
1414
/**
1515
* @var UriFactory

0 commit comments

Comments
 (0)