mirror of
https://github.com/filp/whoops.git
synced 2026-09-02 13:38:43 +00:00
Merge pull request #323 from filp/remove-zend
Remove deprecated Zend integration
This commit is contained in:
@@ -3,7 +3,6 @@ imports:
|
||||
|
||||
filter:
|
||||
paths: [src/*]
|
||||
excluded_paths: [src/deprecated/*]
|
||||
|
||||
tools:
|
||||
php_cs_fixer:
|
||||
|
||||
+1
-4
@@ -20,10 +20,7 @@
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Whoops\\": "src/Whoops/"
|
||||
},
|
||||
"classmap": [
|
||||
"src/deprecated"
|
||||
]
|
||||
}
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
|
||||
@@ -5,9 +5,6 @@
|
||||
<testsuite name="Whoops Tests Suite">
|
||||
<directory>tests/Whoops/</directory>
|
||||
</testsuite>
|
||||
<testsuite name="Whoops deprecated features Suite">
|
||||
<directory>tests/deprecated/</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
|
||||
<filter>
|
||||
|
||||
@@ -1,63 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* ZF2 Integration for Whoops
|
||||
* @author Balázs Németh <zsilbi@zsilbi.hu>
|
||||
*/
|
||||
|
||||
namespace Whoops\Provider\Zend;
|
||||
|
||||
use Whoops\Run;
|
||||
use Zend\Http\Response;
|
||||
use Zend\Mvc\Application;
|
||||
use Zend\Mvc\MvcEvent;
|
||||
use Zend\Mvc\View\Http\ExceptionStrategy as BaseExceptionStrategy;
|
||||
|
||||
/**
|
||||
* @deprecated Use https://github.com/ghislainf/zf2-whoops
|
||||
*/
|
||||
class ExceptionStrategy extends BaseExceptionStrategy
|
||||
{
|
||||
protected $run;
|
||||
|
||||
public function __construct(Run $run)
|
||||
{
|
||||
$this->run = $run;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function prepareExceptionViewModel(MvcEvent $event)
|
||||
{
|
||||
// Do nothing if no error in the event
|
||||
$error = $event->getError();
|
||||
if (empty($error)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Do nothing if the result is a response object
|
||||
$result = $event->getResult();
|
||||
if ($result instanceof Response) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch ($error) {
|
||||
case Application::ERROR_CONTROLLER_NOT_FOUND:
|
||||
case Application::ERROR_CONTROLLER_INVALID:
|
||||
case Application::ERROR_ROUTER_NO_MATCH:
|
||||
// Specifically not handling these
|
||||
return;
|
||||
|
||||
case Application::ERROR_EXCEPTION:
|
||||
default:
|
||||
$exception = $event->getParam('exception');
|
||||
if ($exception) {
|
||||
$response = $event->getResponse();
|
||||
if (!$response || $response->getStatusCode() === 200) {
|
||||
header('HTTP/1.0 500 Internal Server Error', true, 500);
|
||||
}
|
||||
ob_clean();
|
||||
$this->run->handleException($event->getParam('exception'));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,107 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* ZF2 Integration for Whoops
|
||||
* @author Balázs Németh <zsilbi@zsilbi.hu>
|
||||
*
|
||||
* The Whoops directory should be added as a module to ZF2 (/vendor/Whoops)
|
||||
*
|
||||
* Whoops must be added as the first module
|
||||
* For example:
|
||||
* 'modules' => array(
|
||||
* 'Whoops',
|
||||
* 'Application',
|
||||
* ),
|
||||
*
|
||||
* This file should be moved next to Whoops/Run.php (/vendor/Whoops/Module.php)
|
||||
*
|
||||
*/
|
||||
|
||||
namespace Whoops;
|
||||
|
||||
use Whoops\Handler\JsonResponseHandler;
|
||||
use Whoops\Handler\PrettyPageHandler;
|
||||
use Whoops\Provider\Zend\ExceptionStrategy;
|
||||
use Whoops\Provider\Zend\RouteNotFoundStrategy;
|
||||
use Zend\Console\Request as ConsoleRequest;
|
||||
use Zend\EventManager\EventInterface;
|
||||
|
||||
/**
|
||||
* @deprecated Use https://github.com/ghislainf/zf2-whoops
|
||||
*/
|
||||
class Module
|
||||
{
|
||||
protected $run;
|
||||
|
||||
public function onBootstrap(EventInterface $event)
|
||||
{
|
||||
$prettyPageHandler = new PrettyPageHandler();
|
||||
|
||||
// Set editor
|
||||
$config = $event->getApplication()->getServiceManager()->get('Config');
|
||||
if (isset($config['view_manager']['editor'])) {
|
||||
$prettyPageHandler->setEditor($config['view_manager']['editor']);
|
||||
}
|
||||
|
||||
$this->run = new Run();
|
||||
$this->run->register();
|
||||
$this->run->pushHandler($prettyPageHandler);
|
||||
|
||||
$this->attachListeners($event);
|
||||
}
|
||||
|
||||
public function getAutoloaderConfig()
|
||||
{
|
||||
return array(
|
||||
'Zend\Loader\StandardAutoloader' => array(
|
||||
'namespaces' => array(
|
||||
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
private function attachListeners(EventInterface $event)
|
||||
{
|
||||
$request = $event->getRequest();
|
||||
$application = $event->getApplication();
|
||||
$services = $application->getServiceManager();
|
||||
$events = $application->getEventManager();
|
||||
$config = $services->get('Config');
|
||||
|
||||
//Display exceptions based on configuration and console mode
|
||||
if ($request instanceof ConsoleRequest || empty($config['view_manager']['display_exceptions'])) {
|
||||
return;
|
||||
}
|
||||
|
||||
$jsonHandler = new JsonResponseHandler();
|
||||
|
||||
if (!empty($config['view_manager']['json_exceptions']['show_trace'])) {
|
||||
//Add trace to the JSON output
|
||||
$jsonHandler->addTraceToOutput(true);
|
||||
}
|
||||
|
||||
if (!empty($config['view_manager']['json_exceptions']['ajax_only'])) {
|
||||
//Only return JSON response for AJAX requests
|
||||
$jsonHandler->onlyForAjaxRequests(true);
|
||||
}
|
||||
|
||||
if (!empty($config['view_manager']['json_exceptions']['display'])) {
|
||||
//Turn on JSON handler
|
||||
$this->run->pushHandler($jsonHandler);
|
||||
}
|
||||
|
||||
//Attach the Whoops ExceptionStrategy
|
||||
$exceptionStrategy = new ExceptionStrategy($this->run);
|
||||
$exceptionStrategy->attach($events);
|
||||
|
||||
//Attach the Whoops RouteNotFoundStrategy
|
||||
$routeNotFoundStrategy = new RouteNotFoundStrategy($this->run);
|
||||
$routeNotFoundStrategy->attach($events);
|
||||
|
||||
//Detach default ExceptionStrategy
|
||||
$services->get('Zend\Mvc\View\Http\ExceptionStrategy')->detach($events);
|
||||
|
||||
//Detach default RouteNotFoundStrategy
|
||||
$services->get('Zend\Mvc\View\Http\RouteNotFoundStrategy')->detach($events);
|
||||
}
|
||||
}
|
||||
@@ -1,67 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* ZF2 Integration for Whoops
|
||||
* @author Balázs Németh <zsilbi@zsilbi.hu>
|
||||
*/
|
||||
|
||||
namespace Whoops\Provider\Zend;
|
||||
|
||||
use Whoops\Run;
|
||||
use Zend\Mvc\MvcEvent;
|
||||
use Zend\Mvc\View\Http\RouteNotFoundStrategy as BaseRouteNotFoundStrategy;
|
||||
use Zend\Stdlib\ResponseInterface as Response;
|
||||
use Zend\View\Model\ViewModel;
|
||||
|
||||
/**
|
||||
* @deprecated Use https://github.com/ghislainf/zf2-whoops
|
||||
*/
|
||||
class RouteNotFoundStrategy extends BaseRouteNotFoundStrategy
|
||||
{
|
||||
protected $run;
|
||||
|
||||
public function __construct(Run $run)
|
||||
{
|
||||
$this->run = $run;
|
||||
}
|
||||
|
||||
public function prepareNotFoundViewModel(MvcEvent $e)
|
||||
{
|
||||
$vars = $e->getResult();
|
||||
if ($vars instanceof Response) {
|
||||
// Already have a response as the result
|
||||
return;
|
||||
}
|
||||
|
||||
$response = $e->getResponse();
|
||||
if ($response->getStatusCode() != 404) {
|
||||
// Only handle 404 responses
|
||||
return;
|
||||
}
|
||||
|
||||
if (!$vars instanceof ViewModel) {
|
||||
$model = new ViewModel();
|
||||
if (is_string($vars)) {
|
||||
$model->setVariable('message', $vars);
|
||||
} else {
|
||||
$model->setVariable('message', 'Page not found.');
|
||||
}
|
||||
} else {
|
||||
$model = $vars;
|
||||
if ($model->getVariable('message') === null) {
|
||||
$model->setVariable('message', 'Page not found.');
|
||||
}
|
||||
}
|
||||
// If displaying reasons, inject the reason
|
||||
$this->injectNotFoundReason($model, $e);
|
||||
|
||||
// If displaying exceptions, inject
|
||||
$this->injectException($model, $e);
|
||||
|
||||
// Inject controller if we're displaying either the reason or the exception
|
||||
$this->injectController($model, $e);
|
||||
|
||||
ob_clean();
|
||||
|
||||
throw new \Exception($model->getVariable('message') . ' ' . $model->getVariable('reason'));
|
||||
}
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* ZF2 Integration for Whoops
|
||||
* @author Balázs Németh <zsilbi@zsilbi.hu>
|
||||
*
|
||||
* Example controller configuration
|
||||
*/
|
||||
|
||||
return array(
|
||||
'view_manager' => array(
|
||||
'editor' => 'sublime',
|
||||
'display_not_found_reason' => true,
|
||||
'display_exceptions' => true,
|
||||
'json_exceptions' => array(
|
||||
'display' => true,
|
||||
'ajax_only' => true,
|
||||
'show_trace' => true,
|
||||
),
|
||||
),
|
||||
);
|
||||
@@ -1,10 +0,0 @@
|
||||
<?php
|
||||
namespace Whoops;
|
||||
|
||||
class ModuleTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function testAutoload()
|
||||
{
|
||||
$this->assertTrue(class_exists('\Whoops\Module'));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user