1419 lines
191 KiB
HTML
1419 lines
191 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<meta name="generator" content="ApiGen 2.8.0" />
|
|
<meta name="robots" content="noindex" />
|
|
|
|
<title>File thirdparty/Slim/Slim.php | GeoApi</title>
|
|
|
|
<script type="text/javascript" src="resources/combined.js?112270826"></script>
|
|
<script type="text/javascript" src="elementlist.js?1501958955"></script>
|
|
<link rel="stylesheet" type="text/css" media="all" href="resources/style.css?3505392360" />
|
|
|
|
</head>
|
|
|
|
<body>
|
|
<div id="left">
|
|
<div id="menu">
|
|
<a href="index.html" title="Overview"><span>Overview</span></a>
|
|
|
|
|
|
<div id="groups">
|
|
<h3>Namespaces</h3>
|
|
<ul>
|
|
<li><a href="namespace-api.html">api</a>
|
|
</li>
|
|
<li><a href="namespace-config.html">config</a>
|
|
</li>
|
|
<li><a href="namespace-database.html">database</a>
|
|
</li>
|
|
<li><a href="namespace-PHP.html">PHP</a>
|
|
</li>
|
|
<li class="active"><a href="namespace-Slim.html">Slim<span></span></a>
|
|
<ul>
|
|
<li><a href="namespace-Slim.Exception.html">Exception</a>
|
|
</li>
|
|
<li><a href="namespace-Slim.Http.html">Http</a>
|
|
</li>
|
|
<li><a href="namespace-Slim.Middleware.html">Middleware</a>
|
|
</li>
|
|
</ul></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<hr />
|
|
|
|
|
|
<div id="elements">
|
|
<h3>Classes</h3>
|
|
<ul>
|
|
<li><a href="class-Slim.Environment.html">Environment</a></li>
|
|
<li><a href="class-Slim.Log.html">Log</a></li>
|
|
<li><a href="class-Slim.LogWriter.html">LogWriter</a></li>
|
|
<li><a href="class-Slim.Middleware.html">Middleware</a></li>
|
|
<li><a href="class-Slim.Route.html">Route</a></li>
|
|
<li><a href="class-Slim.Router.html">Router</a></li>
|
|
<li class="active"><a href="class-Slim.Slim.html">Slim</a></li>
|
|
<li><a href="class-Slim.View.html">View</a></li>
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="splitter"></div>
|
|
|
|
<div id="right">
|
|
<div id="rightInner">
|
|
<form id="search">
|
|
<input type="hidden" name="cx" value="" />
|
|
<input type="hidden" name="ie" value="UTF-8" />
|
|
<input type="text" name="q" class="text" />
|
|
<input type="submit" value="Search" />
|
|
</form>
|
|
|
|
<div id="navigation">
|
|
<ul>
|
|
<li>
|
|
<a href="index.html" title="Overview"><span>Overview</span></a>
|
|
</li>
|
|
<li>
|
|
<a href="namespace-Slim.html" title="Summary of Slim"><span>Namespace</span></a>
|
|
</li>
|
|
<li>
|
|
<a href="class-Slim.Slim.html" title="Summary of Slim\Slim"><span>Class</span></a>
|
|
</li>
|
|
</ul>
|
|
<ul>
|
|
<li>
|
|
<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
|
|
</li>
|
|
</ul>
|
|
<ul>
|
|
</ul>
|
|
</div>
|
|
|
|
<pre><code><span id="1" class="l"><a class="l" href="#1"> 1: </a><span class="xlang"><?php</span>
|
|
</span><span id="2" class="l"><a class="l" href="#2"> 2: </a><span class="php-comment">/**
|
|
</span></span><span id="3" class="l"><a class="l" href="#3"> 3: </a><span class="php-comment"> * Slim - a micro PHP 5 framework
|
|
</span></span><span id="4" class="l"><a class="l" href="#4"> 4: </a><span class="php-comment"> *
|
|
</span></span><span id="5" class="l"><a class="l" href="#5"> 5: </a><span class="php-comment"> * @author Josh Lockhart <info@slimframework.com>
|
|
</span></span><span id="6" class="l"><a class="l" href="#6"> 6: </a><span class="php-comment"> * @copyright 2011 Josh Lockhart
|
|
</span></span><span id="7" class="l"><a class="l" href="#7"> 7: </a><span class="php-comment"> * @link http://www.slimframework.com
|
|
</span></span><span id="8" class="l"><a class="l" href="#8"> 8: </a><span class="php-comment"> * @license http://www.slimframework.com/license
|
|
</span></span><span id="9" class="l"><a class="l" href="#9"> 9: </a><span class="php-comment"> * @version 2.2.0
|
|
</span></span><span id="10" class="l"><a class="l" href="#10"> 10: </a><span class="php-comment"> * @package Slim
|
|
</span></span><span id="11" class="l"><a class="l" href="#11"> 11: </a><span class="php-comment"> *
|
|
</span></span><span id="12" class="l"><a class="l" href="#12"> 12: </a><span class="php-comment"> * MIT LICENSE
|
|
</span></span><span id="13" class="l"><a class="l" href="#13"> 13: </a><span class="php-comment"> *
|
|
</span></span><span id="14" class="l"><a class="l" href="#14"> 14: </a><span class="php-comment"> * Permission is hereby granted, free of charge, to any person obtaining
|
|
</span></span><span id="15" class="l"><a class="l" href="#15"> 15: </a><span class="php-comment"> * a copy of this software and associated documentation files (the
|
|
</span></span><span id="16" class="l"><a class="l" href="#16"> 16: </a><span class="php-comment"> * "Software"), to deal in the Software without restriction, including
|
|
</span></span><span id="17" class="l"><a class="l" href="#17"> 17: </a><span class="php-comment"> * without limitation the rights to use, copy, modify, merge, publish,
|
|
</span></span><span id="18" class="l"><a class="l" href="#18"> 18: </a><span class="php-comment"> * distribute, sublicense, and/or sell copies of the Software, and to
|
|
</span></span><span id="19" class="l"><a class="l" href="#19"> 19: </a><span class="php-comment"> * permit persons to whom the Software is furnished to do so, subject to
|
|
</span></span><span id="20" class="l"><a class="l" href="#20"> 20: </a><span class="php-comment"> * the following conditions:
|
|
</span></span><span id="21" class="l"><a class="l" href="#21"> 21: </a><span class="php-comment"> *
|
|
</span></span><span id="22" class="l"><a class="l" href="#22"> 22: </a><span class="php-comment"> * The above copyright notice and this permission notice shall be
|
|
</span></span><span id="23" class="l"><a class="l" href="#23"> 23: </a><span class="php-comment"> * included in all copies or substantial portions of the Software.
|
|
</span></span><span id="24" class="l"><a class="l" href="#24"> 24: </a><span class="php-comment"> *
|
|
</span></span><span id="25" class="l"><a class="l" href="#25"> 25: </a><span class="php-comment"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
</span></span><span id="26" class="l"><a class="l" href="#26"> 26: </a><span class="php-comment"> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
</span></span><span id="27" class="l"><a class="l" href="#27"> 27: </a><span class="php-comment"> * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
</span></span><span id="28" class="l"><a class="l" href="#28"> 28: </a><span class="php-comment"> * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
</span></span><span id="29" class="l"><a class="l" href="#29"> 29: </a><span class="php-comment"> * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
</span></span><span id="30" class="l"><a class="l" href="#30"> 30: </a><span class="php-comment"> * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
</span></span><span id="31" class="l"><a class="l" href="#31"> 31: </a><span class="php-comment"> * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
</span></span><span id="32" class="l"><a class="l" href="#32"> 32: </a><span class="php-comment"> */</span>
|
|
</span><span id="33" class="l"><a class="l" href="#33"> 33: </a><span class="php-keyword1">namespace</span> Slim;
|
|
</span><span id="34" class="l"><a class="l" href="#34"> 34: </a>
|
|
</span><span id="35" class="l"><a class="l" href="#35"> 35: </a><span class="php-comment">// Ensure mcrypt constants are defined even if mcrypt extension is not loaded</span>
|
|
</span><span id="36" class="l"><a class="l" href="#36"> 36: </a><span class="php-keyword1">if</span> (!<span class="php-keyword2">extension_loaded</span>(<span class="php-quote">'mcrypt'</span>)) {
|
|
</span><span id="37" class="l"><a class="l" href="#37"> 37: </a> <span class="php-keyword2">define</span>(<span class="php-quote">'MCRYPT_MODE_CBC'</span>, <span class="php-num">0</span>);
|
|
</span><span id="38" class="l"><a class="l" href="#38"> 38: </a> <span class="php-keyword2">define</span>(<span class="php-quote">'MCRYPT_RIJNDAEL_256'</span>, <span class="php-num">0</span>);
|
|
</span><span id="39" class="l"><a class="l" href="#39"> 39: </a>}
|
|
</span><span id="40" class="l"><a class="l" href="#40"> 40: </a>
|
|
</span><span id="41" class="l"><a class="l" href="#41"> 41: </a><span class="php-comment">/**
|
|
</span></span><span id="42" class="l"><a class="l" href="#42"> 42: </a><span class="php-comment"> * Slim
|
|
</span></span><span id="43" class="l"><a class="l" href="#43"> 43: </a><span class="php-comment"> * @package Slim
|
|
</span></span><span id="44" class="l"><a class="l" href="#44"> 44: </a><span class="php-comment"> * @author Josh Lockhart
|
|
</span></span><span id="45" class="l"><a class="l" href="#45"> 45: </a><span class="php-comment"> * @since 1.0.0
|
|
</span></span><span id="46" class="l"><a class="l" href="#46"> 46: </a><span class="php-comment"> */</span>
|
|
</span><span id="47" class="l"><a class="l" href="#47"> 47: </a><span class="php-keyword1">class</span> <a id="Slim" href="#Slim">Slim</a>
|
|
</span><span id="48" class="l"><a class="l" href="#48"> 48: </a>{
|
|
</span><span id="49" class="l"><a class="l" href="#49"> 49: </a> <span class="php-comment">/**
|
|
</span></span><span id="50" class="l"><a class="l" href="#50"> 50: </a><span class="php-comment"> * @const string
|
|
</span></span><span id="51" class="l"><a class="l" href="#51"> 51: </a><span class="php-comment"> */</span>
|
|
</span><span id="52" class="l"><a class="l" href="#52"> 52: </a> <span class="php-keyword1">const</span> <a id="VERSION" href="#VERSION">VERSION</a> = <span class="php-quote">'2.2.0'</span>;
|
|
</span><span id="53" class="l"><a class="l" href="#53"> 53: </a>
|
|
</span><span id="54" class="l"><a class="l" href="#54"> 54: </a> <span class="php-comment">/**
|
|
</span></span><span id="55" class="l"><a class="l" href="#55"> 55: </a><span class="php-comment"> * @var array[\Slim]
|
|
</span></span><span id="56" class="l"><a class="l" href="#56"> 56: </a><span class="php-comment"> */</span>
|
|
</span><span id="57" class="l"><a class="l" href="#57"> 57: </a> <span class="php-keyword1">protected</span> <span class="php-keyword1">static</span> <span class="php-var"><a id="$apps" href="#$apps">$apps</a></span> = <span class="php-keyword1">array</span>();
|
|
</span><span id="58" class="l"><a class="l" href="#58"> 58: </a>
|
|
</span><span id="59" class="l"><a class="l" href="#59"> 59: </a> <span class="php-comment">/**
|
|
</span></span><span id="60" class="l"><a class="l" href="#60"> 60: </a><span class="php-comment"> * @var string
|
|
</span></span><span id="61" class="l"><a class="l" href="#61"> 61: </a><span class="php-comment"> */</span>
|
|
</span><span id="62" class="l"><a class="l" href="#62"> 62: </a> <span class="php-keyword1">protected</span> <span class="php-var"><a id="$name" href="#$name">$name</a></span>;
|
|
</span><span id="63" class="l"><a class="l" href="#63"> 63: </a>
|
|
</span><span id="64" class="l"><a class="l" href="#64"> 64: </a> <span class="php-comment">/**
|
|
</span></span><span id="65" class="l"><a class="l" href="#65"> 65: </a><span class="php-comment"> * @var array
|
|
</span></span><span id="66" class="l"><a class="l" href="#66"> 66: </a><span class="php-comment"> */</span>
|
|
</span><span id="67" class="l"><a class="l" href="#67"> 67: </a> <span class="php-keyword1">protected</span> <span class="php-var"><a id="$environment" href="#$environment">$environment</a></span>;
|
|
</span><span id="68" class="l"><a class="l" href="#68"> 68: </a>
|
|
</span><span id="69" class="l"><a class="l" href="#69"> 69: </a> <span class="php-comment">/**
|
|
</span></span><span id="70" class="l"><a class="l" href="#70"> 70: </a><span class="php-comment"> * @var \Slim\Http\Request
|
|
</span></span><span id="71" class="l"><a class="l" href="#71"> 71: </a><span class="php-comment"> */</span>
|
|
</span><span id="72" class="l"><a class="l" href="#72"> 72: </a> <span class="php-keyword1">protected</span> <span class="php-var"><a id="$request" href="#$request">$request</a></span>;
|
|
</span><span id="73" class="l"><a class="l" href="#73"> 73: </a>
|
|
</span><span id="74" class="l"><a class="l" href="#74"> 74: </a> <span class="php-comment">/**
|
|
</span></span><span id="75" class="l"><a class="l" href="#75"> 75: </a><span class="php-comment"> * @var \Slim\Http\Response
|
|
</span></span><span id="76" class="l"><a class="l" href="#76"> 76: </a><span class="php-comment"> */</span>
|
|
</span><span id="77" class="l"><a class="l" href="#77"> 77: </a> <span class="php-keyword1">protected</span> <span class="php-var"><a id="$response" href="#$response">$response</a></span>;
|
|
</span><span id="78" class="l"><a class="l" href="#78"> 78: </a>
|
|
</span><span id="79" class="l"><a class="l" href="#79"> 79: </a> <span class="php-comment">/**
|
|
</span></span><span id="80" class="l"><a class="l" href="#80"> 80: </a><span class="php-comment"> * @var \Slim\Router
|
|
</span></span><span id="81" class="l"><a class="l" href="#81"> 81: </a><span class="php-comment"> */</span>
|
|
</span><span id="82" class="l"><a class="l" href="#82"> 82: </a> <span class="php-keyword1">protected</span> <span class="php-var"><a id="$router" href="#$router">$router</a></span>;
|
|
</span><span id="83" class="l"><a class="l" href="#83"> 83: </a>
|
|
</span><span id="84" class="l"><a class="l" href="#84"> 84: </a> <span class="php-comment">/**
|
|
</span></span><span id="85" class="l"><a class="l" href="#85"> 85: </a><span class="php-comment"> * @var \Slim\View
|
|
</span></span><span id="86" class="l"><a class="l" href="#86"> 86: </a><span class="php-comment"> */</span>
|
|
</span><span id="87" class="l"><a class="l" href="#87"> 87: </a> <span class="php-keyword1">protected</span> <span class="php-var"><a id="$view" href="#$view">$view</a></span>;
|
|
</span><span id="88" class="l"><a class="l" href="#88"> 88: </a>
|
|
</span><span id="89" class="l"><a class="l" href="#89"> 89: </a> <span class="php-comment">/**
|
|
</span></span><span id="90" class="l"><a class="l" href="#90"> 90: </a><span class="php-comment"> * @var array
|
|
</span></span><span id="91" class="l"><a class="l" href="#91"> 91: </a><span class="php-comment"> */</span>
|
|
</span><span id="92" class="l"><a class="l" href="#92"> 92: </a> <span class="php-keyword1">protected</span> <span class="php-var"><a id="$settings" href="#$settings">$settings</a></span>;
|
|
</span><span id="93" class="l"><a class="l" href="#93"> 93: </a>
|
|
</span><span id="94" class="l"><a class="l" href="#94"> 94: </a> <span class="php-comment">/**
|
|
</span></span><span id="95" class="l"><a class="l" href="#95"> 95: </a><span class="php-comment"> * @var string
|
|
</span></span><span id="96" class="l"><a class="l" href="#96"> 96: </a><span class="php-comment"> */</span>
|
|
</span><span id="97" class="l"><a class="l" href="#97"> 97: </a> <span class="php-keyword1">protected</span> <span class="php-var"><a id="$mode" href="#$mode">$mode</a></span>;
|
|
</span><span id="98" class="l"><a class="l" href="#98"> 98: </a>
|
|
</span><span id="99" class="l"><a class="l" href="#99"> 99: </a> <span class="php-comment">/**
|
|
</span></span><span id="100" class="l"><a class="l" href="#100"> 100: </a><span class="php-comment"> * @var array
|
|
</span></span><span id="101" class="l"><a class="l" href="#101"> 101: </a><span class="php-comment"> */</span>
|
|
</span><span id="102" class="l"><a class="l" href="#102"> 102: </a> <span class="php-keyword1">protected</span> <span class="php-var"><a id="$middleware" href="#$middleware">$middleware</a></span>;
|
|
</span><span id="103" class="l"><a class="l" href="#103"> 103: </a>
|
|
</span><span id="104" class="l"><a class="l" href="#104"> 104: </a> <span class="php-comment">/**
|
|
</span></span><span id="105" class="l"><a class="l" href="#105"> 105: </a><span class="php-comment"> * @var mixed Callable to be invoked if application error
|
|
</span></span><span id="106" class="l"><a class="l" href="#106"> 106: </a><span class="php-comment"> */</span>
|
|
</span><span id="107" class="l"><a class="l" href="#107"> 107: </a> <span class="php-keyword1">protected</span> <span class="php-var"><a id="$error" href="#$error">$error</a></span>;
|
|
</span><span id="108" class="l"><a class="l" href="#108"> 108: </a>
|
|
</span><span id="109" class="l"><a class="l" href="#109"> 109: </a> <span class="php-comment">/**
|
|
</span></span><span id="110" class="l"><a class="l" href="#110"> 110: </a><span class="php-comment"> * @var mixed Callable to be invoked if no matching routes are found
|
|
</span></span><span id="111" class="l"><a class="l" href="#111"> 111: </a><span class="php-comment"> */</span>
|
|
</span><span id="112" class="l"><a class="l" href="#112"> 112: </a> <span class="php-keyword1">protected</span> <span class="php-var"><a id="$notFound" href="#$notFound">$notFound</a></span>;
|
|
</span><span id="113" class="l"><a class="l" href="#113"> 113: </a>
|
|
</span><span id="114" class="l"><a class="l" href="#114"> 114: </a> <span class="php-comment">/**
|
|
</span></span><span id="115" class="l"><a class="l" href="#115"> 115: </a><span class="php-comment"> * @var array
|
|
</span></span><span id="116" class="l"><a class="l" href="#116"> 116: </a><span class="php-comment"> */</span>
|
|
</span><span id="117" class="l"><a class="l" href="#117"> 117: </a> <span class="php-keyword1">protected</span> <span class="php-var"><a id="$hooks" href="#$hooks">$hooks</a></span> = <span class="php-keyword1">array</span>(
|
|
</span><span id="118" class="l"><a class="l" href="#118"> 118: </a> <span class="php-quote">'slim.before'</span> => <span class="php-keyword1">array</span>(<span class="php-keyword1">array</span>()),
|
|
</span><span id="119" class="l"><a class="l" href="#119"> 119: </a> <span class="php-quote">'slim.before.router'</span> => <span class="php-keyword1">array</span>(<span class="php-keyword1">array</span>()),
|
|
</span><span id="120" class="l"><a class="l" href="#120"> 120: </a> <span class="php-quote">'slim.before.dispatch'</span> => <span class="php-keyword1">array</span>(<span class="php-keyword1">array</span>()),
|
|
</span><span id="121" class="l"><a class="l" href="#121"> 121: </a> <span class="php-quote">'slim.after.dispatch'</span> => <span class="php-keyword1">array</span>(<span class="php-keyword1">array</span>()),
|
|
</span><span id="122" class="l"><a class="l" href="#122"> 122: </a> <span class="php-quote">'slim.after.router'</span> => <span class="php-keyword1">array</span>(<span class="php-keyword1">array</span>()),
|
|
</span><span id="123" class="l"><a class="l" href="#123"> 123: </a> <span class="php-quote">'slim.after'</span> => <span class="php-keyword1">array</span>(<span class="php-keyword1">array</span>())
|
|
</span><span id="124" class="l"><a class="l" href="#124"> 124: </a> );
|
|
</span><span id="125" class="l"><a class="l" href="#125"> 125: </a>
|
|
</span><span id="126" class="l"><a class="l" href="#126"> 126: </a> <span class="php-comment">/********************************************************************************
|
|
</span></span><span id="127" class="l"><a class="l" href="#127"> 127: </a><span class="php-comment"> * PSR-0 Autoloader
|
|
</span></span><span id="128" class="l"><a class="l" href="#128"> 128: </a><span class="php-comment"> *
|
|
</span></span><span id="129" class="l"><a class="l" href="#129"> 129: </a><span class="php-comment"> * Do not use if you are using Composer to autoload dependencies.
|
|
</span></span><span id="130" class="l"><a class="l" href="#130"> 130: </a><span class="php-comment"> *******************************************************************************/</span>
|
|
</span><span id="131" class="l"><a class="l" href="#131"> 131: </a>
|
|
</span><span id="132" class="l"><a class="l" href="#132"> 132: </a> <span class="php-comment">/**
|
|
</span></span><span id="133" class="l"><a class="l" href="#133"> 133: </a><span class="php-comment"> * Slim PSR-0 autoloader
|
|
</span></span><span id="134" class="l"><a class="l" href="#134"> 134: </a><span class="php-comment"> */</span>
|
|
</span><span id="135" class="l"><a class="l" href="#135"> 135: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_autoload" href="#_autoload">autoload</a>(<span class="php-var">$className</span>)
|
|
</span><span id="136" class="l"><a class="l" href="#136"> 136: </a> {
|
|
</span><span id="137" class="l"><a class="l" href="#137"> 137: </a> <span class="php-var">$thisClass</span> = <span class="php-keyword2">str_replace</span>(__NAMESPACE__.<span class="php-quote">'\\'</span>, <span class="php-quote">''</span>, __CLASS__);
|
|
</span><span id="138" class="l"><a class="l" href="#138"> 138: </a>
|
|
</span><span id="139" class="l"><a class="l" href="#139"> 139: </a> <span class="php-var">$baseDir</span> = __DIR__;
|
|
</span><span id="140" class="l"><a class="l" href="#140"> 140: </a>
|
|
</span><span id="141" class="l"><a class="l" href="#141"> 141: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">substr</span>(<span class="php-var">$baseDir</span>, -<span class="php-keyword2">strlen</span>(<span class="php-var">$thisClass</span>)) === <span class="php-var">$thisClass</span>) {
|
|
</span><span id="142" class="l"><a class="l" href="#142"> 142: </a> <span class="php-var">$baseDir</span> = <span class="php-keyword2">substr</span>(<span class="php-var">$baseDir</span>, <span class="php-num">0</span>, -<span class="php-keyword2">strlen</span>(<span class="php-var">$thisClass</span>));
|
|
</span><span id="143" class="l"><a class="l" href="#143"> 143: </a> }
|
|
</span><span id="144" class="l"><a class="l" href="#144"> 144: </a>
|
|
</span><span id="145" class="l"><a class="l" href="#145"> 145: </a> <span class="php-var">$className</span> = <span class="php-keyword2">ltrim</span>(<span class="php-var">$className</span>, <span class="php-quote">'\\'</span>);
|
|
</span><span id="146" class="l"><a class="l" href="#146"> 146: </a> <span class="php-var">$fileName</span> = <span class="php-var">$baseDir</span>;
|
|
</span><span id="147" class="l"><a class="l" href="#147"> 147: </a> <span class="php-var">$namespace</span> = <span class="php-quote">''</span>;
|
|
</span><span id="148" class="l"><a class="l" href="#148"> 148: </a> <span class="php-keyword1">if</span> (<span class="php-var">$lastNsPos</span> = <span class="php-keyword2">strripos</span>(<span class="php-var">$className</span>, <span class="php-quote">'\\'</span>)) {
|
|
</span><span id="149" class="l"><a class="l" href="#149"> 149: </a> <span class="php-var">$namespace</span> = <span class="php-keyword2">substr</span>(<span class="php-var">$className</span>, <span class="php-num">0</span>, <span class="php-var">$lastNsPos</span>);
|
|
</span><span id="150" class="l"><a class="l" href="#150"> 150: </a> <span class="php-var">$className</span> = <span class="php-keyword2">substr</span>(<span class="php-var">$className</span>, <span class="php-var">$lastNsPos</span> + <span class="php-num">1</span>);
|
|
</span><span id="151" class="l"><a class="l" href="#151"> 151: </a> <span class="php-var">$fileName</span> .= <span class="php-keyword2">str_replace</span>(<span class="php-quote">'\\'</span>, DIRECTORY_SEPARATOR, <span class="php-var">$namespace</span>) . DIRECTORY_SEPARATOR;
|
|
</span><span id="152" class="l"><a class="l" href="#152"> 152: </a> }
|
|
</span><span id="153" class="l"><a class="l" href="#153"> 153: </a> <span class="php-var">$fileName</span> .= <span class="php-keyword2">str_replace</span>(<span class="php-quote">'_'</span>, DIRECTORY_SEPARATOR, <span class="php-var">$className</span>) . <span class="php-quote">'.php'</span>;
|
|
</span><span id="154" class="l"><a class="l" href="#154"> 154: </a>
|
|
</span><span id="155" class="l"><a class="l" href="#155"> 155: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">file_exists</span>(<span class="php-var">$fileName</span>)) {
|
|
</span><span id="156" class="l"><a class="l" href="#156"> 156: </a> <span class="php-keyword1">require</span> <span class="php-var">$fileName</span>;
|
|
</span><span id="157" class="l"><a class="l" href="#157"> 157: </a> }
|
|
</span><span id="158" class="l"><a class="l" href="#158"> 158: </a> }
|
|
</span><span id="159" class="l"><a class="l" href="#159"> 159: </a>
|
|
</span><span id="160" class="l"><a class="l" href="#160"> 160: </a> <span class="php-comment">/**
|
|
</span></span><span id="161" class="l"><a class="l" href="#161"> 161: </a><span class="php-comment"> * Register Slim's PSR-0 autoloader
|
|
</span></span><span id="162" class="l"><a class="l" href="#162"> 162: </a><span class="php-comment"> */</span>
|
|
</span><span id="163" class="l"><a class="l" href="#163"> 163: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_registerAutoloader" href="#_registerAutoloader">registerAutoloader</a>()
|
|
</span><span id="164" class="l"><a class="l" href="#164"> 164: </a> {
|
|
</span><span id="165" class="l"><a class="l" href="#165"> 165: </a> <span class="php-keyword2">spl_autoload_register</span>(__NAMESPACE__ . <span class="php-quote">"\\Slim::autoload"</span>);
|
|
</span><span id="166" class="l"><a class="l" href="#166"> 166: </a> }
|
|
</span><span id="167" class="l"><a class="l" href="#167"> 167: </a>
|
|
</span><span id="168" class="l"><a class="l" href="#168"> 168: </a> <span class="php-comment">/********************************************************************************
|
|
</span></span><span id="169" class="l"><a class="l" href="#169"> 169: </a><span class="php-comment"> * Instantiation and Configuration
|
|
</span></span><span id="170" class="l"><a class="l" href="#170"> 170: </a><span class="php-comment"> *******************************************************************************/</span>
|
|
</span><span id="171" class="l"><a class="l" href="#171"> 171: </a>
|
|
</span><span id="172" class="l"><a class="l" href="#172"> 172: </a> <span class="php-comment">/**
|
|
</span></span><span id="173" class="l"><a class="l" href="#173"> 173: </a><span class="php-comment"> * Constructor
|
|
</span></span><span id="174" class="l"><a class="l" href="#174"> 174: </a><span class="php-comment"> * @param array $userSettings Associative array of application settings
|
|
</span></span><span id="175" class="l"><a class="l" href="#175"> 175: </a><span class="php-comment"> */</span>
|
|
</span><span id="176" class="l"><a class="l" href="#176"> 176: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="___construct" href="#___construct">__construct</a>(<span class="php-var">$userSettings</span> = <span class="php-keyword1">array</span>())
|
|
</span><span id="177" class="l"><a class="l" href="#177"> 177: </a> {
|
|
</span><span id="178" class="l"><a class="l" href="#178"> 178: </a> <span class="php-comment">// Setup Slim application</span>
|
|
</span><span id="179" class="l"><a class="l" href="#179"> 179: </a> <span class="php-var">$this</span>->settings = <span class="php-keyword2">array_merge</span>(<span class="php-keyword1">static</span>::getDefaultSettings(), <span class="php-var">$userSettings</span>);
|
|
</span><span id="180" class="l"><a class="l" href="#180"> 180: </a> <span class="php-var">$this</span>->environment = \Slim\Environment::getInstance();
|
|
</span><span id="181" class="l"><a class="l" href="#181"> 181: </a> <span class="php-var">$this</span>->request = <span class="php-keyword1">new</span> \Slim\Http\Request(<span class="php-var">$this</span>->environment);
|
|
</span><span id="182" class="l"><a class="l" href="#182"> 182: </a> <span class="php-var">$this</span>->response = <span class="php-keyword1">new</span> \Slim\Http\Response();
|
|
</span><span id="183" class="l"><a class="l" href="#183"> 183: </a> <span class="php-var">$this</span>->router = <span class="php-keyword1">new</span> \Slim\Router();
|
|
</span><span id="184" class="l"><a class="l" href="#184"> 184: </a> <span class="php-var">$this</span>->middleware = <span class="php-keyword1">array</span>(<span class="php-var">$this</span>);
|
|
</span><span id="185" class="l"><a class="l" href="#185"> 185: </a> <span class="php-var">$this</span>->add(<span class="php-keyword1">new</span> \Slim\Middleware\Flash());
|
|
</span><span id="186" class="l"><a class="l" href="#186"> 186: </a> <span class="php-var">$this</span>->add(<span class="php-keyword1">new</span> \Slim\Middleware\MethodOverride());
|
|
</span><span id="187" class="l"><a class="l" href="#187"> 187: </a>
|
|
</span><span id="188" class="l"><a class="l" href="#188"> 188: </a> <span class="php-comment">// Determine application mode</span>
|
|
</span><span id="189" class="l"><a class="l" href="#189"> 189: </a> <span class="php-var">$this</span>->getMode();
|
|
</span><span id="190" class="l"><a class="l" href="#190"> 190: </a>
|
|
</span><span id="191" class="l"><a class="l" href="#191"> 191: </a> <span class="php-comment">// Setup view</span>
|
|
</span><span id="192" class="l"><a class="l" href="#192"> 192: </a> <span class="php-var">$this</span>->view(<span class="php-var">$this</span>->config(<span class="php-quote">'view'</span>));
|
|
</span><span id="193" class="l"><a class="l" href="#193"> 193: </a>
|
|
</span><span id="194" class="l"><a class="l" href="#194"> 194: </a> <span class="php-comment">// Make default if first instance</span>
|
|
</span><span id="195" class="l"><a class="l" href="#195"> 195: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">is_null</span>(<span class="php-keyword1">static</span>::getInstance())) {
|
|
</span><span id="196" class="l"><a class="l" href="#196"> 196: </a> <span class="php-var">$this</span>->setName(<span class="php-quote">'default'</span>);
|
|
</span><span id="197" class="l"><a class="l" href="#197"> 197: </a> }
|
|
</span><span id="198" class="l"><a class="l" href="#198"> 198: </a>
|
|
</span><span id="199" class="l"><a class="l" href="#199"> 199: </a> <span class="php-comment">// Set default logger that writes to stderr (may be overridden with middleware)</span>
|
|
</span><span id="200" class="l"><a class="l" href="#200"> 200: </a> <span class="php-var">$logWriter</span> = <span class="php-var">$this</span>->config(<span class="php-quote">'log.writer'</span>);
|
|
</span><span id="201" class="l"><a class="l" href="#201"> 201: </a> <span class="php-keyword1">if</span> (!<span class="php-var">$logWriter</span>) {
|
|
</span><span id="202" class="l"><a class="l" href="#202"> 202: </a> <span class="php-var">$logWriter</span> = <span class="php-keyword1">new</span> \Slim\LogWriter(<span class="php-var">$this</span>->environment[<span class="php-quote">'slim.errors'</span>]);
|
|
</span><span id="203" class="l"><a class="l" href="#203"> 203: </a> }
|
|
</span><span id="204" class="l"><a class="l" href="#204"> 204: </a> <span class="php-var">$log</span> = <span class="php-keyword1">new</span> \Slim\<span class="php-keyword2">Log</span>(<span class="php-var">$logWriter</span>);
|
|
</span><span id="205" class="l"><a class="l" href="#205"> 205: </a> <span class="php-var">$log</span>->setEnabled(<span class="php-var">$this</span>->config(<span class="php-quote">'log.enabled'</span>));
|
|
</span><span id="206" class="l"><a class="l" href="#206"> 206: </a> <span class="php-var">$log</span>->setLevel(<span class="php-var">$this</span>->config(<span class="php-quote">'log.level'</span>));
|
|
</span><span id="207" class="l"><a class="l" href="#207"> 207: </a> <span class="php-var">$this</span>->environment[<span class="php-quote">'slim.log'</span>] = <span class="php-var">$log</span>;
|
|
</span><span id="208" class="l"><a class="l" href="#208"> 208: </a> }
|
|
</span><span id="209" class="l"><a class="l" href="#209"> 209: </a>
|
|
</span><span id="210" class="l"><a class="l" href="#210"> 210: </a> <span class="php-comment">/**
|
|
</span></span><span id="211" class="l"><a class="l" href="#211"> 211: </a><span class="php-comment"> * Get application instance by name
|
|
</span></span><span id="212" class="l"><a class="l" href="#212"> 212: </a><span class="php-comment"> * @param string $name The name of the Slim application
|
|
</span></span><span id="213" class="l"><a class="l" href="#213"> 213: </a><span class="php-comment"> * @return \Slim|null
|
|
</span></span><span id="214" class="l"><a class="l" href="#214"> 214: </a><span class="php-comment"> */</span>
|
|
</span><span id="215" class="l"><a class="l" href="#215"> 215: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_getInstance" href="#_getInstance">getInstance</a>(<span class="php-var">$name</span> = <span class="php-quote">'default'</span>)
|
|
</span><span id="216" class="l"><a class="l" href="#216"> 216: </a> {
|
|
</span><span id="217" class="l"><a class="l" href="#217"> 217: </a> <span class="php-keyword1">return</span> <span class="php-keyword1">isset</span>(<span class="php-keyword1">static</span>::<span class="php-var">$apps</span>[<span class="php-var">$name</span>]) ? <span class="php-keyword1">static</span>::<span class="php-var">$apps</span>[<span class="php-var">$name</span>] : <span class="php-keyword1">null</span>;
|
|
</span><span id="218" class="l"><a class="l" href="#218"> 218: </a> }
|
|
</span><span id="219" class="l"><a class="l" href="#219"> 219: </a>
|
|
</span><span id="220" class="l"><a class="l" href="#220"> 220: </a> <span class="php-comment">/**
|
|
</span></span><span id="221" class="l"><a class="l" href="#221"> 221: </a><span class="php-comment"> * Set Slim application name
|
|
</span></span><span id="222" class="l"><a class="l" href="#222"> 222: </a><span class="php-comment"> * @param string $name The name of this Slim application
|
|
</span></span><span id="223" class="l"><a class="l" href="#223"> 223: </a><span class="php-comment"> */</span>
|
|
</span><span id="224" class="l"><a class="l" href="#224"> 224: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_setName" href="#_setName">setName</a>(<span class="php-var">$name</span>)
|
|
</span><span id="225" class="l"><a class="l" href="#225"> 225: </a> {
|
|
</span><span id="226" class="l"><a class="l" href="#226"> 226: </a> <span class="php-var">$this</span>->name = <span class="php-var">$name</span>;
|
|
</span><span id="227" class="l"><a class="l" href="#227"> 227: </a> <span class="php-keyword1">static</span>::<span class="php-var">$apps</span>[<span class="php-var">$name</span>] = <span class="php-var">$this</span>;
|
|
</span><span id="228" class="l"><a class="l" href="#228"> 228: </a> }
|
|
</span><span id="229" class="l"><a class="l" href="#229"> 229: </a>
|
|
</span><span id="230" class="l"><a class="l" href="#230"> 230: </a> <span class="php-comment">/**
|
|
</span></span><span id="231" class="l"><a class="l" href="#231"> 231: </a><span class="php-comment"> * Get Slim application name
|
|
</span></span><span id="232" class="l"><a class="l" href="#232"> 232: </a><span class="php-comment"> * @return string|null
|
|
</span></span><span id="233" class="l"><a class="l" href="#233"> 233: </a><span class="php-comment"> */</span>
|
|
</span><span id="234" class="l"><a class="l" href="#234"> 234: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_getName" href="#_getName">getName</a>()
|
|
</span><span id="235" class="l"><a class="l" href="#235"> 235: </a> {
|
|
</span><span id="236" class="l"><a class="l" href="#236"> 236: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>->name;
|
|
</span><span id="237" class="l"><a class="l" href="#237"> 237: </a> }
|
|
</span><span id="238" class="l"><a class="l" href="#238"> 238: </a>
|
|
</span><span id="239" class="l"><a class="l" href="#239"> 239: </a> <span class="php-comment">/**
|
|
</span></span><span id="240" class="l"><a class="l" href="#240"> 240: </a><span class="php-comment"> * Get default application settings
|
|
</span></span><span id="241" class="l"><a class="l" href="#241"> 241: </a><span class="php-comment"> * @return array
|
|
</span></span><span id="242" class="l"><a class="l" href="#242"> 242: </a><span class="php-comment"> */</span>
|
|
</span><span id="243" class="l"><a class="l" href="#243"> 243: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_getDefaultSettings" href="#_getDefaultSettings">getDefaultSettings</a>()
|
|
</span><span id="244" class="l"><a class="l" href="#244"> 244: </a> {
|
|
</span><span id="245" class="l"><a class="l" href="#245"> 245: </a> <span class="php-keyword1">return</span> <span class="php-keyword1">array</span>(
|
|
</span><span id="246" class="l"><a class="l" href="#246"> 246: </a> <span class="php-comment">// Application</span>
|
|
</span><span id="247" class="l"><a class="l" href="#247"> 247: </a> <span class="php-quote">'mode'</span> => <span class="php-quote">'development'</span>,
|
|
</span><span id="248" class="l"><a class="l" href="#248"> 248: </a> <span class="php-comment">// Debugging</span>
|
|
</span><span id="249" class="l"><a class="l" href="#249"> 249: </a> <span class="php-quote">'debug'</span> => <span class="php-keyword1">true</span>,
|
|
</span><span id="250" class="l"><a class="l" href="#250"> 250: </a> <span class="php-comment">// Logging</span>
|
|
</span><span id="251" class="l"><a class="l" href="#251"> 251: </a> <span class="php-quote">'log.writer'</span> => <span class="php-keyword1">null</span>,
|
|
</span><span id="252" class="l"><a class="l" href="#252"> 252: </a> <span class="php-quote">'log.level'</span> => \Slim\<span class="php-keyword2">Log</span>::DEBUG,
|
|
</span><span id="253" class="l"><a class="l" href="#253"> 253: </a> <span class="php-quote">'log.enabled'</span> => <span class="php-keyword1">true</span>,
|
|
</span><span id="254" class="l"><a class="l" href="#254"> 254: </a> <span class="php-comment">// View</span>
|
|
</span><span id="255" class="l"><a class="l" href="#255"> 255: </a> <span class="php-quote">'templates.path'</span> => <span class="php-quote">'./templates'</span>,
|
|
</span><span id="256" class="l"><a class="l" href="#256"> 256: </a> <span class="php-quote">'view'</span> => <span class="php-quote">'\Slim\View'</span>,
|
|
</span><span id="257" class="l"><a class="l" href="#257"> 257: </a> <span class="php-comment">// Cookies</span>
|
|
</span><span id="258" class="l"><a class="l" href="#258"> 258: </a> <span class="php-quote">'cookies.lifetime'</span> => <span class="php-quote">'20 minutes'</span>,
|
|
</span><span id="259" class="l"><a class="l" href="#259"> 259: </a> <span class="php-quote">'cookies.path'</span> => <span class="php-quote">'/'</span>,
|
|
</span><span id="260" class="l"><a class="l" href="#260"> 260: </a> <span class="php-quote">'cookies.domain'</span> => <span class="php-keyword1">null</span>,
|
|
</span><span id="261" class="l"><a class="l" href="#261"> 261: </a> <span class="php-quote">'cookies.secure'</span> => <span class="php-keyword1">false</span>,
|
|
</span><span id="262" class="l"><a class="l" href="#262"> 262: </a> <span class="php-quote">'cookies.httponly'</span> => <span class="php-keyword1">false</span>,
|
|
</span><span id="263" class="l"><a class="l" href="#263"> 263: </a> <span class="php-comment">// Encryption</span>
|
|
</span><span id="264" class="l"><a class="l" href="#264"> 264: </a> <span class="php-quote">'cookies.secret_key'</span> => <span class="php-quote">'CHANGE_ME'</span>,
|
|
</span><span id="265" class="l"><a class="l" href="#265"> 265: </a> <span class="php-quote">'cookies.cipher'</span> => MCRYPT_RIJNDAEL_256,
|
|
</span><span id="266" class="l"><a class="l" href="#266"> 266: </a> <span class="php-quote">'cookies.cipher_mode'</span> => MCRYPT_MODE_CBC,
|
|
</span><span id="267" class="l"><a class="l" href="#267"> 267: </a> <span class="php-comment">// HTTP</span>
|
|
</span><span id="268" class="l"><a class="l" href="#268"> 268: </a> <span class="php-quote">'http.version'</span> => <span class="php-quote">'1.1'</span>
|
|
</span><span id="269" class="l"><a class="l" href="#269"> 269: </a> );
|
|
</span><span id="270" class="l"><a class="l" href="#270"> 270: </a> }
|
|
</span><span id="271" class="l"><a class="l" href="#271"> 271: </a>
|
|
</span><span id="272" class="l"><a class="l" href="#272"> 272: </a> <span class="php-comment">/**
|
|
</span></span><span id="273" class="l"><a class="l" href="#273"> 273: </a><span class="php-comment"> * Configure Slim Settings
|
|
</span></span><span id="274" class="l"><a class="l" href="#274"> 274: </a><span class="php-comment"> *
|
|
</span></span><span id="275" class="l"><a class="l" href="#275"> 275: </a><span class="php-comment"> * This method defines application settings and acts as a setter and a getter.
|
|
</span></span><span id="276" class="l"><a class="l" href="#276"> 276: </a><span class="php-comment"> *
|
|
</span></span><span id="277" class="l"><a class="l" href="#277"> 277: </a><span class="php-comment"> * If only one argument is specified and that argument is a string, the value
|
|
</span></span><span id="278" class="l"><a class="l" href="#278"> 278: </a><span class="php-comment"> * of the setting identified by the first argument will be returned, or NULL if
|
|
</span></span><span id="279" class="l"><a class="l" href="#279"> 279: </a><span class="php-comment"> * that setting does not exist.
|
|
</span></span><span id="280" class="l"><a class="l" href="#280"> 280: </a><span class="php-comment"> *
|
|
</span></span><span id="281" class="l"><a class="l" href="#281"> 281: </a><span class="php-comment"> * If only one argument is specified and that argument is an associative array,
|
|
</span></span><span id="282" class="l"><a class="l" href="#282"> 282: </a><span class="php-comment"> * the array will be merged into the existing application settings.
|
|
</span></span><span id="283" class="l"><a class="l" href="#283"> 283: </a><span class="php-comment"> *
|
|
</span></span><span id="284" class="l"><a class="l" href="#284"> 284: </a><span class="php-comment"> * If two arguments are provided, the first argument is the name of the setting
|
|
</span></span><span id="285" class="l"><a class="l" href="#285"> 285: </a><span class="php-comment"> * to be created or updated, and the second argument is the setting value.
|
|
</span></span><span id="286" class="l"><a class="l" href="#286"> 286: </a><span class="php-comment"> *
|
|
</span></span><span id="287" class="l"><a class="l" href="#287"> 287: </a><span class="php-comment"> * @param string|array $name If a string, the name of the setting to set or retrieve. Else an associated array of setting names and values
|
|
</span></span><span id="288" class="l"><a class="l" href="#288"> 288: </a><span class="php-comment"> * @param mixed $value If name is a string, the value of the setting identified by $name
|
|
</span></span><span id="289" class="l"><a class="l" href="#289"> 289: </a><span class="php-comment"> * @return mixed The value of a setting if only one argument is a string
|
|
</span></span><span id="290" class="l"><a class="l" href="#290"> 290: </a><span class="php-comment"> */</span>
|
|
</span><span id="291" class="l"><a class="l" href="#291"> 291: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_config" href="#_config">config</a>(<span class="php-var">$name</span>, <span class="php-var">$value</span> = <span class="php-keyword1">null</span>)
|
|
</span><span id="292" class="l"><a class="l" href="#292"> 292: </a> {
|
|
</span><span id="293" class="l"><a class="l" href="#293"> 293: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">func_num_args</span>() === <span class="php-num">1</span>) {
|
|
</span><span id="294" class="l"><a class="l" href="#294"> 294: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">is_array</span>(<span class="php-var">$name</span>)) {
|
|
</span><span id="295" class="l"><a class="l" href="#295"> 295: </a> <span class="php-var">$this</span>->settings = <span class="php-keyword2">array_merge</span>(<span class="php-var">$this</span>->settings, <span class="php-var">$name</span>);
|
|
</span><span id="296" class="l"><a class="l" href="#296"> 296: </a> } <span class="php-keyword1">else</span> {
|
|
</span><span id="297" class="l"><a class="l" href="#297"> 297: </a> <span class="php-keyword1">return</span> <span class="php-keyword1">isset</span>(<span class="php-var">$this</span>->settings[<span class="php-var">$name</span>]) ? <span class="php-var">$this</span>->settings[<span class="php-var">$name</span>] : <span class="php-keyword1">null</span>;
|
|
</span><span id="298" class="l"><a class="l" href="#298"> 298: </a> }
|
|
</span><span id="299" class="l"><a class="l" href="#299"> 299: </a> } <span class="php-keyword1">else</span> {
|
|
</span><span id="300" class="l"><a class="l" href="#300"> 300: </a> <span class="php-var">$this</span>->settings[<span class="php-var">$name</span>] = <span class="php-var">$value</span>;
|
|
</span><span id="301" class="l"><a class="l" href="#301"> 301: </a> }
|
|
</span><span id="302" class="l"><a class="l" href="#302"> 302: </a> }
|
|
</span><span id="303" class="l"><a class="l" href="#303"> 303: </a>
|
|
</span><span id="304" class="l"><a class="l" href="#304"> 304: </a> <span class="php-comment">/********************************************************************************
|
|
</span></span><span id="305" class="l"><a class="l" href="#305"> 305: </a><span class="php-comment"> * Application Modes
|
|
</span></span><span id="306" class="l"><a class="l" href="#306"> 306: </a><span class="php-comment"> *******************************************************************************/</span>
|
|
</span><span id="307" class="l"><a class="l" href="#307"> 307: </a>
|
|
</span><span id="308" class="l"><a class="l" href="#308"> 308: </a> <span class="php-comment">/**
|
|
</span></span><span id="309" class="l"><a class="l" href="#309"> 309: </a><span class="php-comment"> * Get application mode
|
|
</span></span><span id="310" class="l"><a class="l" href="#310"> 310: </a><span class="php-comment"> *
|
|
</span></span><span id="311" class="l"><a class="l" href="#311"> 311: </a><span class="php-comment"> * This method determines the application mode. It first inspects the $_ENV
|
|
</span></span><span id="312" class="l"><a class="l" href="#312"> 312: </a><span class="php-comment"> * superglobal for key `SLIM_MODE`. If that is not found, it queries
|
|
</span></span><span id="313" class="l"><a class="l" href="#313"> 313: </a><span class="php-comment"> * the `getenv` function. Else, it uses the application `mode` setting.
|
|
</span></span><span id="314" class="l"><a class="l" href="#314"> 314: </a><span class="php-comment"> *
|
|
</span></span><span id="315" class="l"><a class="l" href="#315"> 315: </a><span class="php-comment"> * @return string
|
|
</span></span><span id="316" class="l"><a class="l" href="#316"> 316: </a><span class="php-comment"> */</span>
|
|
</span><span id="317" class="l"><a class="l" href="#317"> 317: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_getMode" href="#_getMode">getMode</a>()
|
|
</span><span id="318" class="l"><a class="l" href="#318"> 318: </a> {
|
|
</span><span id="319" class="l"><a class="l" href="#319"> 319: </a> <span class="php-keyword1">if</span> (!<span class="php-keyword1">isset</span>(<span class="php-var">$this</span>->mode)) {
|
|
</span><span id="320" class="l"><a class="l" href="#320"> 320: </a> <span class="php-keyword1">if</span> (<span class="php-keyword1">isset</span>(<span class="php-var">$_ENV</span>[<span class="php-quote">'SLIM_MODE'</span>])) {
|
|
</span><span id="321" class="l"><a class="l" href="#321"> 321: </a> <span class="php-var">$this</span>->mode = <span class="php-var">$_ENV</span>[<span class="php-quote">'SLIM_MODE'</span>];
|
|
</span><span id="322" class="l"><a class="l" href="#322"> 322: </a> } <span class="php-keyword1">else</span> {
|
|
</span><span id="323" class="l"><a class="l" href="#323"> 323: </a> <span class="php-var">$envMode</span> = <span class="php-keyword2">getenv</span>(<span class="php-quote">'SLIM_MODE'</span>);
|
|
</span><span id="324" class="l"><a class="l" href="#324"> 324: </a> <span class="php-keyword1">if</span> (<span class="php-var">$envMode</span> !== <span class="php-keyword1">false</span>) {
|
|
</span><span id="325" class="l"><a class="l" href="#325"> 325: </a> <span class="php-var">$this</span>->mode = <span class="php-var">$envMode</span>;
|
|
</span><span id="326" class="l"><a class="l" href="#326"> 326: </a> } <span class="php-keyword1">else</span> {
|
|
</span><span id="327" class="l"><a class="l" href="#327"> 327: </a> <span class="php-var">$this</span>->mode = <span class="php-var">$this</span>->config(<span class="php-quote">'mode'</span>);
|
|
</span><span id="328" class="l"><a class="l" href="#328"> 328: </a> }
|
|
</span><span id="329" class="l"><a class="l" href="#329"> 329: </a> }
|
|
</span><span id="330" class="l"><a class="l" href="#330"> 330: </a> }
|
|
</span><span id="331" class="l"><a class="l" href="#331"> 331: </a>
|
|
</span><span id="332" class="l"><a class="l" href="#332"> 332: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>->mode;
|
|
</span><span id="333" class="l"><a class="l" href="#333"> 333: </a> }
|
|
</span><span id="334" class="l"><a class="l" href="#334"> 334: </a>
|
|
</span><span id="335" class="l"><a class="l" href="#335"> 335: </a> <span class="php-comment">/**
|
|
</span></span><span id="336" class="l"><a class="l" href="#336"> 336: </a><span class="php-comment"> * Configure Slim for a given mode
|
|
</span></span><span id="337" class="l"><a class="l" href="#337"> 337: </a><span class="php-comment"> *
|
|
</span></span><span id="338" class="l"><a class="l" href="#338"> 338: </a><span class="php-comment"> * This method will immediately invoke the callable if
|
|
</span></span><span id="339" class="l"><a class="l" href="#339"> 339: </a><span class="php-comment"> * the specified mode matches the current application mode.
|
|
</span></span><span id="340" class="l"><a class="l" href="#340"> 340: </a><span class="php-comment"> * Otherwise, the callable is ignored. This should be called
|
|
</span></span><span id="341" class="l"><a class="l" href="#341"> 341: </a><span class="php-comment"> * only _after_ you initialize your Slim app.
|
|
</span></span><span id="342" class="l"><a class="l" href="#342"> 342: </a><span class="php-comment"> *
|
|
</span></span><span id="343" class="l"><a class="l" href="#343"> 343: </a><span class="php-comment"> * @param string $mode
|
|
</span></span><span id="344" class="l"><a class="l" href="#344"> 344: </a><span class="php-comment"> * @param mixed $callable
|
|
</span></span><span id="345" class="l"><a class="l" href="#345"> 345: </a><span class="php-comment"> * @return void
|
|
</span></span><span id="346" class="l"><a class="l" href="#346"> 346: </a><span class="php-comment"> */</span>
|
|
</span><span id="347" class="l"><a class="l" href="#347"> 347: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_configureMode" href="#_configureMode">configureMode</a>(<span class="php-var">$mode</span>, <span class="php-var">$callable</span>)
|
|
</span><span id="348" class="l"><a class="l" href="#348"> 348: </a> {
|
|
</span><span id="349" class="l"><a class="l" href="#349"> 349: </a> <span class="php-keyword1">if</span> (<span class="php-var">$mode</span> === <span class="php-var">$this</span>->getMode() && <span class="php-keyword2">is_callable</span>(<span class="php-var">$callable</span>)) {
|
|
</span><span id="350" class="l"><a class="l" href="#350"> 350: </a> <span class="php-keyword2">call_user_func</span>(<span class="php-var">$callable</span>);
|
|
</span><span id="351" class="l"><a class="l" href="#351"> 351: </a> }
|
|
</span><span id="352" class="l"><a class="l" href="#352"> 352: </a> }
|
|
</span><span id="353" class="l"><a class="l" href="#353"> 353: </a>
|
|
</span><span id="354" class="l"><a class="l" href="#354"> 354: </a> <span class="php-comment">/********************************************************************************
|
|
</span></span><span id="355" class="l"><a class="l" href="#355"> 355: </a><span class="php-comment"> * Logging
|
|
</span></span><span id="356" class="l"><a class="l" href="#356"> 356: </a><span class="php-comment"> *******************************************************************************/</span>
|
|
</span><span id="357" class="l"><a class="l" href="#357"> 357: </a>
|
|
</span><span id="358" class="l"><a class="l" href="#358"> 358: </a> <span class="php-comment">/**
|
|
</span></span><span id="359" class="l"><a class="l" href="#359"> 359: </a><span class="php-comment"> * Get application log
|
|
</span></span><span id="360" class="l"><a class="l" href="#360"> 360: </a><span class="php-comment"> * @return \Slim\Log
|
|
</span></span><span id="361" class="l"><a class="l" href="#361"> 361: </a><span class="php-comment"> */</span>
|
|
</span><span id="362" class="l"><a class="l" href="#362"> 362: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_getLog" href="#_getLog">getLog</a>()
|
|
</span><span id="363" class="l"><a class="l" href="#363"> 363: </a> {
|
|
</span><span id="364" class="l"><a class="l" href="#364"> 364: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>->environment[<span class="php-quote">'slim.log'</span>];
|
|
</span><span id="365" class="l"><a class="l" href="#365"> 365: </a> }
|
|
</span><span id="366" class="l"><a class="l" href="#366"> 366: </a>
|
|
</span><span id="367" class="l"><a class="l" href="#367"> 367: </a> <span class="php-comment">/********************************************************************************
|
|
</span></span><span id="368" class="l"><a class="l" href="#368"> 368: </a><span class="php-comment"> * Routing
|
|
</span></span><span id="369" class="l"><a class="l" href="#369"> 369: </a><span class="php-comment"> *******************************************************************************/</span>
|
|
</span><span id="370" class="l"><a class="l" href="#370"> 370: </a>
|
|
</span><span id="371" class="l"><a class="l" href="#371"> 371: </a> <span class="php-comment">/**
|
|
</span></span><span id="372" class="l"><a class="l" href="#372"> 372: </a><span class="php-comment"> * Add GET|POST|PUT|DELETE route
|
|
</span></span><span id="373" class="l"><a class="l" href="#373"> 373: </a><span class="php-comment"> *
|
|
</span></span><span id="374" class="l"><a class="l" href="#374"> 374: </a><span class="php-comment"> * Adds a new route to the router with associated callable. This
|
|
</span></span><span id="375" class="l"><a class="l" href="#375"> 375: </a><span class="php-comment"> * route will only be invoked when the HTTP request's method matches
|
|
</span></span><span id="376" class="l"><a class="l" href="#376"> 376: </a><span class="php-comment"> * this route's method.
|
|
</span></span><span id="377" class="l"><a class="l" href="#377"> 377: </a><span class="php-comment"> *
|
|
</span></span><span id="378" class="l"><a class="l" href="#378"> 378: </a><span class="php-comment"> * ARGUMENTS:
|
|
</span></span><span id="379" class="l"><a class="l" href="#379"> 379: </a><span class="php-comment"> *
|
|
</span></span><span id="380" class="l"><a class="l" href="#380"> 380: </a><span class="php-comment"> * First: string The URL pattern (REQUIRED)
|
|
</span></span><span id="381" class="l"><a class="l" href="#381"> 381: </a><span class="php-comment"> * In-Between: mixed Anything that returns TRUE for `is_callable` (OPTIONAL)
|
|
</span></span><span id="382" class="l"><a class="l" href="#382"> 382: </a><span class="php-comment"> * Last: mixed Anything that returns TRUE for `is_callable` (REQUIRED)
|
|
</span></span><span id="383" class="l"><a class="l" href="#383"> 383: </a><span class="php-comment"> *
|
|
</span></span><span id="384" class="l"><a class="l" href="#384"> 384: </a><span class="php-comment"> * The first argument is required and must always be the
|
|
</span></span><span id="385" class="l"><a class="l" href="#385"> 385: </a><span class="php-comment"> * route pattern (ie. '/books/:id').
|
|
</span></span><span id="386" class="l"><a class="l" href="#386"> 386: </a><span class="php-comment"> *
|
|
</span></span><span id="387" class="l"><a class="l" href="#387"> 387: </a><span class="php-comment"> * The last argument is required and must always be the callable object
|
|
</span></span><span id="388" class="l"><a class="l" href="#388"> 388: </a><span class="php-comment"> * to be invoked when the route matches an HTTP request.
|
|
</span></span><span id="389" class="l"><a class="l" href="#389"> 389: </a><span class="php-comment"> *
|
|
</span></span><span id="390" class="l"><a class="l" href="#390"> 390: </a><span class="php-comment"> * You may also provide an unlimited number of in-between arguments;
|
|
</span></span><span id="391" class="l"><a class="l" href="#391"> 391: </a><span class="php-comment"> * each interior argument must be callable and will be invoked in the
|
|
</span></span><span id="392" class="l"><a class="l" href="#392"> 392: </a><span class="php-comment"> * order specified before the route's callable is invoked.
|
|
</span></span><span id="393" class="l"><a class="l" href="#393"> 393: </a><span class="php-comment"> *
|
|
</span></span><span id="394" class="l"><a class="l" href="#394"> 394: </a><span class="php-comment"> * USAGE:
|
|
</span></span><span id="395" class="l"><a class="l" href="#395"> 395: </a><span class="php-comment"> *
|
|
</span></span><span id="396" class="l"><a class="l" href="#396"> 396: </a><span class="php-comment"> * Slim::get('/foo'[, middleware, middleware, ...], callable);
|
|
</span></span><span id="397" class="l"><a class="l" href="#397"> 397: </a><span class="php-comment"> *
|
|
</span></span><span id="398" class="l"><a class="l" href="#398"> 398: </a><span class="php-comment"> * @param array (See notes above)
|
|
</span></span><span id="399" class="l"><a class="l" href="#399"> 399: </a><span class="php-comment"> * @return \Slim\Route
|
|
</span></span><span id="400" class="l"><a class="l" href="#400"> 400: </a><span class="php-comment"> */</span>
|
|
</span><span id="401" class="l"><a class="l" href="#401"> 401: </a> <span class="php-keyword1">protected</span> <span class="php-keyword1">function</span> <a id="_mapRoute" href="#_mapRoute">mapRoute</a>(<span class="php-var">$args</span>)
|
|
</span><span id="402" class="l"><a class="l" href="#402"> 402: </a> {
|
|
</span><span id="403" class="l"><a class="l" href="#403"> 403: </a> <span class="php-var">$pattern</span> = <span class="php-keyword2">array_shift</span>(<span class="php-var">$args</span>);
|
|
</span><span id="404" class="l"><a class="l" href="#404"> 404: </a> <span class="php-var">$callable</span> = <span class="php-keyword2">array_pop</span>(<span class="php-var">$args</span>);
|
|
</span><span id="405" class="l"><a class="l" href="#405"> 405: </a> <span class="php-var">$route</span> = <span class="php-var">$this</span>->router->map(<span class="php-var">$pattern</span>, <span class="php-var">$callable</span>);
|
|
</span><span id="406" class="l"><a class="l" href="#406"> 406: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">count</span>(<span class="php-var">$args</span>) > <span class="php-num">0</span>) {
|
|
</span><span id="407" class="l"><a class="l" href="#407"> 407: </a> <span class="php-var">$route</span>->setMiddleware(<span class="php-var">$args</span>);
|
|
</span><span id="408" class="l"><a class="l" href="#408"> 408: </a> }
|
|
</span><span id="409" class="l"><a class="l" href="#409"> 409: </a>
|
|
</span><span id="410" class="l"><a class="l" href="#410"> 410: </a> <span class="php-keyword1">return</span> <span class="php-var">$route</span>;
|
|
</span><span id="411" class="l"><a class="l" href="#411"> 411: </a> }
|
|
</span><span id="412" class="l"><a class="l" href="#412"> 412: </a>
|
|
</span><span id="413" class="l"><a class="l" href="#413"> 413: </a> <span class="php-comment">/**
|
|
</span></span><span id="414" class="l"><a class="l" href="#414"> 414: </a><span class="php-comment"> * Add generic route without associated HTTP method
|
|
</span></span><span id="415" class="l"><a class="l" href="#415"> 415: </a><span class="php-comment"> * @see mapRoute()
|
|
</span></span><span id="416" class="l"><a class="l" href="#416"> 416: </a><span class="php-comment"> * @return \Slim\Route
|
|
</span></span><span id="417" class="l"><a class="l" href="#417"> 417: </a><span class="php-comment"> */</span>
|
|
</span><span id="418" class="l"><a class="l" href="#418"> 418: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_map" href="#_map">map</a>()
|
|
</span><span id="419" class="l"><a class="l" href="#419"> 419: </a> {
|
|
</span><span id="420" class="l"><a class="l" href="#420"> 420: </a> <span class="php-var">$args</span> = <span class="php-keyword2">func_get_args</span>();
|
|
</span><span id="421" class="l"><a class="l" href="#421"> 421: </a>
|
|
</span><span id="422" class="l"><a class="l" href="#422"> 422: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>->mapRoute(<span class="php-var">$args</span>);
|
|
</span><span id="423" class="l"><a class="l" href="#423"> 423: </a> }
|
|
</span><span id="424" class="l"><a class="l" href="#424"> 424: </a>
|
|
</span><span id="425" class="l"><a class="l" href="#425"> 425: </a> <span class="php-comment">/**
|
|
</span></span><span id="426" class="l"><a class="l" href="#426"> 426: </a><span class="php-comment"> * Add GET route
|
|
</span></span><span id="427" class="l"><a class="l" href="#427"> 427: </a><span class="php-comment"> * @see mapRoute()
|
|
</span></span><span id="428" class="l"><a class="l" href="#428"> 428: </a><span class="php-comment"> * @return \Slim\Route
|
|
</span></span><span id="429" class="l"><a class="l" href="#429"> 429: </a><span class="php-comment"> */</span>
|
|
</span><span id="430" class="l"><a class="l" href="#430"> 430: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_get" href="#_get">get</a>()
|
|
</span><span id="431" class="l"><a class="l" href="#431"> 431: </a> {
|
|
</span><span id="432" class="l"><a class="l" href="#432"> 432: </a> <span class="php-var">$args</span> = <span class="php-keyword2">func_get_args</span>();
|
|
</span><span id="433" class="l"><a class="l" href="#433"> 433: </a>
|
|
</span><span id="434" class="l"><a class="l" href="#434"> 434: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>->mapRoute(<span class="php-var">$args</span>)->via(\Slim\Http\Request::METHOD_GET, \Slim\Http\Request::METHOD_HEAD);
|
|
</span><span id="435" class="l"><a class="l" href="#435"> 435: </a> }
|
|
</span><span id="436" class="l"><a class="l" href="#436"> 436: </a>
|
|
</span><span id="437" class="l"><a class="l" href="#437"> 437: </a> <span class="php-comment">/**
|
|
</span></span><span id="438" class="l"><a class="l" href="#438"> 438: </a><span class="php-comment"> * Add POST route
|
|
</span></span><span id="439" class="l"><a class="l" href="#439"> 439: </a><span class="php-comment"> * @see mapRoute()
|
|
</span></span><span id="440" class="l"><a class="l" href="#440"> 440: </a><span class="php-comment"> * @return \Slim\Route
|
|
</span></span><span id="441" class="l"><a class="l" href="#441"> 441: </a><span class="php-comment"> */</span>
|
|
</span><span id="442" class="l"><a class="l" href="#442"> 442: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_post" href="#_post">post</a>()
|
|
</span><span id="443" class="l"><a class="l" href="#443"> 443: </a> {
|
|
</span><span id="444" class="l"><a class="l" href="#444"> 444: </a> <span class="php-var">$args</span> = <span class="php-keyword2">func_get_args</span>();
|
|
</span><span id="445" class="l"><a class="l" href="#445"> 445: </a>
|
|
</span><span id="446" class="l"><a class="l" href="#446"> 446: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>->mapRoute(<span class="php-var">$args</span>)->via(\Slim\Http\Request::METHOD_POST);
|
|
</span><span id="447" class="l"><a class="l" href="#447"> 447: </a> }
|
|
</span><span id="448" class="l"><a class="l" href="#448"> 448: </a>
|
|
</span><span id="449" class="l"><a class="l" href="#449"> 449: </a> <span class="php-comment">/**
|
|
</span></span><span id="450" class="l"><a class="l" href="#450"> 450: </a><span class="php-comment"> * Add PUT route
|
|
</span></span><span id="451" class="l"><a class="l" href="#451"> 451: </a><span class="php-comment"> * @see mapRoute()
|
|
</span></span><span id="452" class="l"><a class="l" href="#452"> 452: </a><span class="php-comment"> * @return \Slim\Route
|
|
</span></span><span id="453" class="l"><a class="l" href="#453"> 453: </a><span class="php-comment"> */</span>
|
|
</span><span id="454" class="l"><a class="l" href="#454"> 454: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_put" href="#_put">put</a>()
|
|
</span><span id="455" class="l"><a class="l" href="#455"> 455: </a> {
|
|
</span><span id="456" class="l"><a class="l" href="#456"> 456: </a> <span class="php-var">$args</span> = <span class="php-keyword2">func_get_args</span>();
|
|
</span><span id="457" class="l"><a class="l" href="#457"> 457: </a>
|
|
</span><span id="458" class="l"><a class="l" href="#458"> 458: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>->mapRoute(<span class="php-var">$args</span>)->via(\Slim\Http\Request::METHOD_PUT);
|
|
</span><span id="459" class="l"><a class="l" href="#459"> 459: </a> }
|
|
</span><span id="460" class="l"><a class="l" href="#460"> 460: </a>
|
|
</span><span id="461" class="l"><a class="l" href="#461"> 461: </a> <span class="php-comment">/**
|
|
</span></span><span id="462" class="l"><a class="l" href="#462"> 462: </a><span class="php-comment"> * Add DELETE route
|
|
</span></span><span id="463" class="l"><a class="l" href="#463"> 463: </a><span class="php-comment"> * @see mapRoute()
|
|
</span></span><span id="464" class="l"><a class="l" href="#464"> 464: </a><span class="php-comment"> * @return \Slim\Route
|
|
</span></span><span id="465" class="l"><a class="l" href="#465"> 465: </a><span class="php-comment"> */</span>
|
|
</span><span id="466" class="l"><a class="l" href="#466"> 466: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <span class="php-keyword2">delete</span>()
|
|
</span><span id="467" class="l"><a class="l" href="#467"> 467: </a> {
|
|
</span><span id="468" class="l"><a class="l" href="#468"> 468: </a> <span class="php-var">$args</span> = <span class="php-keyword2">func_get_args</span>();
|
|
</span><span id="469" class="l"><a class="l" href="#469"> 469: </a>
|
|
</span><span id="470" class="l"><a class="l" href="#470"> 470: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>->mapRoute(<span class="php-var">$args</span>)->via(\Slim\Http\Request::METHOD_DELETE);
|
|
</span><span id="471" class="l"><a class="l" href="#471"> 471: </a> }
|
|
</span><span id="472" class="l"><a class="l" href="#472"> 472: </a>
|
|
</span><span id="473" class="l"><a class="l" href="#473"> 473: </a> <span class="php-comment">/**
|
|
</span></span><span id="474" class="l"><a class="l" href="#474"> 474: </a><span class="php-comment"> * Add OPTIONS route
|
|
</span></span><span id="475" class="l"><a class="l" href="#475"> 475: </a><span class="php-comment"> * @see mapRoute()
|
|
</span></span><span id="476" class="l"><a class="l" href="#476"> 476: </a><span class="php-comment"> * @return \Slim\Route
|
|
</span></span><span id="477" class="l"><a class="l" href="#477"> 477: </a><span class="php-comment"> */</span>
|
|
</span><span id="478" class="l"><a class="l" href="#478"> 478: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_options" href="#_options">options</a>()
|
|
</span><span id="479" class="l"><a class="l" href="#479"> 479: </a> {
|
|
</span><span id="480" class="l"><a class="l" href="#480"> 480: </a> <span class="php-var">$args</span> = <span class="php-keyword2">func_get_args</span>();
|
|
</span><span id="481" class="l"><a class="l" href="#481"> 481: </a>
|
|
</span><span id="482" class="l"><a class="l" href="#482"> 482: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>->mapRoute(<span class="php-var">$args</span>)->via(\Slim\Http\Request::METHOD_OPTIONS);
|
|
</span><span id="483" class="l"><a class="l" href="#483"> 483: </a> }
|
|
</span><span id="484" class="l"><a class="l" href="#484"> 484: </a>
|
|
</span><span id="485" class="l"><a class="l" href="#485"> 485: </a> <span class="php-comment">/**
|
|
</span></span><span id="486" class="l"><a class="l" href="#486"> 486: </a><span class="php-comment"> * Not Found Handler
|
|
</span></span><span id="487" class="l"><a class="l" href="#487"> 487: </a><span class="php-comment"> *
|
|
</span></span><span id="488" class="l"><a class="l" href="#488"> 488: </a><span class="php-comment"> * This method defines or invokes the application-wide Not Found handler.
|
|
</span></span><span id="489" class="l"><a class="l" href="#489"> 489: </a><span class="php-comment"> * There are two contexts in which this method may be invoked:
|
|
</span></span><span id="490" class="l"><a class="l" href="#490"> 490: </a><span class="php-comment"> *
|
|
</span></span><span id="491" class="l"><a class="l" href="#491"> 491: </a><span class="php-comment"> * 1. When declaring the handler:
|
|
</span></span><span id="492" class="l"><a class="l" href="#492"> 492: </a><span class="php-comment"> *
|
|
</span></span><span id="493" class="l"><a class="l" href="#493"> 493: </a><span class="php-comment"> * If the $callable parameter is not null and is callable, this
|
|
</span></span><span id="494" class="l"><a class="l" href="#494"> 494: </a><span class="php-comment"> * method will register the callable to be invoked when no
|
|
</span></span><span id="495" class="l"><a class="l" href="#495"> 495: </a><span class="php-comment"> * routes match the current HTTP request. It WILL NOT invoke the callable.
|
|
</span></span><span id="496" class="l"><a class="l" href="#496"> 496: </a><span class="php-comment"> *
|
|
</span></span><span id="497" class="l"><a class="l" href="#497"> 497: </a><span class="php-comment"> * 2. When invoking the handler:
|
|
</span></span><span id="498" class="l"><a class="l" href="#498"> 498: </a><span class="php-comment"> *
|
|
</span></span><span id="499" class="l"><a class="l" href="#499"> 499: </a><span class="php-comment"> * If the $callable parameter is null, Slim assumes you want
|
|
</span></span><span id="500" class="l"><a class="l" href="#500"> 500: </a><span class="php-comment"> * to invoke an already-registered handler. If the handler has been
|
|
</span></span><span id="501" class="l"><a class="l" href="#501"> 501: </a><span class="php-comment"> * registered and is callable, it is invoked and sends a 404 HTTP Response
|
|
</span></span><span id="502" class="l"><a class="l" href="#502"> 502: </a><span class="php-comment"> * whose body is the output of the Not Found handler.
|
|
</span></span><span id="503" class="l"><a class="l" href="#503"> 503: </a><span class="php-comment"> *
|
|
</span></span><span id="504" class="l"><a class="l" href="#504"> 504: </a><span class="php-comment"> * @param mixed $callable Anything that returns true for is_callable()
|
|
</span></span><span id="505" class="l"><a class="l" href="#505"> 505: </a><span class="php-comment"> */</span>
|
|
</span><span id="506" class="l"><a class="l" href="#506"> 506: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_notFound" href="#_notFound">notFound</a>( <span class="php-var">$callable</span> = <span class="php-keyword1">null</span> ) {
|
|
</span><span id="507" class="l"><a class="l" href="#507"> 507: </a> <span class="php-keyword1">if</span> ( <span class="php-keyword2">is_callable</span>(<span class="php-var">$callable</span>) ) {
|
|
</span><span id="508" class="l"><a class="l" href="#508"> 508: </a> <span class="php-var">$this</span>->notFound = <span class="php-var">$callable</span>;
|
|
</span><span id="509" class="l"><a class="l" href="#509"> 509: </a> } <span class="php-keyword1">else</span> {
|
|
</span><span id="510" class="l"><a class="l" href="#510"> 510: </a> <span class="php-keyword2">ob_start</span>();
|
|
</span><span id="511" class="l"><a class="l" href="#511"> 511: </a> <span class="php-keyword1">if</span> ( <span class="php-keyword2">is_callable</span>(<span class="php-var">$this</span>->notFound) ) {
|
|
</span><span id="512" class="l"><a class="l" href="#512"> 512: </a> <span class="php-keyword2">call_user_func</span>(<span class="php-var">$this</span>->notFound);
|
|
</span><span id="513" class="l"><a class="l" href="#513"> 513: </a> } <span class="php-keyword1">else</span> {
|
|
</span><span id="514" class="l"><a class="l" href="#514"> 514: </a> <span class="php-keyword2">call_user_func</span>(<span class="php-keyword1">array</span>(<span class="php-var">$this</span>, <span class="php-quote">'defaultNotFound'</span>));
|
|
</span><span id="515" class="l"><a class="l" href="#515"> 515: </a> }
|
|
</span><span id="516" class="l"><a class="l" href="#516"> 516: </a> <span class="php-var">$this</span>->halt(<span class="php-num">404</span>, <span class="php-keyword2">ob_get_clean</span>());
|
|
</span><span id="517" class="l"><a class="l" href="#517"> 517: </a> }
|
|
</span><span id="518" class="l"><a class="l" href="#518"> 518: </a> }
|
|
</span><span id="519" class="l"><a class="l" href="#519"> 519: </a>
|
|
</span><span id="520" class="l"><a class="l" href="#520"> 520: </a> <span class="php-comment">/**
|
|
</span></span><span id="521" class="l"><a class="l" href="#521"> 521: </a><span class="php-comment"> * Error Handler
|
|
</span></span><span id="522" class="l"><a class="l" href="#522"> 522: </a><span class="php-comment"> *
|
|
</span></span><span id="523" class="l"><a class="l" href="#523"> 523: </a><span class="php-comment"> * This method defines or invokes the application-wide Error handler.
|
|
</span></span><span id="524" class="l"><a class="l" href="#524"> 524: </a><span class="php-comment"> * There are two contexts in which this method may be invoked:
|
|
</span></span><span id="525" class="l"><a class="l" href="#525"> 525: </a><span class="php-comment"> *
|
|
</span></span><span id="526" class="l"><a class="l" href="#526"> 526: </a><span class="php-comment"> * 1. When declaring the handler:
|
|
</span></span><span id="527" class="l"><a class="l" href="#527"> 527: </a><span class="php-comment"> *
|
|
</span></span><span id="528" class="l"><a class="l" href="#528"> 528: </a><span class="php-comment"> * If the $argument parameter is callable, this
|
|
</span></span><span id="529" class="l"><a class="l" href="#529"> 529: </a><span class="php-comment"> * method will register the callable to be invoked when an uncaught
|
|
</span></span><span id="530" class="l"><a class="l" href="#530"> 530: </a><span class="php-comment"> * Exception is detected, or when otherwise explicitly invoked.
|
|
</span></span><span id="531" class="l"><a class="l" href="#531"> 531: </a><span class="php-comment"> * The handler WILL NOT be invoked in this context.
|
|
</span></span><span id="532" class="l"><a class="l" href="#532"> 532: </a><span class="php-comment"> *
|
|
</span></span><span id="533" class="l"><a class="l" href="#533"> 533: </a><span class="php-comment"> * 2. When invoking the handler:
|
|
</span></span><span id="534" class="l"><a class="l" href="#534"> 534: </a><span class="php-comment"> *
|
|
</span></span><span id="535" class="l"><a class="l" href="#535"> 535: </a><span class="php-comment"> * If the $argument parameter is not callable, Slim assumes you want
|
|
</span></span><span id="536" class="l"><a class="l" href="#536"> 536: </a><span class="php-comment"> * to invoke an already-registered handler. If the handler has been
|
|
</span></span><span id="537" class="l"><a class="l" href="#537"> 537: </a><span class="php-comment"> * registered and is callable, it is invoked and passed the caught Exception
|
|
</span></span><span id="538" class="l"><a class="l" href="#538"> 538: </a><span class="php-comment"> * as its one and only argument. The error handler's output is captured
|
|
</span></span><span id="539" class="l"><a class="l" href="#539"> 539: </a><span class="php-comment"> * into an output buffer and sent as the body of a 500 HTTP Response.
|
|
</span></span><span id="540" class="l"><a class="l" href="#540"> 540: </a><span class="php-comment"> *
|
|
</span></span><span id="541" class="l"><a class="l" href="#541"> 541: </a><span class="php-comment"> * @param mixed $argument Callable|\Exception
|
|
</span></span><span id="542" class="l"><a class="l" href="#542"> 542: </a><span class="php-comment"> */</span>
|
|
</span><span id="543" class="l"><a class="l" href="#543"> 543: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_error" href="#_error">error</a>(<span class="php-var">$argument</span> = <span class="php-keyword1">null</span>)
|
|
</span><span id="544" class="l"><a class="l" href="#544"> 544: </a> {
|
|
</span><span id="545" class="l"><a class="l" href="#545"> 545: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">is_callable</span>(<span class="php-var">$argument</span>)) {
|
|
</span><span id="546" class="l"><a class="l" href="#546"> 546: </a> <span class="php-comment">//Register error handler</span>
|
|
</span><span id="547" class="l"><a class="l" href="#547"> 547: </a> <span class="php-var">$this</span>->error = <span class="php-var">$argument</span>;
|
|
</span><span id="548" class="l"><a class="l" href="#548"> 548: </a> } <span class="php-keyword1">else</span> {
|
|
</span><span id="549" class="l"><a class="l" href="#549"> 549: </a> <span class="php-comment">//Invoke error handler</span>
|
|
</span><span id="550" class="l"><a class="l" href="#550"> 550: </a> <span class="php-var">$this</span>->response->status(<span class="php-num">500</span>);
|
|
</span><span id="551" class="l"><a class="l" href="#551"> 551: </a> <span class="php-var">$this</span>->response->body(<span class="php-quote">''</span>);
|
|
</span><span id="552" class="l"><a class="l" href="#552"> 552: </a> <span class="php-var">$this</span>->response->write(<span class="php-var">$this</span>->callErrorHandler(<span class="php-var">$argument</span>));
|
|
</span><span id="553" class="l"><a class="l" href="#553"> 553: </a> <span class="php-var">$this</span>->stop();
|
|
</span><span id="554" class="l"><a class="l" href="#554"> 554: </a> }
|
|
</span><span id="555" class="l"><a class="l" href="#555"> 555: </a> }
|
|
</span><span id="556" class="l"><a class="l" href="#556"> 556: </a>
|
|
</span><span id="557" class="l"><a class="l" href="#557"> 557: </a> <span class="php-comment">/**
|
|
</span></span><span id="558" class="l"><a class="l" href="#558"> 558: </a><span class="php-comment"> * Call error handler
|
|
</span></span><span id="559" class="l"><a class="l" href="#559"> 559: </a><span class="php-comment"> *
|
|
</span></span><span id="560" class="l"><a class="l" href="#560"> 560: </a><span class="php-comment"> * This will invoke the custom or default error handler
|
|
</span></span><span id="561" class="l"><a class="l" href="#561"> 561: </a><span class="php-comment"> * and RETURN its output.
|
|
</span></span><span id="562" class="l"><a class="l" href="#562"> 562: </a><span class="php-comment"> *
|
|
</span></span><span id="563" class="l"><a class="l" href="#563"> 563: </a><span class="php-comment"> * @param \Exception|null $argument
|
|
</span></span><span id="564" class="l"><a class="l" href="#564"> 564: </a><span class="php-comment"> * @return string
|
|
</span></span><span id="565" class="l"><a class="l" href="#565"> 565: </a><span class="php-comment"> */</span>
|
|
</span><span id="566" class="l"><a class="l" href="#566"> 566: </a> <span class="php-keyword1">protected</span> <span class="php-keyword1">function</span> <a id="_callErrorHandler" href="#_callErrorHandler">callErrorHandler</a>(<span class="php-var">$argument</span> = <span class="php-keyword1">null</span>)
|
|
</span><span id="567" class="l"><a class="l" href="#567"> 567: </a> {
|
|
</span><span id="568" class="l"><a class="l" href="#568"> 568: </a> <span class="php-keyword2">ob_start</span>();
|
|
</span><span id="569" class="l"><a class="l" href="#569"> 569: </a> <span class="php-keyword1">if</span> ( <span class="php-keyword2">is_callable</span>(<span class="php-var">$this</span>->error) ) {
|
|
</span><span id="570" class="l"><a class="l" href="#570"> 570: </a> <span class="php-keyword2">call_user_func_array</span>(<span class="php-var">$this</span>->error, <span class="php-keyword1">array</span>(<span class="php-var">$argument</span>));
|
|
</span><span id="571" class="l"><a class="l" href="#571"> 571: </a> } <span class="php-keyword1">else</span> {
|
|
</span><span id="572" class="l"><a class="l" href="#572"> 572: </a> <span class="php-keyword2">call_user_func_array</span>(<span class="php-keyword1">array</span>(<span class="php-var">$this</span>, <span class="php-quote">'defaultError'</span>), <span class="php-keyword1">array</span>(<span class="php-var">$argument</span>));
|
|
</span><span id="573" class="l"><a class="l" href="#573"> 573: </a> }
|
|
</span><span id="574" class="l"><a class="l" href="#574"> 574: </a>
|
|
</span><span id="575" class="l"><a class="l" href="#575"> 575: </a> <span class="php-keyword1">return</span> <span class="php-keyword2">ob_get_clean</span>();
|
|
</span><span id="576" class="l"><a class="l" href="#576"> 576: </a> }
|
|
</span><span id="577" class="l"><a class="l" href="#577"> 577: </a>
|
|
</span><span id="578" class="l"><a class="l" href="#578"> 578: </a> <span class="php-comment">/********************************************************************************
|
|
</span></span><span id="579" class="l"><a class="l" href="#579"> 579: </a><span class="php-comment"> * Application Accessors
|
|
</span></span><span id="580" class="l"><a class="l" href="#580"> 580: </a><span class="php-comment"> *******************************************************************************/</span>
|
|
</span><span id="581" class="l"><a class="l" href="#581"> 581: </a>
|
|
</span><span id="582" class="l"><a class="l" href="#582"> 582: </a> <span class="php-comment">/**
|
|
</span></span><span id="583" class="l"><a class="l" href="#583"> 583: </a><span class="php-comment"> * Get a reference to the Environment object
|
|
</span></span><span id="584" class="l"><a class="l" href="#584"> 584: </a><span class="php-comment"> * @return \Slim\Environment
|
|
</span></span><span id="585" class="l"><a class="l" href="#585"> 585: </a><span class="php-comment"> */</span>
|
|
</span><span id="586" class="l"><a class="l" href="#586"> 586: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_environment" href="#_environment">environment</a>()
|
|
</span><span id="587" class="l"><a class="l" href="#587"> 587: </a> {
|
|
</span><span id="588" class="l"><a class="l" href="#588"> 588: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>->environment;
|
|
</span><span id="589" class="l"><a class="l" href="#589"> 589: </a> }
|
|
</span><span id="590" class="l"><a class="l" href="#590"> 590: </a>
|
|
</span><span id="591" class="l"><a class="l" href="#591"> 591: </a> <span class="php-comment">/**
|
|
</span></span><span id="592" class="l"><a class="l" href="#592"> 592: </a><span class="php-comment"> * Get the Request object
|
|
</span></span><span id="593" class="l"><a class="l" href="#593"> 593: </a><span class="php-comment"> * @return \Slim\Http\Request
|
|
</span></span><span id="594" class="l"><a class="l" href="#594"> 594: </a><span class="php-comment"> */</span>
|
|
</span><span id="595" class="l"><a class="l" href="#595"> 595: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_request" href="#_request">request</a>()
|
|
</span><span id="596" class="l"><a class="l" href="#596"> 596: </a> {
|
|
</span><span id="597" class="l"><a class="l" href="#597"> 597: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>->request;
|
|
</span><span id="598" class="l"><a class="l" href="#598"> 598: </a> }
|
|
</span><span id="599" class="l"><a class="l" href="#599"> 599: </a>
|
|
</span><span id="600" class="l"><a class="l" href="#600"> 600: </a> <span class="php-comment">/**
|
|
</span></span><span id="601" class="l"><a class="l" href="#601"> 601: </a><span class="php-comment"> * Get the Response object
|
|
</span></span><span id="602" class="l"><a class="l" href="#602"> 602: </a><span class="php-comment"> * @return \Slim\Http\Response
|
|
</span></span><span id="603" class="l"><a class="l" href="#603"> 603: </a><span class="php-comment"> */</span>
|
|
</span><span id="604" class="l"><a class="l" href="#604"> 604: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_response" href="#_response">response</a>()
|
|
</span><span id="605" class="l"><a class="l" href="#605"> 605: </a> {
|
|
</span><span id="606" class="l"><a class="l" href="#606"> 606: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>->response;
|
|
</span><span id="607" class="l"><a class="l" href="#607"> 607: </a> }
|
|
</span><span id="608" class="l"><a class="l" href="#608"> 608: </a>
|
|
</span><span id="609" class="l"><a class="l" href="#609"> 609: </a> <span class="php-comment">/**
|
|
</span></span><span id="610" class="l"><a class="l" href="#610"> 610: </a><span class="php-comment"> * Get the Router object
|
|
</span></span><span id="611" class="l"><a class="l" href="#611"> 611: </a><span class="php-comment"> * @return \Slim\Router
|
|
</span></span><span id="612" class="l"><a class="l" href="#612"> 612: </a><span class="php-comment"> */</span>
|
|
</span><span id="613" class="l"><a class="l" href="#613"> 613: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_router" href="#_router">router</a>()
|
|
</span><span id="614" class="l"><a class="l" href="#614"> 614: </a> {
|
|
</span><span id="615" class="l"><a class="l" href="#615"> 615: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>->router;
|
|
</span><span id="616" class="l"><a class="l" href="#616"> 616: </a> }
|
|
</span><span id="617" class="l"><a class="l" href="#617"> 617: </a>
|
|
</span><span id="618" class="l"><a class="l" href="#618"> 618: </a> <span class="php-comment">/**
|
|
</span></span><span id="619" class="l"><a class="l" href="#619"> 619: </a><span class="php-comment"> * Get and/or set the View
|
|
</span></span><span id="620" class="l"><a class="l" href="#620"> 620: </a><span class="php-comment"> *
|
|
</span></span><span id="621" class="l"><a class="l" href="#621"> 621: </a><span class="php-comment"> * This method declares the View to be used by the Slim application.
|
|
</span></span><span id="622" class="l"><a class="l" href="#622"> 622: </a><span class="php-comment"> * If the argument is a string, Slim will instantiate a new object
|
|
</span></span><span id="623" class="l"><a class="l" href="#623"> 623: </a><span class="php-comment"> * of the same class. If the argument is an instance of View or a subclass
|
|
</span></span><span id="624" class="l"><a class="l" href="#624"> 624: </a><span class="php-comment"> * of View, Slim will use the argument as the View.
|
|
</span></span><span id="625" class="l"><a class="l" href="#625"> 625: </a><span class="php-comment"> *
|
|
</span></span><span id="626" class="l"><a class="l" href="#626"> 626: </a><span class="php-comment"> * If a View already exists and this method is called to create a
|
|
</span></span><span id="627" class="l"><a class="l" href="#627"> 627: </a><span class="php-comment"> * new View, data already set in the existing View will be
|
|
</span></span><span id="628" class="l"><a class="l" href="#628"> 628: </a><span class="php-comment"> * transferred to the new View.
|
|
</span></span><span id="629" class="l"><a class="l" href="#629"> 629: </a><span class="php-comment"> *
|
|
</span></span><span id="630" class="l"><a class="l" href="#630"> 630: </a><span class="php-comment"> * @param string|\Slim\View $viewClass The name or instance of a \Slim\View subclass
|
|
</span></span><span id="631" class="l"><a class="l" href="#631"> 631: </a><span class="php-comment"> * @return \Slim\View
|
|
</span></span><span id="632" class="l"><a class="l" href="#632"> 632: </a><span class="php-comment"> */</span>
|
|
</span><span id="633" class="l"><a class="l" href="#633"> 633: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_view" href="#_view">view</a>(<span class="php-var">$viewClass</span> = <span class="php-keyword1">null</span>)
|
|
</span><span id="634" class="l"><a class="l" href="#634"> 634: </a> {
|
|
</span><span id="635" class="l"><a class="l" href="#635"> 635: </a> <span class="php-keyword1">if</span> (!<span class="php-keyword2">is_null</span>(<span class="php-var">$viewClass</span>)) {
|
|
</span><span id="636" class="l"><a class="l" href="#636"> 636: </a> <span class="php-var">$existingData</span> = <span class="php-keyword2">is_null</span>(<span class="php-var">$this</span>->view) ? <span class="php-keyword1">array</span>() : <span class="php-var">$this</span>->view->getData();
|
|
</span><span id="637" class="l"><a class="l" href="#637"> 637: </a> <span class="php-keyword1">if</span> (<span class="php-var">$viewClass</span> <span class="php-keyword1">instanceOf</span> \Slim\View) {
|
|
</span><span id="638" class="l"><a class="l" href="#638"> 638: </a> <span class="php-var">$this</span>->view = <span class="php-var">$viewClass</span>;
|
|
</span><span id="639" class="l"><a class="l" href="#639"> 639: </a> } <span class="php-keyword1">else</span> {
|
|
</span><span id="640" class="l"><a class="l" href="#640"> 640: </a> <span class="php-var">$this</span>->view = <span class="php-keyword1">new</span> <span class="php-var">$viewClass</span>();
|
|
</span><span id="641" class="l"><a class="l" href="#641"> 641: </a> }
|
|
</span><span id="642" class="l"><a class="l" href="#642"> 642: </a> <span class="php-var">$this</span>->view->appendData(<span class="php-var">$existingData</span>);
|
|
</span><span id="643" class="l"><a class="l" href="#643"> 643: </a> <span class="php-var">$this</span>->view->setTemplatesDirectory(<span class="php-var">$this</span>->config(<span class="php-quote">'templates.path'</span>));
|
|
</span><span id="644" class="l"><a class="l" href="#644"> 644: </a> }
|
|
</span><span id="645" class="l"><a class="l" href="#645"> 645: </a>
|
|
</span><span id="646" class="l"><a class="l" href="#646"> 646: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>->view;
|
|
</span><span id="647" class="l"><a class="l" href="#647"> 647: </a> }
|
|
</span><span id="648" class="l"><a class="l" href="#648"> 648: </a>
|
|
</span><span id="649" class="l"><a class="l" href="#649"> 649: </a> <span class="php-comment">/********************************************************************************
|
|
</span></span><span id="650" class="l"><a class="l" href="#650"> 650: </a><span class="php-comment"> * Rendering
|
|
</span></span><span id="651" class="l"><a class="l" href="#651"> 651: </a><span class="php-comment"> *******************************************************************************/</span>
|
|
</span><span id="652" class="l"><a class="l" href="#652"> 652: </a>
|
|
</span><span id="653" class="l"><a class="l" href="#653"> 653: </a> <span class="php-comment">/**
|
|
</span></span><span id="654" class="l"><a class="l" href="#654"> 654: </a><span class="php-comment"> * Render a template
|
|
</span></span><span id="655" class="l"><a class="l" href="#655"> 655: </a><span class="php-comment"> *
|
|
</span></span><span id="656" class="l"><a class="l" href="#656"> 656: </a><span class="php-comment"> * Call this method within a GET, POST, PUT, DELETE, NOT FOUND, or ERROR
|
|
</span></span><span id="657" class="l"><a class="l" href="#657"> 657: </a><span class="php-comment"> * callable to render a template whose output is appended to the
|
|
</span></span><span id="658" class="l"><a class="l" href="#658"> 658: </a><span class="php-comment"> * current HTTP response body. How the template is rendered is
|
|
</span></span><span id="659" class="l"><a class="l" href="#659"> 659: </a><span class="php-comment"> * delegated to the current View.
|
|
</span></span><span id="660" class="l"><a class="l" href="#660"> 660: </a><span class="php-comment"> *
|
|
</span></span><span id="661" class="l"><a class="l" href="#661"> 661: </a><span class="php-comment"> * @param string $template The name of the template passed into the view's render() method
|
|
</span></span><span id="662" class="l"><a class="l" href="#662"> 662: </a><span class="php-comment"> * @param array $data Associative array of data made available to the view
|
|
</span></span><span id="663" class="l"><a class="l" href="#663"> 663: </a><span class="php-comment"> * @param int $status The HTTP response status code to use (optional)
|
|
</span></span><span id="664" class="l"><a class="l" href="#664"> 664: </a><span class="php-comment"> */</span>
|
|
</span><span id="665" class="l"><a class="l" href="#665"> 665: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_render" href="#_render">render</a>(<span class="php-var">$template</span>, <span class="php-var">$data</span> = <span class="php-keyword1">array</span>(), <span class="php-var">$status</span> = <span class="php-keyword1">null</span>)
|
|
</span><span id="666" class="l"><a class="l" href="#666"> 666: </a> {
|
|
</span><span id="667" class="l"><a class="l" href="#667"> 667: </a> <span class="php-keyword1">if</span> (!<span class="php-keyword2">is_null</span>(<span class="php-var">$status</span>)) {
|
|
</span><span id="668" class="l"><a class="l" href="#668"> 668: </a> <span class="php-var">$this</span>->response->status(<span class="php-var">$status</span>);
|
|
</span><span id="669" class="l"><a class="l" href="#669"> 669: </a> }
|
|
</span><span id="670" class="l"><a class="l" href="#670"> 670: </a> <span class="php-var">$this</span>->view->setTemplatesDirectory(<span class="php-var">$this</span>->config(<span class="php-quote">'templates.path'</span>));
|
|
</span><span id="671" class="l"><a class="l" href="#671"> 671: </a> <span class="php-var">$this</span>->view->appendData(<span class="php-var">$data</span>);
|
|
</span><span id="672" class="l"><a class="l" href="#672"> 672: </a> <span class="php-var">$this</span>->view->display(<span class="php-var">$template</span>);
|
|
</span><span id="673" class="l"><a class="l" href="#673"> 673: </a> }
|
|
</span><span id="674" class="l"><a class="l" href="#674"> 674: </a>
|
|
</span><span id="675" class="l"><a class="l" href="#675"> 675: </a> <span class="php-comment">/********************************************************************************
|
|
</span></span><span id="676" class="l"><a class="l" href="#676"> 676: </a><span class="php-comment"> * HTTP Caching
|
|
</span></span><span id="677" class="l"><a class="l" href="#677"> 677: </a><span class="php-comment"> *******************************************************************************/</span>
|
|
</span><span id="678" class="l"><a class="l" href="#678"> 678: </a>
|
|
</span><span id="679" class="l"><a class="l" href="#679"> 679: </a> <span class="php-comment">/**
|
|
</span></span><span id="680" class="l"><a class="l" href="#680"> 680: </a><span class="php-comment"> * Set Last-Modified HTTP Response Header
|
|
</span></span><span id="681" class="l"><a class="l" href="#681"> 681: </a><span class="php-comment"> *
|
|
</span></span><span id="682" class="l"><a class="l" href="#682"> 682: </a><span class="php-comment"> * Set the HTTP 'Last-Modified' header and stop if a conditional
|
|
</span></span><span id="683" class="l"><a class="l" href="#683"> 683: </a><span class="php-comment"> * GET request's `If-Modified-Since` header matches the last modified time
|
|
</span></span><span id="684" class="l"><a class="l" href="#684"> 684: </a><span class="php-comment"> * of the resource. The `time` argument is a UNIX timestamp integer value.
|
|
</span></span><span id="685" class="l"><a class="l" href="#685"> 685: </a><span class="php-comment"> * When the current request includes an 'If-Modified-Since' header that
|
|
</span></span><span id="686" class="l"><a class="l" href="#686"> 686: </a><span class="php-comment"> * matches the specified last modified time, the application will stop
|
|
</span></span><span id="687" class="l"><a class="l" href="#687"> 687: </a><span class="php-comment"> * and send a '304 Not Modified' response to the client.
|
|
</span></span><span id="688" class="l"><a class="l" href="#688"> 688: </a><span class="php-comment"> *
|
|
</span></span><span id="689" class="l"><a class="l" href="#689"> 689: </a><span class="php-comment"> * @param int $time The last modified UNIX timestamp
|
|
</span></span><span id="690" class="l"><a class="l" href="#690"> 690: </a><span class="php-comment"> * @throws \InvalidArgumentException If provided timestamp is not an integer
|
|
</span></span><span id="691" class="l"><a class="l" href="#691"> 691: </a><span class="php-comment"> */</span>
|
|
</span><span id="692" class="l"><a class="l" href="#692"> 692: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_lastModified" href="#_lastModified">lastModified</a>(<span class="php-var">$time</span>)
|
|
</span><span id="693" class="l"><a class="l" href="#693"> 693: </a> {
|
|
</span><span id="694" class="l"><a class="l" href="#694"> 694: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">is_integer</span>(<span class="php-var">$time</span>)) {
|
|
</span><span id="695" class="l"><a class="l" href="#695"> 695: </a> <span class="php-var">$this</span>->response[<span class="php-quote">'Last-Modified'</span>] = <span class="php-keyword2">date</span>(DATE_RFC1123, <span class="php-var">$time</span>);
|
|
</span><span id="696" class="l"><a class="l" href="#696"> 696: </a> <span class="php-keyword1">if</span> (<span class="php-var">$time</span> === <span class="php-keyword2">strtotime</span>(<span class="php-var">$this</span>->request->headers(<span class="php-quote">'IF_MODIFIED_SINCE'</span>))) {
|
|
</span><span id="697" class="l"><a class="l" href="#697"> 697: </a> <span class="php-var">$this</span>->halt(<span class="php-num">304</span>);
|
|
</span><span id="698" class="l"><a class="l" href="#698"> 698: </a> }
|
|
</span><span id="699" class="l"><a class="l" href="#699"> 699: </a> } <span class="php-keyword1">else</span> {
|
|
</span><span id="700" class="l"><a class="l" href="#700"> 700: </a> <span class="php-keyword1">throw</span> <span class="php-keyword1">new</span> \InvalidArgumentException(<span class="php-quote">'Slim::lastModified only accepts an integer UNIX timestamp value.'</span>);
|
|
</span><span id="701" class="l"><a class="l" href="#701"> 701: </a> }
|
|
</span><span id="702" class="l"><a class="l" href="#702"> 702: </a> }
|
|
</span><span id="703" class="l"><a class="l" href="#703"> 703: </a>
|
|
</span><span id="704" class="l"><a class="l" href="#704"> 704: </a> <span class="php-comment">/**
|
|
</span></span><span id="705" class="l"><a class="l" href="#705"> 705: </a><span class="php-comment"> * Set ETag HTTP Response Header
|
|
</span></span><span id="706" class="l"><a class="l" href="#706"> 706: </a><span class="php-comment"> *
|
|
</span></span><span id="707" class="l"><a class="l" href="#707"> 707: </a><span class="php-comment"> * Set the etag header and stop if the conditional GET request matches.
|
|
</span></span><span id="708" class="l"><a class="l" href="#708"> 708: </a><span class="php-comment"> * The `value` argument is a unique identifier for the current resource.
|
|
</span></span><span id="709" class="l"><a class="l" href="#709"> 709: </a><span class="php-comment"> * The `type` argument indicates whether the etag should be used as a strong or
|
|
</span></span><span id="710" class="l"><a class="l" href="#710"> 710: </a><span class="php-comment"> * weak cache validator.
|
|
</span></span><span id="711" class="l"><a class="l" href="#711"> 711: </a><span class="php-comment"> *
|
|
</span></span><span id="712" class="l"><a class="l" href="#712"> 712: </a><span class="php-comment"> * When the current request includes an 'If-None-Match' header with
|
|
</span></span><span id="713" class="l"><a class="l" href="#713"> 713: </a><span class="php-comment"> * a matching etag, execution is immediately stopped. If the request
|
|
</span></span><span id="714" class="l"><a class="l" href="#714"> 714: </a><span class="php-comment"> * method is GET or HEAD, a '304 Not Modified' response is sent.
|
|
</span></span><span id="715" class="l"><a class="l" href="#715"> 715: </a><span class="php-comment"> *
|
|
</span></span><span id="716" class="l"><a class="l" href="#716"> 716: </a><span class="php-comment"> * @param string $value The etag value
|
|
</span></span><span id="717" class="l"><a class="l" href="#717"> 717: </a><span class="php-comment"> * @param string $type The type of etag to create; either "strong" or "weak"
|
|
</span></span><span id="718" class="l"><a class="l" href="#718"> 718: </a><span class="php-comment"> * @throws \InvalidArgumentException If provided type is invalid
|
|
</span></span><span id="719" class="l"><a class="l" href="#719"> 719: </a><span class="php-comment"> */</span>
|
|
</span><span id="720" class="l"><a class="l" href="#720"> 720: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_etag" href="#_etag">etag</a>(<span class="php-var">$value</span>, <span class="php-var">$type</span> = <span class="php-quote">'strong'</span>)
|
|
</span><span id="721" class="l"><a class="l" href="#721"> 721: </a> {
|
|
</span><span id="722" class="l"><a class="l" href="#722"> 722: </a> <span class="php-comment">//Ensure type is correct</span>
|
|
</span><span id="723" class="l"><a class="l" href="#723"> 723: </a> <span class="php-keyword1">if</span> (!<span class="php-keyword2">in_array</span>(<span class="php-var">$type</span>, <span class="php-keyword1">array</span>(<span class="php-quote">'strong'</span>, <span class="php-quote">'weak'</span>))) {
|
|
</span><span id="724" class="l"><a class="l" href="#724"> 724: </a> <span class="php-keyword1">throw</span> <span class="php-keyword1">new</span> \InvalidArgumentException(<span class="php-quote">'Invalid Slim::etag type. Expected "strong" or "weak".'</span>);
|
|
</span><span id="725" class="l"><a class="l" href="#725"> 725: </a> }
|
|
</span><span id="726" class="l"><a class="l" href="#726"> 726: </a>
|
|
</span><span id="727" class="l"><a class="l" href="#727"> 727: </a> <span class="php-comment">//Set etag value</span>
|
|
</span><span id="728" class="l"><a class="l" href="#728"> 728: </a> <span class="php-var">$value</span> = <span class="php-quote">'"'</span> . <span class="php-var">$value</span> . <span class="php-quote">'"'</span>;
|
|
</span><span id="729" class="l"><a class="l" href="#729"> 729: </a> <span class="php-keyword1">if</span> (<span class="php-var">$type</span> === <span class="php-quote">'weak'</span>) <span class="php-var">$value</span> = <span class="php-quote">'W/'</span>.<span class="php-var">$value</span>;
|
|
</span><span id="730" class="l"><a class="l" href="#730"> 730: </a> <span class="php-var">$this</span>->response[<span class="php-quote">'ETag'</span>] = <span class="php-var">$value</span>;
|
|
</span><span id="731" class="l"><a class="l" href="#731"> 731: </a>
|
|
</span><span id="732" class="l"><a class="l" href="#732"> 732: </a> <span class="php-comment">//Check conditional GET</span>
|
|
</span><span id="733" class="l"><a class="l" href="#733"> 733: </a> <span class="php-keyword1">if</span> (<span class="php-var">$etagsHeader</span> = <span class="php-var">$this</span>->request->headers(<span class="php-quote">'IF_NONE_MATCH'</span>)) {
|
|
</span><span id="734" class="l"><a class="l" href="#734"> 734: </a> <span class="php-var">$etags</span> = <span class="php-keyword2">preg_split</span>(<span class="php-quote">'@\s*,\s*@'</span>, <span class="php-var">$etagsHeader</span>);
|
|
</span><span id="735" class="l"><a class="l" href="#735"> 735: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">in_array</span>(<span class="php-var">$value</span>, <span class="php-var">$etags</span>) || <span class="php-keyword2">in_array</span>(<span class="php-quote">'*'</span>, <span class="php-var">$etags</span>)) {
|
|
</span><span id="736" class="l"><a class="l" href="#736"> 736: </a> <span class="php-var">$this</span>->halt(<span class="php-num">304</span>);
|
|
</span><span id="737" class="l"><a class="l" href="#737"> 737: </a> }
|
|
</span><span id="738" class="l"><a class="l" href="#738"> 738: </a> }
|
|
</span><span id="739" class="l"><a class="l" href="#739"> 739: </a> }
|
|
</span><span id="740" class="l"><a class="l" href="#740"> 740: </a>
|
|
</span><span id="741" class="l"><a class="l" href="#741"> 741: </a> <span class="php-comment">/**
|
|
</span></span><span id="742" class="l"><a class="l" href="#742"> 742: </a><span class="php-comment"> * Set Expires HTTP response header
|
|
</span></span><span id="743" class="l"><a class="l" href="#743"> 743: </a><span class="php-comment"> *
|
|
</span></span><span id="744" class="l"><a class="l" href="#744"> 744: </a><span class="php-comment"> * The `Expires` header tells the HTTP client the time at which
|
|
</span></span><span id="745" class="l"><a class="l" href="#745"> 745: </a><span class="php-comment"> * the current resource should be considered stale. At that time the HTTP
|
|
</span></span><span id="746" class="l"><a class="l" href="#746"> 746: </a><span class="php-comment"> * client will send a conditional GET request to the server; the server
|
|
</span></span><span id="747" class="l"><a class="l" href="#747"> 747: </a><span class="php-comment"> * may return a 200 OK if the resource has changed, else a 304 Not Modified
|
|
</span></span><span id="748" class="l"><a class="l" href="#748"> 748: </a><span class="php-comment"> * if the resource has not changed. The `Expires` header should be used in
|
|
</span></span><span id="749" class="l"><a class="l" href="#749"> 749: </a><span class="php-comment"> * conjunction with the `etag()` or `lastModified()` methods above.
|
|
</span></span><span id="750" class="l"><a class="l" href="#750"> 750: </a><span class="php-comment"> *
|
|
</span></span><span id="751" class="l"><a class="l" href="#751"> 751: </a><span class="php-comment"> * @param string|int $time If string, a time to be parsed by `strtotime()`;
|
|
</span></span><span id="752" class="l"><a class="l" href="#752"> 752: </a><span class="php-comment"> * If int, a UNIX timestamp;
|
|
</span></span><span id="753" class="l"><a class="l" href="#753"> 753: </a><span class="php-comment"> */</span>
|
|
</span><span id="754" class="l"><a class="l" href="#754"> 754: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_expires" href="#_expires">expires</a>(<span class="php-var">$time</span>)
|
|
</span><span id="755" class="l"><a class="l" href="#755"> 755: </a> {
|
|
</span><span id="756" class="l"><a class="l" href="#756"> 756: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">is_string</span>(<span class="php-var">$time</span>)) {
|
|
</span><span id="757" class="l"><a class="l" href="#757"> 757: </a> <span class="php-var">$time</span> = <span class="php-keyword2">strtotime</span>(<span class="php-var">$time</span>);
|
|
</span><span id="758" class="l"><a class="l" href="#758"> 758: </a> }
|
|
</span><span id="759" class="l"><a class="l" href="#759"> 759: </a> <span class="php-var">$this</span>->response[<span class="php-quote">'Expires'</span>] = <span class="php-keyword2">gmdate</span>(DATE_RFC1123, <span class="php-var">$time</span>);
|
|
</span><span id="760" class="l"><a class="l" href="#760"> 760: </a> }
|
|
</span><span id="761" class="l"><a class="l" href="#761"> 761: </a>
|
|
</span><span id="762" class="l"><a class="l" href="#762"> 762: </a> <span class="php-comment">/********************************************************************************
|
|
</span></span><span id="763" class="l"><a class="l" href="#763"> 763: </a><span class="php-comment"> * HTTP Cookies
|
|
</span></span><span id="764" class="l"><a class="l" href="#764"> 764: </a><span class="php-comment"> *******************************************************************************/</span>
|
|
</span><span id="765" class="l"><a class="l" href="#765"> 765: </a>
|
|
</span><span id="766" class="l"><a class="l" href="#766"> 766: </a> <span class="php-comment">/**
|
|
</span></span><span id="767" class="l"><a class="l" href="#767"> 767: </a><span class="php-comment"> * Set unencrypted HTTP cookie
|
|
</span></span><span id="768" class="l"><a class="l" href="#768"> 768: </a><span class="php-comment"> *
|
|
</span></span><span id="769" class="l"><a class="l" href="#769"> 769: </a><span class="php-comment"> * @param string $name The cookie name
|
|
</span></span><span id="770" class="l"><a class="l" href="#770"> 770: </a><span class="php-comment"> * @param string $value The cookie value
|
|
</span></span><span id="771" class="l"><a class="l" href="#771"> 771: </a><span class="php-comment"> * @param int|string $time The duration of the cookie;
|
|
</span></span><span id="772" class="l"><a class="l" href="#772"> 772: </a><span class="php-comment"> * If integer, should be UNIX timestamp;
|
|
</span></span><span id="773" class="l"><a class="l" href="#773"> 773: </a><span class="php-comment"> * If string, converted to UNIX timestamp with `strtotime`;
|
|
</span></span><span id="774" class="l"><a class="l" href="#774"> 774: </a><span class="php-comment"> * @param string $path The path on the server in which the cookie will be available on
|
|
</span></span><span id="775" class="l"><a class="l" href="#775"> 775: </a><span class="php-comment"> * @param string $domain The domain that the cookie is available to
|
|
</span></span><span id="776" class="l"><a class="l" href="#776"> 776: </a><span class="php-comment"> * @param bool $secure Indicates that the cookie should only be transmitted over a secure
|
|
</span></span><span id="777" class="l"><a class="l" href="#777"> 777: </a><span class="php-comment"> * HTTPS connection to/from the client
|
|
</span></span><span id="778" class="l"><a class="l" href="#778"> 778: </a><span class="php-comment"> * @param bool $httponly When TRUE the cookie will be made accessible only through the HTTP protocol
|
|
</span></span><span id="779" class="l"><a class="l" href="#779"> 779: </a><span class="php-comment"> */</span>
|
|
</span><span id="780" class="l"><a class="l" href="#780"> 780: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <span class="php-keyword2">setCookie</span>(<span class="php-var">$name</span>, <span class="php-var">$value</span>, <span class="php-var">$time</span> = <span class="php-keyword1">null</span>, <span class="php-var">$path</span> = <span class="php-keyword1">null</span>, <span class="php-var">$domain</span> = <span class="php-keyword1">null</span>, <span class="php-var">$secure</span> = <span class="php-keyword1">null</span>, <span class="php-var">$httponly</span> = <span class="php-keyword1">null</span>)
|
|
</span><span id="781" class="l"><a class="l" href="#781"> 781: </a> {
|
|
</span><span id="782" class="l"><a class="l" href="#782"> 782: </a> <span class="php-var">$this</span>->response-><span class="php-keyword2">setCookie</span>(<span class="php-var">$name</span>, <span class="php-keyword1">array</span>(
|
|
</span><span id="783" class="l"><a class="l" href="#783"> 783: </a> <span class="php-quote">'value'</span> => <span class="php-var">$value</span>,
|
|
</span><span id="784" class="l"><a class="l" href="#784"> 784: </a> <span class="php-quote">'expires'</span> => <span class="php-keyword2">is_null</span>(<span class="php-var">$time</span>) ? <span class="php-var">$this</span>->config(<span class="php-quote">'cookies.lifetime'</span>) : <span class="php-var">$time</span>,
|
|
</span><span id="785" class="l"><a class="l" href="#785"> 785: </a> <span class="php-quote">'path'</span> => <span class="php-keyword2">is_null</span>(<span class="php-var">$path</span>) ? <span class="php-var">$this</span>->config(<span class="php-quote">'cookies.path'</span>) : <span class="php-var">$path</span>,
|
|
</span><span id="786" class="l"><a class="l" href="#786"> 786: </a> <span class="php-quote">'domain'</span> => <span class="php-keyword2">is_null</span>(<span class="php-var">$domain</span>) ? <span class="php-var">$this</span>->config(<span class="php-quote">'cookies.domain'</span>) : <span class="php-var">$domain</span>,
|
|
</span><span id="787" class="l"><a class="l" href="#787"> 787: </a> <span class="php-quote">'secure'</span> => <span class="php-keyword2">is_null</span>(<span class="php-var">$secure</span>) ? <span class="php-var">$this</span>->config(<span class="php-quote">'cookies.secure'</span>) : <span class="php-var">$secure</span>,
|
|
</span><span id="788" class="l"><a class="l" href="#788"> 788: </a> <span class="php-quote">'httponly'</span> => <span class="php-keyword2">is_null</span>(<span class="php-var">$httponly</span>) ? <span class="php-var">$this</span>->config(<span class="php-quote">'cookies.httponly'</span>) : <span class="php-var">$httponly</span>
|
|
</span><span id="789" class="l"><a class="l" href="#789"> 789: </a> ));
|
|
</span><span id="790" class="l"><a class="l" href="#790"> 790: </a> }
|
|
</span><span id="791" class="l"><a class="l" href="#791"> 791: </a>
|
|
</span><span id="792" class="l"><a class="l" href="#792"> 792: </a> <span class="php-comment">/**
|
|
</span></span><span id="793" class="l"><a class="l" href="#793"> 793: </a><span class="php-comment"> * Get value of unencrypted HTTP cookie
|
|
</span></span><span id="794" class="l"><a class="l" href="#794"> 794: </a><span class="php-comment"> *
|
|
</span></span><span id="795" class="l"><a class="l" href="#795"> 795: </a><span class="php-comment"> * Return the value of a cookie from the current HTTP request,
|
|
</span></span><span id="796" class="l"><a class="l" href="#796"> 796: </a><span class="php-comment"> * or return NULL if cookie does not exist. Cookies created during
|
|
</span></span><span id="797" class="l"><a class="l" href="#797"> 797: </a><span class="php-comment"> * the current request will not be available until the next request.
|
|
</span></span><span id="798" class="l"><a class="l" href="#798"> 798: </a><span class="php-comment"> *
|
|
</span></span><span id="799" class="l"><a class="l" href="#799"> 799: </a><span class="php-comment"> * @param string $name
|
|
</span></span><span id="800" class="l"><a class="l" href="#800"> 800: </a><span class="php-comment"> * @return string|null
|
|
</span></span><span id="801" class="l"><a class="l" href="#801"> 801: </a><span class="php-comment"> */</span>
|
|
</span><span id="802" class="l"><a class="l" href="#802"> 802: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_getCookie" href="#_getCookie">getCookie</a>(<span class="php-var">$name</span>)
|
|
</span><span id="803" class="l"><a class="l" href="#803"> 803: </a> {
|
|
</span><span id="804" class="l"><a class="l" href="#804"> 804: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>->request->cookies(<span class="php-var">$name</span>);
|
|
</span><span id="805" class="l"><a class="l" href="#805"> 805: </a> }
|
|
</span><span id="806" class="l"><a class="l" href="#806"> 806: </a>
|
|
</span><span id="807" class="l"><a class="l" href="#807"> 807: </a> <span class="php-comment">/**
|
|
</span></span><span id="808" class="l"><a class="l" href="#808"> 808: </a><span class="php-comment"> * Set encrypted HTTP cookie
|
|
</span></span><span id="809" class="l"><a class="l" href="#809"> 809: </a><span class="php-comment"> *
|
|
</span></span><span id="810" class="l"><a class="l" href="#810"> 810: </a><span class="php-comment"> * @param string $name The cookie name
|
|
</span></span><span id="811" class="l"><a class="l" href="#811"> 811: </a><span class="php-comment"> * @param mixed $value The cookie value
|
|
</span></span><span id="812" class="l"><a class="l" href="#812"> 812: </a><span class="php-comment"> * @param mixed $expires The duration of the cookie;
|
|
</span></span><span id="813" class="l"><a class="l" href="#813"> 813: </a><span class="php-comment"> * If integer, should be UNIX timestamp;
|
|
</span></span><span id="814" class="l"><a class="l" href="#814"> 814: </a><span class="php-comment"> * If string, converted to UNIX timestamp with `strtotime`;
|
|
</span></span><span id="815" class="l"><a class="l" href="#815"> 815: </a><span class="php-comment"> * @param string $path The path on the server in which the cookie will be available on
|
|
</span></span><span id="816" class="l"><a class="l" href="#816"> 816: </a><span class="php-comment"> * @param string $domain The domain that the cookie is available to
|
|
</span></span><span id="817" class="l"><a class="l" href="#817"> 817: </a><span class="php-comment"> * @param bool $secure Indicates that the cookie should only be transmitted over a secure
|
|
</span></span><span id="818" class="l"><a class="l" href="#818"> 818: </a><span class="php-comment"> * HTTPS connection from the client
|
|
</span></span><span id="819" class="l"><a class="l" href="#819"> 819: </a><span class="php-comment"> * @param bool $httponly When TRUE the cookie will be made accessible only through the HTTP protocol
|
|
</span></span><span id="820" class="l"><a class="l" href="#820"> 820: </a><span class="php-comment"> */</span>
|
|
</span><span id="821" class="l"><a class="l" href="#821"> 821: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_setEncryptedCookie" href="#_setEncryptedCookie">setEncryptedCookie</a>(<span class="php-var">$name</span>, <span class="php-var">$value</span>, <span class="php-var">$expires</span> = <span class="php-keyword1">null</span>, <span class="php-var">$path</span> = <span class="php-keyword1">null</span>, <span class="php-var">$domain</span> = <span class="php-keyword1">null</span>, <span class="php-var">$secure</span> = <span class="php-keyword1">null</span>, <span class="php-var">$httponly</span> = <span class="php-keyword1">null</span>)
|
|
</span><span id="822" class="l"><a class="l" href="#822"> 822: </a> {
|
|
</span><span id="823" class="l"><a class="l" href="#823"> 823: </a> <span class="php-var">$expires</span> = <span class="php-keyword2">is_null</span>(<span class="php-var">$expires</span>) ? <span class="php-var">$this</span>->config(<span class="php-quote">'cookies.lifetime'</span>) : <span class="php-var">$expires</span>;
|
|
</span><span id="824" class="l"><a class="l" href="#824"> 824: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">is_string</span>(<span class="php-var">$expires</span>)) {
|
|
</span><span id="825" class="l"><a class="l" href="#825"> 825: </a> <span class="php-var">$expires</span> = <span class="php-keyword2">strtotime</span>(<span class="php-var">$expires</span>);
|
|
</span><span id="826" class="l"><a class="l" href="#826"> 826: </a> }
|
|
</span><span id="827" class="l"><a class="l" href="#827"> 827: </a> <span class="php-var">$secureValue</span> = \Slim\Http\Util::encodeSecureCookie(
|
|
</span><span id="828" class="l"><a class="l" href="#828"> 828: </a> <span class="php-var">$value</span>,
|
|
</span><span id="829" class="l"><a class="l" href="#829"> 829: </a> <span class="php-var">$expires</span>,
|
|
</span><span id="830" class="l"><a class="l" href="#830"> 830: </a> <span class="php-var">$this</span>->config(<span class="php-quote">'cookies.secret_key'</span>),
|
|
</span><span id="831" class="l"><a class="l" href="#831"> 831: </a> <span class="php-var">$this</span>->config(<span class="php-quote">'cookies.cipher'</span>),
|
|
</span><span id="832" class="l"><a class="l" href="#832"> 832: </a> <span class="php-var">$this</span>->config(<span class="php-quote">'cookies.cipher_mode'</span>)
|
|
</span><span id="833" class="l"><a class="l" href="#833"> 833: </a> );
|
|
</span><span id="834" class="l"><a class="l" href="#834"> 834: </a> <span class="php-var">$this</span>-><span class="php-keyword2">setCookie</span>(<span class="php-var">$name</span>, <span class="php-var">$secureValue</span>, <span class="php-var">$expires</span>, <span class="php-var">$path</span>, <span class="php-var">$domain</span>, <span class="php-var">$secure</span>, <span class="php-var">$httponly</span>);
|
|
</span><span id="835" class="l"><a class="l" href="#835"> 835: </a> }
|
|
</span><span id="836" class="l"><a class="l" href="#836"> 836: </a>
|
|
</span><span id="837" class="l"><a class="l" href="#837"> 837: </a> <span class="php-comment">/**
|
|
</span></span><span id="838" class="l"><a class="l" href="#838"> 838: </a><span class="php-comment"> * Get value of encrypted HTTP cookie
|
|
</span></span><span id="839" class="l"><a class="l" href="#839"> 839: </a><span class="php-comment"> *
|
|
</span></span><span id="840" class="l"><a class="l" href="#840"> 840: </a><span class="php-comment"> * Return the value of an encrypted cookie from the current HTTP request,
|
|
</span></span><span id="841" class="l"><a class="l" href="#841"> 841: </a><span class="php-comment"> * or return NULL if cookie does not exist. Encrypted cookies created during
|
|
</span></span><span id="842" class="l"><a class="l" href="#842"> 842: </a><span class="php-comment"> * the current request will not be available until the next request.
|
|
</span></span><span id="843" class="l"><a class="l" href="#843"> 843: </a><span class="php-comment"> *
|
|
</span></span><span id="844" class="l"><a class="l" href="#844"> 844: </a><span class="php-comment"> * @param string $name
|
|
</span></span><span id="845" class="l"><a class="l" href="#845"> 845: </a><span class="php-comment"> * @return string|false
|
|
</span></span><span id="846" class="l"><a class="l" href="#846"> 846: </a><span class="php-comment"> */</span>
|
|
</span><span id="847" class="l"><a class="l" href="#847"> 847: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_getEncryptedCookie" href="#_getEncryptedCookie">getEncryptedCookie</a>(<span class="php-var">$name</span>, <span class="php-var">$deleteIfInvalid</span> = <span class="php-keyword1">true</span>)
|
|
</span><span id="848" class="l"><a class="l" href="#848"> 848: </a> {
|
|
</span><span id="849" class="l"><a class="l" href="#849"> 849: </a> <span class="php-var">$value</span> = \Slim\Http\Util::decodeSecureCookie(
|
|
</span><span id="850" class="l"><a class="l" href="#850"> 850: </a> <span class="php-var">$this</span>->request->cookies(<span class="php-var">$name</span>),
|
|
</span><span id="851" class="l"><a class="l" href="#851"> 851: </a> <span class="php-var">$this</span>->config(<span class="php-quote">'cookies.secret_key'</span>),
|
|
</span><span id="852" class="l"><a class="l" href="#852"> 852: </a> <span class="php-var">$this</span>->config(<span class="php-quote">'cookies.cipher'</span>),
|
|
</span><span id="853" class="l"><a class="l" href="#853"> 853: </a> <span class="php-var">$this</span>->config(<span class="php-quote">'cookies.cipher_mode'</span>)
|
|
</span><span id="854" class="l"><a class="l" href="#854"> 854: </a> );
|
|
</span><span id="855" class="l"><a class="l" href="#855"> 855: </a> <span class="php-keyword1">if</span> (<span class="php-var">$value</span> === <span class="php-keyword1">false</span> && <span class="php-var">$deleteIfInvalid</span>) {
|
|
</span><span id="856" class="l"><a class="l" href="#856"> 856: </a> <span class="php-var">$this</span>->deleteCookie(<span class="php-var">$name</span>);
|
|
</span><span id="857" class="l"><a class="l" href="#857"> 857: </a> }
|
|
</span><span id="858" class="l"><a class="l" href="#858"> 858: </a>
|
|
</span><span id="859" class="l"><a class="l" href="#859"> 859: </a> <span class="php-keyword1">return</span> <span class="php-var">$value</span>;
|
|
</span><span id="860" class="l"><a class="l" href="#860"> 860: </a> }
|
|
</span><span id="861" class="l"><a class="l" href="#861"> 861: </a>
|
|
</span><span id="862" class="l"><a class="l" href="#862"> 862: </a> <span class="php-comment">/**
|
|
</span></span><span id="863" class="l"><a class="l" href="#863"> 863: </a><span class="php-comment"> * Delete HTTP cookie (encrypted or unencrypted)
|
|
</span></span><span id="864" class="l"><a class="l" href="#864"> 864: </a><span class="php-comment"> *
|
|
</span></span><span id="865" class="l"><a class="l" href="#865"> 865: </a><span class="php-comment"> * Remove a Cookie from the client. This method will overwrite an existing Cookie
|
|
</span></span><span id="866" class="l"><a class="l" href="#866"> 866: </a><span class="php-comment"> * with a new, empty, auto-expiring Cookie. This method's arguments must match
|
|
</span></span><span id="867" class="l"><a class="l" href="#867"> 867: </a><span class="php-comment"> * the original Cookie's respective arguments for the original Cookie to be
|
|
</span></span><span id="868" class="l"><a class="l" href="#868"> 868: </a><span class="php-comment"> * removed. If any of this method's arguments are omitted or set to NULL, the
|
|
</span></span><span id="869" class="l"><a class="l" href="#869"> 869: </a><span class="php-comment"> * default Cookie setting values (set during Slim::init) will be used instead.
|
|
</span></span><span id="870" class="l"><a class="l" href="#870"> 870: </a><span class="php-comment"> *
|
|
</span></span><span id="871" class="l"><a class="l" href="#871"> 871: </a><span class="php-comment"> * @param string $name The cookie name
|
|
</span></span><span id="872" class="l"><a class="l" href="#872"> 872: </a><span class="php-comment"> * @param string $path The path on the server in which the cookie will be available on
|
|
</span></span><span id="873" class="l"><a class="l" href="#873"> 873: </a><span class="php-comment"> * @param string $domain The domain that the cookie is available to
|
|
</span></span><span id="874" class="l"><a class="l" href="#874"> 874: </a><span class="php-comment"> * @param bool $secure Indicates that the cookie should only be transmitted over a secure
|
|
</span></span><span id="875" class="l"><a class="l" href="#875"> 875: </a><span class="php-comment"> * HTTPS connection from the client
|
|
</span></span><span id="876" class="l"><a class="l" href="#876"> 876: </a><span class="php-comment"> * @param bool $httponly When TRUE the cookie will be made accessible only through the HTTP protocol
|
|
</span></span><span id="877" class="l"><a class="l" href="#877"> 877: </a><span class="php-comment"> */</span>
|
|
</span><span id="878" class="l"><a class="l" href="#878"> 878: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_deleteCookie" href="#_deleteCookie">deleteCookie</a>(<span class="php-var">$name</span>, <span class="php-var">$path</span> = <span class="php-keyword1">null</span>, <span class="php-var">$domain</span> = <span class="php-keyword1">null</span>, <span class="php-var">$secure</span> = <span class="php-keyword1">null</span>, <span class="php-var">$httponly</span> = <span class="php-keyword1">null</span>)
|
|
</span><span id="879" class="l"><a class="l" href="#879"> 879: </a> {
|
|
</span><span id="880" class="l"><a class="l" href="#880"> 880: </a> <span class="php-var">$this</span>->response->deleteCookie(<span class="php-var">$name</span>, <span class="php-keyword1">array</span>(
|
|
</span><span id="881" class="l"><a class="l" href="#881"> 881: </a> <span class="php-quote">'domain'</span> => <span class="php-keyword2">is_null</span>(<span class="php-var">$domain</span>) ? <span class="php-var">$this</span>->config(<span class="php-quote">'cookies.domain'</span>) : <span class="php-var">$domain</span>,
|
|
</span><span id="882" class="l"><a class="l" href="#882"> 882: </a> <span class="php-quote">'path'</span> => <span class="php-keyword2">is_null</span>(<span class="php-var">$path</span>) ? <span class="php-var">$this</span>->config(<span class="php-quote">'cookies.path'</span>) : <span class="php-var">$path</span>,
|
|
</span><span id="883" class="l"><a class="l" href="#883"> 883: </a> <span class="php-quote">'secure'</span> => <span class="php-keyword2">is_null</span>(<span class="php-var">$secure</span>) ? <span class="php-var">$this</span>->config(<span class="php-quote">'cookies.secure'</span>) : <span class="php-var">$secure</span>,
|
|
</span><span id="884" class="l"><a class="l" href="#884"> 884: </a> <span class="php-quote">'httponly'</span> => <span class="php-keyword2">is_null</span>(<span class="php-var">$httponly</span>) ? <span class="php-var">$this</span>->config(<span class="php-quote">'cookies.httponly'</span>) : <span class="php-var">$httponly</span>
|
|
</span><span id="885" class="l"><a class="l" href="#885"> 885: </a> ));
|
|
</span><span id="886" class="l"><a class="l" href="#886"> 886: </a> }
|
|
</span><span id="887" class="l"><a class="l" href="#887"> 887: </a>
|
|
</span><span id="888" class="l"><a class="l" href="#888"> 888: </a> <span class="php-comment">/********************************************************************************
|
|
</span></span><span id="889" class="l"><a class="l" href="#889"> 889: </a><span class="php-comment"> * Helper Methods
|
|
</span></span><span id="890" class="l"><a class="l" href="#890"> 890: </a><span class="php-comment"> *******************************************************************************/</span>
|
|
</span><span id="891" class="l"><a class="l" href="#891"> 891: </a>
|
|
</span><span id="892" class="l"><a class="l" href="#892"> 892: </a> <span class="php-comment">/**
|
|
</span></span><span id="893" class="l"><a class="l" href="#893"> 893: </a><span class="php-comment"> * Get the absolute path to this Slim application's root directory
|
|
</span></span><span id="894" class="l"><a class="l" href="#894"> 894: </a><span class="php-comment"> *
|
|
</span></span><span id="895" class="l"><a class="l" href="#895"> 895: </a><span class="php-comment"> * This method returns the absolute path to the Slim application's
|
|
</span></span><span id="896" class="l"><a class="l" href="#896"> 896: </a><span class="php-comment"> * directory. If the Slim application is installed in a public-accessible
|
|
</span></span><span id="897" class="l"><a class="l" href="#897"> 897: </a><span class="php-comment"> * sub-directory, the sub-directory path will be included. This method
|
|
</span></span><span id="898" class="l"><a class="l" href="#898"> 898: </a><span class="php-comment"> * will always return an absolute path WITH a trailing slash.
|
|
</span></span><span id="899" class="l"><a class="l" href="#899"> 899: </a><span class="php-comment"> *
|
|
</span></span><span id="900" class="l"><a class="l" href="#900"> 900: </a><span class="php-comment"> * @return string
|
|
</span></span><span id="901" class="l"><a class="l" href="#901"> 901: </a><span class="php-comment"> */</span>
|
|
</span><span id="902" class="l"><a class="l" href="#902"> 902: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_root" href="#_root">root</a>()
|
|
</span><span id="903" class="l"><a class="l" href="#903"> 903: </a> {
|
|
</span><span id="904" class="l"><a class="l" href="#904"> 904: </a> <span class="php-keyword1">return</span> <span class="php-keyword2">rtrim</span>(<span class="php-var">$_SERVER</span>[<span class="php-quote">'DOCUMENT_ROOT'</span>], <span class="php-quote">'/'</span>) . <span class="php-keyword2">rtrim</span>(<span class="php-var">$this</span>->request->getRootUri(), <span class="php-quote">'/'</span>) . <span class="php-quote">'/'</span>;
|
|
</span><span id="905" class="l"><a class="l" href="#905"> 905: </a> }
|
|
</span><span id="906" class="l"><a class="l" href="#906"> 906: </a>
|
|
</span><span id="907" class="l"><a class="l" href="#907"> 907: </a> <span class="php-comment">/**
|
|
</span></span><span id="908" class="l"><a class="l" href="#908"> 908: </a><span class="php-comment"> * Clean current output buffer
|
|
</span></span><span id="909" class="l"><a class="l" href="#909"> 909: </a><span class="php-comment"> */</span>
|
|
</span><span id="910" class="l"><a class="l" href="#910"> 910: </a> <span class="php-keyword1">protected</span> <span class="php-keyword1">function</span> <a id="_cleanBuffer" href="#_cleanBuffer">cleanBuffer</a>()
|
|
</span><span id="911" class="l"><a class="l" href="#911"> 911: </a> {
|
|
</span><span id="912" class="l"><a class="l" href="#912"> 912: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">ob_get_level</span>() !== <span class="php-num">0</span>) {
|
|
</span><span id="913" class="l"><a class="l" href="#913"> 913: </a> <span class="php-keyword2">ob_clean</span>();
|
|
</span><span id="914" class="l"><a class="l" href="#914"> 914: </a> }
|
|
</span><span id="915" class="l"><a class="l" href="#915"> 915: </a> }
|
|
</span><span id="916" class="l"><a class="l" href="#916"> 916: </a>
|
|
</span><span id="917" class="l"><a class="l" href="#917"> 917: </a> <span class="php-comment">/**
|
|
</span></span><span id="918" class="l"><a class="l" href="#918"> 918: </a><span class="php-comment"> * Stop
|
|
</span></span><span id="919" class="l"><a class="l" href="#919"> 919: </a><span class="php-comment"> *
|
|
</span></span><span id="920" class="l"><a class="l" href="#920"> 920: </a><span class="php-comment"> * The thrown exception will be caught in application's `call()` method
|
|
</span></span><span id="921" class="l"><a class="l" href="#921"> 921: </a><span class="php-comment"> * and the response will be sent as is to the HTTP client.
|
|
</span></span><span id="922" class="l"><a class="l" href="#922"> 922: </a><span class="php-comment"> *
|
|
</span></span><span id="923" class="l"><a class="l" href="#923"> 923: </a><span class="php-comment"> * @throws \Slim\Exception\Stop
|
|
</span></span><span id="924" class="l"><a class="l" href="#924"> 924: </a><span class="php-comment"> */</span>
|
|
</span><span id="925" class="l"><a class="l" href="#925"> 925: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_stop" href="#_stop">stop</a>()
|
|
</span><span id="926" class="l"><a class="l" href="#926"> 926: </a> {
|
|
</span><span id="927" class="l"><a class="l" href="#927"> 927: </a> <span class="php-keyword1">throw</span> <span class="php-keyword1">new</span> \Slim\Exception\Stop();
|
|
</span><span id="928" class="l"><a class="l" href="#928"> 928: </a> }
|
|
</span><span id="929" class="l"><a class="l" href="#929"> 929: </a>
|
|
</span><span id="930" class="l"><a class="l" href="#930"> 930: </a> <span class="php-comment">/**
|
|
</span></span><span id="931" class="l"><a class="l" href="#931"> 931: </a><span class="php-comment"> * Halt
|
|
</span></span><span id="932" class="l"><a class="l" href="#932"> 932: </a><span class="php-comment"> *
|
|
</span></span><span id="933" class="l"><a class="l" href="#933"> 933: </a><span class="php-comment"> * Stop the application and immediately send the response with a
|
|
</span></span><span id="934" class="l"><a class="l" href="#934"> 934: </a><span class="php-comment"> * specific status and body to the HTTP client. This may send any
|
|
</span></span><span id="935" class="l"><a class="l" href="#935"> 935: </a><span class="php-comment"> * type of response: info, success, redirect, client error, or server error.
|
|
</span></span><span id="936" class="l"><a class="l" href="#936"> 936: </a><span class="php-comment"> * If you need to render a template AND customize the response status,
|
|
</span></span><span id="937" class="l"><a class="l" href="#937"> 937: </a><span class="php-comment"> * use the application's `render()` method instead.
|
|
</span></span><span id="938" class="l"><a class="l" href="#938"> 938: </a><span class="php-comment"> *
|
|
</span></span><span id="939" class="l"><a class="l" href="#939"> 939: </a><span class="php-comment"> * @param int $status The HTTP response status
|
|
</span></span><span id="940" class="l"><a class="l" href="#940"> 940: </a><span class="php-comment"> * @param string $message The HTTP response body
|
|
</span></span><span id="941" class="l"><a class="l" href="#941"> 941: </a><span class="php-comment"> */</span>
|
|
</span><span id="942" class="l"><a class="l" href="#942"> 942: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_halt" href="#_halt">halt</a>(<span class="php-var">$status</span>, <span class="php-var">$message</span> = <span class="php-quote">''</span>)
|
|
</span><span id="943" class="l"><a class="l" href="#943"> 943: </a> {
|
|
</span><span id="944" class="l"><a class="l" href="#944"> 944: </a> <span class="php-var">$this</span>->cleanBuffer();
|
|
</span><span id="945" class="l"><a class="l" href="#945"> 945: </a> <span class="php-var">$this</span>->response->status(<span class="php-var">$status</span>);
|
|
</span><span id="946" class="l"><a class="l" href="#946"> 946: </a> <span class="php-var">$this</span>->response->body(<span class="php-var">$message</span>);
|
|
</span><span id="947" class="l"><a class="l" href="#947"> 947: </a> <span class="php-var">$this</span>->stop();
|
|
</span><span id="948" class="l"><a class="l" href="#948"> 948: </a> }
|
|
</span><span id="949" class="l"><a class="l" href="#949"> 949: </a>
|
|
</span><span id="950" class="l"><a class="l" href="#950"> 950: </a> <span class="php-comment">/**
|
|
</span></span><span id="951" class="l"><a class="l" href="#951"> 951: </a><span class="php-comment"> * Pass
|
|
</span></span><span id="952" class="l"><a class="l" href="#952"> 952: </a><span class="php-comment"> *
|
|
</span></span><span id="953" class="l"><a class="l" href="#953"> 953: </a><span class="php-comment"> * The thrown exception is caught in the application's `call()` method causing
|
|
</span></span><span id="954" class="l"><a class="l" href="#954"> 954: </a><span class="php-comment"> * the router's current iteration to stop and continue to the subsequent route if available.
|
|
</span></span><span id="955" class="l"><a class="l" href="#955"> 955: </a><span class="php-comment"> * If no subsequent matching routes are found, a 404 response will be sent to the client.
|
|
</span></span><span id="956" class="l"><a class="l" href="#956"> 956: </a><span class="php-comment"> *
|
|
</span></span><span id="957" class="l"><a class="l" href="#957"> 957: </a><span class="php-comment"> * @throws \Slim\Exception\Pass
|
|
</span></span><span id="958" class="l"><a class="l" href="#958"> 958: </a><span class="php-comment"> */</span>
|
|
</span><span id="959" class="l"><a class="l" href="#959"> 959: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_pass" href="#_pass">pass</a>()
|
|
</span><span id="960" class="l"><a class="l" href="#960"> 960: </a> {
|
|
</span><span id="961" class="l"><a class="l" href="#961"> 961: </a> <span class="php-var">$this</span>->cleanBuffer();
|
|
</span><span id="962" class="l"><a class="l" href="#962"> 962: </a> <span class="php-keyword1">throw</span> <span class="php-keyword1">new</span> \Slim\Exception\Pass();
|
|
</span><span id="963" class="l"><a class="l" href="#963"> 963: </a> }
|
|
</span><span id="964" class="l"><a class="l" href="#964"> 964: </a>
|
|
</span><span id="965" class="l"><a class="l" href="#965"> 965: </a> <span class="php-comment">/**
|
|
</span></span><span id="966" class="l"><a class="l" href="#966"> 966: </a><span class="php-comment"> * Set the HTTP response Content-Type
|
|
</span></span><span id="967" class="l"><a class="l" href="#967"> 967: </a><span class="php-comment"> * @param string $type The Content-Type for the Response (ie. text/html)
|
|
</span></span><span id="968" class="l"><a class="l" href="#968"> 968: </a><span class="php-comment"> */</span>
|
|
</span><span id="969" class="l"><a class="l" href="#969"> 969: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_contentType" href="#_contentType">contentType</a>(<span class="php-var">$type</span>)
|
|
</span><span id="970" class="l"><a class="l" href="#970"> 970: </a> {
|
|
</span><span id="971" class="l"><a class="l" href="#971"> 971: </a> <span class="php-var">$this</span>->response[<span class="php-quote">'Content-Type'</span>] = <span class="php-var">$type</span>;
|
|
</span><span id="972" class="l"><a class="l" href="#972"> 972: </a> }
|
|
</span><span id="973" class="l"><a class="l" href="#973"> 973: </a>
|
|
</span><span id="974" class="l"><a class="l" href="#974"> 974: </a> <span class="php-comment">/**
|
|
</span></span><span id="975" class="l"><a class="l" href="#975"> 975: </a><span class="php-comment"> * Set the HTTP response status code
|
|
</span></span><span id="976" class="l"><a class="l" href="#976"> 976: </a><span class="php-comment"> * @param int $status The HTTP response status code
|
|
</span></span><span id="977" class="l"><a class="l" href="#977"> 977: </a><span class="php-comment"> */</span>
|
|
</span><span id="978" class="l"><a class="l" href="#978"> 978: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_status" href="#_status">status</a>(<span class="php-var">$code</span>)
|
|
</span><span id="979" class="l"><a class="l" href="#979"> 979: </a> {
|
|
</span><span id="980" class="l"><a class="l" href="#980"> 980: </a> <span class="php-var">$this</span>->response->status(<span class="php-var">$code</span>);
|
|
</span><span id="981" class="l"><a class="l" href="#981"> 981: </a> }
|
|
</span><span id="982" class="l"><a class="l" href="#982"> 982: </a>
|
|
</span><span id="983" class="l"><a class="l" href="#983"> 983: </a> <span class="php-comment">/**
|
|
</span></span><span id="984" class="l"><a class="l" href="#984"> 984: </a><span class="php-comment"> * Get the URL for a named route
|
|
</span></span><span id="985" class="l"><a class="l" href="#985"> 985: </a><span class="php-comment"> * @param string $name The route name
|
|
</span></span><span id="986" class="l"><a class="l" href="#986"> 986: </a><span class="php-comment"> * @param array $params Associative array of URL parameters and replacement values
|
|
</span></span><span id="987" class="l"><a class="l" href="#987"> 987: </a><span class="php-comment"> * @throws \RuntimeException If named route does not exist
|
|
</span></span><span id="988" class="l"><a class="l" href="#988"> 988: </a><span class="php-comment"> * @return string
|
|
</span></span><span id="989" class="l"><a class="l" href="#989"> 989: </a><span class="php-comment"> */</span>
|
|
</span><span id="990" class="l"><a class="l" href="#990"> 990: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_urlFor" href="#_urlFor">urlFor</a>(<span class="php-var">$name</span>, <span class="php-var">$params</span> = <span class="php-keyword1">array</span>())
|
|
</span><span id="991" class="l"><a class="l" href="#991"> 991: </a> {
|
|
</span><span id="992" class="l"><a class="l" href="#992"> 992: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>->request->getRootUri() . <span class="php-var">$this</span>->router->urlFor(<span class="php-var">$name</span>, <span class="php-var">$params</span>);
|
|
</span><span id="993" class="l"><a class="l" href="#993"> 993: </a> }
|
|
</span><span id="994" class="l"><a class="l" href="#994"> 994: </a>
|
|
</span><span id="995" class="l"><a class="l" href="#995"> 995: </a> <span class="php-comment">/**
|
|
</span></span><span id="996" class="l"><a class="l" href="#996"> 996: </a><span class="php-comment"> * Redirect
|
|
</span></span><span id="997" class="l"><a class="l" href="#997"> 997: </a><span class="php-comment"> *
|
|
</span></span><span id="998" class="l"><a class="l" href="#998"> 998: </a><span class="php-comment"> * This method immediately redirects to a new URL. By default,
|
|
</span></span><span id="999" class="l"><a class="l" href="#999"> 999: </a><span class="php-comment"> * this issues a 302 Found response; this is considered the default
|
|
</span></span><span id="1000" class="l"><a class="l" href="#1000">1000: </a><span class="php-comment"> * generic redirect response. You may also specify another valid
|
|
</span></span><span id="1001" class="l"><a class="l" href="#1001">1001: </a><span class="php-comment"> * 3xx status code if you want. This method will automatically set the
|
|
</span></span><span id="1002" class="l"><a class="l" href="#1002">1002: </a><span class="php-comment"> * HTTP Location header for you using the URL parameter.
|
|
</span></span><span id="1003" class="l"><a class="l" href="#1003">1003: </a><span class="php-comment"> *
|
|
</span></span><span id="1004" class="l"><a class="l" href="#1004">1004: </a><span class="php-comment"> * @param string $url The destination URL
|
|
</span></span><span id="1005" class="l"><a class="l" href="#1005">1005: </a><span class="php-comment"> * @param int $status The HTTP redirect status code (optional)
|
|
</span></span><span id="1006" class="l"><a class="l" href="#1006">1006: </a><span class="php-comment"> */</span>
|
|
</span><span id="1007" class="l"><a class="l" href="#1007">1007: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_redirect" href="#_redirect">redirect</a>(<span class="php-var">$url</span>, <span class="php-var">$status</span> = <span class="php-num">302</span>)
|
|
</span><span id="1008" class="l"><a class="l" href="#1008">1008: </a> {
|
|
</span><span id="1009" class="l"><a class="l" href="#1009">1009: </a> <span class="php-var">$this</span>->response->redirect(<span class="php-var">$url</span>, <span class="php-var">$status</span>);
|
|
</span><span id="1010" class="l"><a class="l" href="#1010">1010: </a> <span class="php-var">$this</span>->halt(<span class="php-var">$status</span>);
|
|
</span><span id="1011" class="l"><a class="l" href="#1011">1011: </a> }
|
|
</span><span id="1012" class="l"><a class="l" href="#1012">1012: </a>
|
|
</span><span id="1013" class="l"><a class="l" href="#1013">1013: </a> <span class="php-comment">/********************************************************************************
|
|
</span></span><span id="1014" class="l"><a class="l" href="#1014">1014: </a><span class="php-comment"> * Flash Messages
|
|
</span></span><span id="1015" class="l"><a class="l" href="#1015">1015: </a><span class="php-comment"> *******************************************************************************/</span>
|
|
</span><span id="1016" class="l"><a class="l" href="#1016">1016: </a>
|
|
</span><span id="1017" class="l"><a class="l" href="#1017">1017: </a> <span class="php-comment">/**
|
|
</span></span><span id="1018" class="l"><a class="l" href="#1018">1018: </a><span class="php-comment"> * Set flash message for subsequent request
|
|
</span></span><span id="1019" class="l"><a class="l" href="#1019">1019: </a><span class="php-comment"> * @param string $key
|
|
</span></span><span id="1020" class="l"><a class="l" href="#1020">1020: </a><span class="php-comment"> * @param mixed $value
|
|
</span></span><span id="1021" class="l"><a class="l" href="#1021">1021: </a><span class="php-comment"> */</span>
|
|
</span><span id="1022" class="l"><a class="l" href="#1022">1022: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_flash" href="#_flash">flash</a>(<span class="php-var">$key</span>, <span class="php-var">$value</span>)
|
|
</span><span id="1023" class="l"><a class="l" href="#1023">1023: </a> {
|
|
</span><span id="1024" class="l"><a class="l" href="#1024">1024: </a> <span class="php-keyword1">if</span> (<span class="php-keyword1">isset</span>(<span class="php-var">$this</span>->environment[<span class="php-quote">'slim.flash'</span>])) {
|
|
</span><span id="1025" class="l"><a class="l" href="#1025">1025: </a> <span class="php-var">$this</span>->environment[<span class="php-quote">'slim.flash'</span>]->set(<span class="php-var">$key</span>, <span class="php-var">$value</span>);
|
|
</span><span id="1026" class="l"><a class="l" href="#1026">1026: </a> }
|
|
</span><span id="1027" class="l"><a class="l" href="#1027">1027: </a> }
|
|
</span><span id="1028" class="l"><a class="l" href="#1028">1028: </a>
|
|
</span><span id="1029" class="l"><a class="l" href="#1029">1029: </a> <span class="php-comment">/**
|
|
</span></span><span id="1030" class="l"><a class="l" href="#1030">1030: </a><span class="php-comment"> * Set flash message for current request
|
|
</span></span><span id="1031" class="l"><a class="l" href="#1031">1031: </a><span class="php-comment"> * @param string $key
|
|
</span></span><span id="1032" class="l"><a class="l" href="#1032">1032: </a><span class="php-comment"> * @param mixed $value
|
|
</span></span><span id="1033" class="l"><a class="l" href="#1033">1033: </a><span class="php-comment"> */</span>
|
|
</span><span id="1034" class="l"><a class="l" href="#1034">1034: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_flashNow" href="#_flashNow">flashNow</a>(<span class="php-var">$key</span>, <span class="php-var">$value</span>)
|
|
</span><span id="1035" class="l"><a class="l" href="#1035">1035: </a> {
|
|
</span><span id="1036" class="l"><a class="l" href="#1036">1036: </a> <span class="php-keyword1">if</span> (<span class="php-keyword1">isset</span>(<span class="php-var">$this</span>->environment[<span class="php-quote">'slim.flash'</span>])) {
|
|
</span><span id="1037" class="l"><a class="l" href="#1037">1037: </a> <span class="php-var">$this</span>->environment[<span class="php-quote">'slim.flash'</span>]->now(<span class="php-var">$key</span>, <span class="php-var">$value</span>);
|
|
</span><span id="1038" class="l"><a class="l" href="#1038">1038: </a> }
|
|
</span><span id="1039" class="l"><a class="l" href="#1039">1039: </a> }
|
|
</span><span id="1040" class="l"><a class="l" href="#1040">1040: </a>
|
|
</span><span id="1041" class="l"><a class="l" href="#1041">1041: </a> <span class="php-comment">/**
|
|
</span></span><span id="1042" class="l"><a class="l" href="#1042">1042: </a><span class="php-comment"> * Keep flash messages from previous request for subsequent request
|
|
</span></span><span id="1043" class="l"><a class="l" href="#1043">1043: </a><span class="php-comment"> */</span>
|
|
</span><span id="1044" class="l"><a class="l" href="#1044">1044: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_flashKeep" href="#_flashKeep">flashKeep</a>()
|
|
</span><span id="1045" class="l"><a class="l" href="#1045">1045: </a> {
|
|
</span><span id="1046" class="l"><a class="l" href="#1046">1046: </a> <span class="php-keyword1">if</span> (<span class="php-keyword1">isset</span>(<span class="php-var">$this</span>->environment[<span class="php-quote">'slim.flash'</span>])) {
|
|
</span><span id="1047" class="l"><a class="l" href="#1047">1047: </a> <span class="php-var">$this</span>->environment[<span class="php-quote">'slim.flash'</span>]->keep();
|
|
</span><span id="1048" class="l"><a class="l" href="#1048">1048: </a> }
|
|
</span><span id="1049" class="l"><a class="l" href="#1049">1049: </a> }
|
|
</span><span id="1050" class="l"><a class="l" href="#1050">1050: </a>
|
|
</span><span id="1051" class="l"><a class="l" href="#1051">1051: </a> <span class="php-comment">/********************************************************************************
|
|
</span></span><span id="1052" class="l"><a class="l" href="#1052">1052: </a><span class="php-comment"> * Hooks
|
|
</span></span><span id="1053" class="l"><a class="l" href="#1053">1053: </a><span class="php-comment"> *******************************************************************************/</span>
|
|
</span><span id="1054" class="l"><a class="l" href="#1054">1054: </a>
|
|
</span><span id="1055" class="l"><a class="l" href="#1055">1055: </a> <span class="php-comment">/**
|
|
</span></span><span id="1056" class="l"><a class="l" href="#1056">1056: </a><span class="php-comment"> * Assign hook
|
|
</span></span><span id="1057" class="l"><a class="l" href="#1057">1057: </a><span class="php-comment"> * @param string $name The hook name
|
|
</span></span><span id="1058" class="l"><a class="l" href="#1058">1058: </a><span class="php-comment"> * @param mixed $callable A callable object
|
|
</span></span><span id="1059" class="l"><a class="l" href="#1059">1059: </a><span class="php-comment"> * @param int $priority The hook priority; 0 = high, 10 = low
|
|
</span></span><span id="1060" class="l"><a class="l" href="#1060">1060: </a><span class="php-comment"> */</span>
|
|
</span><span id="1061" class="l"><a class="l" href="#1061">1061: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_hook" href="#_hook">hook</a>(<span class="php-var">$name</span>, <span class="php-var">$callable</span>, <span class="php-var">$priority</span> = <span class="php-num">10</span>)
|
|
</span><span id="1062" class="l"><a class="l" href="#1062">1062: </a> {
|
|
</span><span id="1063" class="l"><a class="l" href="#1063">1063: </a> <span class="php-keyword1">if</span> (!<span class="php-keyword1">isset</span>(<span class="php-var">$this</span>->hooks[<span class="php-var">$name</span>])) {
|
|
</span><span id="1064" class="l"><a class="l" href="#1064">1064: </a> <span class="php-var">$this</span>->hooks[<span class="php-var">$name</span>] = <span class="php-keyword1">array</span>(<span class="php-keyword1">array</span>());
|
|
</span><span id="1065" class="l"><a class="l" href="#1065">1065: </a> }
|
|
</span><span id="1066" class="l"><a class="l" href="#1066">1066: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">is_callable</span>(<span class="php-var">$callable</span>)) {
|
|
</span><span id="1067" class="l"><a class="l" href="#1067">1067: </a> <span class="php-var">$this</span>->hooks[<span class="php-var">$name</span>][(int) <span class="php-var">$priority</span>][] = <span class="php-var">$callable</span>;
|
|
</span><span id="1068" class="l"><a class="l" href="#1068">1068: </a> }
|
|
</span><span id="1069" class="l"><a class="l" href="#1069">1069: </a> }
|
|
</span><span id="1070" class="l"><a class="l" href="#1070">1070: </a>
|
|
</span><span id="1071" class="l"><a class="l" href="#1071">1071: </a> <span class="php-comment">/**
|
|
</span></span><span id="1072" class="l"><a class="l" href="#1072">1072: </a><span class="php-comment"> * Invoke hook
|
|
</span></span><span id="1073" class="l"><a class="l" href="#1073">1073: </a><span class="php-comment"> * @param string $name The hook name
|
|
</span></span><span id="1074" class="l"><a class="l" href="#1074">1074: </a><span class="php-comment"> * @param mixed $hookArgs (Optional) Argument for hooked functions
|
|
</span></span><span id="1075" class="l"><a class="l" href="#1075">1075: </a><span class="php-comment"> */</span>
|
|
</span><span id="1076" class="l"><a class="l" href="#1076">1076: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_applyHook" href="#_applyHook">applyHook</a>(<span class="php-var">$name</span>, <span class="php-var">$hookArg</span> = <span class="php-keyword1">null</span>)
|
|
</span><span id="1077" class="l"><a class="l" href="#1077">1077: </a> {
|
|
</span><span id="1078" class="l"><a class="l" href="#1078">1078: </a> <span class="php-keyword1">if</span> (!<span class="php-keyword1">isset</span>(<span class="php-var">$this</span>->hooks[<span class="php-var">$name</span>])) {
|
|
</span><span id="1079" class="l"><a class="l" href="#1079">1079: </a> <span class="php-var">$this</span>->hooks[<span class="php-var">$name</span>] = <span class="php-keyword1">array</span>(<span class="php-keyword1">array</span>());
|
|
</span><span id="1080" class="l"><a class="l" href="#1080">1080: </a> }
|
|
</span><span id="1081" class="l"><a class="l" href="#1081">1081: </a> <span class="php-keyword1">if</span> (!<span class="php-keyword1">empty</span>(<span class="php-var">$this</span>->hooks[<span class="php-var">$name</span>])) {
|
|
</span><span id="1082" class="l"><a class="l" href="#1082">1082: </a> <span class="php-comment">// Sort by priority, low to high, if there's more than one priority</span>
|
|
</span><span id="1083" class="l"><a class="l" href="#1083">1083: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">count</span>(<span class="php-var">$this</span>->hooks[<span class="php-var">$name</span>]) > <span class="php-num">1</span>) {
|
|
</span><span id="1084" class="l"><a class="l" href="#1084">1084: </a> <span class="php-keyword2">ksort</span>(<span class="php-var">$this</span>->hooks[<span class="php-var">$name</span>]);
|
|
</span><span id="1085" class="l"><a class="l" href="#1085">1085: </a> }
|
|
</span><span id="1086" class="l"><a class="l" href="#1086">1086: </a> <span class="php-keyword1">foreach</span> (<span class="php-var">$this</span>->hooks[<span class="php-var">$name</span>] <span class="php-keyword1">as</span> <span class="php-var">$priority</span>) {
|
|
</span><span id="1087" class="l"><a class="l" href="#1087">1087: </a> <span class="php-keyword1">if</span> (!<span class="php-keyword1">empty</span>(<span class="php-var">$priority</span>)) {
|
|
</span><span id="1088" class="l"><a class="l" href="#1088">1088: </a> <span class="php-keyword1">foreach</span> (<span class="php-var">$priority</span> <span class="php-keyword1">as</span> <span class="php-var">$callable</span>) {
|
|
</span><span id="1089" class="l"><a class="l" href="#1089">1089: </a> <span class="php-keyword2">call_user_func</span>(<span class="php-var">$callable</span>, <span class="php-var">$hookArg</span>);
|
|
</span><span id="1090" class="l"><a class="l" href="#1090">1090: </a> }
|
|
</span><span id="1091" class="l"><a class="l" href="#1091">1091: </a> }
|
|
</span><span id="1092" class="l"><a class="l" href="#1092">1092: </a> }
|
|
</span><span id="1093" class="l"><a class="l" href="#1093">1093: </a> }
|
|
</span><span id="1094" class="l"><a class="l" href="#1094">1094: </a> }
|
|
</span><span id="1095" class="l"><a class="l" href="#1095">1095: </a>
|
|
</span><span id="1096" class="l"><a class="l" href="#1096">1096: </a> <span class="php-comment">/**
|
|
</span></span><span id="1097" class="l"><a class="l" href="#1097">1097: </a><span class="php-comment"> * Get hook listeners
|
|
</span></span><span id="1098" class="l"><a class="l" href="#1098">1098: </a><span class="php-comment"> *
|
|
</span></span><span id="1099" class="l"><a class="l" href="#1099">1099: </a><span class="php-comment"> * Return an array of registered hooks. If `$name` is a valid
|
|
</span></span><span id="1100" class="l"><a class="l" href="#1100">1100: </a><span class="php-comment"> * hook name, only the listeners attached to that hook are returned.
|
|
</span></span><span id="1101" class="l"><a class="l" href="#1101">1101: </a><span class="php-comment"> * Else, all listeners are returned as an associative array whose
|
|
</span></span><span id="1102" class="l"><a class="l" href="#1102">1102: </a><span class="php-comment"> * keys are hook names and whose values are arrays of listeners.
|
|
</span></span><span id="1103" class="l"><a class="l" href="#1103">1103: </a><span class="php-comment"> *
|
|
</span></span><span id="1104" class="l"><a class="l" href="#1104">1104: </a><span class="php-comment"> * @param string $name A hook name (Optional)
|
|
</span></span><span id="1105" class="l"><a class="l" href="#1105">1105: </a><span class="php-comment"> * @return array|null
|
|
</span></span><span id="1106" class="l"><a class="l" href="#1106">1106: </a><span class="php-comment"> */</span>
|
|
</span><span id="1107" class="l"><a class="l" href="#1107">1107: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_getHooks" href="#_getHooks">getHooks</a>(<span class="php-var">$name</span> = <span class="php-keyword1">null</span>)
|
|
</span><span id="1108" class="l"><a class="l" href="#1108">1108: </a> {
|
|
</span><span id="1109" class="l"><a class="l" href="#1109">1109: </a> <span class="php-keyword1">if</span> (!<span class="php-keyword2">is_null</span>(<span class="php-var">$name</span>)) {
|
|
</span><span id="1110" class="l"><a class="l" href="#1110">1110: </a> <span class="php-keyword1">return</span> <span class="php-keyword1">isset</span>(<span class="php-var">$this</span>->hooks[(string) <span class="php-var">$name</span>]) ? <span class="php-var">$this</span>->hooks[(string) <span class="php-var">$name</span>] : <span class="php-keyword1">null</span>;
|
|
</span><span id="1111" class="l"><a class="l" href="#1111">1111: </a> } <span class="php-keyword1">else</span> {
|
|
</span><span id="1112" class="l"><a class="l" href="#1112">1112: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>->hooks;
|
|
</span><span id="1113" class="l"><a class="l" href="#1113">1113: </a> }
|
|
</span><span id="1114" class="l"><a class="l" href="#1114">1114: </a> }
|
|
</span><span id="1115" class="l"><a class="l" href="#1115">1115: </a>
|
|
</span><span id="1116" class="l"><a class="l" href="#1116">1116: </a> <span class="php-comment">/**
|
|
</span></span><span id="1117" class="l"><a class="l" href="#1117">1117: </a><span class="php-comment"> * Clear hook listeners
|
|
</span></span><span id="1118" class="l"><a class="l" href="#1118">1118: </a><span class="php-comment"> *
|
|
</span></span><span id="1119" class="l"><a class="l" href="#1119">1119: </a><span class="php-comment"> * Clear all listeners for all hooks. If `$name` is
|
|
</span></span><span id="1120" class="l"><a class="l" href="#1120">1120: </a><span class="php-comment"> * a valid hook name, only the listeners attached
|
|
</span></span><span id="1121" class="l"><a class="l" href="#1121">1121: </a><span class="php-comment"> * to that hook will be cleared.
|
|
</span></span><span id="1122" class="l"><a class="l" href="#1122">1122: </a><span class="php-comment"> *
|
|
</span></span><span id="1123" class="l"><a class="l" href="#1123">1123: </a><span class="php-comment"> * @param string $name A hook name (Optional)
|
|
</span></span><span id="1124" class="l"><a class="l" href="#1124">1124: </a><span class="php-comment"> */</span>
|
|
</span><span id="1125" class="l"><a class="l" href="#1125">1125: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_clearHooks" href="#_clearHooks">clearHooks</a>(<span class="php-var">$name</span> = <span class="php-keyword1">null</span>)
|
|
</span><span id="1126" class="l"><a class="l" href="#1126">1126: </a> {
|
|
</span><span id="1127" class="l"><a class="l" href="#1127">1127: </a> <span class="php-keyword1">if</span> (!<span class="php-keyword2">is_null</span>(<span class="php-var">$name</span>) && <span class="php-keyword1">isset</span>(<span class="php-var">$this</span>->hooks[(string) <span class="php-var">$name</span>])) {
|
|
</span><span id="1128" class="l"><a class="l" href="#1128">1128: </a> <span class="php-var">$this</span>->hooks[(string) <span class="php-var">$name</span>] = <span class="php-keyword1">array</span>(<span class="php-keyword1">array</span>());
|
|
</span><span id="1129" class="l"><a class="l" href="#1129">1129: </a> } <span class="php-keyword1">else</span> {
|
|
</span><span id="1130" class="l"><a class="l" href="#1130">1130: </a> <span class="php-keyword1">foreach</span> (<span class="php-var">$this</span>->hooks <span class="php-keyword1">as</span> <span class="php-var">$key</span> => <span class="php-var">$value</span>) {
|
|
</span><span id="1131" class="l"><a class="l" href="#1131">1131: </a> <span class="php-var">$this</span>->hooks[<span class="php-var">$key</span>] = <span class="php-keyword1">array</span>(<span class="php-keyword1">array</span>());
|
|
</span><span id="1132" class="l"><a class="l" href="#1132">1132: </a> }
|
|
</span><span id="1133" class="l"><a class="l" href="#1133">1133: </a> }
|
|
</span><span id="1134" class="l"><a class="l" href="#1134">1134: </a> }
|
|
</span><span id="1135" class="l"><a class="l" href="#1135">1135: </a>
|
|
</span><span id="1136" class="l"><a class="l" href="#1136">1136: </a> <span class="php-comment">/********************************************************************************
|
|
</span></span><span id="1137" class="l"><a class="l" href="#1137">1137: </a><span class="php-comment"> * Middleware
|
|
</span></span><span id="1138" class="l"><a class="l" href="#1138">1138: </a><span class="php-comment"> *******************************************************************************/</span>
|
|
</span><span id="1139" class="l"><a class="l" href="#1139">1139: </a>
|
|
</span><span id="1140" class="l"><a class="l" href="#1140">1140: </a> <span class="php-comment">/**
|
|
</span></span><span id="1141" class="l"><a class="l" href="#1141">1141: </a><span class="php-comment"> * Add middleware
|
|
</span></span><span id="1142" class="l"><a class="l" href="#1142">1142: </a><span class="php-comment"> *
|
|
</span></span><span id="1143" class="l"><a class="l" href="#1143">1143: </a><span class="php-comment"> * This method prepends new middleware to the application middleware stack.
|
|
</span></span><span id="1144" class="l"><a class="l" href="#1144">1144: </a><span class="php-comment"> * The argument must be an instance that subclasses Slim_Middleware.
|
|
</span></span><span id="1145" class="l"><a class="l" href="#1145">1145: </a><span class="php-comment"> *
|
|
</span></span><span id="1146" class="l"><a class="l" href="#1146">1146: </a><span class="php-comment"> * @param \Slim\Middleware
|
|
</span></span><span id="1147" class="l"><a class="l" href="#1147">1147: </a><span class="php-comment"> */</span>
|
|
</span><span id="1148" class="l"><a class="l" href="#1148">1148: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_add" href="#_add">add</a>(\Slim\Middleware <span class="php-var">$newMiddleware</span>)
|
|
</span><span id="1149" class="l"><a class="l" href="#1149">1149: </a> {
|
|
</span><span id="1150" class="l"><a class="l" href="#1150">1150: </a> <span class="php-var">$newMiddleware</span>->setApplication(<span class="php-var">$this</span>);
|
|
</span><span id="1151" class="l"><a class="l" href="#1151">1151: </a> <span class="php-var">$newMiddleware</span>->setNextMiddleware(<span class="php-var">$this</span>->middleware[<span class="php-num">0</span>]);
|
|
</span><span id="1152" class="l"><a class="l" href="#1152">1152: </a> <span class="php-keyword2">array_unshift</span>(<span class="php-var">$this</span>->middleware, <span class="php-var">$newMiddleware</span>);
|
|
</span><span id="1153" class="l"><a class="l" href="#1153">1153: </a> }
|
|
</span><span id="1154" class="l"><a class="l" href="#1154">1154: </a>
|
|
</span><span id="1155" class="l"><a class="l" href="#1155">1155: </a> <span class="php-comment">/********************************************************************************
|
|
</span></span><span id="1156" class="l"><a class="l" href="#1156">1156: </a><span class="php-comment"> * Runner
|
|
</span></span><span id="1157" class="l"><a class="l" href="#1157">1157: </a><span class="php-comment"> *******************************************************************************/</span>
|
|
</span><span id="1158" class="l"><a class="l" href="#1158">1158: </a>
|
|
</span><span id="1159" class="l"><a class="l" href="#1159">1159: </a> <span class="php-comment">/**
|
|
</span></span><span id="1160" class="l"><a class="l" href="#1160">1160: </a><span class="php-comment"> * Run
|
|
</span></span><span id="1161" class="l"><a class="l" href="#1161">1161: </a><span class="php-comment"> *
|
|
</span></span><span id="1162" class="l"><a class="l" href="#1162">1162: </a><span class="php-comment"> * This method invokes the middleware stack, including the core Slim application;
|
|
</span></span><span id="1163" class="l"><a class="l" href="#1163">1163: </a><span class="php-comment"> * the result is an array of HTTP status, header, and body. These three items
|
|
</span></span><span id="1164" class="l"><a class="l" href="#1164">1164: </a><span class="php-comment"> * are returned to the HTTP client.
|
|
</span></span><span id="1165" class="l"><a class="l" href="#1165">1165: </a><span class="php-comment"> */</span>
|
|
</span><span id="1166" class="l"><a class="l" href="#1166">1166: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_run" href="#_run">run</a>()
|
|
</span><span id="1167" class="l"><a class="l" href="#1167">1167: </a> {
|
|
</span><span id="1168" class="l"><a class="l" href="#1168">1168: </a> <span class="php-keyword2">set_error_handler</span>(<span class="php-keyword1">array</span>(<span class="php-quote">'\Slim\Slim'</span>, <span class="php-quote">'handleErrors'</span>));
|
|
</span><span id="1169" class="l"><a class="l" href="#1169">1169: </a>
|
|
</span><span id="1170" class="l"><a class="l" href="#1170">1170: </a> <span class="php-comment">//Apply final outer middleware layers</span>
|
|
</span><span id="1171" class="l"><a class="l" href="#1171">1171: </a> <span class="php-var">$this</span>->add(<span class="php-keyword1">new</span> \Slim\Middleware\PrettyExceptions());
|
|
</span><span id="1172" class="l"><a class="l" href="#1172">1172: </a>
|
|
</span><span id="1173" class="l"><a class="l" href="#1173">1173: </a> <span class="php-comment">//Invoke middleware and application stack</span>
|
|
</span><span id="1174" class="l"><a class="l" href="#1174">1174: </a> <span class="php-var">$this</span>->middleware[<span class="php-num">0</span>]->call();
|
|
</span><span id="1175" class="l"><a class="l" href="#1175">1175: </a>
|
|
</span><span id="1176" class="l"><a class="l" href="#1176">1176: </a> <span class="php-comment">//Fetch status, header, and body</span>
|
|
</span><span id="1177" class="l"><a class="l" href="#1177">1177: </a> <span class="php-keyword1">list</span>(<span class="php-var">$status</span>, <span class="php-var">$header</span>, <span class="php-var">$body</span>) = <span class="php-var">$this</span>->response->finalize();
|
|
</span><span id="1178" class="l"><a class="l" href="#1178">1178: </a>
|
|
</span><span id="1179" class="l"><a class="l" href="#1179">1179: </a> <span class="php-comment">//Send headers</span>
|
|
</span><span id="1180" class="l"><a class="l" href="#1180">1180: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">headers_sent</span>() === <span class="php-keyword1">false</span>) {
|
|
</span><span id="1181" class="l"><a class="l" href="#1181">1181: </a> <span class="php-comment">//Send status</span>
|
|
</span><span id="1182" class="l"><a class="l" href="#1182">1182: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">strpos</span>(PHP_SAPI, <span class="php-quote">'cgi'</span>) === <span class="php-num">0</span>) {
|
|
</span><span id="1183" class="l"><a class="l" href="#1183">1183: </a> <span class="php-keyword2">header</span>(<span class="php-keyword2">sprintf</span>(<span class="php-quote">'Status: %s'</span>, \Slim\Http\Response::getMessageForCode(<span class="php-var">$status</span>)));
|
|
</span><span id="1184" class="l"><a class="l" href="#1184">1184: </a> } <span class="php-keyword1">else</span> {
|
|
</span><span id="1185" class="l"><a class="l" href="#1185">1185: </a> <span class="php-keyword2">header</span>(<span class="php-keyword2">sprintf</span>(<span class="php-quote">'HTTP/%s %s'</span>, <span class="php-var">$this</span>->config(<span class="php-quote">'http.version'</span>), \Slim\Http\Response::getMessageForCode(<span class="php-var">$status</span>)));
|
|
</span><span id="1186" class="l"><a class="l" href="#1186">1186: </a> }
|
|
</span><span id="1187" class="l"><a class="l" href="#1187">1187: </a>
|
|
</span><span id="1188" class="l"><a class="l" href="#1188">1188: </a> <span class="php-comment">//Send headers</span>
|
|
</span><span id="1189" class="l"><a class="l" href="#1189">1189: </a> <span class="php-keyword1">foreach</span> (<span class="php-var">$header</span> <span class="php-keyword1">as</span> <span class="php-var">$name</span> => <span class="php-var">$value</span>) {
|
|
</span><span id="1190" class="l"><a class="l" href="#1190">1190: </a> <span class="php-var">$hValues</span> = <span class="php-keyword2">explode</span>(<span class="php-quote">"\n"</span>, <span class="php-var">$value</span>);
|
|
</span><span id="1191" class="l"><a class="l" href="#1191">1191: </a> <span class="php-keyword1">foreach</span> (<span class="php-var">$hValues</span> <span class="php-keyword1">as</span> <span class="php-var">$hVal</span>) {
|
|
</span><span id="1192" class="l"><a class="l" href="#1192">1192: </a> <span class="php-keyword2">header</span>(<span class="php-quote">"</span><span class="php-var">$name</span><span class="php-quote">: </span><span class="php-var">$hVal</span><span class="php-quote">"</span>, <span class="php-keyword1">false</span>);
|
|
</span><span id="1193" class="l"><a class="l" href="#1193">1193: </a> }
|
|
</span><span id="1194" class="l"><a class="l" href="#1194">1194: </a> }
|
|
</span><span id="1195" class="l"><a class="l" href="#1195">1195: </a> }
|
|
</span><span id="1196" class="l"><a class="l" href="#1196">1196: </a>
|
|
</span><span id="1197" class="l"><a class="l" href="#1197">1197: </a> <span class="php-comment">//Send body</span>
|
|
</span><span id="1198" class="l"><a class="l" href="#1198">1198: </a> <span class="php-keyword1">echo</span> <span class="php-var">$body</span>;
|
|
</span><span id="1199" class="l"><a class="l" href="#1199">1199: </a>
|
|
</span><span id="1200" class="l"><a class="l" href="#1200">1200: </a> <span class="php-keyword2">restore_error_handler</span>();
|
|
</span><span id="1201" class="l"><a class="l" href="#1201">1201: </a> }
|
|
</span><span id="1202" class="l"><a class="l" href="#1202">1202: </a>
|
|
</span><span id="1203" class="l"><a class="l" href="#1203">1203: </a> <span class="php-comment">/**
|
|
</span></span><span id="1204" class="l"><a class="l" href="#1204">1204: </a><span class="php-comment"> * Call
|
|
</span></span><span id="1205" class="l"><a class="l" href="#1205">1205: </a><span class="php-comment"> *
|
|
</span></span><span id="1206" class="l"><a class="l" href="#1206">1206: </a><span class="php-comment"> * This method finds and iterates all route objects that match the current request URI.
|
|
</span></span><span id="1207" class="l"><a class="l" href="#1207">1207: </a><span class="php-comment"> */</span>
|
|
</span><span id="1208" class="l"><a class="l" href="#1208">1208: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_call" href="#_call">call</a>()
|
|
</span><span id="1209" class="l"><a class="l" href="#1209">1209: </a> {
|
|
</span><span id="1210" class="l"><a class="l" href="#1210">1210: </a> <span class="php-keyword1">try</span> {
|
|
</span><span id="1211" class="l"><a class="l" href="#1211">1211: </a> <span class="php-keyword1">if</span> (<span class="php-keyword1">isset</span>(<span class="php-var">$this</span>->environment[<span class="php-quote">'slim.flash'</span>])) {
|
|
</span><span id="1212" class="l"><a class="l" href="#1212">1212: </a> <span class="php-var">$this</span>->view()->setData(<span class="php-quote">'flash'</span>, <span class="php-var">$this</span>->environment[<span class="php-quote">'slim.flash'</span>]);
|
|
</span><span id="1213" class="l"><a class="l" href="#1213">1213: </a> }
|
|
</span><span id="1214" class="l"><a class="l" href="#1214">1214: </a> <span class="php-var">$this</span>->applyHook(<span class="php-quote">'slim.before'</span>);
|
|
</span><span id="1215" class="l"><a class="l" href="#1215">1215: </a> <span class="php-keyword2">ob_start</span>();
|
|
</span><span id="1216" class="l"><a class="l" href="#1216">1216: </a> <span class="php-var">$this</span>->applyHook(<span class="php-quote">'slim.before.router'</span>);
|
|
</span><span id="1217" class="l"><a class="l" href="#1217">1217: </a> <span class="php-var">$dispatched</span> = <span class="php-keyword1">false</span>;
|
|
</span><span id="1218" class="l"><a class="l" href="#1218">1218: </a> <span class="php-var">$matchedRoutes</span> = <span class="php-var">$this</span>->router->getMatchedRoutes(<span class="php-var">$this</span>->request->getMethod(), <span class="php-var">$this</span>->request->getResourceUri());
|
|
</span><span id="1219" class="l"><a class="l" href="#1219">1219: </a> <span class="php-keyword1">foreach</span> (<span class="php-var">$matchedRoutes</span> <span class="php-keyword1">as</span> <span class="php-var">$route</span>) {
|
|
</span><span id="1220" class="l"><a class="l" href="#1220">1220: </a> <span class="php-keyword1">try</span> {
|
|
</span><span id="1221" class="l"><a class="l" href="#1221">1221: </a> <span class="php-var">$this</span>->applyHook(<span class="php-quote">'slim.before.dispatch'</span>);
|
|
</span><span id="1222" class="l"><a class="l" href="#1222">1222: </a> <span class="php-var">$dispatched</span> = <span class="php-var">$this</span>->router->dispatch(<span class="php-var">$route</span>);
|
|
</span><span id="1223" class="l"><a class="l" href="#1223">1223: </a> <span class="php-var">$this</span>->applyHook(<span class="php-quote">'slim.after.dispatch'</span>);
|
|
</span><span id="1224" class="l"><a class="l" href="#1224">1224: </a> <span class="php-keyword1">if</span> (<span class="php-var">$dispatched</span>) {
|
|
</span><span id="1225" class="l"><a class="l" href="#1225">1225: </a> <span class="php-keyword1">break</span>;
|
|
</span><span id="1226" class="l"><a class="l" href="#1226">1226: </a> }
|
|
</span><span id="1227" class="l"><a class="l" href="#1227">1227: </a> } <span class="php-keyword1">catch</span> (\Slim\Exception\Pass <span class="php-var">$e</span>) {
|
|
</span><span id="1228" class="l"><a class="l" href="#1228">1228: </a> <span class="php-keyword1">continue</span>;
|
|
</span><span id="1229" class="l"><a class="l" href="#1229">1229: </a> }
|
|
</span><span id="1230" class="l"><a class="l" href="#1230">1230: </a> }
|
|
</span><span id="1231" class="l"><a class="l" href="#1231">1231: </a> <span class="php-keyword1">if</span> (!<span class="php-var">$dispatched</span>) {
|
|
</span><span id="1232" class="l"><a class="l" href="#1232">1232: </a> <span class="php-var">$this</span>->notFound();
|
|
</span><span id="1233" class="l"><a class="l" href="#1233">1233: </a> }
|
|
</span><span id="1234" class="l"><a class="l" href="#1234">1234: </a> <span class="php-var">$this</span>->applyHook(<span class="php-quote">'slim.after.router'</span>);
|
|
</span><span id="1235" class="l"><a class="l" href="#1235">1235: </a> <span class="php-var">$this</span>->stop();
|
|
</span><span id="1236" class="l"><a class="l" href="#1236">1236: </a> } <span class="php-keyword1">catch</span> (\Slim\Exception\Stop <span class="php-var">$e</span>) {
|
|
</span><span id="1237" class="l"><a class="l" href="#1237">1237: </a> <span class="php-var">$this</span>->response()->write(<span class="php-keyword2">ob_get_clean</span>());
|
|
</span><span id="1238" class="l"><a class="l" href="#1238">1238: </a> <span class="php-var">$this</span>->applyHook(<span class="php-quote">'slim.after'</span>);
|
|
</span><span id="1239" class="l"><a class="l" href="#1239">1239: </a> } <span class="php-keyword1">catch</span> (\Exception <span class="php-var">$e</span>) {
|
|
</span><span id="1240" class="l"><a class="l" href="#1240">1240: </a> <span class="php-keyword1">if</span> (<span class="php-var">$this</span>->config(<span class="php-quote">'debug'</span>)) {
|
|
</span><span id="1241" class="l"><a class="l" href="#1241">1241: </a> <span class="php-keyword1">throw</span> <span class="php-var">$e</span>;
|
|
</span><span id="1242" class="l"><a class="l" href="#1242">1242: </a> } <span class="php-keyword1">else</span> {
|
|
</span><span id="1243" class="l"><a class="l" href="#1243">1243: </a> <span class="php-keyword1">try</span> {
|
|
</span><span id="1244" class="l"><a class="l" href="#1244">1244: </a> <span class="php-var">$this</span>->error(<span class="php-var">$e</span>);
|
|
</span><span id="1245" class="l"><a class="l" href="#1245">1245: </a> } <span class="php-keyword1">catch</span> (\Slim\Exception\Stop <span class="php-var">$e</span>) {
|
|
</span><span id="1246" class="l"><a class="l" href="#1246">1246: </a> <span class="php-comment">// Do nothing</span>
|
|
</span><span id="1247" class="l"><a class="l" href="#1247">1247: </a> }
|
|
</span><span id="1248" class="l"><a class="l" href="#1248">1248: </a> }
|
|
</span><span id="1249" class="l"><a class="l" href="#1249">1249: </a> }
|
|
</span><span id="1250" class="l"><a class="l" href="#1250">1250: </a> }
|
|
</span><span id="1251" class="l"><a class="l" href="#1251">1251: </a>
|
|
</span><span id="1252" class="l"><a class="l" href="#1252">1252: </a> <span class="php-comment">/********************************************************************************
|
|
</span></span><span id="1253" class="l"><a class="l" href="#1253">1253: </a><span class="php-comment"> * Error Handling and Debugging
|
|
</span></span><span id="1254" class="l"><a class="l" href="#1254">1254: </a><span class="php-comment"> *******************************************************************************/</span>
|
|
</span><span id="1255" class="l"><a class="l" href="#1255">1255: </a>
|
|
</span><span id="1256" class="l"><a class="l" href="#1256">1256: </a> <span class="php-comment">/**
|
|
</span></span><span id="1257" class="l"><a class="l" href="#1257">1257: </a><span class="php-comment"> * Convert errors into ErrorException objects
|
|
</span></span><span id="1258" class="l"><a class="l" href="#1258">1258: </a><span class="php-comment"> *
|
|
</span></span><span id="1259" class="l"><a class="l" href="#1259">1259: </a><span class="php-comment"> * This method catches PHP errors and converts them into \ErrorException objects;
|
|
</span></span><span id="1260" class="l"><a class="l" href="#1260">1260: </a><span class="php-comment"> * these \ErrorException objects are then thrown and caught by Slim's
|
|
</span></span><span id="1261" class="l"><a class="l" href="#1261">1261: </a><span class="php-comment"> * built-in or custom error handlers.
|
|
</span></span><span id="1262" class="l"><a class="l" href="#1262">1262: </a><span class="php-comment"> *
|
|
</span></span><span id="1263" class="l"><a class="l" href="#1263">1263: </a><span class="php-comment"> * @param int $errno The numeric type of the Error
|
|
</span></span><span id="1264" class="l"><a class="l" href="#1264">1264: </a><span class="php-comment"> * @param string $errstr The error message
|
|
</span></span><span id="1265" class="l"><a class="l" href="#1265">1265: </a><span class="php-comment"> * @param string $errfile The absolute path to the affected file
|
|
</span></span><span id="1266" class="l"><a class="l" href="#1266">1266: </a><span class="php-comment"> * @param int $errline The line number of the error in the affected file
|
|
</span></span><span id="1267" class="l"><a class="l" href="#1267">1267: </a><span class="php-comment"> * @return true
|
|
</span></span><span id="1268" class="l"><a class="l" href="#1268">1268: </a><span class="php-comment"> * @throws \ErrorException
|
|
</span></span><span id="1269" class="l"><a class="l" href="#1269">1269: </a><span class="php-comment"> */</span>
|
|
</span><span id="1270" class="l"><a class="l" href="#1270">1270: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_handleErrors" href="#_handleErrors">handleErrors</a>(<span class="php-var">$errno</span>, <span class="php-var">$errstr</span> = <span class="php-quote">''</span>, <span class="php-var">$errfile</span> = <span class="php-quote">''</span>, <span class="php-var">$errline</span> = <span class="php-quote">''</span>)
|
|
</span><span id="1271" class="l"><a class="l" href="#1271">1271: </a> {
|
|
</span><span id="1272" class="l"><a class="l" href="#1272">1272: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">error_reporting</span>() & <span class="php-var">$errno</span>) {
|
|
</span><span id="1273" class="l"><a class="l" href="#1273">1273: </a> <span class="php-keyword1">throw</span> <span class="php-keyword1">new</span> \ErrorException(<span class="php-var">$errstr</span>, <span class="php-var">$errno</span>, <span class="php-num">0</span>, <span class="php-var">$errfile</span>, <span class="php-var">$errline</span>);
|
|
</span><span id="1274" class="l"><a class="l" href="#1274">1274: </a> }
|
|
</span><span id="1275" class="l"><a class="l" href="#1275">1275: </a>
|
|
</span><span id="1276" class="l"><a class="l" href="#1276">1276: </a> <span class="php-keyword1">return</span> <span class="php-keyword1">true</span>;
|
|
</span><span id="1277" class="l"><a class="l" href="#1277">1277: </a> }
|
|
</span><span id="1278" class="l"><a class="l" href="#1278">1278: </a>
|
|
</span><span id="1279" class="l"><a class="l" href="#1279">1279: </a> <span class="php-comment">/**
|
|
</span></span><span id="1280" class="l"><a class="l" href="#1280">1280: </a><span class="php-comment"> * Generate diagnostic template markup
|
|
</span></span><span id="1281" class="l"><a class="l" href="#1281">1281: </a><span class="php-comment"> *
|
|
</span></span><span id="1282" class="l"><a class="l" href="#1282">1282: </a><span class="php-comment"> * This method accepts a title and body content to generate an HTML document layout.
|
|
</span></span><span id="1283" class="l"><a class="l" href="#1283">1283: </a><span class="php-comment"> *
|
|
</span></span><span id="1284" class="l"><a class="l" href="#1284">1284: </a><span class="php-comment"> * @param string $title The title of the HTML template
|
|
</span></span><span id="1285" class="l"><a class="l" href="#1285">1285: </a><span class="php-comment"> * @param string $body The body content of the HTML template
|
|
</span></span><span id="1286" class="l"><a class="l" href="#1286">1286: </a><span class="php-comment"> * @return string
|
|
</span></span><span id="1287" class="l"><a class="l" href="#1287">1287: </a><span class="php-comment"> */</span>
|
|
</span><span id="1288" class="l"><a class="l" href="#1288">1288: </a> <span class="php-keyword1">protected</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_generateTemplateMarkup" href="#_generateTemplateMarkup">generateTemplateMarkup</a>(<span class="php-var">$title</span>, <span class="php-var">$body</span>)
|
|
</span><span id="1289" class="l"><a class="l" href="#1289">1289: </a> {
|
|
</span><span id="1290" class="l"><a class="l" href="#1290">1290: </a> <span class="php-keyword1">return</span> <span class="php-keyword2">sprintf</span>(<span class="php-quote">"<html><head><title>%s</title><style>body{margin:0;padding:30px;font:12px/1.5 Helvetica,Arial,Verdana,sans-serif;}h1{margin:0;font-size:48px;font-weight:normal;line-height:48px;}strong{display:inline-block;width:65px;}</style></head><body><h1>%s</h1>%s</body></html>"</span>, <span class="php-var">$title</span>, <span class="php-var">$title</span>, <span class="php-var">$body</span>);
|
|
</span><span id="1291" class="l"><a class="l" href="#1291">1291: </a> }
|
|
</span><span id="1292" class="l"><a class="l" href="#1292">1292: </a>
|
|
</span><span id="1293" class="l"><a class="l" href="#1293">1293: </a> <span class="php-comment">/**
|
|
</span></span><span id="1294" class="l"><a class="l" href="#1294">1294: </a><span class="php-comment"> * Default Not Found handler
|
|
</span></span><span id="1295" class="l"><a class="l" href="#1295">1295: </a><span class="php-comment"> */</span>
|
|
</span><span id="1296" class="l"><a class="l" href="#1296">1296: </a> <span class="php-keyword1">protected</span> <span class="php-keyword1">function</span> <a id="_defaultNotFound" href="#_defaultNotFound">defaultNotFound</a>()
|
|
</span><span id="1297" class="l"><a class="l" href="#1297">1297: </a> {
|
|
</span><span id="1298" class="l"><a class="l" href="#1298">1298: </a> <span class="php-keyword1">echo</span> <span class="php-keyword1">static</span>::generateTemplateMarkup(<span class="php-quote">'404 Page Not Found'</span>, <span class="php-quote">'<p>The page you are looking for could not be found. Check the address bar to ensure your URL is spelled correctly. If all else fails, you can visit our home page at the link below.</p><a href="'</span> . <span class="php-var">$this</span>->request->getRootUri() . <span class="php-quote">'/">Visit the Home Page</a>'</span>);
|
|
</span><span id="1299" class="l"><a class="l" href="#1299">1299: </a> }
|
|
</span><span id="1300" class="l"><a class="l" href="#1300">1300: </a>
|
|
</span><span id="1301" class="l"><a class="l" href="#1301">1301: </a> <span class="php-comment">/**
|
|
</span></span><span id="1302" class="l"><a class="l" href="#1302">1302: </a><span class="php-comment"> * Default Error handler
|
|
</span></span><span id="1303" class="l"><a class="l" href="#1303">1303: </a><span class="php-comment"> */</span>
|
|
</span><span id="1304" class="l"><a class="l" href="#1304">1304: </a> <span class="php-keyword1">protected</span> <span class="php-keyword1">function</span> <a id="_defaultError" href="#_defaultError">defaultError</a>(<span class="php-var">$e</span>)
|
|
</span><span id="1305" class="l"><a class="l" href="#1305">1305: </a> {
|
|
</span><span id="1306" class="l"><a class="l" href="#1306">1306: </a> <span class="php-var">$this</span>->getLog()->error(<span class="php-var">$e</span>);
|
|
</span><span id="1307" class="l"><a class="l" href="#1307">1307: </a> <span class="php-keyword1">echo</span> self::generateTemplateMarkup(<span class="php-quote">'Error'</span>, <span class="php-quote">'<p>A website error has occured. The website administrator has been notified of the issue. Sorry for the temporary inconvenience.</p>'</span>);
|
|
</span><span id="1308" class="l"><a class="l" href="#1308">1308: </a> }
|
|
</span><span id="1309" class="l"><a class="l" href="#1309">1309: </a>}
|
|
</span><span id="1310" class="l"><a class="l" href="#1310">1310: </a></span></code></pre>
|
|
|
|
<div id="footer">
|
|
GeoApi API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|