Skip to content

Commit 1ec4c87

Browse files
committed
Moved Module classfile to top-level directory
- Use composer.json classmap to load Module classfile
1 parent e804f2c commit 1ec4c87

File tree

4 files changed

+86
-90
lines changed

4 files changed

+86
-90
lines changed

Module.php

Lines changed: 79 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,82 @@
44
* @copyright Copyright (c) 2013 Zend Technologies USA Inc. (http://www.zend.com)
55
*/
66

7-
include __DIR__ . '/src/ZF/ApiProblem/Module.php';
7+
namespace ZF\ApiProblem;
8+
9+
use Zend\Mvc\ResponseSender\SendResponseEvent;
10+
11+
/**
12+
* ZF2 module
13+
*/
14+
class Module
15+
{
16+
/**
17+
* Retrieve autoloader configuration
18+
*
19+
* @return array
20+
*/
21+
public function getAutoloaderConfig()
22+
{
23+
return array(
24+
'Zend\Loader\StandardAutoloader' => array('namespaces' => array(
25+
__NAMESPACE__ => __DIR__ . '/src/ZF/ApiProblem/',
26+
))
27+
);
28+
}
29+
30+
/**
31+
* Retrieve module configuration
32+
*
33+
* @return array
34+
*/
35+
public function getConfig()
36+
{
37+
return include __DIR__ . '/config/module.config.php';
38+
}
39+
40+
/**
41+
* Listener for bootstrap event
42+
*
43+
* Attaches a render event.
44+
*
45+
* @param \Zend\Mvc\MvcEvent $e
46+
*/
47+
public function onBootstrap($e)
48+
{
49+
$app = $e->getTarget();
50+
$serviceManager = $app->getServiceManager();
51+
$eventManager = $app->getEventManager();
52+
53+
$eventManager->attach($serviceManager->get('ZF\ApiProblem\ApiProblemListener'));
54+
$eventManager->attach('render', array($this, 'onRender'), 100);
55+
56+
$sendResponseListener = $serviceManager->get('SendResponseListener');
57+
$sendResponseListener->getEventManager()->attach(
58+
SendResponseEvent::EVENT_SEND_RESPONSE,
59+
$serviceManager->get('ZF\ApiProblem\Listener\SendApiProblemResponseListener'),
60+
-500
61+
);
62+
}
63+
64+
/**
65+
* Listener for the render event
66+
*
67+
* Attaches a rendering/response strategy to the View.
68+
*
69+
* @param \Zend\Mvc\MvcEvent $e
70+
*/
71+
public function onRender($e)
72+
{
73+
$app = $e->getTarget();
74+
$services = $app->getServiceManager();
75+
76+
if ($services->has('View')) {
77+
$view = $services->get('View');
78+
$events = $view->getEventManager();
79+
80+
// register at high priority, to "beat" normal json strategy registered
81+
// via view manager, as well as HAL strategy.
82+
$events->attach($services->get('ZF\ApiProblem\ApiProblemStrategy'), 400);
83+
}
84+
}
85+
}

composer.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,10 @@
4141
"autoload": {
4242
"psr-0": {
4343
"ZF\\ApiProblem\\": "src/",
44-
"ZFTest\\": "test/"
45-
}
44+
"ZFTest\\ApiProblem\\": "test/"
45+
},
46+
"classmap": [
47+
"Module.php"
48+
]
4649
}
4750
}

src/ZF/ApiProblem/Module.php

Lines changed: 0 additions & 85 deletions
This file was deleted.

test/Bootstrap.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* @copyright Copyright (c) 2013 Zend Technologies USA Inc. (http://www.zend.com)
55
*/
66

7-
namespace ZFTest;
7+
namespace ZFTest\ApiProblem;
88

99
use Zend\Loader\AutoloaderFactory;
1010
use RuntimeException;
@@ -50,7 +50,7 @@ protected static function initAutoloader()
5050
'autoregister_zf' => true,
5151
'namespaces' => array(
5252
'ZF\ApiProblem' => __DIR__ . '/../src/ZF/ApiProblem/',
53-
__NAMESPACE__ => __DIR__ . '/' . __NAMESPACE__,
53+
__NAMESPACE__ => __DIR__ . '/ZFTest/ApiProblem/',
5454
),
5555
),
5656
));

0 commit comments

Comments
 (0)