PluginProbe
Depicter — Popup & Slider Builder / 1.2.0
Depicter — Popup & Slider Builder v1.2.0
4.8.1 trunk 1.0.0 1.1.0 1.1.2 1.1.4 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.3.0 1.3.1 1.3.2 1.3.3 1.3.5 1.3.8 1.5.0 1.5.1 1.5.2 1.5.5 1.6.0 1.6.1 1.6.2 1.7.0 All 76 releases
depicter / vendor / htmlburger / wpemerge / src / Controllers / WordPressController.php

WordPressController.php in Depicter — Popup & Slider Builder 1.2.0, at vendor/htmlburger/wpemerge/src/Controllers/WordPressController.php

70 lines 1.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php /**
2 * @package WPEmerge
3 * @author Atanas Angelov <hi@atanas.dev>
4 * @copyright 2017-2019 Atanas Angelov
5 * @license https://www.gnu.org/licenses/gpl-2.0.html GPL-2.0
6 * @link https://wpemerge.com/
7 */ /** @noinspection PhpUnusedParameterInspection */
8 namespace WPEmerge\Controllers;
9
10 use Psr\Http\Message\ResponseInterface;
11 use WPEmerge\Exceptions\ConfigurationException;
12 use WPEmerge\Requests\RequestInterface;
13 use WPEmerge\View\ViewService;
14
15 /**
16 * Handles normal WordPress requests without interfering
17 * Useful if you only want to add a middleware to a route without handling the output
18 *
19 * @codeCoverageIgnore
20 */
21 class WordPressController {
22 /**
23 * View service.
24 *
25 * @var ViewService
26 */
27 protected $view_service = null;
28
29 /**
30 * Constructor.
31 *
32 * @codeCoverageIgnore
33 * @param ViewService $view_service
34 */
35 public function __construct( ViewService $view_service ) {
36 $this->view_service = $view_service;
37 }
38
39 /**
40 * Default WordPress handler.
41 *
42 * @param RequestInterface $request
43 * @param string $view
44 * @return ResponseInterface
45 */
46 public function handle( RequestInterface $request, $view = '' ) {
47 if ( is_admin() || wp_doing_ajax() ) {
48 throw new ConfigurationException(
49 'Attempted to run the default WordPress controller on an ' .
50 'admin or AJAX page. Did you miss to specify a custom handler for ' .
51 'a route or accidentally used \App::route()->all() during admin ' .
52 'requests?'
53 );
54 }
55
56 if ( empty( $view ) ) {
57 throw new ConfigurationException(
58 'No view loaded for default WordPress controller. ' .
59 'Did you miss to specify a custom handler for an ajax or admin route?'
60 );
61 }
62
63 $status_code = http_response_code();
64
65 return $this->view_service->make( $view )
66 ->toResponse()
67 ->withStatus( is_int( $status_code ) ? $status_code : 200 );
68 }
69 }
70