Subversion Repositories Applications.framework

Compare Revisions

No changes between revisions

Ignore whitespace Rev 466 → Rev 467

/branches/v0.2-buhl/doc/ApiGen/elementlist.js
New file
0,0 → 1,3
 
var ApiGen = ApiGen || {};
ApiGen.elements = [["c","Application"],["f","autoloadAppliDefaut()"],["f","autoloadFw()"],["c","Chronometre"],["c","Config"],["c","Controleur"],["c","Debug"],["c","Exception"],["c","GestionnaireException"],["c","Log"],["c","Modele"],["c","PDOStatement"],["c","Registre"],["c","SquelettePhp"],["c","Traversable"],["c","Url"]];
/branches/v0.2-buhl/doc/ApiGen/class-Exception.html
New file
0,0 → 1,502
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="generator" content="ApiGen 2.8.0">
 
<title>Class Exception | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li><a href="package-Framework.html">Framework</a>
</li>
<li class="active"><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-PDOStatement.html">PDOStatement</a></li>
</ul>
 
<h3>Interfaces</h3>
<ul>
<li><a href="class-Traversable.html">Traversable</a></li>
</ul>
 
 
<h3>Exceptions</h3>
<ul>
<li class="active"><a href="class-Exception.html">Exception</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="package-PHP.html" title="Summary of PHP"><span>Package</span></a>
</li>
<li class="active">
<span>Class</span> </li>
</ul>
<ul>
<li>
<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
</li>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<div id="content" class="class">
<h1>Class Exception</h1>
 
 
 
 
 
 
 
 
 
 
 
<div class="info">
<b>PHP Extension:</b> <a href="http://php.net/manual" title="Go to PHP documentation">Core</a><br>
 
<b>Documented at</b> <a href="http://php.net/manual/class.exception.php" title="Go to PHP documentation">php.net</a><br>
</div>
 
 
 
<table class="summary" id="methods">
<caption>Methods summary</caption>
<tr data-order="__construct" id="___construct">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#___construct">#</a>
<code><a href="http://php.net/manual/exception.construct.php" title="Go to PHP documentation">__construct</a>( <span>mixed <var>$message</var></span>, <span>mixed <var>$code</var></span>, <span>mixed <var>$previous</var></span> )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getMessage" id="_getMessage">
 
<td class="attributes"><code>
final public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getMessage">#</a>
<code><a href="http://php.net/manual/exception.getmessage.php" title="Go to PHP documentation">getMessage</a>( )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getCode" id="_getCode">
 
<td class="attributes"><code>
final public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getCode">#</a>
<code><a href="http://php.net/manual/exception.getcode.php" title="Go to PHP documentation">getCode</a>( )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getFile" id="_getFile">
 
<td class="attributes"><code>
final public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getFile">#</a>
<code><a href="http://php.net/manual/exception.getfile.php" title="Go to PHP documentation">getFile</a>( )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getLine" id="_getLine">
 
<td class="attributes"><code>
final public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getLine">#</a>
<code><a href="http://php.net/manual/exception.getline.php" title="Go to PHP documentation">getLine</a>( )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getTrace" id="_getTrace">
 
<td class="attributes"><code>
final public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getTrace">#</a>
<code><a href="http://php.net/manual/exception.gettrace.php" title="Go to PHP documentation">getTrace</a>( )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getPrevious" id="_getPrevious">
 
<td class="attributes"><code>
final public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getPrevious">#</a>
<code><a href="http://php.net/manual/exception.getprevious.php" title="Go to PHP documentation">getPrevious</a>( )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getTraceAsString" id="_getTraceAsString">
 
<td class="attributes"><code>
final public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getTraceAsString">#</a>
<code><a href="http://php.net/manual/exception.gettraceasstring.php" title="Go to PHP documentation">getTraceAsString</a>( )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="__toString" id="___toString">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#___toString">#</a>
<code><a href="http://php.net/manual/exception.tostring.php" title="Go to PHP documentation">__toString</a>( )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
</table>
 
 
 
 
 
 
 
 
 
 
 
 
<table class="summary" id="properties">
<caption>Properties summary</caption>
<tr data-order="message" id="$message">
<td class="attributes"><code>
protected
string
</code></td>
 
<td class="name">
<a href="http://php.net/manual/class.exception.php#exception.props.message" title="Go to PHP documentation"><var>$message</var></a>
</td>
<td class="value"><code><span class="php-quote">''</span></code></td>
<td class="description"><div>
<a href="#$message" class="anchor">#</a>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
</div>
</div></td>
</tr>
<tr data-order="code" id="$code">
<td class="attributes"><code>
protected
integer
</code></td>
 
<td class="name">
<a href="http://php.net/manual/class.exception.php#exception.props.code" title="Go to PHP documentation"><var>$code</var></a>
</td>
<td class="value"><code><span class="php-num">0</span></code></td>
<td class="description"><div>
<a href="#$code" class="anchor">#</a>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
</div>
</div></td>
</tr>
<tr data-order="file" id="$file">
<td class="attributes"><code>
protected
mixed
</code></td>
 
<td class="name">
<a href="http://php.net/manual/class.exception.php#exception.props.file" title="Go to PHP documentation"><var>$file</var></a>
</td>
<td class="value"><code></code></td>
<td class="description"><div>
<a href="#$file" class="anchor">#</a>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
</div>
</div></td>
</tr>
<tr data-order="line" id="$line">
<td class="attributes"><code>
protected
mixed
</code></td>
 
<td class="name">
<a href="http://php.net/manual/class.exception.php#exception.props.line" title="Go to PHP documentation"><var>$line</var></a>
</td>
<td class="value"><code></code></td>
<td class="description"><div>
<a href="#$line" class="anchor">#</a>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
</div>
</div></td>
</tr>
</table>
 
 
 
 
 
 
</div>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/source-class-Url.html
New file
0,0 → 1,882
<!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 Url.php | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li class="active"><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li class="active"><a href="class-Url.html">Url</a></li>
</ul>
 
 
 
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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="package-Framework.html" title="Summary of Framework"><span>Package</span></a>
</li>
<li>
<a href="class-Url.html" title="Summary of Url"><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>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<pre><code><span id="1" class="l"><a class="l" href="#1"> 1: </a><span class="xlang">&lt;?php</span>
</span><span id="2" class="l"><a class="l" href="#2"> 2: </a><span class="php-comment">// declare(encoding='UTF-8');</span>
</span><span id="3" class="l"><a class="l" href="#3"> 3: </a><span class="php-comment">/**
</span></span><span id="4" class="l"><a class="l" href="#4"> 4: </a><span class="php-comment">* classe Url, gérant le découpage des paramètres, leurs modification etc...
</span></span><span id="5" class="l"><a class="l" href="#5"> 5: </a><span class="php-comment">* Traduction et conversion d'une classe (NET_Url2) issue de Pear
</span></span><span id="6" class="l"><a class="l" href="#6"> 6: </a><span class="php-comment">*
</span></span><span id="7" class="l"><a class="l" href="#7"> 7: </a><span class="php-comment">* @category Php5
</span></span><span id="8" class="l"><a class="l" href="#8"> 8: </a><span class="php-comment">* @package Framework
</span></span><span id="9" class="l"><a class="l" href="#9"> 9: </a><span class="php-comment">// Auteur principal
</span></span><span id="10" class="l"><a class="l" href="#10"> 10: </a><span class="php-comment">* @author Christian Schmidt &lt;schmidt@php.net&gt;
</span></span><span id="11" class="l"><a class="l" href="#11"> 11: </a><span class="php-comment">// Autre auteurs
</span></span><span id="12" class="l"><a class="l" href="#12"> 12: </a><span class="php-comment">* @author Aurélien PERONNET &lt;aurelien@tela-botanica.org&gt;
</span></span><span id="13" class="l"><a class="l" href="#13"> 13: </a><span class="php-comment">* @author Jean-Pascal MILCENT &lt;jpm@tela-botanica.org&gt;
</span></span><span id="14" class="l"><a class="l" href="#14"> 14: </a><span class="php-comment">* @copyright 2009 Tela-Botanica
</span></span><span id="15" class="l"><a class="l" href="#15"> 15: </a><span class="php-comment">* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
</span></span><span id="16" class="l"><a class="l" href="#16"> 16: </a><span class="php-comment">* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
</span></span><span id="17" class="l"><a class="l" href="#17"> 17: </a><span class="php-comment">* @version SVN: $Id: Url.php 171 2010-03-23 11:23:38Z jpm $
</span></span><span id="18" class="l"><a class="l" href="#18"> 18: </a><span class="php-comment">* @link /doc/framework/
</span></span><span id="19" class="l"><a class="l" href="#19"> 19: </a><span class="php-comment">*
</span></span><span id="20" class="l"><a class="l" href="#20"> 20: </a><span class="php-comment">*/</span>
</span><span id="21" class="l"><a class="l" href="#21"> 21: </a><span class="php-keyword1">class</span> <a id="Url" href="#Url">Url</a>
</span><span id="22" class="l"><a class="l" href="#22"> 22: </a>{
</span><span id="23" class="l"><a class="l" href="#23"> 23: </a> <span class="php-comment">/**
</span></span><span id="24" class="l"><a class="l" href="#24"> 24: </a><span class="php-comment"> * Parsing strict dans resoudre() (voir RFC 3986, section 5.2.2). Par défaut
</span></span><span id="25" class="l"><a class="l" href="#25"> 25: </a><span class="php-comment"> * à true.
</span></span><span id="26" class="l"><a class="l" href="#26"> 26: </a><span class="php-comment"> */</span>
</span><span id="27" class="l"><a class="l" href="#27"> 27: </a> <span class="php-keyword1">const</span> <a id="OPTION_STRICTE" href="#OPTION_STRICTE">OPTION_STRICTE</a> = <span class="php-quote">'strict'</span>;
</span><span id="28" class="l"><a class="l" href="#28"> 28: </a>
</span><span id="29" class="l"><a class="l" href="#29"> 29: </a> <span class="php-comment">/**
</span></span><span id="30" class="l"><a class="l" href="#30"> 30: </a><span class="php-comment"> * Répresenter les tableaux dans les requêtes en utilisant la notation php []. Par défaut à true.
</span></span><span id="31" class="l"><a class="l" href="#31"> 31: </a><span class="php-comment"> */</span>
</span><span id="32" class="l"><a class="l" href="#32"> 32: </a> <span class="php-keyword1">const</span> <a id="OPTION_UTILISER_CROCHETS" href="#OPTION_UTILISER_CROCHETS">OPTION_UTILISER_CROCHETS</a> = <span class="php-quote">'use_brackets'</span>;
</span><span id="33" class="l"><a class="l" href="#33"> 33: </a>
</span><span id="34" class="l"><a class="l" href="#34"> 34: </a> <span class="php-comment">/**
</span></span><span id="35" class="l"><a class="l" href="#35"> 35: </a><span class="php-comment"> * URL-encoder les clés des variables dans les requêtes. Par défaut à true.
</span></span><span id="36" class="l"><a class="l" href="#36"> 36: </a><span class="php-comment"> */</span>
</span><span id="37" class="l"><a class="l" href="#37"> 37: </a> <span class="php-keyword1">const</span> <a id="OPTION_ENCODER_CLES" href="#OPTION_ENCODER_CLES">OPTION_ENCODER_CLES</a> = <span class="php-quote">'encode_keys'</span>;
</span><span id="38" class="l"><a class="l" href="#38"> 38: </a>
</span><span id="39" class="l"><a class="l" href="#39"> 39: </a> <span class="php-comment">/**
</span></span><span id="40" class="l"><a class="l" href="#40"> 40: </a><span class="php-comment"> * Séparateurs de variables lors du parsing de la requête. Chaque caractère
</span></span><span id="41" class="l"><a class="l" href="#41"> 41: </a><span class="php-comment"> * est considéré comme un séparateur. Par défaut, spécifié par le paramêtre
</span></span><span id="42" class="l"><a class="l" href="#42"> 42: </a><span class="php-comment"> * arg_separator.input dans php.ini (par défaut &quot;&amp;&quot;).
</span></span><span id="43" class="l"><a class="l" href="#43"> 43: </a><span class="php-comment"> */</span>
</span><span id="44" class="l"><a class="l" href="#44"> 44: </a> <span class="php-keyword1">const</span> <a id="OPTION_SEPARATEUR_ENTREE" href="#OPTION_SEPARATEUR_ENTREE">OPTION_SEPARATEUR_ENTREE</a> = <span class="php-quote">'input_separator'</span>;
</span><span id="45" class="l"><a class="l" href="#45"> 45: </a>
</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-comment"> * Séparateur de variables lors de la génération de la requête. Par défaut, spécifié
</span></span><span id="48" class="l"><a class="l" href="#48"> 48: </a><span class="php-comment"> * par le paramètre arg_separator.output dans php.ini (par défaut &quot;&amp;&quot;).
</span></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-keyword1">const</span> <a id="OPTION_SEPARATEUR_SORTIE" href="#OPTION_SEPARATEUR_SORTIE">OPTION_SEPARATEUR_SORTIE</a> = <span class="php-quote">'output_separator'</span>;
</span><span id="51" class="l"><a class="l" href="#51"> 51: </a>
</span><span id="52" class="l"><a class="l" href="#52"> 52: </a> <span class="php-comment">/**
</span></span><span id="53" class="l"><a class="l" href="#53"> 53: </a><span class="php-comment"> * Options par défaut correspondant au comportement de php
</span></span><span id="54" class="l"><a class="l" href="#54"> 54: </a><span class="php-comment"> * vis à vis de $_GET
</span></span><span id="55" class="l"><a class="l" href="#55"> 55: </a><span class="php-comment"> */</span>
</span><span id="56" class="l"><a class="l" href="#56"> 56: </a> <span class="php-keyword1">private</span> <span class="php-var"><a id="$options" href="#$options">$options</a></span> = <span class="php-keyword1">array</span>(
</span><span id="57" class="l"><a class="l" href="#57"> 57: </a> self::OPTION_STRICTE =&gt; <span class="php-keyword1">true</span>,
</span><span id="58" class="l"><a class="l" href="#58"> 58: </a> self::OPTION_UTILISER_CROCHETS =&gt; <span class="php-keyword1">true</span>,
</span><span id="59" class="l"><a class="l" href="#59"> 59: </a> self::OPTION_ENCODER_CLES =&gt; <span class="php-keyword1">true</span>,
</span><span id="60" class="l"><a class="l" href="#60"> 60: </a> self::OPTION_SEPARATEUR_ENTREE =&gt; <span class="php-quote">'x&amp;'</span>,
</span><span id="61" class="l"><a class="l" href="#61"> 61: </a> self::OPTION_SEPARATEUR_SORTIE =&gt; <span class="php-quote">'x&amp;'</span>);
</span><span id="62" class="l"><a class="l" href="#62"> 62: </a>
</span><span id="63" class="l"><a class="l" href="#63"> 63: </a> <span class="php-comment">/**
</span></span><span id="64" class="l"><a class="l" href="#64"> 64: </a><span class="php-comment"> * @var string|bool
</span></span><span id="65" class="l"><a class="l" href="#65"> 65: </a><span class="php-comment"> */</span>
</span><span id="66" class="l"><a class="l" href="#66"> 66: </a> <span class="php-keyword1">private</span> <span class="php-var"><a id="$schema" href="#$schema">$schema</a></span> = <span class="php-keyword1">false</span>;
</span><span id="67" class="l"><a class="l" href="#67"> 67: </a>
</span><span id="68" class="l"><a class="l" href="#68"> 68: </a> <span class="php-comment">/**
</span></span><span id="69" class="l"><a class="l" href="#69"> 69: </a><span class="php-comment"> * @var string|bool
</span></span><span id="70" class="l"><a class="l" href="#70"> 70: </a><span class="php-comment"> */</span>
</span><span id="71" class="l"><a class="l" href="#71"> 71: </a> <span class="php-keyword1">private</span> <span class="php-var"><a id="$infoUtilisateur" href="#$infoUtilisateur">$infoUtilisateur</a></span> = <span class="php-keyword1">false</span>;
</span><span id="72" class="l"><a class="l" href="#72"> 72: </a>
</span><span id="73" class="l"><a class="l" href="#73"> 73: </a> <span class="php-comment">/**
</span></span><span id="74" class="l"><a class="l" href="#74"> 74: </a><span class="php-comment"> * @var string|bool
</span></span><span id="75" class="l"><a class="l" href="#75"> 75: </a><span class="php-comment"> */</span>
</span><span id="76" class="l"><a class="l" href="#76"> 76: </a> <span class="php-keyword1">private</span> <span class="php-var"><a id="$hote" href="#$hote">$hote</a></span> = <span class="php-keyword1">false</span>;
</span><span id="77" class="l"><a class="l" href="#77"> 77: </a>
</span><span id="78" class="l"><a class="l" href="#78"> 78: </a> <span class="php-comment">/**
</span></span><span id="79" class="l"><a class="l" href="#79"> 79: </a><span class="php-comment"> * @var int|bool
</span></span><span id="80" class="l"><a class="l" href="#80"> 80: </a><span class="php-comment"> */</span>
</span><span id="81" class="l"><a class="l" href="#81"> 81: </a> <span class="php-keyword1">private</span> <span class="php-var"><a id="$port" href="#$port">$port</a></span> = <span class="php-keyword1">false</span>;
</span><span id="82" class="l"><a class="l" href="#82"> 82: </a>
</span><span id="83" class="l"><a class="l" href="#83"> 83: </a> <span class="php-comment">/**
</span></span><span id="84" class="l"><a class="l" href="#84"> 84: </a><span class="php-comment"> * @var string
</span></span><span id="85" class="l"><a class="l" href="#85"> 85: </a><span class="php-comment"> */</span>
</span><span id="86" class="l"><a class="l" href="#86"> 86: </a> <span class="php-keyword1">private</span> <span class="php-var"><a id="$chemin" href="#$chemin">$chemin</a></span> = <span class="php-quote">''</span>;
</span><span id="87" class="l"><a class="l" href="#87"> 87: </a>
</span><span id="88" class="l"><a class="l" href="#88"> 88: </a> <span class="php-comment">/**
</span></span><span id="89" class="l"><a class="l" href="#89"> 89: </a><span class="php-comment"> * @var string|bool
</span></span><span id="90" class="l"><a class="l" href="#90"> 90: </a><span class="php-comment"> */</span>
</span><span id="91" class="l"><a class="l" href="#91"> 91: </a> <span class="php-keyword1">private</span> <span class="php-var"><a id="$requete" href="#$requete">$requete</a></span> = <span class="php-keyword1">false</span>;
</span><span id="92" class="l"><a class="l" href="#92"> 92: </a>
</span><span id="93" class="l"><a class="l" href="#93"> 93: </a> <span class="php-comment">/**
</span></span><span id="94" class="l"><a class="l" href="#94"> 94: </a><span class="php-comment"> * @var string|bool
</span></span><span id="95" class="l"><a class="l" href="#95"> 95: </a><span class="php-comment"> */</span>
</span><span id="96" class="l"><a class="l" href="#96"> 96: </a> <span class="php-keyword1">private</span> <span class="php-var"><a id="$fragment" href="#$fragment">$fragment</a></span> = <span class="php-keyword1">false</span>;
</span><span id="97" class="l"><a class="l" href="#97"> 97: </a>
</span><span id="98" class="l"><a class="l" href="#98"> 98: </a> <span class="php-comment">/**
</span></span><span id="99" class="l"><a class="l" href="#99"> 99: </a><span class="php-comment"> * @param string $url une URL relative ou absolue
</span></span><span id="100" class="l"><a class="l" href="#100">100: </a><span class="php-comment"> * @param array $options
</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">public</span> <span class="php-keyword1">function</span> <a id="___construct" href="#___construct">__construct</a>(<span class="php-var">$url</span>, <span class="php-var">$options</span> = <span class="php-keyword1">null</span>) {
</span><span id="103" class="l"><a class="l" href="#103">103: </a> <span class="php-var">$this</span>-&gt;setOption(self::OPTION_SEPARATEUR_ENTREE,
</span><span id="104" class="l"><a class="l" href="#104">104: </a> Config::get(<span class="php-quote">'fw_url_arg_separateur_entree'</span>));
</span><span id="105" class="l"><a class="l" href="#105">105: </a> <span class="php-var">$this</span>-&gt;setOption(self::OPTION_SEPARATEUR_SORTIE,
</span><span id="106" class="l"><a class="l" href="#106">106: </a> Config::get(<span class="php-quote">'fw_url_arg_separateur_sortie'</span>));
</span><span id="107" class="l"><a class="l" href="#107">107: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">is_array</span>(<span class="php-var">$options</span>)) {
</span><span id="108" class="l"><a class="l" href="#108">108: </a> <span class="php-keyword1">foreach</span> (<span class="php-var">$options</span> <span class="php-keyword1">as</span> <span class="php-var">$nomOption</span> =&gt; <span class="php-var">$valeur</span>) {
</span><span id="109" class="l"><a class="l" href="#109">109: </a> <span class="php-var">$this</span>-&gt;setOption(<span class="php-var">$nomOption</span>);
</span><span id="110" class="l"><a class="l" href="#110">110: </a> }
</span><span id="111" class="l"><a class="l" href="#111">111: </a> }
</span><span id="112" class="l"><a class="l" href="#112">112: </a>
</span><span id="113" class="l"><a class="l" href="#113">113: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">preg_match</span>(<span class="php-quote">'@^([a-z][a-z0-9.+-]*):@i'</span>, <span class="php-var">$url</span>, <span class="php-var">$reg</span>)) {
</span><span id="114" class="l"><a class="l" href="#114">114: </a> <span class="php-var">$this</span>-&gt;schema = <span class="php-var">$reg</span>[<span class="php-num">1</span>];
</span><span id="115" class="l"><a class="l" href="#115">115: </a> <span class="php-var">$url</span> = <span class="php-keyword2">substr</span>(<span class="php-var">$url</span>, <span class="php-keyword2">strlen</span>(<span class="php-var">$reg</span>[<span class="php-num">0</span>]));
</span><span id="116" class="l"><a class="l" href="#116">116: </a> }
</span><span id="117" class="l"><a class="l" href="#117">117: </a>
</span><span id="118" class="l"><a class="l" href="#118">118: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">preg_match</span>(<span class="php-quote">'@^//([^/#?]+)@'</span>, <span class="php-var">$url</span>, <span class="php-var">$reg</span>)) {
</span><span id="119" class="l"><a class="l" href="#119">119: </a> <span class="php-var">$this</span>-&gt;setAutorite(<span class="php-var">$reg</span>[<span class="php-num">1</span>]);
</span><span id="120" class="l"><a class="l" href="#120">120: </a> <span class="php-var">$url</span> = <span class="php-keyword2">substr</span>(<span class="php-var">$url</span>, <span class="php-keyword2">strlen</span>(<span class="php-var">$reg</span>[<span class="php-num">0</span>]));
</span><span id="121" class="l"><a class="l" href="#121">121: </a> }
</span><span id="122" class="l"><a class="l" href="#122">122: </a>
</span><span id="123" class="l"><a class="l" href="#123">123: </a> <span class="php-var">$i</span> = <span class="php-keyword2">strcspn</span>(<span class="php-var">$url</span>, <span class="php-quote">'?#'</span>);
</span><span id="124" class="l"><a class="l" href="#124">124: </a> <span class="php-var">$this</span>-&gt;chemin = <span class="php-keyword2">substr</span>(<span class="php-var">$url</span>, <span class="php-num">0</span>, <span class="php-var">$i</span>);
</span><span id="125" class="l"><a class="l" href="#125">125: </a> <span class="php-var">$url</span> = <span class="php-keyword2">substr</span>(<span class="php-var">$url</span>, <span class="php-var">$i</span>);
</span><span id="126" class="l"><a class="l" href="#126">126: </a>
</span><span id="127" class="l"><a class="l" href="#127">127: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">preg_match</span>(<span class="php-quote">'@^\?([^#]*)@'</span>, <span class="php-var">$url</span>, <span class="php-var">$reg</span>)) {
</span><span id="128" class="l"><a class="l" href="#128">128: </a> <span class="php-var">$this</span>-&gt;requete = <span class="php-var">$reg</span>[<span class="php-num">1</span>];
</span><span id="129" class="l"><a class="l" href="#129">129: </a> <span class="php-var">$url</span> = <span class="php-keyword2">substr</span>(<span class="php-var">$url</span>, <span class="php-keyword2">strlen</span>(<span class="php-var">$reg</span>[<span class="php-num">0</span>]));
</span><span id="130" class="l"><a class="l" href="#130">130: </a> }
</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-keyword1">if</span> (<span class="php-var">$url</span>) {
</span><span id="133" class="l"><a class="l" href="#133">133: </a> <span class="php-var">$this</span>-&gt;fragment = <span class="php-keyword2">substr</span>(<span class="php-var">$url</span>, <span class="php-num">1</span>);
</span><span id="134" class="l"><a class="l" href="#134">134: </a> }
</span><span id="135" class="l"><a class="l" href="#135">135: </a> }
</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-comment">/**
</span></span><span id="138" class="l"><a class="l" href="#138">138: </a><span class="php-comment"> * Retourne le schéma, c.a.d. &quot;http&quot; ou &quot;urn&quot;, ou false si aucun schéma n'est
</span></span><span id="139" class="l"><a class="l" href="#139">139: </a><span class="php-comment"> * spécifié, i.e. l'url est une url relative
</span></span><span id="140" class="l"><a class="l" href="#140">140: </a><span class="php-comment"> *
</span></span><span id="141" class="l"><a class="l" href="#141">141: </a><span class="php-comment"> * @return string|bool
</span></span><span id="142" class="l"><a class="l" href="#142">142: </a><span class="php-comment"> */</span>
</span><span id="143" class="l"><a class="l" href="#143">143: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_getSchema" href="#_getSchema">getSchema</a>() {
</span><span id="144" class="l"><a class="l" href="#144">144: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>-&gt;schema;
</span><span id="145" class="l"><a class="l" href="#145">145: </a> }
</span><span id="146" class="l"><a class="l" href="#146">146: </a>
</span><span id="147" class="l"><a class="l" href="#147">147: </a> <span class="php-comment">/**
</span></span><span id="148" class="l"><a class="l" href="#148">148: </a><span class="php-comment"> * @param string|bool $schema
</span></span><span id="149" class="l"><a class="l" href="#149">149: </a><span class="php-comment"> *
</span></span><span id="150" class="l"><a class="l" href="#150">150: </a><span class="php-comment"> * @return void
</span></span><span id="151" class="l"><a class="l" href="#151">151: </a><span class="php-comment"> * @see getSchema()
</span></span><span id="152" class="l"><a class="l" href="#152">152: </a><span class="php-comment"> */</span>
</span><span id="153" class="l"><a class="l" href="#153">153: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_setSchema" href="#_setSchema">setSchema</a>(<span class="php-var">$schema</span>) {
</span><span id="154" class="l"><a class="l" href="#154">154: </a> <span class="php-var">$this</span>-&gt;schema = <span class="php-var">$schema</span>;
</span><span id="155" class="l"><a class="l" href="#155">155: </a> }
</span><span id="156" class="l"><a class="l" href="#156">156: </a>
</span><span id="157" class="l"><a class="l" href="#157">157: </a> <span class="php-comment">/**
</span></span><span id="158" class="l"><a class="l" href="#158">158: </a><span class="php-comment"> * renvoie la partie user de la partie infoUtilisateur (partie précédant le premier
</span></span><span id="159" class="l"><a class="l" href="#159">159: </a><span class="php-comment"> * &quot;:&quot;), ou false si aucune partie infoUtilisateur n'est définie.
</span></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"> * @return string|bool
</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">function</span> <a id="_getUtilisateur" href="#_getUtilisateur">getUtilisateur</a>() {
</span><span id="164" class="l"><a class="l" href="#164">164: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>-&gt;infoUtilisateur !== <span class="php-keyword1">false</span> ? <span class="php-keyword2">preg_replace</span>(<span class="php-quote">'@:.*$@'</span>, <span class="php-quote">''</span>, <span class="php-var">$this</span>-&gt;infoUtilisateur) : <span class="php-keyword1">false</span>;
</span><span id="165" class="l"><a class="l" href="#165">165: </a> }
</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 class="php-comment">/**
</span></span><span id="168" class="l"><a class="l" href="#168">168: </a><span class="php-comment"> * renvoie la partie mot de passe de la partie infoUtilisateur (partie après le premier
</span></span><span id="169" class="l"><a class="l" href="#169">169: </a><span class="php-comment"> * &quot;:&quot;), , ou false si aucune partie infoUtilisateur n'est définie (i.e. l'URL ne contient
</span></span><span id="170" class="l"><a class="l" href="#170">170: </a><span class="php-comment"> * pas de &quot;@&quot; en face du nom d'hôte) ou si la partie infoUtilisateur ne contient pas de &quot;:&quot;.
</span></span><span id="171" class="l"><a class="l" href="#171">171: </a><span class="php-comment"> *
</span></span><span id="172" class="l"><a class="l" href="#172">172: </a><span class="php-comment"> * @return string|bool
</span></span><span id="173" class="l"><a class="l" href="#173">173: </a><span class="php-comment"> */</span>
</span><span id="174" class="l"><a class="l" href="#174">174: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_getMotDePasse" href="#_getMotDePasse">getMotDePasse</a>() {
</span><span id="175" class="l"><a class="l" href="#175">175: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>-&gt;infoUtilisateur !== <span class="php-keyword1">false</span> ? <span class="php-keyword2">substr</span>(<span class="php-keyword2">strstr</span>(<span class="php-var">$this</span>-&gt;infoUtilisateur, <span class="php-quote">':'</span>), <span class="php-num">1</span>) : <span class="php-keyword1">false</span>;
</span><span id="176" class="l"><a class="l" href="#176">176: </a> }
</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">/**
</span></span><span id="179" class="l"><a class="l" href="#179">179: </a><span class="php-comment"> * Renvoie la partie userinfio, ou false si celle-ci n'existe pas, i.e. si la partie
</span></span><span id="180" class="l"><a class="l" href="#180">180: </a><span class="php-comment"> * autorité ne contient pas de &quot;@&quot;
</span></span><span id="181" class="l"><a class="l" href="#181">181: </a><span class="php-comment"> *
</span></span><span id="182" class="l"><a class="l" href="#182">182: </a><span class="php-comment"> * @return string|bool
</span></span><span id="183" class="l"><a class="l" href="#183">183: </a><span class="php-comment"> */</span>
</span><span id="184" class="l"><a class="l" href="#184">184: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_getInfoUtilisateur" href="#_getInfoUtilisateur">getInfoUtilisateur</a>() {
</span><span id="185" class="l"><a class="l" href="#185">185: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>-&gt;infoUtilisateur;
</span><span id="186" class="l"><a class="l" href="#186">186: </a> }
</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">/**
</span></span><span id="189" class="l"><a class="l" href="#189">189: </a><span class="php-comment"> * Setteur pour la partie infoUtilisateur. Si deux argument sont passé, ils sont combinés
</span></span><span id="190" class="l"><a class="l" href="#190">190: </a><span class="php-comment"> * dans la partie infoUtilisateur de cette manière username &quot;:&quot; password.
</span></span><span id="191" class="l"><a class="l" href="#191">191: </a><span class="php-comment"> *
</span></span><span id="192" class="l"><a class="l" href="#192">192: </a><span class="php-comment"> * @param string|bool $infoUtilisateur infoUtilisateur ou username
</span></span><span id="193" class="l"><a class="l" href="#193">193: </a><span class="php-comment"> * @param string|bool $motDePasse
</span></span><span id="194" class="l"><a class="l" href="#194">194: </a><span class="php-comment"> *
</span></span><span id="195" class="l"><a class="l" href="#195">195: </a><span class="php-comment"> * @return void
</span></span><span id="196" class="l"><a class="l" href="#196">196: </a><span class="php-comment"> */</span>
</span><span id="197" class="l"><a class="l" href="#197">197: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_setInfoUtilisateur" href="#_setInfoUtilisateur">setInfoUtilisateur</a>(<span class="php-var">$infoUtilisateur</span>, <span class="php-var">$motDePasse</span> = <span class="php-keyword1">false</span>) {
</span><span id="198" class="l"><a class="l" href="#198">198: </a> <span class="php-var">$this</span>-&gt;infoUtilisateur = <span class="php-var">$infoUtilisateur</span>;
</span><span id="199" class="l"><a class="l" href="#199">199: </a> <span class="php-keyword1">if</span> (<span class="php-var">$motDePasse</span> !== <span class="php-keyword1">false</span>) {
</span><span id="200" class="l"><a class="l" href="#200">200: </a> <span class="php-var">$this</span>-&gt;infoUtilisateur .= <span class="php-quote">':'</span> . <span class="php-var">$motDePasse</span>;
</span><span id="201" class="l"><a class="l" href="#201">201: </a> }
</span><span id="202" class="l"><a class="l" href="#202">202: </a> }
</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-comment">/**
</span></span><span id="205" class="l"><a class="l" href="#205">205: </a><span class="php-comment"> * Renvoie la partie hôte, ou false s'il n'y a pas de partie autorité, c.a.d.
</span></span><span id="206" class="l"><a class="l" href="#206">206: </a><span class="php-comment"> * l'URL est relative.
</span></span><span id="207" class="l"><a class="l" href="#207">207: </a><span class="php-comment"> *
</span></span><span id="208" class="l"><a class="l" href="#208">208: </a><span class="php-comment"> * @return string|bool
</span></span><span id="209" class="l"><a class="l" href="#209">209: </a><span class="php-comment"> */</span>
</span><span id="210" class="l"><a class="l" href="#210">210: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_getHote" href="#_getHote">getHote</a>() {
</span><span id="211" class="l"><a class="l" href="#211">211: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>-&gt;hote;
</span><span id="212" class="l"><a class="l" href="#212">212: </a> }
</span><span id="213" class="l"><a class="l" href="#213">213: </a>
</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-comment"> * @param string|bool $hote
</span></span><span id="216" class="l"><a class="l" href="#216">216: </a><span class="php-comment"> *
</span></span><span id="217" class="l"><a class="l" href="#217">217: </a><span class="php-comment"> * @return void
</span></span><span id="218" class="l"><a class="l" href="#218">218: </a><span class="php-comment"> */</span>
</span><span id="219" class="l"><a class="l" href="#219">219: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_setHote" href="#_setHote">setHote</a>(<span class="php-var">$hote</span>) {
</span><span id="220" class="l"><a class="l" href="#220">220: </a> <span class="php-var">$this</span>-&gt;hote = <span class="php-var">$hote</span>;
</span><span id="221" class="l"><a class="l" href="#221">221: </a> }
</span><span id="222" class="l"><a class="l" href="#222">222: </a>
</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-comment"> * Renvoie le numéro de port, ou false si aucun numéro de port n'est spécifié,
</span></span><span id="225" class="l"><a class="l" href="#225">225: </a><span class="php-comment"> * i.e. le port par défaut doit utilisé.
</span></span><span id="226" class="l"><a class="l" href="#226">226: </a><span class="php-comment"> *
</span></span><span id="227" class="l"><a class="l" href="#227">227: </a><span class="php-comment"> * @return int|bool
</span></span><span id="228" class="l"><a class="l" href="#228">228: </a><span class="php-comment"> */</span>
</span><span id="229" class="l"><a class="l" href="#229">229: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_getPort" href="#_getPort">getPort</a>() {
</span><span id="230" class="l"><a class="l" href="#230">230: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>-&gt;port;
</span><span id="231" class="l"><a class="l" href="#231">231: </a> }
</span><span id="232" class="l"><a class="l" href="#232">232: </a>
</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-comment"> * @param int|bool $port
</span></span><span id="235" class="l"><a class="l" href="#235">235: </a><span class="php-comment"> *
</span></span><span id="236" class="l"><a class="l" href="#236">236: </a><span class="php-comment"> * @return void
</span></span><span id="237" class="l"><a class="l" href="#237">237: </a><span class="php-comment"> */</span>
</span><span id="238" class="l"><a class="l" href="#238">238: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_setPort" href="#_setPort">setPort</a>(<span class="php-var">$port</span>) {
</span><span id="239" class="l"><a class="l" href="#239">239: </a> <span class="php-var">$this</span>-&gt;port = <span class="php-keyword2">intval</span>(<span class="php-var">$port</span>);
</span><span id="240" class="l"><a class="l" href="#240">240: </a> }
</span><span id="241" class="l"><a class="l" href="#241">241: </a>
</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-comment"> * Renvoie la partie autorité, i.e. [ infoUtilisateur &quot;@&quot; ] hote [ &quot;:&quot; port ], ou
</span></span><span id="244" class="l"><a class="l" href="#244">244: </a><span class="php-comment"> * false si celle-ci est absente.
</span></span><span id="245" class="l"><a class="l" href="#245">245: </a><span class="php-comment"> *
</span></span><span id="246" class="l"><a class="l" href="#246">246: </a><span class="php-comment"> * @return string|bool
</span></span><span id="247" class="l"><a class="l" href="#247">247: </a><span class="php-comment"> */</span>
</span><span id="248" class="l"><a class="l" href="#248">248: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_getAutorite" href="#_getAutorite">getAutorite</a>() {
</span><span id="249" class="l"><a class="l" href="#249">249: </a> <span class="php-keyword1">if</span> (!<span class="php-var">$this</span>-&gt;hote) {
</span><span id="250" class="l"><a class="l" href="#250">250: </a> <span class="php-keyword1">return</span> <span class="php-keyword1">false</span>;
</span><span id="251" class="l"><a class="l" href="#251">251: </a> }
</span><span id="252" class="l"><a class="l" href="#252">252: </a>
</span><span id="253" class="l"><a class="l" href="#253">253: </a> <span class="php-var">$autorite</span> = <span class="php-quote">''</span>;
</span><span id="254" class="l"><a class="l" href="#254">254: </a>
</span><span id="255" class="l"><a class="l" href="#255">255: </a> <span class="php-keyword1">if</span> (<span class="php-var">$this</span>-&gt;infoUtilisateur !== <span class="php-keyword1">false</span>) {
</span><span id="256" class="l"><a class="l" href="#256">256: </a> <span class="php-var">$autorite</span> .= <span class="php-var">$this</span>-&gt;infoUtilisateur . <span class="php-quote">'@'</span>;
</span><span id="257" class="l"><a class="l" href="#257">257: </a> }
</span><span id="258" class="l"><a class="l" href="#258">258: </a>
</span><span id="259" class="l"><a class="l" href="#259">259: </a> <span class="php-var">$autorite</span> .= <span class="php-var">$this</span>-&gt;hote;
</span><span id="260" class="l"><a class="l" href="#260">260: </a>
</span><span id="261" class="l"><a class="l" href="#261">261: </a> <span class="php-keyword1">if</span> (<span class="php-var">$this</span>-&gt;port !== <span class="php-keyword1">false</span>) {
</span><span id="262" class="l"><a class="l" href="#262">262: </a> <span class="php-var">$autorite</span> .= <span class="php-quote">':'</span> . <span class="php-var">$this</span>-&gt;port;
</span><span id="263" class="l"><a class="l" href="#263">263: </a> }
</span><span id="264" class="l"><a class="l" href="#264">264: </a>
</span><span id="265" class="l"><a class="l" href="#265">265: </a> <span class="php-keyword1">return</span> <span class="php-var">$autorite</span>;
</span><span id="266" class="l"><a class="l" href="#266">266: </a> }
</span><span id="267" class="l"><a class="l" href="#267">267: </a>
</span><span id="268" class="l"><a class="l" href="#268">268: </a> <span class="php-comment">/**
</span></span><span id="269" class="l"><a class="l" href="#269">269: </a><span class="php-comment"> * @param string|false $autorite
</span></span><span id="270" class="l"><a class="l" href="#270">270: </a><span class="php-comment"> *
</span></span><span id="271" class="l"><a class="l" href="#271">271: </a><span class="php-comment"> * @return void
</span></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-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_setAutorite" href="#_setAutorite">setAutorite</a>(<span class="php-var">$autorite</span>) {
</span><span id="274" class="l"><a class="l" href="#274">274: </a> <span class="php-var">$this</span>-&gt;user = <span class="php-keyword1">false</span>;
</span><span id="275" class="l"><a class="l" href="#275">275: </a> <span class="php-var">$this</span>-&gt;pass = <span class="php-keyword1">false</span>;
</span><span id="276" class="l"><a class="l" href="#276">276: </a> <span class="php-var">$this</span>-&gt;hote = <span class="php-keyword1">false</span>;
</span><span id="277" class="l"><a class="l" href="#277">277: </a> <span class="php-var">$this</span>-&gt;port = <span class="php-keyword1">false</span>;
</span><span id="278" class="l"><a class="l" href="#278">278: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">preg_match</span>(<span class="php-quote">'@^(([^\@]+)\@)?([^:]+)(:(\d*))?$@'</span>, <span class="php-var">$autorite</span>, <span class="php-var">$reg</span>)) {
</span><span id="279" class="l"><a class="l" href="#279">279: </a> <span class="php-keyword1">if</span> (<span class="php-var">$reg</span>[<span class="php-num">1</span>]) {
</span><span id="280" class="l"><a class="l" href="#280">280: </a> <span class="php-var">$this</span>-&gt;infoUtilisateur = <span class="php-var">$reg</span>[<span class="php-num">2</span>];
</span><span id="281" class="l"><a class="l" href="#281">281: </a> }
</span><span id="282" class="l"><a class="l" href="#282">282: </a>
</span><span id="283" class="l"><a class="l" href="#283">283: </a> <span class="php-var">$this</span>-&gt;hote = <span class="php-var">$reg</span>[<span class="php-num">3</span>];
</span><span id="284" class="l"><a class="l" href="#284">284: </a> <span class="php-keyword1">if</span> (<span class="php-keyword1">isset</span>(<span class="php-var">$reg</span>[<span class="php-num">5</span>])) {
</span><span id="285" class="l"><a class="l" href="#285">285: </a> <span class="php-var">$this</span>-&gt;port = <span class="php-keyword2">intval</span>(<span class="php-var">$reg</span>[<span class="php-num">5</span>]);
</span><span id="286" class="l"><a class="l" href="#286">286: </a> }
</span><span id="287" class="l"><a class="l" href="#287">287: </a> }
</span><span id="288" class="l"><a class="l" href="#288">288: </a> }
</span><span id="289" class="l"><a class="l" href="#289">289: </a>
</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-comment"> * Renvoie la partie chemin (chemin) (éventuellement vide).
</span></span><span id="292" class="l"><a class="l" href="#292">292: </a><span class="php-comment"> *
</span></span><span id="293" class="l"><a class="l" href="#293">293: </a><span class="php-comment"> * @return string
</span></span><span id="294" class="l"><a class="l" href="#294">294: </a><span class="php-comment"> */</span>
</span><span id="295" class="l"><a class="l" href="#295">295: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_getChemin" href="#_getChemin">getChemin</a>() {
</span><span id="296" class="l"><a class="l" href="#296">296: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>-&gt;chemin;
</span><span id="297" class="l"><a class="l" href="#297">297: </a> }
</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-comment">/**
</span></span><span id="300" class="l"><a class="l" href="#300">300: </a><span class="php-comment"> * @param string $chemin
</span></span><span id="301" class="l"><a class="l" href="#301">301: </a><span class="php-comment"> *
</span></span><span id="302" class="l"><a class="l" href="#302">302: </a><span class="php-comment"> * @return void
</span></span><span id="303" class="l"><a class="l" href="#303">303: </a><span class="php-comment"> */</span>
</span><span id="304" class="l"><a class="l" href="#304">304: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_setChemin" href="#_setChemin">setChemin</a>(<span class="php-var">$chemin</span>) {
</span><span id="305" class="l"><a class="l" href="#305">305: </a> <span class="php-var">$this</span>-&gt;chemin = <span class="php-var">$chemin</span>;
</span><span id="306" class="l"><a class="l" href="#306">306: </a> }
</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"> * renvoie la chaine de requête (requete string) (sans le premier &quot;?&quot;), ou false si &quot;?&quot;
</span></span><span id="310" class="l"><a class="l" href="#310">310: </a><span class="php-comment"> * n'est pas présent dans l'url.
</span></span><span id="311" class="l"><a class="l" href="#311">311: </a><span class="php-comment"> *
</span></span><span id="312" class="l"><a class="l" href="#312">312: </a><span class="php-comment"> * @return string|bool
</span></span><span id="313" class="l"><a class="l" href="#313">313: </a><span class="php-comment"> * @see self::getVariablesRequete()
</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-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_getRequete" href="#_getRequete">getRequete</a>() {
</span><span id="316" class="l"><a class="l" href="#316">316: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>-&gt;requete;
</span><span id="317" class="l"><a class="l" href="#317">317: </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-comment">/**
</span></span><span id="320" class="l"><a class="l" href="#320">320: </a><span class="php-comment"> * @param string|bool $requete
</span></span><span id="321" class="l"><a class="l" href="#321">321: </a><span class="php-comment"> *
</span></span><span id="322" class="l"><a class="l" href="#322">322: </a><span class="php-comment"> * @return void
</span></span><span id="323" class="l"><a class="l" href="#323">323: </a><span class="php-comment"> * @see self::setVariablesRequete()
</span></span><span id="324" class="l"><a class="l" href="#324">324: </a><span class="php-comment"> */</span>
</span><span id="325" class="l"><a class="l" href="#325">325: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_setRequete" href="#_setRequete">setRequete</a>(<span class="php-var">$requete</span>) {
</span><span id="326" class="l"><a class="l" href="#326">326: </a> <span class="php-var">$this</span>-&gt;requete = <span class="php-var">$requete</span>;
</span><span id="327" class="l"><a class="l" href="#327">327: </a> }
</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 class="php-comment">/**
</span></span><span id="330" class="l"><a class="l" href="#330">330: </a><span class="php-comment"> * Renvoie le nom du fragment, ou false si &quot;#&quot; n'est pas present dans l'URL.
</span></span><span id="331" class="l"><a class="l" href="#331">331: </a><span class="php-comment"> *
</span></span><span id="332" class="l"><a class="l" href="#332">332: </a><span class="php-comment"> * @return string|bool
</span></span><span id="333" class="l"><a class="l" href="#333">333: </a><span class="php-comment"> */</span>
</span><span id="334" class="l"><a class="l" href="#334">334: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_getFragment" href="#_getFragment">getFragment</a>() {
</span><span id="335" class="l"><a class="l" href="#335">335: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>-&gt;fragment;
</span><span id="336" class="l"><a class="l" href="#336">336: </a> }
</span><span id="337" class="l"><a class="l" href="#337">337: </a>
</span><span id="338" class="l"><a class="l" href="#338">338: </a> <span class="php-comment">/**
</span></span><span id="339" class="l"><a class="l" href="#339">339: </a><span class="php-comment"> * @param string|bool $fragment
</span></span><span id="340" class="l"><a class="l" href="#340">340: </a><span class="php-comment"> *
</span></span><span id="341" class="l"><a class="l" href="#341">341: </a><span class="php-comment"> * @return void
</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-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_setFragment" href="#_setFragment">setFragment</a>(<span class="php-var">$fragment</span>) {
</span><span id="344" class="l"><a class="l" href="#344">344: </a> <span class="php-var">$this</span>-&gt;fragment = <span class="php-var">$fragment</span>;
</span><span id="345" class="l"><a class="l" href="#345">345: </a> }
</span><span id="346" class="l"><a class="l" href="#346">346: </a>
</span><span id="347" class="l"><a class="l" href="#347">347: </a> <span class="php-comment">/**
</span></span><span id="348" class="l"><a class="l" href="#348">348: </a><span class="php-comment"> * Renvoie la requete string sous forme d'un tableau de variables telles qu'elles apparaitraient
</span></span><span id="349" class="l"><a class="l" href="#349">349: </a><span class="php-comment"> * dans le $_GET d'un script PHP
</span></span><span id="350" class="l"><a class="l" href="#350">350: </a><span class="php-comment"> *
</span></span><span id="351" class="l"><a class="l" href="#351">351: </a><span class="php-comment"> * @return array
</span></span><span id="352" class="l"><a class="l" href="#352">352: </a><span class="php-comment"> */</span>
</span><span id="353" class="l"><a class="l" href="#353">353: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_getVariablesRequete" href="#_getVariablesRequete">getVariablesRequete</a>() {
</span><span id="354" class="l"><a class="l" href="#354">354: </a> <span class="php-var">$pattern</span> = <span class="php-quote">'/'</span> .
</span><span id="355" class="l"><a class="l" href="#355">355: </a> <span class="php-keyword2">preg_quote</span>(<span class="php-var">$this</span>-&gt;getOption(self::OPTION_SEPARATEUR_ENTREE), <span class="php-quote">'/'</span>) .
</span><span id="356" class="l"><a class="l" href="#356">356: </a> <span class="php-quote">'/'</span>;
</span><span id="357" class="l"><a class="l" href="#357">357: </a> <span class="php-var">$parties</span> = <span class="php-keyword2">preg_split</span>(<span class="php-var">$pattern</span>, <span class="php-var">$this</span>-&gt;requete, -<span class="php-num">1</span>, PREG_SPLIT_NO_EMPTY);
</span><span id="358" class="l"><a class="l" href="#358">358: </a> <span class="php-var">$retour</span> = <span class="php-keyword1">array</span>();
</span><span id="359" class="l"><a class="l" href="#359">359: </a>
</span><span id="360" class="l"><a class="l" href="#360">360: </a> <span class="php-keyword1">foreach</span> (<span class="php-var">$parties</span> <span class="php-keyword1">as</span> <span class="php-var">$partie</span>) {
</span><span id="361" class="l"><a class="l" href="#361">361: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">strpos</span>(<span class="php-var">$partie</span>, <span class="php-quote">'='</span>) !== <span class="php-keyword1">false</span>) {
</span><span id="362" class="l"><a class="l" href="#362">362: </a> <span class="php-keyword1">list</span>(<span class="php-var">$cle</span>, <span class="php-var">$valeur</span>) = <span class="php-keyword2">explode</span>(<span class="php-quote">'='</span>, <span class="php-var">$partie</span>, <span class="php-num">2</span>);
</span><span id="363" class="l"><a class="l" href="#363">363: </a> } <span class="php-keyword1">else</span> {
</span><span id="364" class="l"><a class="l" href="#364">364: </a> <span class="php-var">$cle</span> = <span class="php-var">$partie</span>;
</span><span id="365" class="l"><a class="l" href="#365">365: </a> <span class="php-var">$valeur</span> = <span class="php-keyword1">null</span>;
</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><span id="368" class="l"><a class="l" href="#368">368: </a> <span class="php-keyword1">if</span> (<span class="php-var">$this</span>-&gt;getOption(self::OPTION_ENCODER_CLES)) {
</span><span id="369" class="l"><a class="l" href="#369">369: </a> <span class="php-var">$cle</span> = <span class="php-keyword2">rawurldecode</span>(<span class="php-var">$cle</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-var">$valeur</span> = <span class="php-keyword2">rawurldecode</span>(<span class="php-var">$valeur</span>);
</span><span id="372" class="l"><a class="l" href="#372">372: </a>
</span><span id="373" class="l"><a class="l" href="#373">373: </a> <span class="php-keyword1">if</span> (<span class="php-var">$this</span>-&gt;getOption(self::OPTION_UTILISER_CROCHETS) &amp;&amp;
</span><span id="374" class="l"><a class="l" href="#374">374: </a> <span class="php-keyword2">preg_match</span>(<span class="php-quote">'#^(.*)\[([0-9a-z_-]*)\]#i'</span>, <span class="php-var">$cle</span>, <span class="php-var">$matches</span>)) {
</span><span id="375" class="l"><a class="l" href="#375">375: </a>
</span><span id="376" class="l"><a class="l" href="#376">376: </a> <span class="php-var">$cle</span> = <span class="php-var">$matches</span>[<span class="php-num">1</span>];
</span><span id="377" class="l"><a class="l" href="#377">377: </a> <span class="php-var">$idx</span> = <span class="php-var">$matches</span>[<span class="php-num">2</span>];
</span><span id="378" class="l"><a class="l" href="#378">378: </a>
</span><span id="379" class="l"><a class="l" href="#379">379: </a> <span class="php-comment">// On s'assure que c'est bien un tableau</span>
</span><span id="380" class="l"><a class="l" href="#380">380: </a> <span class="php-keyword1">if</span> (<span class="php-keyword1">empty</span>(<span class="php-var">$retour</span>[<span class="php-var">$cle</span>]) || !<span class="php-keyword2">is_array</span>(<span class="php-var">$retour</span>[<span class="php-var">$cle</span>])) {
</span><span id="381" class="l"><a class="l" href="#381">381: </a> <span class="php-var">$retour</span>[<span class="php-var">$cle</span>] = <span class="php-keyword1">array</span>();
</span><span id="382" class="l"><a class="l" href="#382">382: </a> }
</span><span id="383" class="l"><a class="l" href="#383">383: </a>
</span><span id="384" class="l"><a class="l" href="#384">384: </a> <span class="php-comment">// Ajout des données</span>
</span><span id="385" class="l"><a class="l" href="#385">385: </a> <span class="php-keyword1">if</span> (<span class="php-var">$idx</span> === <span class="php-quote">''</span>) {
</span><span id="386" class="l"><a class="l" href="#386">386: </a> <span class="php-var">$retour</span>[<span class="php-var">$cle</span>][] = <span class="php-var">$valeur</span>;
</span><span id="387" class="l"><a class="l" href="#387">387: </a> } <span class="php-keyword1">else</span> {
</span><span id="388" class="l"><a class="l" href="#388">388: </a> <span class="php-var">$retour</span>[<span class="php-var">$cle</span>][<span class="php-var">$idx</span>] = <span class="php-var">$valeur</span>;
</span><span id="389" class="l"><a class="l" href="#389">389: </a> }
</span><span id="390" class="l"><a class="l" href="#390">390: </a> } <span class="php-keyword1">elseif</span> (!<span class="php-var">$this</span>-&gt;getOption(self::OPTION_UTILISER_CROCHETS)
</span><span id="391" class="l"><a class="l" href="#391">391: </a> &amp;&amp; !<span class="php-keyword1">empty</span>(<span class="php-var">$retour</span>[<span class="php-var">$cle</span>])
</span><span id="392" class="l"><a class="l" href="#392">392: </a> ) {
</span><span id="393" class="l"><a class="l" href="#393">393: </a> <span class="php-var">$retour</span>[<span class="php-var">$cle</span>] = (<span class="php-keyword1">array</span>) <span class="php-var">$retour</span>[<span class="php-var">$cle</span>];
</span><span id="394" class="l"><a class="l" href="#394">394: </a> <span class="php-var">$retour</span>[<span class="php-var">$cle</span>][] = <span class="php-var">$valeur</span>;
</span><span id="395" class="l"><a class="l" href="#395">395: </a> } <span class="php-keyword1">else</span> {
</span><span id="396" class="l"><a class="l" href="#396">396: </a> <span class="php-var">$retour</span>[<span class="php-var">$cle</span>] = <span class="php-var">$valeur</span>;
</span><span id="397" class="l"><a class="l" href="#397">397: </a> }
</span><span id="398" class="l"><a class="l" href="#398">398: </a> }
</span><span id="399" class="l"><a class="l" href="#399">399: </a>
</span><span id="400" class="l"><a class="l" href="#400">400: </a> <span class="php-keyword1">return</span> <span class="php-var">$retour</span>;
</span><span id="401" class="l"><a class="l" href="#401">401: </a> }
</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-comment">/**
</span></span><span id="404" class="l"><a class="l" href="#404">404: </a><span class="php-comment"> * @param array $tableau (nom =&gt; valeur) tableau
</span></span><span id="405" class="l"><a class="l" href="#405">405: </a><span class="php-comment"> *
</span></span><span id="406" class="l"><a class="l" href="#406">406: </a><span class="php-comment"> * @return void
</span></span><span id="407" class="l"><a class="l" href="#407">407: </a><span class="php-comment"> */</span>
</span><span id="408" class="l"><a class="l" href="#408">408: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_setVariablesRequete" href="#_setVariablesRequete">setVariablesRequete</a>(<span class="php-keyword1">array</span> <span class="php-var">$tableau</span>) {
</span><span id="409" class="l"><a class="l" href="#409">409: </a> <span class="php-keyword1">if</span> (!<span class="php-var">$tableau</span>) {
</span><span id="410" class="l"><a class="l" href="#410">410: </a> <span class="php-var">$this</span>-&gt;requete = <span class="php-keyword1">false</span>;
</span><span id="411" class="l"><a class="l" href="#411">411: </a> } <span class="php-keyword1">else</span> {
</span><span id="412" class="l"><a class="l" href="#412">412: </a> <span class="php-keyword1">foreach</span> (<span class="php-var">$tableau</span> <span class="php-keyword1">as</span> <span class="php-var">$nom</span> =&gt; <span class="php-var">$valeur</span>) {
</span><span id="413" class="l"><a class="l" href="#413">413: </a> <span class="php-keyword1">if</span> (<span class="php-var">$this</span>-&gt;getOption(self::OPTION_ENCODER_CLES)) {
</span><span id="414" class="l"><a class="l" href="#414">414: </a> <span class="php-var">$nom</span> = <span class="php-keyword2">rawurlencode</span>(<span class="php-var">$nom</span>);
</span><span id="415" class="l"><a class="l" href="#415">415: </a> }
</span><span id="416" class="l"><a class="l" href="#416">416: </a>
</span><span id="417" class="l"><a class="l" href="#417">417: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">is_array</span>(<span class="php-var">$valeur</span>)) {
</span><span id="418" class="l"><a class="l" href="#418">418: </a> <span class="php-keyword1">foreach</span> (<span class="php-var">$valeur</span> <span class="php-keyword1">as</span> <span class="php-var">$k</span> =&gt; <span class="php-var">$v</span>) {
</span><span id="419" class="l"><a class="l" href="#419">419: </a> <span class="php-var">$parties</span>[] = <span class="php-var">$this</span>-&gt;getOption(self::OPTION_UTILISER_CROCHETS)
</span><span id="420" class="l"><a class="l" href="#420">420: </a> ? <span class="php-keyword2">sprintf</span>(<span class="php-quote">'%s[%s]=%s'</span>, <span class="php-var">$nom</span>, <span class="php-var">$k</span>, <span class="php-var">$v</span>)
</span><span id="421" class="l"><a class="l" href="#421">421: </a> : (<span class="php-var">$nom</span> . <span class="php-quote">'='</span> . <span class="php-var">$v</span>);
</span><span id="422" class="l"><a class="l" href="#422">422: </a> }
</span><span id="423" class="l"><a class="l" href="#423">423: </a> } <span class="php-keyword1">elseif</span> (!<span class="php-keyword2">is_null</span>(<span class="php-var">$valeur</span>)) {
</span><span id="424" class="l"><a class="l" href="#424">424: </a> <span class="php-var">$parties</span>[] = <span class="php-var">$nom</span> . <span class="php-quote">'='</span> . <span class="php-var">$valeur</span>;
</span><span id="425" class="l"><a class="l" href="#425">425: </a> } <span class="php-keyword1">else</span> {
</span><span id="426" class="l"><a class="l" href="#426">426: </a> <span class="php-var">$parties</span>[] = <span class="php-var">$nom</span>;
</span><span id="427" class="l"><a class="l" href="#427">427: </a> }
</span><span id="428" class="l"><a class="l" href="#428">428: </a> }
</span><span id="429" class="l"><a class="l" href="#429">429: </a> <span class="php-var">$this</span>-&gt;requete = <span class="php-keyword2">implode</span>(<span class="php-var">$this</span>-&gt;getOption(self::OPTION_SEPARATEUR_SORTIE),
</span><span id="430" class="l"><a class="l" href="#430">430: </a> <span class="php-var">$parties</span>);
</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><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-comment">/**
</span></span><span id="435" class="l"><a class="l" href="#435">435: </a><span class="php-comment"> * @param string $nom
</span></span><span id="436" class="l"><a class="l" href="#436">436: </a><span class="php-comment"> * @param mixed $valeur
</span></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"> * @return array
</span></span><span id="439" class="l"><a class="l" href="#439">439: </a><span class="php-comment"> */</span>
</span><span id="440" class="l"><a class="l" href="#440">440: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_setVariableRequete" href="#_setVariableRequete">setVariableRequete</a>(<span class="php-var">$nom</span>, <span class="php-var">$valeur</span>) {
</span><span id="441" class="l"><a class="l" href="#441">441: </a> <span class="php-var">$tableau</span> = <span class="php-var">$this</span>-&gt;getVariablesRequete();
</span><span id="442" class="l"><a class="l" href="#442">442: </a> <span class="php-var">$tableau</span>[<span class="php-var">$nom</span>] = <span class="php-var">$valeur</span>;
</span><span id="443" class="l"><a class="l" href="#443">443: </a> <span class="php-var">$this</span>-&gt;setVariablesRequete(<span class="php-var">$tableau</span>);
</span><span id="444" class="l"><a class="l" href="#444">444: </a> }
</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-comment">/**
</span></span><span id="447" class="l"><a class="l" href="#447">447: </a><span class="php-comment"> * @param string $nom
</span></span><span id="448" class="l"><a class="l" href="#448">448: </a><span class="php-comment"> *
</span></span><span id="449" class="l"><a class="l" href="#449">449: </a><span class="php-comment"> * @return void
</span></span><span id="450" class="l"><a class="l" href="#450">450: </a><span class="php-comment"> */</span>
</span><span id="451" class="l"><a class="l" href="#451">451: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_unsetVariableRequete" href="#_unsetVariableRequete">unsetVariableRequete</a>(<span class="php-var">$nom</span>) {
</span><span id="452" class="l"><a class="l" href="#452">452: </a> <span class="php-var">$tableau</span> = <span class="php-var">$this</span>-&gt;getVariablesRequete();
</span><span id="453" class="l"><a class="l" href="#453">453: </a> <span class="php-keyword1">unset</span>(<span class="php-var">$tableau</span>[<span class="php-var">$nom</span>]);
</span><span id="454" class="l"><a class="l" href="#454">454: </a> <span class="php-var">$this</span>-&gt;setVariablesRequete(<span class="php-var">$tableau</span>);
</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><span id="457" class="l"><a class="l" href="#457">457: </a> <span class="php-comment">/**
</span></span><span id="458" class="l"><a class="l" href="#458">458: </a><span class="php-comment"> * @param array $noms tableau des noms de variable à supprimer de l'url.
</span></span><span id="459" class="l"><a class="l" href="#459">459: </a><span class="php-comment"> *
</span></span><span id="460" class="l"><a class="l" href="#460">460: </a><span class="php-comment"> * @return void
</span></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-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_unsetVariablesRequete" href="#_unsetVariablesRequete">unsetVariablesRequete</a>(<span class="php-var">$noms</span>) {
</span><span id="463" class="l"><a class="l" href="#463">463: </a> <span class="php-var">$tableau</span> = <span class="php-var">$this</span>-&gt;getVariablesRequete();
</span><span id="464" class="l"><a class="l" href="#464">464: </a> <span class="php-keyword1">foreach</span> (<span class="php-var">$noms</span> <span class="php-keyword1">as</span> <span class="php-var">$nom</span>) {
</span><span id="465" class="l"><a class="l" href="#465">465: </a> <span class="php-keyword1">unset</span>(<span class="php-var">$tableau</span>[<span class="php-var">$nom</span>]);
</span><span id="466" class="l"><a class="l" href="#466">466: </a> }
</span><span id="467" class="l"><a class="l" href="#467">467: </a> <span class="php-var">$this</span>-&gt;setVariablesRequete(<span class="php-var">$tableau</span>);
</span><span id="468" class="l"><a class="l" href="#468">468: </a> }
</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-comment">/**
</span></span><span id="471" class="l"><a class="l" href="#471">471: </a><span class="php-comment"> * Renvoie un représentation sous forme de chaine de l'URL
</span></span><span id="472" class="l"><a class="l" href="#472">472: </a><span class="php-comment"> *
</span></span><span id="473" class="l"><a class="l" href="#473">473: </a><span class="php-comment"> * @return string
</span></span><span id="474" class="l"><a class="l" href="#474">474: </a><span class="php-comment"> */</span>
</span><span id="475" class="l"><a class="l" href="#475">475: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_getURL" href="#_getURL">getURL</a>() {
</span><span id="476" class="l"><a class="l" href="#476">476: </a> <span class="php-comment">// Voir RFC 3986, section 5.3</span>
</span><span id="477" class="l"><a class="l" href="#477">477: </a> <span class="php-var">$url</span> = <span class="php-quote">&quot;&quot;</span>;
</span><span id="478" class="l"><a class="l" href="#478">478: </a>
</span><span id="479" class="l"><a class="l" href="#479">479: </a> <span class="php-keyword1">if</span> (<span class="php-var">$this</span>-&gt;schema !== <span class="php-keyword1">false</span>) {
</span><span id="480" class="l"><a class="l" href="#480">480: </a> <span class="php-var">$url</span> .= <span class="php-var">$this</span>-&gt;schema . <span class="php-quote">':'</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><span id="483" class="l"><a class="l" href="#483">483: </a> <span class="php-var">$autorite</span> = <span class="php-var">$this</span>-&gt;getAutorite();
</span><span id="484" class="l"><a class="l" href="#484">484: </a> <span class="php-keyword1">if</span> (<span class="php-var">$autorite</span> !== <span class="php-keyword1">false</span>) {
</span><span id="485" class="l"><a class="l" href="#485">485: </a> <span class="php-var">$url</span> .= <span class="php-quote">'//'</span> . <span class="php-var">$autorite</span>;
</span><span id="486" class="l"><a class="l" href="#486">486: </a> }
</span><span id="487" class="l"><a class="l" href="#487">487: </a> <span class="php-var">$url</span> .= <span class="php-var">$this</span>-&gt;chemin;
</span><span id="488" class="l"><a class="l" href="#488">488: </a>
</span><span id="489" class="l"><a class="l" href="#489">489: </a> <span class="php-keyword1">if</span> (<span class="php-var">$this</span>-&gt;requete !== <span class="php-keyword1">false</span>) {
</span><span id="490" class="l"><a class="l" href="#490">490: </a> <span class="php-var">$url</span> .= <span class="php-quote">'?'</span> . <span class="php-var">$this</span>-&gt;requete;
</span><span id="491" class="l"><a class="l" href="#491">491: </a> }
</span><span id="492" class="l"><a class="l" href="#492">492: </a>
</span><span id="493" class="l"><a class="l" href="#493">493: </a> <span class="php-keyword1">if</span> (<span class="php-var">$this</span>-&gt;fragment !== <span class="php-keyword1">false</span>) {
</span><span id="494" class="l"><a class="l" href="#494">494: </a> <span class="php-var">$url</span> .= <span class="php-quote">'#'</span> . <span class="php-var">$this</span>-&gt;fragment;
</span><span id="495" class="l"><a class="l" href="#495">495: </a> }
</span><span id="496" class="l"><a class="l" href="#496">496: </a>
</span><span id="497" class="l"><a class="l" href="#497">497: </a> <span class="php-keyword1">return</span> <span class="php-var">$url</span>;
</span><span id="498" class="l"><a class="l" href="#498">498: </a> }
</span><span id="499" class="l"><a class="l" href="#499">499: </a>
</span><span id="500" class="l"><a class="l" href="#500">500: </a> <span class="php-comment">/**
</span></span><span id="501" class="l"><a class="l" href="#501">501: </a><span class="php-comment"> * Renvoie une représentation de cette URL sous forme de chaine normalisée. Utile pour la
</span></span><span id="502" class="l"><a class="l" href="#502">502: </a><span class="php-comment"> * comparaison d'URLs
</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"> * @return string
</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="_getURLNormalisee" href="#_getURLNormalisee">getURLNormalisee</a>() {
</span><span id="507" class="l"><a class="l" href="#507">507: </a> <span class="php-var">$url</span> = <span class="php-keyword1">clone</span> <span class="php-var">$this</span>;
</span><span id="508" class="l"><a class="l" href="#508">508: </a> <span class="php-var">$url</span>-&gt;normaliser();
</span><span id="509" class="l"><a class="l" href="#509">509: </a> <span class="php-keyword1">return</span> <span class="php-var">$url</span>-&gt;getUrl();
</span><span id="510" class="l"><a class="l" href="#510">510: </a> }
</span><span id="511" class="l"><a class="l" href="#511">511: </a>
</span><span id="512" class="l"><a class="l" href="#512">512: </a> <span class="php-comment">/**
</span></span><span id="513" class="l"><a class="l" href="#513">513: </a><span class="php-comment"> * Renvoie une instance normalisée de Url
</span></span><span id="514" class="l"><a class="l" href="#514">514: </a><span class="php-comment"> *
</span></span><span id="515" class="l"><a class="l" href="#515">515: </a><span class="php-comment"> * @return Url
</span></span><span id="516" class="l"><a class="l" href="#516">516: </a><span class="php-comment"> */</span>
</span><span id="517" class="l"><a class="l" href="#517">517: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_normaliser" href="#_normaliser">normaliser</a>() {
</span><span id="518" class="l"><a class="l" href="#518">518: </a> <span class="php-comment">// See RFC 3886, section 6</span>
</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">// les cchémas sont insesibles à la casse</span>
</span><span id="521" class="l"><a class="l" href="#521">521: </a> <span class="php-keyword1">if</span> (<span class="php-var">$this</span>-&gt;schema) {
</span><span id="522" class="l"><a class="l" href="#522">522: </a> <span class="php-var">$this</span>-&gt;schema = <span class="php-keyword2">strtolower</span>(<span class="php-var">$this</span>-&gt;schema);
</span><span id="523" class="l"><a class="l" href="#523">523: </a> }
</span><span id="524" class="l"><a class="l" href="#524">524: </a>
</span><span id="525" class="l"><a class="l" href="#525">525: </a> <span class="php-comment">// les noms d'hotes sont insensibles à la casse</span>
</span><span id="526" class="l"><a class="l" href="#526">526: </a> <span class="php-keyword1">if</span> (<span class="php-var">$this</span>-&gt;hote) {
</span><span id="527" class="l"><a class="l" href="#527">527: </a> <span class="php-var">$this</span>-&gt;hote = <span class="php-keyword2">strtolower</span>(<span class="php-var">$this</span>-&gt;hote);
</span><span id="528" class="l"><a class="l" href="#528">528: </a> }
</span><span id="529" class="l"><a class="l" href="#529">529: </a>
</span><span id="530" class="l"><a class="l" href="#530">530: </a> <span class="php-comment">// Supprimer le numéro de port par défaut pour les schemas connus (RFC 3986, section 6.2.3)</span>
</span><span id="531" class="l"><a class="l" href="#531">531: </a> <span class="php-keyword1">if</span> (<span class="php-var">$this</span>-&gt;port &amp;&amp;
</span><span id="532" class="l"><a class="l" href="#532">532: </a> <span class="php-var">$this</span>-&gt;schema &amp;&amp;
</span><span id="533" class="l"><a class="l" href="#533">533: </a> <span class="php-var">$this</span>-&gt;port == <span class="php-keyword2">getservbyname</span>(<span class="php-var">$this</span>-&gt;schema, <span class="php-quote">'tcp'</span>)) {
</span><span id="534" class="l"><a class="l" href="#534">534: </a>
</span><span id="535" class="l"><a class="l" href="#535">535: </a> <span class="php-var">$this</span>-&gt;port = <span class="php-keyword1">false</span>;
</span><span id="536" class="l"><a class="l" href="#536">536: </a> }
</span><span id="537" class="l"><a class="l" href="#537">537: </a>
</span><span id="538" class="l"><a class="l" href="#538">538: </a> <span class="php-comment">// normalisation dans le cas d'un encodage avec %XX pourcentage (RFC 3986, section 6.2.2.1)</span>
</span><span id="539" class="l"><a class="l" href="#539">539: </a> <span class="php-keyword1">foreach</span> (<span class="php-keyword1">array</span>(<span class="php-quote">'infoUtilisateur'</span>, <span class="php-quote">'hote'</span>, <span class="php-quote">'chemin'</span>) <span class="php-keyword1">as</span> <span class="php-var">$partie</span>) {
</span><span id="540" class="l"><a class="l" href="#540">540: </a> <span class="php-keyword1">if</span> (<span class="php-var">$this</span>-&gt;<span class="php-var">$partie</span>) {
</span><span id="541" class="l"><a class="l" href="#541">541: </a> <span class="php-var">$this</span>-&gt;<span class="php-var">$partie</span> = <span class="php-keyword2">preg_replace</span>(<span class="php-quote">'/%[0-9a-f]{2}/ie'</span>, <span class="php-quote">'strtoupper(&quot;\0&quot;)'</span>, <span class="php-var">$this</span>-&gt;<span class="php-var">$partie</span>);
</span><span id="542" class="l"><a class="l" href="#542">542: </a> }
</span><span id="543" class="l"><a class="l" href="#543">543: </a> }
</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-comment">// normalisation des segments du chemin (RFC 3986, section 6.2.2.3)</span>
</span><span id="546" class="l"><a class="l" href="#546">546: </a> <span class="php-var">$this</span>-&gt;chemin = self::supprimerSegmentsAPoints(<span class="php-var">$this</span>-&gt;chemin);
</span><span id="547" class="l"><a class="l" href="#547">547: </a>
</span><span id="548" class="l"><a class="l" href="#548">548: </a> <span class="php-comment">// normalisation basée sur le schéma (RFC 3986, section 6.2.3)</span>
</span><span id="549" class="l"><a class="l" href="#549">549: </a> <span class="php-keyword1">if</span> (<span class="php-var">$this</span>-&gt;hote &amp;&amp; !<span class="php-var">$this</span>-&gt;chemin) {
</span><span id="550" class="l"><a class="l" href="#550">550: </a> <span class="php-var">$this</span>-&gt;chemin = <span class="php-quote">'/'</span>;
</span><span id="551" class="l"><a class="l" href="#551">551: </a> }
</span><span id="552" class="l"><a class="l" href="#552">552: </a> }
</span><span id="553" class="l"><a class="l" href="#553">553: </a>
</span><span id="554" class="l"><a class="l" href="#554">554: </a> <span class="php-comment">/**
</span></span><span id="555" class="l"><a class="l" href="#555">555: </a><span class="php-comment"> * Renvoie vrai ou faux suivant que l'instance en cours représente une URL relative ou absolue.
</span></span><span id="556" class="l"><a class="l" href="#556">556: </a><span class="php-comment"> *
</span></span><span id="557" class="l"><a class="l" href="#557">557: </a><span class="php-comment"> * @return bool
</span></span><span id="558" class="l"><a class="l" href="#558">558: </a><span class="php-comment"> */</span>
</span><span id="559" class="l"><a class="l" href="#559">559: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_etreAbsolue" href="#_etreAbsolue">etreAbsolue</a>() {
</span><span id="560" class="l"><a class="l" href="#560">560: </a> <span class="php-keyword1">return</span> (bool) <span class="php-var">$this</span>-&gt;schema;
</span><span id="561" class="l"><a class="l" href="#561">561: </a> }
</span><span id="562" class="l"><a class="l" href="#562">562: </a>
</span><span id="563" class="l"><a class="l" href="#563">563: </a> <span class="php-comment">/**
</span></span><span id="564" class="l"><a class="l" href="#564">564: </a><span class="php-comment"> * Renvoie une instance de Url représentant une URL absolue relative à
</span></span><span id="565" class="l"><a class="l" href="#565">565: </a><span class="php-comment"> * cette URL.
</span></span><span id="566" class="l"><a class="l" href="#566">566: </a><span class="php-comment"> *
</span></span><span id="567" class="l"><a class="l" href="#567">567: </a><span class="php-comment"> * @param Url|string $reference URL relative
</span></span><span id="568" class="l"><a class="l" href="#568">568: </a><span class="php-comment"> *
</span></span><span id="569" class="l"><a class="l" href="#569">569: </a><span class="php-comment"> * @return Url
</span></span><span id="570" class="l"><a class="l" href="#570">570: </a><span class="php-comment"> */</span>
</span><span id="571" class="l"><a class="l" href="#571">571: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_resoudre" href="#_resoudre">resoudre</a>(<span class="php-var">$reference</span>) {
</span><span id="572" class="l"><a class="l" href="#572">572: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">is_string</span>(<span class="php-var">$reference</span>)) {
</span><span id="573" class="l"><a class="l" href="#573">573: </a> <span class="php-var">$reference</span> = <span class="php-keyword1">new</span> self(<span class="php-var">$reference</span>);
</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">if</span> (!<span class="php-var">$this</span>-&gt;etreAbsolue()) {
</span><span id="576" class="l"><a class="l" href="#576">576: </a> <span class="php-keyword1">throw</span> <span class="php-keyword1">new</span> Exception(<span class="php-quote">'L\'URL de base doit être absolue !'</span>);
</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><span id="579" class="l"><a class="l" href="#579">579: </a> <span class="php-comment">// Un parseur non strict peut choisir d'ignorer un schema dans la référence</span>
</span><span id="580" class="l"><a class="l" href="#580">580: </a> <span class="php-comment">// si celui ci est identique au schéma de base de l'URI.</span>
</span><span id="581" class="l"><a class="l" href="#581">581: </a> <span class="php-keyword1">if</span> (!<span class="php-var">$this</span>-&gt;getOption(self::OPTION_STRICTE) &amp;&amp; <span class="php-var">$reference</span>-&gt;schema == <span class="php-var">$this</span>-&gt;schema) {
</span><span id="582" class="l"><a class="l" href="#582">582: </a> <span class="php-var">$reference</span>-&gt;schema = <span class="php-keyword1">false</span>;
</span><span id="583" class="l"><a class="l" href="#583">583: </a> }
</span><span id="584" class="l"><a class="l" href="#584">584: </a>
</span><span id="585" class="l"><a class="l" href="#585">585: </a> <span class="php-var">$cible</span> = <span class="php-keyword1">new</span> self(<span class="php-quote">''</span>);
</span><span id="586" class="l"><a class="l" href="#586">586: </a> <span class="php-keyword1">if</span> (<span class="php-var">$reference</span>-&gt;schema !== <span class="php-keyword1">false</span>) {
</span><span id="587" class="l"><a class="l" href="#587">587: </a> <span class="php-var">$cible</span>-&gt;schema = <span class="php-var">$reference</span>-&gt;schema;
</span><span id="588" class="l"><a class="l" href="#588">588: </a> <span class="php-var">$cible</span>-&gt;setAutorite(<span class="php-var">$reference</span>-&gt;getAutorite());
</span><span id="589" class="l"><a class="l" href="#589">589: </a> <span class="php-var">$cible</span>-&gt;chemin = self::supprimerSegmentsAPoints(<span class="php-var">$reference</span>-&gt;chemin);
</span><span id="590" class="l"><a class="l" href="#590">590: </a> <span class="php-var">$cible</span>-&gt;requete = <span class="php-var">$reference</span>-&gt;requete;
</span><span id="591" class="l"><a class="l" href="#591">591: </a> } <span class="php-keyword1">else</span> {
</span><span id="592" class="l"><a class="l" href="#592">592: </a> <span class="php-var">$autorite</span> = <span class="php-var">$reference</span>-&gt;getAutorite();
</span><span id="593" class="l"><a class="l" href="#593">593: </a> <span class="php-keyword1">if</span> (<span class="php-var">$autorite</span> !== <span class="php-keyword1">false</span>) {
</span><span id="594" class="l"><a class="l" href="#594">594: </a> <span class="php-var">$cible</span>-&gt;setAutorite(<span class="php-var">$autorite</span>);
</span><span id="595" class="l"><a class="l" href="#595">595: </a> <span class="php-var">$cible</span>-&gt;chemin = self::supprimerSegmentsAPoints(<span class="php-var">$reference</span>-&gt;chemin);
</span><span id="596" class="l"><a class="l" href="#596">596: </a> <span class="php-var">$cible</span>-&gt;requete = <span class="php-var">$reference</span>-&gt;requete;
</span><span id="597" class="l"><a class="l" href="#597">597: </a> } <span class="php-keyword1">else</span> {
</span><span id="598" class="l"><a class="l" href="#598">598: </a> <span class="php-keyword1">if</span> (<span class="php-var">$reference</span>-&gt;chemin == <span class="php-quote">''</span>) {
</span><span id="599" class="l"><a class="l" href="#599">599: </a> <span class="php-var">$cible</span>-&gt;chemin = <span class="php-var">$this</span>-&gt;chemin;
</span><span id="600" class="l"><a class="l" href="#600">600: </a> <span class="php-keyword1">if</span> (<span class="php-var">$reference</span>-&gt;requete !== <span class="php-keyword1">false</span>) {
</span><span id="601" class="l"><a class="l" href="#601">601: </a> <span class="php-var">$cible</span>-&gt;requete = <span class="php-var">$reference</span>-&gt;requete;
</span><span id="602" class="l"><a class="l" href="#602">602: </a> } <span class="php-keyword1">else</span> {
</span><span id="603" class="l"><a class="l" href="#603">603: </a> <span class="php-var">$cible</span>-&gt;requete = <span class="php-var">$this</span>-&gt;requete;
</span><span id="604" class="l"><a class="l" href="#604">604: </a> }
</span><span id="605" class="l"><a class="l" href="#605">605: </a> } <span class="php-keyword1">else</span> {
</span><span id="606" class="l"><a class="l" href="#606">606: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">substr</span>(<span class="php-var">$reference</span>-&gt;chemin, <span class="php-num">0</span>, <span class="php-num">1</span>) == <span class="php-quote">'/'</span>) {
</span><span id="607" class="l"><a class="l" href="#607">607: </a> <span class="php-var">$cible</span>-&gt;chemin = self::supprimerSegmentsAPoints(<span class="php-var">$reference</span>-&gt;chemin);
</span><span id="608" class="l"><a class="l" href="#608">608: </a> } <span class="php-keyword1">else</span> {
</span><span id="609" class="l"><a class="l" href="#609">609: </a> <span class="php-comment">// Concaténation chemins (RFC 3986, section 5.2.3)</span>
</span><span id="610" class="l"><a class="l" href="#610">610: </a> <span class="php-keyword1">if</span> (<span class="php-var">$this</span>-&gt;hote !== <span class="php-keyword1">false</span> &amp;&amp; <span class="php-var">$this</span>-&gt;chemin == <span class="php-quote">''</span>) {
</span><span id="611" class="l"><a class="l" href="#611">611: </a> <span class="php-var">$cible</span>-&gt;chemin = <span class="php-quote">'/'</span> . <span class="php-var">$this</span>-&gt;chemin;
</span><span id="612" class="l"><a class="l" href="#612">612: </a> } <span class="php-keyword1">else</span> {
</span><span id="613" class="l"><a class="l" href="#613">613: </a> <span class="php-var">$i</span> = <span class="php-keyword2">strrpos</span>(<span class="php-var">$this</span>-&gt;chemin, <span class="php-quote">'/'</span>);
</span><span id="614" class="l"><a class="l" href="#614">614: </a> <span class="php-keyword1">if</span> (<span class="php-var">$i</span> !== <span class="php-keyword1">false</span>) {
</span><span id="615" class="l"><a class="l" href="#615">615: </a> <span class="php-var">$cible</span>-&gt;chemin = <span class="php-keyword2">substr</span>(<span class="php-var">$this</span>-&gt;chemin, <span class="php-num">0</span>, <span class="php-var">$i</span> + <span class="php-num">1</span>);
</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 class="php-var">$cible</span>-&gt;chemin .= <span class="php-var">$reference</span>-&gt;chemin;
</span><span id="618" class="l"><a class="l" href="#618">618: </a> }
</span><span id="619" class="l"><a class="l" href="#619">619: </a> <span class="php-var">$cible</span>-&gt;chemin = self::supprimerSegmentsAPoints(<span class="php-var">$cible</span>-&gt;chemin);
</span><span id="620" class="l"><a class="l" href="#620">620: </a> }
</span><span id="621" class="l"><a class="l" href="#621">621: </a> <span class="php-var">$cible</span>-&gt;requete = <span class="php-var">$reference</span>-&gt;requete;
</span><span id="622" class="l"><a class="l" href="#622">622: </a> }
</span><span id="623" class="l"><a class="l" href="#623">623: </a> <span class="php-var">$cible</span>-&gt;setAutorite(<span class="php-var">$this</span>-&gt;getAutorite());
</span><span id="624" class="l"><a class="l" href="#624">624: </a> }
</span><span id="625" class="l"><a class="l" href="#625">625: </a> <span class="php-var">$cible</span>-&gt;schema = <span class="php-var">$this</span>-&gt;schema;
</span><span id="626" class="l"><a class="l" href="#626">626: </a> }
</span><span id="627" class="l"><a class="l" href="#627">627: </a>
</span><span id="628" class="l"><a class="l" href="#628">628: </a> <span class="php-var">$cible</span>-&gt;fragment = <span class="php-var">$reference</span>-&gt;fragment;
</span><span id="629" class="l"><a class="l" href="#629">629: </a>
</span><span id="630" class="l"><a class="l" href="#630">630: </a> <span class="php-keyword1">return</span> <span class="php-var">$cible</span>;
</span><span id="631" class="l"><a class="l" href="#631">631: </a> }
</span><span id="632" class="l"><a class="l" href="#632">632: </a>
</span><span id="633" class="l"><a class="l" href="#633">633: </a> <span class="php-comment">/**
</span></span><span id="634" class="l"><a class="l" href="#634">634: </a><span class="php-comment"> * La suppression des segments à points est décrite dans la RFC 3986, section 5.2.4, e.g.
</span></span><span id="635" class="l"><a class="l" href="#635">635: </a><span class="php-comment"> * &quot;/foo/../bar/baz&quot; =&gt; &quot;/bar/baz&quot;
</span></span><span id="636" class="l"><a class="l" href="#636">636: </a><span class="php-comment"> *
</span></span><span id="637" class="l"><a class="l" href="#637">637: </a><span class="php-comment"> * @param string $chemin un chemin
</span></span><span id="638" class="l"><a class="l" href="#638">638: </a><span class="php-comment"> *
</span></span><span id="639" class="l"><a class="l" href="#639">639: </a><span class="php-comment"> * @return string un chemin
</span></span><span id="640" class="l"><a class="l" href="#640">640: </a><span class="php-comment"> */</span>
</span><span id="641" class="l"><a class="l" href="#641">641: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_supprimerSegmentsAPoints" href="#_supprimerSegmentsAPoints">supprimerSegmentsAPoints</a>(<span class="php-var">$chemin</span>) {
</span><span id="642" class="l"><a class="l" href="#642">642: </a> <span class="php-var">$sortie</span> = <span class="php-quote">''</span>;
</span><span id="643" class="l"><a class="l" href="#643">643: </a>
</span><span id="644" class="l"><a class="l" href="#644">644: </a> <span class="php-comment">// Assurons de ne pas nous retrouver piégés dans une boucle infinie due à un bug de</span>
</span><span id="645" class="l"><a class="l" href="#645">645: </a> <span class="php-comment">// cette méthode</span>
</span><span id="646" class="l"><a class="l" href="#646">646: </a> <span class="php-var">$j</span> = <span class="php-num">0</span>;
</span><span id="647" class="l"><a class="l" href="#647">647: </a> <span class="php-keyword1">while</span> (<span class="php-var">$chemin</span> &amp;&amp; <span class="php-var">$j</span>++ &lt; <span class="php-num">100</span>) {
</span><span id="648" class="l"><a class="l" href="#648">648: </a> <span class="php-comment">// Étape A</span>
</span><span id="649" class="l"><a class="l" href="#649">649: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">substr</span>(<span class="php-var">$chemin</span>, <span class="php-num">0</span>, <span class="php-num">2</span>) == <span class="php-quote">'./'</span>) {
</span><span id="650" class="l"><a class="l" href="#650">650: </a> <span class="php-var">$chemin</span> = <span class="php-keyword2">substr</span>(<span class="php-var">$chemin</span>, <span class="php-num">2</span>);
</span><span id="651" class="l"><a class="l" href="#651">651: </a> } <span class="php-keyword1">elseif</span> (<span class="php-keyword2">substr</span>(<span class="php-var">$chemin</span>, <span class="php-num">0</span>, <span class="php-num">3</span>) == <span class="php-quote">'../'</span>) {
</span><span id="652" class="l"><a class="l" href="#652">652: </a> <span class="php-var">$chemin</span> = <span class="php-keyword2">substr</span>(<span class="php-var">$chemin</span>, <span class="php-num">3</span>);
</span><span id="653" class="l"><a class="l" href="#653">653: </a>
</span><span id="654" class="l"><a class="l" href="#654">654: </a> <span class="php-comment">// Étape B</span>
</span><span id="655" class="l"><a class="l" href="#655">655: </a> } <span class="php-keyword1">elseif</span> (<span class="php-keyword2">substr</span>(<span class="php-var">$chemin</span>, <span class="php-num">0</span>, <span class="php-num">3</span>) == <span class="php-quote">'/./'</span> || <span class="php-var">$chemin</span> == <span class="php-quote">'/.'</span>) {
</span><span id="656" class="l"><a class="l" href="#656">656: </a> <span class="php-var">$chemin</span> = <span class="php-quote">'/'</span> . <span class="php-keyword2">substr</span>(<span class="php-var">$chemin</span>, <span class="php-num">3</span>);
</span><span id="657" class="l"><a class="l" href="#657">657: </a>
</span><span id="658" class="l"><a class="l" href="#658">658: </a> <span class="php-comment">// Étape C</span>
</span><span id="659" class="l"><a class="l" href="#659">659: </a> } <span class="php-keyword1">elseif</span> (<span class="php-keyword2">substr</span>(<span class="php-var">$chemin</span>, <span class="php-num">0</span>, <span class="php-num">4</span>) == <span class="php-quote">'/../'</span> || <span class="php-var">$chemin</span> == <span class="php-quote">'/..'</span>) {
</span><span id="660" class="l"><a class="l" href="#660">660: </a> <span class="php-var">$chemin</span> = <span class="php-quote">'/'</span> . <span class="php-keyword2">substr</span>(<span class="php-var">$chemin</span>, <span class="php-num">4</span>);
</span><span id="661" class="l"><a class="l" href="#661">661: </a> <span class="php-var">$i</span> = <span class="php-keyword2">strrpos</span>(<span class="php-var">$sortie</span>, <span class="php-quote">'/'</span>);
</span><span id="662" class="l"><a class="l" href="#662">662: </a> <span class="php-var">$sortie</span> = <span class="php-var">$i</span> === <span class="php-keyword1">false</span> ? <span class="php-quote">''</span> : <span class="php-keyword2">substr</span>(<span class="php-var">$sortie</span>, <span class="php-num">0</span>, <span class="php-var">$i</span>);
</span><span id="663" class="l"><a class="l" href="#663">663: </a>
</span><span id="664" class="l"><a class="l" href="#664">664: </a> <span class="php-comment">// Étape D</span>
</span><span id="665" class="l"><a class="l" href="#665">665: </a> } <span class="php-keyword1">elseif</span> (<span class="php-var">$chemin</span> == <span class="php-quote">'.'</span> || <span class="php-var">$chemin</span> == <span class="php-quote">'..'</span>) {
</span><span id="666" class="l"><a class="l" href="#666">666: </a> <span class="php-var">$chemin</span> = <span class="php-quote">''</span>;
</span><span id="667" class="l"><a class="l" href="#667">667: </a>
</span><span id="668" class="l"><a class="l" href="#668">668: </a> <span class="php-comment">// Étape E</span>
</span><span id="669" class="l"><a class="l" href="#669">669: </a> } <span class="php-keyword1">else</span> {
</span><span id="670" class="l"><a class="l" href="#670">670: </a> <span class="php-var">$i</span> = <span class="php-keyword2">strpos</span>(<span class="php-var">$chemin</span>, <span class="php-quote">'/'</span>);
</span><span id="671" class="l"><a class="l" href="#671">671: </a> <span class="php-keyword1">if</span> (<span class="php-var">$i</span> === <span class="php-num">0</span>) {
</span><span id="672" class="l"><a class="l" href="#672">672: </a> <span class="php-var">$i</span> = <span class="php-keyword2">strpos</span>(<span class="php-var">$chemin</span>, <span class="php-quote">'/'</span>, <span class="php-num">1</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 class="php-keyword1">if</span> (<span class="php-var">$i</span> === <span class="php-keyword1">false</span>) {
</span><span id="675" class="l"><a class="l" href="#675">675: </a> <span class="php-var">$i</span> = <span class="php-keyword2">strlen</span>(<span class="php-var">$chemin</span>);
</span><span id="676" class="l"><a class="l" href="#676">676: </a> }
</span><span id="677" class="l"><a class="l" href="#677">677: </a> <span class="php-var">$sortie</span> .= <span class="php-keyword2">substr</span>(<span class="php-var">$chemin</span>, <span class="php-num">0</span>, <span class="php-var">$i</span>);
</span><span id="678" class="l"><a class="l" href="#678">678: </a> <span class="php-var">$chemin</span> = <span class="php-keyword2">substr</span>(<span class="php-var">$chemin</span>, <span class="php-var">$i</span>);
</span><span id="679" class="l"><a class="l" href="#679">679: </a> }
</span><span id="680" class="l"><a class="l" href="#680">680: </a> }
</span><span id="681" class="l"><a class="l" href="#681">681: </a>
</span><span id="682" class="l"><a class="l" href="#682">682: </a> <span class="php-keyword1">return</span> <span class="php-var">$sortie</span>;
</span><span id="683" class="l"><a class="l" href="#683">683: </a> }
</span><span id="684" class="l"><a class="l" href="#684">684: </a>
</span><span id="685" class="l"><a class="l" href="#685">685: </a> <span class="php-comment">/**
</span></span><span id="686" class="l"><a class="l" href="#686">686: </a><span class="php-comment"> * Renvoie une instance de Url representant l'URL canonique du script PHP
</span></span><span id="687" class="l"><a class="l" href="#687">687: </a><span class="php-comment"> * en cours d'éxécution
</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"> * @return string
</span></span><span id="690" class="l"><a class="l" href="#690">690: </a><span class="php-comment"> */</span>
</span><span id="691" class="l"><a class="l" href="#691">691: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_getCanonique" href="#_getCanonique">getCanonique</a>() {
</span><span id="692" class="l"><a class="l" href="#692">692: </a> <span class="php-keyword1">if</span> (!<span class="php-keyword1">isset</span>(<span class="php-var">$_SERVER</span>[<span class="php-quote">'REQUEST_METHOD'</span>])) {
</span><span id="693" class="l"><a class="l" href="#693">693: </a> <span class="php-comment">// ALERT - pas d'URL en cours</span>
</span><span id="694" class="l"><a class="l" href="#694">694: </a> <span class="php-keyword1">throw</span> <span class="php-keyword1">new</span> Exception(<span class="php-quote">'Le script n\'a pas été appellé à travers un serveur web'</span>);
</span><span id="695" class="l"><a class="l" href="#695">695: </a> }
</span><span id="696" class="l"><a class="l" href="#696">696: </a>
</span><span id="697" class="l"><a class="l" href="#697">697: </a> <span class="php-comment">// on part d'une URL relative</span>
</span><span id="698" class="l"><a class="l" href="#698">698: </a> <span class="php-var">$url</span> = <span class="php-keyword1">new</span> self(<span class="php-var">$_SERVER</span>[<span class="php-quote">'PHP_SELF'</span>]);
</span><span id="699" class="l"><a class="l" href="#699">699: </a> <span class="php-var">$url</span>-&gt;schema = <span class="php-keyword1">isset</span>(<span class="php-var">$_SERVER</span>[<span class="php-quote">'HTTPS'</span>]) ? <span class="php-quote">'https'</span> : <span class="php-quote">'http'</span>;
</span><span id="700" class="l"><a class="l" href="#700">700: </a> <span class="php-var">$url</span>-&gt;hote = <span class="php-var">$_SERVER</span>[<span class="php-quote">'SERVER_NAME'</span>];
</span><span id="701" class="l"><a class="l" href="#701">701: </a> <span class="php-var">$port</span> = <span class="php-keyword2">intval</span>(<span class="php-var">$_SERVER</span>[<span class="php-quote">'SERVER_PORT'</span>]);
</span><span id="702" class="l"><a class="l" href="#702">702: </a> <span class="php-keyword1">if</span> (<span class="php-var">$url</span>-&gt;schema == <span class="php-quote">'http'</span> &amp;&amp; <span class="php-var">$port</span> != <span class="php-num">80</span> ||
</span><span id="703" class="l"><a class="l" href="#703">703: </a> <span class="php-var">$url</span>-&gt;schema == <span class="php-quote">'https'</span> &amp;&amp; <span class="php-var">$port</span> != <span class="php-num">443</span>) {
</span><span id="704" class="l"><a class="l" href="#704">704: </a>
</span><span id="705" class="l"><a class="l" href="#705">705: </a> <span class="php-var">$url</span>-&gt;port = <span class="php-var">$port</span>;
</span><span id="706" class="l"><a class="l" href="#706">706: </a> }
</span><span id="707" class="l"><a class="l" href="#707">707: </a> <span class="php-keyword1">return</span> <span class="php-var">$url</span>;
</span><span id="708" class="l"><a class="l" href="#708">708: </a> }
</span><span id="709" class="l"><a class="l" href="#709">709: </a>
</span><span id="710" class="l"><a class="l" href="#710">710: </a> <span class="php-comment">/**
</span></span><span id="711" class="l"><a class="l" href="#711">711: </a><span class="php-comment"> * Renvoie l'URL utilisée pour récupérer la requête en cours
</span></span><span id="712" class="l"><a class="l" href="#712">712: </a><span class="php-comment"> *
</span></span><span id="713" class="l"><a class="l" href="#713">713: </a><span class="php-comment"> * @return string
</span></span><span id="714" class="l"><a class="l" href="#714">714: </a><span class="php-comment"> */</span>
</span><span id="715" class="l"><a class="l" href="#715">715: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_getURLDemande" href="#_getURLDemande">getURLDemande</a>() {
</span><span id="716" class="l"><a class="l" href="#716">716: </a> <span class="php-keyword1">return</span> self::getDemande()-&gt;getUrl();
</span><span id="717" class="l"><a class="l" href="#717">717: </a> }
</span><span id="718" class="l"><a class="l" href="#718">718: </a>
</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-comment"> * Renvoie une instance de Url representant l'URL utilisée pour
</span></span><span id="721" class="l"><a class="l" href="#721">721: </a><span class="php-comment"> * récupérer la requête en cours
</span></span><span id="722" class="l"><a class="l" href="#722">722: </a><span class="php-comment"> *
</span></span><span id="723" class="l"><a class="l" href="#723">723: </a><span class="php-comment"> * @return Url
</span></span><span id="724" class="l"><a class="l" href="#724">724: </a><span class="php-comment"> */</span>
</span><span id="725" class="l"><a class="l" href="#725">725: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_getDemande" href="#_getDemande">getDemande</a>() {
</span><span id="726" class="l"><a class="l" href="#726">726: </a> <span class="php-keyword1">if</span> (!<span class="php-keyword1">isset</span>(<span class="php-var">$_SERVER</span>[<span class="php-quote">'REQUEST_METHOD'</span>])) {
</span><span id="727" class="l"><a class="l" href="#727">727: </a> <span class="php-comment">// ALERTE - pas d'URL en cours</span>
</span><span id="728" class="l"><a class="l" href="#728">728: </a> <span class="php-keyword1">throw</span> <span class="php-keyword1">new</span> Exception(<span class="php-quote">'Le script n\'a pas été appellé à travers un serveur web'</span>);
</span><span id="729" class="l"><a class="l" href="#729">729: </a> }
</span><span id="730" class="l"><a class="l" href="#730">730: </a>
</span><span id="731" class="l"><a class="l" href="#731">731: </a> <span class="php-comment">// On part d'une URL relative</span>
</span><span id="732" class="l"><a class="l" href="#732">732: </a> <span class="php-var">$url</span> = <span class="php-keyword1">new</span> self(<span class="php-var">$_SERVER</span>[<span class="php-quote">'REQUEST_URI'</span>]);
</span><span id="733" class="l"><a class="l" href="#733">733: </a> <span class="php-var">$url</span>-&gt;schema = <span class="php-keyword1">isset</span>(<span class="php-var">$_SERVER</span>[<span class="php-quote">'HTTPS'</span>]) ? <span class="php-quote">'https'</span> : <span class="php-quote">'http'</span>;
</span><span id="734" class="l"><a class="l" href="#734">734: </a> <span class="php-comment">// On met à jour les valeurs de l'hote et si possible du port</span>
</span><span id="735" class="l"><a class="l" href="#735">735: </a> <span class="php-var">$url</span>-&gt;setAutorite(<span class="php-var">$_SERVER</span>[<span class="php-quote">'HTTP_hote'</span>]);
</span><span id="736" class="l"><a class="l" href="#736">736: </a> <span class="php-keyword1">return</span> <span class="php-var">$url</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 class="php-comment">/**
</span></span><span id="740" class="l"><a class="l" href="#740">740: </a><span class="php-comment"> * Met à jour la valeur de l'option spécifiée.
</span></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"> * @param string $nomOption une des constantes commençant par self::OPTION_
</span></span><span id="743" class="l"><a class="l" href="#743">743: </a><span class="php-comment"> * @param mixed $valeur valeur de l'option
</span></span><span id="744" class="l"><a class="l" href="#744">744: </a><span class="php-comment"> *
</span></span><span id="745" class="l"><a class="l" href="#745">745: </a><span class="php-comment"> * @return void
</span></span><span id="746" class="l"><a class="l" href="#746">746: </a><span class="php-comment"> * @see self::OPTION_STRICTE
</span></span><span id="747" class="l"><a class="l" href="#747">747: </a><span class="php-comment"> * @see self::OPTION_UTILISER_CROCHETS
</span></span><span id="748" class="l"><a class="l" href="#748">748: </a><span class="php-comment"> * @see self::OPTION_ENCODER_CLES
</span></span><span id="749" class="l"><a class="l" href="#749">749: </a><span class="php-comment"> */</span>
</span><span id="750" class="l"><a class="l" href="#750">750: </a> <span class="php-keyword1">function</span> <a id="_setOption" href="#_setOption">setOption</a>(<span class="php-var">$nomOption</span>, <span class="php-var">$valeur</span>) {
</span><span id="751" class="l"><a class="l" href="#751">751: </a> <span class="php-keyword1">if</span> (!<span class="php-keyword2">array_key_exists</span>(<span class="php-var">$nomOption</span>, <span class="php-var">$this</span>-&gt;options)) {
</span><span id="752" class="l"><a class="l" href="#752">752: </a> <span class="php-keyword1">return</span> <span class="php-keyword1">false</span>;
</span><span id="753" class="l"><a class="l" href="#753">753: </a> }
</span><span id="754" class="l"><a class="l" href="#754">754: </a> <span class="php-var">$this</span>-&gt;options[<span class="php-var">$nomOption</span>] = <span class="php-var">$valeur</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><span id="757" class="l"><a class="l" href="#757">757: </a> <span class="php-comment">/**
</span></span><span id="758" class="l"><a class="l" href="#758">758: </a><span class="php-comment"> * Renvoie la valeur de l'option specifiée.
</span></span><span id="759" class="l"><a class="l" href="#759">759: </a><span class="php-comment"> *
</span></span><span id="760" class="l"><a class="l" href="#760">760: </a><span class="php-comment"> * @param string $nomOption Nom de l'option demandée
</span></span><span id="761" class="l"><a class="l" href="#761">761: </a><span class="php-comment"> *
</span></span><span id="762" class="l"><a class="l" href="#762">762: </a><span class="php-comment"> * @return mixed
</span></span><span id="763" class="l"><a class="l" href="#763">763: </a><span class="php-comment"> */</span>
</span><span id="764" class="l"><a class="l" href="#764">764: </a> <span class="php-keyword1">function</span> <a id="_getOption" href="#_getOption">getOption</a>(<span class="php-var">$nomOption</span>) {
</span><span id="765" class="l"><a class="l" href="#765">765: </a> <span class="php-keyword1">return</span> <span class="php-keyword1">isset</span>(<span class="php-var">$this</span>-&gt;options[<span class="php-var">$nomOption</span>])
</span><span id="766" class="l"><a class="l" href="#766">766: </a> ? <span class="php-var">$this</span>-&gt;options[<span class="php-var">$nomOption</span>] : <span class="php-keyword1">false</span>;
</span><span id="767" class="l"><a class="l" href="#767">767: </a> }
</span><span id="768" class="l"><a class="l" href="#768">768: </a>
</span><span id="769" class="l"><a class="l" href="#769">769: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="___toString" href="#___toString">__toString</a>() {
</span><span id="770" class="l"><a class="l" href="#770">770: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>-&gt;getURL();
</span><span id="771" class="l"><a class="l" href="#771">771: </a> }
</span><span id="772" class="l"><a class="l" href="#772">772: </a>}
</span><span id="773" class="l"><a class="l" href="#773">773: </a></span></code></pre>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/class-Url.html
New file
0,0 → 1,1649
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="generator" content="ApiGen 2.8.0">
 
<title>Class Url | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li class="active"><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li class="active"><a href="class-Url.html">Url</a></li>
</ul>
 
 
 
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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="package-Framework.html" title="Summary of Framework"><span>Package</span></a>
</li>
<li class="active">
<span>Class</span> </li>
</ul>
<ul>
<li>
<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
</li>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<div id="content" class="class">
<h1>Class Url</h1>
 
 
<div class="description">
<p>classe Url, gérant le découpage des paramètres, leurs modification etc...
Traduction et conversion d'une classe (NET_Url2) issue de Pear</p>
 
</div>
 
 
 
 
 
 
 
 
 
<div class="info">
<b>Package:</b> <a href="package-Framework.html">Framework</a><br>
 
<b>Category:</b>
Php5<br>
<b>Copyright:</b>
2009 Tela-Botanica<br>
<b>License:</b>
<a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">Licence CECILL</a><br>
<b>License:</b>
<a href="http://www.gnu.org/licenses/gpl.html">Licence GNU-GPL</a><br>
<b>Author:</b>
Christian Schmidt &lt;<a
href="mailto:schmidt&#64;php.net">schmidt&#64;<!-- -->php.net</a>&gt; // Autre
auteurs<br>
<b>Author:</b>
Aurélien PERONNET &lt;<a
href="mailto:aurelien&#64;tela-botanica.org">aurelien&#64;<!-- -->tela-botanica.org</a>&gt;<br>
<b>Author:</b>
Jean-Pascal MILCENT &lt;<a
href="mailto:jpm&#64;tela-botanica.org">jpm&#64;<!-- -->tela-botanica.org</a>&gt;<br>
<b>Version:</b>
SVN: $Id: Url.php 171 2010-03-23 11:23:38Z jpm $<br>
<b>Link:</b>
/doc/framework/<br>
<b>Located at</b> <a href="source-class-Url.html#3-772" title="Go to source code">Url.php</a><br>
</div>
 
 
 
<table class="summary" id="methods">
<caption>Methods summary</caption>
<tr data-order="__construct" id="___construct">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#___construct">#</a>
<code><a href="source-class-Url.html#98-135" title="Go to source code">__construct</a>( <span>string <var>$url</var></span>, <span>array <var>$options</var> = <span class="php-keyword1">null</span></span> )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$url</var></dt>
<dd><code>string</code><br>$url une URL relative ou absolue</dd>
<dt><var>$options</var></dt>
<dd><code>array</code><br>$options</dd>
</dl></div>
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getSchema" id="_getSchema">
 
<td class="attributes"><code>
public
string|boolean
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getSchema">#</a>
<code><a href="source-class-Url.html#137-145" title="Go to source code">getSchema</a>( )</code>
 
<div class="description short">
<p>Retourne le schéma, c.a.d. "http" ou "urn", ou false si aucun schéma n'est
spécifié, i.e. l'url est une url relative</p>
 
</div>
 
<div class="description detailed hidden">
<p>Retourne le schéma, c.a.d. "http" ou "urn", ou false si aucun schéma n'est
spécifié, i.e. l'url est une url relative</p>
 
 
 
 
<h4>Returns</h4>
<div class="list">
<code>string|boolean</code><br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="setSchema" id="_setSchema">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_setSchema">#</a>
<code><a href="source-class-Url.html#147-155" title="Go to source code">setSchema</a>( <span>string|boolean <var>$schema</var></span> )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$schema</var></dt>
<dd><code>string|boolean</code><br>$schema</dd>
</dl></div>
 
 
 
<h4>See</h4>
<div class="list">
<code><code><a href="class-Url.html#_getSchema">Url::getSchema()</a></code></code><br>
</div>
 
 
</div>
</div></td>
</tr>
<tr data-order="getUtilisateur" id="_getUtilisateur">
 
<td class="attributes"><code>
public
string|boolean
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getUtilisateur">#</a>
<code><a href="source-class-Url.html#157-165" title="Go to source code">getUtilisateur</a>( )</code>
 
<div class="description short">
<p>renvoie la partie user de la partie infoUtilisateur (partie précédant le
premier<br />
":"), ou false si aucune partie infoUtilisateur n'est définie.</p>
 
</div>
 
<div class="description detailed hidden">
<p>renvoie la partie user de la partie infoUtilisateur (partie précédant le
premier ":"), ou false si aucune partie infoUtilisateur n'est définie.</p>
 
 
 
 
<h4>Returns</h4>
<div class="list">
<code>string|boolean</code><br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getMotDePasse" id="_getMotDePasse">
 
<td class="attributes"><code>
public
string|boolean
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getMotDePasse">#</a>
<code><a href="source-class-Url.html#167-176" title="Go to source code">getMotDePasse</a>( )</code>
 
<div class="description short">
<p>renvoie la partie mot de passe de la partie infoUtilisateur (partie après le
premier<br />
":"), , ou false si aucune partie infoUtilisateur n'est définie (i.e. l'URL ne
contient pas de "@" en face du nom d'hôte) ou si la partie infoUtilisateur ne
contient pas de ":".</p>
 
</div>
 
<div class="description detailed hidden">
<p>renvoie la partie mot de passe de la partie infoUtilisateur (partie après le
premier ":"), , ou false si aucune partie infoUtilisateur n'est définie (i.e.
l'URL ne contient pas de "@" en face du nom d'hôte) ou si la partie
infoUtilisateur ne contient pas de ":".</p>
 
 
 
 
<h4>Returns</h4>
<div class="list">
<code>string|boolean</code><br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getInfoUtilisateur" id="_getInfoUtilisateur">
 
<td class="attributes"><code>
public
string|boolean
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getInfoUtilisateur">#</a>
<code><a href="source-class-Url.html#178-186" title="Go to source code">getInfoUtilisateur</a>( )</code>
 
<div class="description short">
<p>Renvoie la partie userinfio, ou false si celle-ci n'existe pas, i.e. si la
partie autorité ne contient pas de "@"</p>
 
</div>
 
<div class="description detailed hidden">
<p>Renvoie la partie userinfio, ou false si celle-ci n'existe pas, i.e. si la
partie autorité ne contient pas de "@"</p>
 
 
 
 
<h4>Returns</h4>
<div class="list">
<code>string|boolean</code><br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="setInfoUtilisateur" id="_setInfoUtilisateur">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_setInfoUtilisateur">#</a>
<code><a href="source-class-Url.html#188-202" title="Go to source code">setInfoUtilisateur</a>( <span>string|boolean <var>$infoUtilisateur</var></span>, <span>string|boolean <var>$motDePasse</var> = <span class="php-keyword1">false</span></span> )</code>
 
<div class="description short">
<p>Setteur pour la partie infoUtilisateur. Si deux argument sont passé, ils
sont combinés dans la partie infoUtilisateur de cette manière username ":"
password.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Setteur pour la partie infoUtilisateur. Si deux argument sont passé, ils
sont combinés dans la partie infoUtilisateur de cette manière username ":"
password.</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$infoUtilisateur</var></dt>
<dd><code>string|boolean</code><br>$infoUtilisateur infoUtilisateur ou username</dd>
<dt><var>$motDePasse</var></dt>
<dd><code>string|boolean</code><br>$motDePasse</dd>
</dl></div>
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getHote" id="_getHote">
 
<td class="attributes"><code>
public
string|boolean
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getHote">#</a>
<code><a href="source-class-Url.html#204-212" title="Go to source code">getHote</a>( )</code>
 
<div class="description short">
<p>Renvoie la partie hôte, ou false s'il n'y a pas de partie autorité, c.a.d.
l'URL est relative.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Renvoie la partie hôte, ou false s'il n'y a pas de partie autorité, c.a.d.
l'URL est relative.</p>
 
 
 
 
<h4>Returns</h4>
<div class="list">
<code>string|boolean</code><br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="setHote" id="_setHote">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_setHote">#</a>
<code><a href="source-class-Url.html#214-221" title="Go to source code">setHote</a>( <span>string|boolean <var>$hote</var></span> )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$hote</var></dt>
<dd><code>string|boolean</code><br>$hote</dd>
</dl></div>
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getPort" id="_getPort">
 
<td class="attributes"><code>
public
integer|boolean
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getPort">#</a>
<code><a href="source-class-Url.html#223-231" title="Go to source code">getPort</a>( )</code>
 
<div class="description short">
<p>Renvoie le numéro de port, ou false si aucun numéro de port n'est
spécifié, i.e. le port par défaut doit utilisé.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Renvoie le numéro de port, ou false si aucun numéro de port n'est
spécifié, i.e. le port par défaut doit utilisé.</p>
 
 
 
 
<h4>Returns</h4>
<div class="list">
<code>integer|boolean</code><br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="setPort" id="_setPort">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_setPort">#</a>
<code><a href="source-class-Url.html#233-240" title="Go to source code">setPort</a>( <span>integer|boolean <var>$port</var></span> )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$port</var></dt>
<dd><code>integer|boolean</code><br>$port</dd>
</dl></div>
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getAutorite" id="_getAutorite">
 
<td class="attributes"><code>
public
string|boolean
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getAutorite">#</a>
<code><a href="source-class-Url.html#242-266" title="Go to source code">getAutorite</a>( )</code>
 
<div class="description short">
<p>Renvoie la partie autorité, i.e. [ infoUtilisateur "@" ] hote [ ":" port ],
ou false si celle-ci est absente.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Renvoie la partie autorité, i.e. [ infoUtilisateur "@" ] hote [ ":" port ],
ou false si celle-ci est absente.</p>
 
 
 
 
<h4>Returns</h4>
<div class="list">
<code>string|boolean</code><br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="setAutorite" id="_setAutorite">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_setAutorite">#</a>
<code><a href="source-class-Url.html#268-288" title="Go to source code">setAutorite</a>( <span>string|false <var>$autorite</var></span> )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$autorite</var></dt>
<dd><code>string|false</code><br>$autorite</dd>
</dl></div>
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getChemin" id="_getChemin">
 
<td class="attributes"><code>
public
string
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getChemin">#</a>
<code><a href="source-class-Url.html#290-297" title="Go to source code">getChemin</a>( )</code>
 
<div class="description short">
<p>Renvoie la partie chemin (chemin) (éventuellement vide).</p>
 
</div>
 
<div class="description detailed hidden">
<p>Renvoie la partie chemin (chemin) (éventuellement vide).</p>
 
 
 
 
<h4>Returns</h4>
<div class="list">
<code>string</code><br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="setChemin" id="_setChemin">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_setChemin">#</a>
<code><a href="source-class-Url.html#299-306" title="Go to source code">setChemin</a>( <span>string <var>$chemin</var></span> )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$chemin</var></dt>
<dd><code>string</code><br>$chemin</dd>
</dl></div>
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getRequete" id="_getRequete">
 
<td class="attributes"><code>
public
string|boolean
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getRequete">#</a>
<code><a href="source-class-Url.html#308-317" title="Go to source code">getRequete</a>( )</code>
 
<div class="description short">
<p>renvoie la chaine de requête (requete string) (sans le premier "?"), ou
false si "?" n'est pas présent dans l'url.</p>
 
</div>
 
<div class="description detailed hidden">
<p>renvoie la chaine de requête (requete string) (sans le premier "?"), ou
false si "?" n'est pas présent dans l'url.</p>
 
 
 
 
<h4>Returns</h4>
<div class="list">
<code>string|boolean</code><br>
</div>
 
 
<h4>See</h4>
<div class="list">
<code><code><a href="class-Url.html#_getVariablesRequete">Url::getVariablesRequete()</a></code></code><br>
</div>
 
 
</div>
</div></td>
</tr>
<tr data-order="setRequete" id="_setRequete">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_setRequete">#</a>
<code><a href="source-class-Url.html#319-327" title="Go to source code">setRequete</a>( <span>string|boolean <var>$requete</var></span> )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$requete</var></dt>
<dd><code>string|boolean</code><br>$requete</dd>
</dl></div>
 
 
 
<h4>See</h4>
<div class="list">
<code><code><a href="class-Url.html#_setVariablesRequete">Url::setVariablesRequete()</a></code></code><br>
</div>
 
 
</div>
</div></td>
</tr>
<tr data-order="getFragment" id="_getFragment">
 
<td class="attributes"><code>
public
string|boolean
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getFragment">#</a>
<code><a href="source-class-Url.html#329-336" title="Go to source code">getFragment</a>( )</code>
 
<div class="description short">
<p>Renvoie le nom du fragment, ou false si "#" n'est pas present dans l'URL.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Renvoie le nom du fragment, ou false si "#" n'est pas present dans l'URL.</p>
 
 
 
 
<h4>Returns</h4>
<div class="list">
<code>string|boolean</code><br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="setFragment" id="_setFragment">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_setFragment">#</a>
<code><a href="source-class-Url.html#338-345" title="Go to source code">setFragment</a>( <span>string|boolean <var>$fragment</var></span> )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$fragment</var></dt>
<dd><code>string|boolean</code><br>$fragment</dd>
</dl></div>
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getVariablesRequete" id="_getVariablesRequete">
 
<td class="attributes"><code>
public
array
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getVariablesRequete">#</a>
<code><a href="source-class-Url.html#347-401" title="Go to source code">getVariablesRequete</a>( )</code>
 
<div class="description short">
<p>Renvoie la requete string sous forme d'un tableau de variables telles
qu'elles apparaitraient dans le $_GET d'un script PHP</p>
 
</div>
 
<div class="description detailed hidden">
<p>Renvoie la requete string sous forme d'un tableau de variables telles
qu'elles apparaitraient dans le $_GET d'un script PHP</p>
 
 
 
 
<h4>Returns</h4>
<div class="list">
<code>array</code><br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="setVariablesRequete" id="_setVariablesRequete">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_setVariablesRequete">#</a>
<code><a href="source-class-Url.html#403-432" title="Go to source code">setVariablesRequete</a>( <span>array <var>$tableau</var></span> )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$tableau</var></dt>
<dd><code>array</code><br>$tableau (nom =&gt; valeur) tableau</dd>
</dl></div>
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="setVariableRequete" id="_setVariableRequete">
 
<td class="attributes"><code>
public
array
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_setVariableRequete">#</a>
<code><a href="source-class-Url.html#434-444" title="Go to source code">setVariableRequete</a>( <span>string <var>$nom</var></span>, <span>mixed <var>$valeur</var></span> )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$nom</var></dt>
<dd><code>string</code><br>$nom</dd>
<dt><var>$valeur</var></dt>
<dd><code>mixed</code><br>$valeur</dd>
</dl></div>
 
<h4>Returns</h4>
<div class="list">
<code>array</code><br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="unsetVariableRequete" id="_unsetVariableRequete">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_unsetVariableRequete">#</a>
<code><a href="source-class-Url.html#446-455" title="Go to source code">unsetVariableRequete</a>( <span>string <var>$nom</var></span> )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$nom</var></dt>
<dd><code>string</code><br>$nom</dd>
</dl></div>
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="unsetVariablesRequete" id="_unsetVariablesRequete">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_unsetVariablesRequete">#</a>
<code><a href="source-class-Url.html#457-468" title="Go to source code">unsetVariablesRequete</a>( <span>array <var>$noms</var></span> )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$noms</var></dt>
<dd><code>array</code><br>$noms tableau des noms de variable à supprimer de l'url.</dd>
</dl></div>
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getURL" id="_getURL">
 
<td class="attributes"><code>
public
string
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getURL">#</a>
<code><a href="source-class-Url.html#470-498" title="Go to source code">getURL</a>( )</code>
 
<div class="description short">
<p>Renvoie un représentation sous forme de chaine de l'URL</p>
 
</div>
 
<div class="description detailed hidden">
<p>Renvoie un représentation sous forme de chaine de l'URL</p>
 
 
 
 
<h4>Returns</h4>
<div class="list">
<code>string</code><br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getURLNormalisee" id="_getURLNormalisee">
 
<td class="attributes"><code>
public
string
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getURLNormalisee">#</a>
<code><a href="source-class-Url.html#500-510" title="Go to source code">getURLNormalisee</a>( )</code>
 
<div class="description short">
<p>Renvoie une représentation de cette URL sous forme de chaine normalisée.
Utile pour la comparaison d'URLs</p>
 
</div>
 
<div class="description detailed hidden">
<p>Renvoie une représentation de cette URL sous forme de chaine normalisée.
Utile pour la comparaison d'URLs</p>
 
 
 
 
<h4>Returns</h4>
<div class="list">
<code>string</code><br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="normaliser" id="_normaliser">
 
<td class="attributes"><code>
public
<code><a href="class-Url.html">Url</a></code>
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_normaliser">#</a>
<code><a href="source-class-Url.html#512-552" title="Go to source code">normaliser</a>( )</code>
 
<div class="description short">
<p>Renvoie une instance normalisée de Url</p>
 
</div>
 
<div class="description detailed hidden">
<p>Renvoie une instance normalisée de Url</p>
 
 
 
 
<h4>Returns</h4>
<div class="list">
<code><code><a href="class-Url.html">Url</a></code></code><br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="etreAbsolue" id="_etreAbsolue">
 
<td class="attributes"><code>
public
boolean
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_etreAbsolue">#</a>
<code><a href="source-class-Url.html#554-561" title="Go to source code">etreAbsolue</a>( )</code>
 
<div class="description short">
<p>Renvoie vrai ou faux suivant que l'instance en cours représente une URL
relative ou absolue.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Renvoie vrai ou faux suivant que l'instance en cours représente une URL
relative ou absolue.</p>
 
 
 
 
<h4>Returns</h4>
<div class="list">
<code>boolean</code><br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="resoudre" id="_resoudre">
 
<td class="attributes"><code>
public
<code><a href="class-Url.html">Url</a></code>
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_resoudre">#</a>
<code><a href="source-class-Url.html#563-631" title="Go to source code">resoudre</a>( <span><code><a href="class-Url.html">Url</a></code>|string <var>$reference</var></span> )</code>
 
<div class="description short">
<p>Renvoie une instance de Url représentant une URL absolue relative à cette
URL.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Renvoie une instance de Url représentant une URL absolue relative à cette
URL.</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$reference</var></dt>
<dd><code><code><a href="class-Url.html">Url</a></code>|string</code><br>$reference URL relative</dd>
</dl></div>
 
<h4>Returns</h4>
<div class="list">
<code><code><a href="class-Url.html">Url</a></code></code><br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getCanonique" id="_getCanonique">
 
<td class="attributes"><code>
public static
string
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getCanonique">#</a>
<code><a href="source-class-Url.html#685-708" title="Go to source code">getCanonique</a>( )</code>
 
<div class="description short">
<p>Renvoie une instance de Url representant l'URL canonique du script PHP en
cours d'éxécution</p>
 
</div>
 
<div class="description detailed hidden">
<p>Renvoie une instance de Url representant l'URL canonique du script PHP en
cours d'éxécution</p>
 
 
 
 
<h4>Returns</h4>
<div class="list">
<code>string</code><br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getURLDemande" id="_getURLDemande">
 
<td class="attributes"><code>
public static
string
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getURLDemande">#</a>
<code><a href="source-class-Url.html#710-717" title="Go to source code">getURLDemande</a>( )</code>
 
<div class="description short">
<p>Renvoie l'URL utilisée pour récupérer la requête en cours</p>
 
</div>
 
<div class="description detailed hidden">
<p>Renvoie l'URL utilisée pour récupérer la requête en cours</p>
 
 
 
 
<h4>Returns</h4>
<div class="list">
<code>string</code><br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getDemande" id="_getDemande">
 
<td class="attributes"><code>
public static
<code><a href="class-Url.html">Url</a></code>
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getDemande">#</a>
<code><a href="source-class-Url.html#719-737" title="Go to source code">getDemande</a>( )</code>
 
<div class="description short">
<p>Renvoie une instance de Url representant l'URL utilisée pour récupérer la
requête en cours</p>
 
</div>
 
<div class="description detailed hidden">
<p>Renvoie une instance de Url representant l'URL utilisée pour récupérer la
requête en cours</p>
 
 
 
 
<h4>Returns</h4>
<div class="list">
<code><code><a href="class-Url.html">Url</a></code></code><br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="setOption" id="_setOption">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_setOption">#</a>
<code><a href="source-class-Url.html#739-755" title="Go to source code">setOption</a>( <span>string <var>$nomOption</var></span>, <span>mixed <var>$valeur</var></span> )</code>
 
<div class="description short">
<p>Met à jour la valeur de l'option spécifiée.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Met à jour la valeur de l'option spécifiée.</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$nomOption</var></dt>
<dd><code>string</code><br>$nomOption une des constantes commençant par self::OPTION_</dd>
<dt><var>$valeur</var></dt>
<dd><code>mixed</code><br>$valeur valeur de l'option</dd>
</dl></div>
 
 
 
<h4>See</h4>
<div class="list">
<code><code><a href="class-Url.html#OPTION_STRICTE">Url::<b>OPTION_STRICTE</b></a></code></code><br>
<code><code><a href="class-Url.html#OPTION_UTILISER_CROCHETS">Url::<b>OPTION_UTILISER_CROCHETS</b></a></code></code><br>
<code><code><a href="class-Url.html#OPTION_ENCODER_CLES">Url::<b>OPTION_ENCODER_CLES</b></a></code></code><br>
</div>
 
 
</div>
</div></td>
</tr>
<tr data-order="getOption" id="_getOption">
 
<td class="attributes"><code>
public
mixed
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getOption">#</a>
<code><a href="source-class-Url.html#757-767" title="Go to source code">getOption</a>( <span>string <var>$nomOption</var></span> )</code>
 
<div class="description short">
<p>Renvoie la valeur de l'option specifiée.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Renvoie la valeur de l'option specifiée.</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$nomOption</var></dt>
<dd><code>string</code><br>$nomOption Nom de l'option demandée</dd>
</dl></div>
 
<h4>Returns</h4>
<div class="list">
<code>mixed</code><br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="__toString" id="___toString">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#___toString">#</a>
<code><a href="source-class-Url.html#769-771" title="Go to source code">__toString</a>( )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
</table>
 
 
 
 
 
 
 
 
<table class="summary" id="constants">
<caption>Constants summary</caption>
<tr data-order="OPTION_STRICTE" id="OPTION_STRICTE">
 
<td class="attributes"><code>string</code></td>
<td class="name"><code>
<a href="source-class-Url.html#23-27" title="Go to source code"><b>OPTION_STRICTE</b></a>
</code></td>
<td class="value"><code><span class="php-quote">'strict'</span></code></td>
<td class="description"><div>
<a href="#OPTION_STRICTE" class="anchor">#</a>
 
<div class="description short">
<p>Parsing strict dans resoudre() (voir RFC 3986, section 5.2.2). Par défaut à
true.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Parsing strict dans resoudre() (voir RFC 3986, section 5.2.2). Par défaut à
true.</p>
 
 
</div>
</div></td>
</tr>
<tr data-order="OPTION_UTILISER_CROCHETS" id="OPTION_UTILISER_CROCHETS">
 
<td class="attributes"><code>string</code></td>
<td class="name"><code>
<a href="source-class-Url.html#29-32" title="Go to source code"><b>OPTION_UTILISER_CROCHETS</b></a>
</code></td>
<td class="value"><code><span class="php-quote">'use_brackets'</span></code></td>
<td class="description"><div>
<a href="#OPTION_UTILISER_CROCHETS" class="anchor">#</a>
 
<div class="description short">
<p>Répresenter les tableaux dans les requêtes en utilisant la notation php [].
Par défaut à true.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Répresenter les tableaux dans les requêtes en utilisant la notation php [].
Par défaut à true.</p>
 
 
</div>
</div></td>
</tr>
<tr data-order="OPTION_ENCODER_CLES" id="OPTION_ENCODER_CLES">
 
<td class="attributes"><code>string</code></td>
<td class="name"><code>
<a href="source-class-Url.html#34-37" title="Go to source code"><b>OPTION_ENCODER_CLES</b></a>
</code></td>
<td class="value"><code><span class="php-quote">'encode_keys'</span></code></td>
<td class="description"><div>
<a href="#OPTION_ENCODER_CLES" class="anchor">#</a>
 
<div class="description short">
<p>URL-encoder les clés des variables dans les requêtes. Par défaut à
true.</p>
 
</div>
 
<div class="description detailed hidden">
<p>URL-encoder les clés des variables dans les requêtes. Par défaut à
true.</p>
 
 
</div>
</div></td>
</tr>
<tr data-order="OPTION_SEPARATEUR_ENTREE" id="OPTION_SEPARATEUR_ENTREE">
 
<td class="attributes"><code>string</code></td>
<td class="name"><code>
<a href="source-class-Url.html#39-44" title="Go to source code"><b>OPTION_SEPARATEUR_ENTREE</b></a>
</code></td>
<td class="value"><code><span class="php-quote">'input_separator'</span></code></td>
<td class="description"><div>
<a href="#OPTION_SEPARATEUR_ENTREE" class="anchor">#</a>
 
<div class="description short">
<p>Séparateurs de variables lors du parsing de la requête. Chaque caractère
est considéré comme un séparateur. Par défaut, spécifié par le paramêtre
arg_separator.input dans php.ini (par défaut "&amp;").</p>
 
</div>
 
<div class="description detailed hidden">
<p>Séparateurs de variables lors du parsing de la requête. Chaque caractère
est considéré comme un séparateur. Par défaut, spécifié par le paramêtre
arg_separator.input dans php.ini (par défaut "&amp;").</p>
 
 
</div>
</div></td>
</tr>
<tr data-order="OPTION_SEPARATEUR_SORTIE" id="OPTION_SEPARATEUR_SORTIE">
 
<td class="attributes"><code>string</code></td>
<td class="name"><code>
<a href="source-class-Url.html#46-50" title="Go to source code"><b>OPTION_SEPARATEUR_SORTIE</b></a>
</code></td>
<td class="value"><code><span class="php-quote">'output_separator'</span></code></td>
<td class="description"><div>
<a href="#OPTION_SEPARATEUR_SORTIE" class="anchor">#</a>
 
<div class="description short">
<p>Séparateur de variables lors de la génération de la requête. Par défaut,
spécifié par le paramètre arg_separator.output dans php.ini (par défaut
"&amp;").</p>
 
</div>
 
<div class="description detailed hidden">
<p>Séparateur de variables lors de la génération de la requête. Par défaut,
spécifié par le paramètre arg_separator.output dans php.ini (par défaut
"&amp;").</p>
 
 
</div>
</div></td>
</tr>
</table>
 
 
 
 
 
 
 
 
 
 
</div>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/todo.html
New file
0,0 → 1,126
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="generator" content="ApiGen 2.8.0">
 
<title>Todo | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-PDOStatement.html">PDOStatement</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
<h3>Interfaces</h3>
<ul>
<li><a href="class-Traversable.html">Traversable</a></li>
</ul>
 
 
<h3>Exceptions</h3>
<ul>
<li><a href="class-Exception.html">Exception</a></li>
</ul>
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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>
<span>Package</span> </li>
<li>
<span>Class</span> </li>
</ul>
<ul>
<li>
<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
</li>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li class="active">
<span>Todo</span> </li>
</ul>
<ul>
</ul>
</div>
 
<div id="content">
<h1>Todo</h1>
 
 
 
 
 
 
 
 
 
</div>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/source-class-Modele.html
New file
0,0 → 1,456
<!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 Modele.php | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li class="active"><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li class="active"><a href="class-Modele.html">Modele</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
 
 
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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="package-Framework.html" title="Summary of Framework"><span>Package</span></a>
</li>
<li>
<a href="class-Modele.html" title="Summary of Modele"><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>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<pre><code><span id="1" class="l"><a class="l" href="#1"> 1: </a><span class="xlang">&lt;?php</span>
</span><span id="2" class="l"><a class="l" href="#2"> 2: </a><span class="php-comment">// declare(encoding='UTF-8');</span>
</span><span id="3" class="l"><a class="l" href="#3"> 3: </a><span class="php-comment">/**
</span></span><span id="4" class="l"><a class="l" href="#4"> 4: </a><span class="php-comment">* Classe modèle, donc d'accés au données, elle ne devrait pas être appelée de l'extérieur.
</span></span><span id="5" class="l"><a class="l" href="#5"> 5: </a><span class="php-comment">* Elle fait office d'abstraction légère de base de données en utilisant diveres possibilités
</span></span><span id="6" class="l"><a class="l" href="#6"> 6: </a><span class="php-comment">* d'abstraction de base de données (PDO, mysql, mysqli, sqlite)
</span></span><span id="7" class="l"><a class="l" href="#7"> 7: </a><span class="php-comment">* Elle est abstraite donc doit obligatoirement être étendue.
</span></span><span id="8" class="l"><a class="l" href="#8"> 8: </a><span class="php-comment">*
</span></span><span id="9" class="l"><a class="l" href="#9"> 9: </a><span class="php-comment">* PHP Version 5
</span></span><span id="10" class="l"><a class="l" href="#10"> 10: </a><span class="php-comment">*
</span></span><span id="11" class="l"><a class="l" href="#11"> 11: </a><span class="php-comment">* @category Class
</span></span><span id="12" class="l"><a class="l" href="#12"> 12: </a><span class="php-comment">* @package Framework
</span></span><span id="13" class="l"><a class="l" href="#13"> 13: </a><span class="php-comment">* @author aurelien &lt;aurelien@tela-botanica.org&gt;
</span></span><span id="14" class="l"><a class="l" href="#14"> 14: </a><span class="php-comment">* @copyright 2009 Tela-Botanica
</span></span><span id="15" class="l"><a class="l" href="#15"> 15: </a><span class="php-comment">* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
</span></span><span id="16" class="l"><a class="l" href="#16"> 16: </a><span class="php-comment">* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
</span></span><span id="17" class="l"><a class="l" href="#17"> 17: </a><span class="php-comment">* @version SVN: $$Id: Modele.php 426 2013-04-30 16:58:14Z jpm $$
</span></span><span id="18" class="l"><a class="l" href="#18"> 18: </a><span class="php-comment">* @link /doc/framework/
</span></span><span id="19" class="l"><a class="l" href="#19"> 19: </a><span class="php-comment">*
</span></span><span id="20" class="l"><a class="l" href="#20"> 20: </a><span class="php-comment">*/</span>
</span><span id="21" class="l"><a class="l" href="#21"> 21: </a><span class="php-keyword1">abstract</span> <span class="php-keyword1">class</span> <a id="Modele" href="#Modele">Modele</a> {
</span><span id="22" class="l"><a class="l" href="#22"> 22: </a>
</span><span id="23" class="l"><a class="l" href="#23"> 23: </a> <span class="php-comment">/**
</span></span><span id="24" class="l"><a class="l" href="#24"> 24: </a><span class="php-comment"> * Mode de fetch associatif
</span></span><span id="25" class="l"><a class="l" href="#25"> 25: </a><span class="php-comment"> */</span>
</span><span id="26" class="l"><a class="l" href="#26"> 26: </a> <span class="php-keyword1">private</span> <span class="php-var"><a id="$ASSOC" href="#$ASSOC">$ASSOC</a></span> = <span class="php-quote">''</span>;
</span><span id="27" class="l"><a class="l" href="#27"> 27: </a> <span class="php-comment">/**
</span></span><span id="28" class="l"><a class="l" href="#28"> 28: </a><span class="php-comment"> * Mode de fetch objet
</span></span><span id="29" class="l"><a class="l" href="#29"> 29: </a><span class="php-comment"> */</span>
</span><span id="30" class="l"><a class="l" href="#30"> 30: </a> <span class="php-keyword1">private</span> <span class="php-var"><a id="$OBJECT" href="#$OBJECT">$OBJECT</a></span> = <span class="php-quote">''</span>;
</span><span id="31" class="l"><a class="l" href="#31"> 31: </a>
</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-comment"> * abstraction de base de données utilisée
</span></span><span id="34" class="l"><a class="l" href="#34"> 34: </a><span class="php-comment"> */</span>
</span><span id="35" class="l"><a class="l" href="#35"> 35: </a> <span class="php-keyword1">private</span> <span class="php-var"><a id="$abstraction" href="#$abstraction">$abstraction</a></span>;
</span><span id="36" class="l"><a class="l" href="#36"> 36: </a> <span class="php-comment">/**
</span></span><span id="37" class="l"><a class="l" href="#37"> 37: </a><span class="php-comment"> * registre global
</span></span><span id="38" class="l"><a class="l" href="#38"> 38: </a><span class="php-comment"> */</span>
</span><span id="39" class="l"><a class="l" href="#39"> 39: </a> <span class="php-keyword1">private</span> <span class="php-var"><a id="$registre" href="#$registre">$registre</a></span>;
</span><span id="40" class="l"><a class="l" href="#40"> 40: </a> <span class="php-comment">/**
</span></span><span id="41" class="l"><a class="l" href="#41"> 41: </a><span class="php-comment"> * DSN pour accéder à la base de données
</span></span><span id="42" class="l"><a class="l" href="#42"> 42: </a><span class="php-comment"> */</span>
</span><span id="43" class="l"><a class="l" href="#43"> 43: </a> <span class="php-keyword1">private</span> <span class="php-var"><a id="$dsn" href="#$dsn">$dsn</a></span>;
</span><span id="44" class="l"><a class="l" href="#44"> 44: </a> <span class="php-comment">/**
</span></span><span id="45" class="l"><a class="l" href="#45"> 45: </a><span class="php-comment"> * Type de base de données (mysql, mysqli, etc ...)
</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">private</span> <span class="php-var"><a id="$type" href="#$type">$type</a></span>;
</span><span id="48" class="l"><a class="l" href="#48"> 48: </a> <span class="php-comment">/**
</span></span><span id="49" class="l"><a class="l" href="#49"> 49: </a><span class="php-comment"> * Hote herbergeant la base de données
</span></span><span id="50" class="l"><a class="l" href="#50"> 50: </a><span class="php-comment"> */</span>
</span><span id="51" class="l"><a class="l" href="#51"> 51: </a> <span class="php-keyword1">private</span> <span class="php-var"><a id="$hote" href="#$hote">$hote</a></span>;
</span><span id="52" class="l"><a class="l" href="#52"> 52: </a> <span class="php-comment">/**
</span></span><span id="53" class="l"><a class="l" href="#53"> 53: </a><span class="php-comment"> * Nom de la base de données à laquelle le modèle doit se connecter
</span></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-keyword1">private</span> <span class="php-var"><a id="$bdd_nom" href="#$bdd_nom">$bdd_nom</a></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-comment"> * Nom d'utilisateur
</span></span><span id="58" class="l"><a class="l" href="#58"> 58: </a><span class="php-comment"> */</span>
</span><span id="59" class="l"><a class="l" href="#59"> 59: </a> <span class="php-keyword1">private</span> <span class="php-var"><a id="$utilisateur" href="#$utilisateur">$utilisateur</a></span>;
</span><span id="60" class="l"><a class="l" href="#60"> 60: </a> <span class="php-comment">/**
</span></span><span id="61" class="l"><a class="l" href="#61"> 61: </a><span class="php-comment"> * Mot de passe
</span></span><span id="62" class="l"><a class="l" href="#62"> 62: </a><span class="php-comment"> */</span>
</span><span id="63" class="l"><a class="l" href="#63"> 63: </a> <span class="php-keyword1">private</span> <span class="php-var"><a id="$pass" href="#$pass">$pass</a></span>;
</span><span id="64" class="l"><a class="l" href="#64"> 64: </a>
</span><span id="65" class="l"><a class="l" href="#65"> 65: </a> <span class="php-comment">/**
</span></span><span id="66" class="l"><a class="l" href="#66"> 66: </a><span class="php-comment"> * Encodage de la base de données
</span></span><span id="67" class="l"><a class="l" href="#67"> 67: </a><span class="php-comment"> */</span>
</span><span id="68" class="l"><a class="l" href="#68"> 68: </a> <span class="php-keyword1">private</span> <span class="php-var"><a id="$encodage" href="#$encodage">$encodage</a></span> = <span class="php-keyword1">null</span>;
</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"> * Connexion à la base de données
</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">private</span> <span class="php-var"><a id="$connexion" href="#$connexion">$connexion</a></span> = <span class="php-keyword1">null</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"> * Constructeur par défaut, appelé à l'initialisation.
</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">public</span> <span class="php-keyword1">function</span> <a id="___construct" href="#___construct">__construct</a>() {
</span><span id="78" class="l"><a class="l" href="#78"> 78: </a> <span class="php-comment">// les différents paramètres nécessaires sont lus à partir du registre</span>
</span><span id="79" class="l"><a class="l" href="#79"> 79: </a> <span class="php-var">$this</span>-&gt;registre = Registre::getInstance();
</span><span id="80" class="l"><a class="l" href="#80"> 80: </a> <span class="php-var">$this</span>-&gt;abstraction = <span class="php-keyword2">strtolower</span>(Config::get(<span class="php-quote">'bdd_abstraction'</span>));
</span><span id="81" class="l"><a class="l" href="#81"> 81: </a> <span class="php-var">$this</span>-&gt;type = Config::get(<span class="php-quote">'bdd_protocole'</span>);
</span><span id="82" class="l"><a class="l" href="#82"> 82: </a> <span class="php-var">$this</span>-&gt;hote = Config::get(<span class="php-quote">'bdd_serveur'</span>);
</span><span id="83" class="l"><a class="l" href="#83"> 83: </a> <span class="php-var">$this</span>-&gt;bdd_nom = Config::get(<span class="php-quote">'bdd_nom'</span>);
</span><span id="84" class="l"><a class="l" href="#84"> 84: </a> <span class="php-var">$this</span>-&gt;utilisateur = Config::get(<span class="php-quote">'bdd_utilisateur'</span>);
</span><span id="85" class="l"><a class="l" href="#85"> 85: </a> <span class="php-var">$this</span>-&gt;pass = Config::get(<span class="php-quote">'bdd_mot_de_passe'</span>);
</span><span id="86" class="l"><a class="l" href="#86"> 86: </a> <span class="php-var">$this</span>-&gt;encodage = Config::get(<span class="php-quote">'bdd_encodage'</span>);
</span><span id="87" class="l"><a class="l" href="#87"> 87: </a>
</span><span id="88" class="l"><a class="l" href="#88"> 88: </a> <span class="php-var">$this</span>-&gt;dsn = <span class="php-var">$this</span>-&gt;type.<span class="php-quote">':dbname='</span>.<span class="php-var">$this</span>-&gt;bdd_nom.<span class="php-quote">';host='</span>.<span class="php-var">$this</span>-&gt;hote;
</span><span id="89" class="l"><a class="l" href="#89"> 89: </a> <span class="php-var">$this</span>-&gt;initialiserProtocole();
</span><span id="90" class="l"><a class="l" href="#90"> 90: </a> }
</span><span id="91" class="l"><a class="l" href="#91"> 91: </a>
</span><span id="92" class="l"><a class="l" href="#92"> 92: </a> <span class="php-comment">/**
</span></span><span id="93" class="l"><a class="l" href="#93"> 93: </a><span class="php-comment"> * Connection à la base de données en utilisant les informations fournies par
</span></span><span id="94" class="l"><a class="l" href="#94"> 94: </a><span class="php-comment"> * le fichier de configuration.
</span></span><span id="95" class="l"><a class="l" href="#95"> 95: </a><span class="php-comment"> * private et final car n'a pas vocation a être appelée par l'utilisateur.
</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-comment"> * @throws Exception une exception dans le cas ou là connexion échoue
</span></span><span id="98" class="l"><a class="l" href="#98"> 98: </a><span class="php-comment"> */</span>
</span><span id="99" class="l"><a class="l" href="#99"> 99: </a> <span class="php-keyword1">final</span> <span class="php-keyword1">private</span> <span class="php-keyword1">function</span> <a id="_connecter" href="#_connecter">connecter</a>() {
</span><span id="100" class="l"><a class="l" href="#100">100: </a> <span class="php-keyword1">switch</span> (<span class="php-var">$this</span>-&gt;abstraction) {
</span><span id="101" class="l"><a class="l" href="#101">101: </a> <span class="php-keyword1">case</span> <span class="php-quote">'pdo'</span>:
</span><span id="102" class="l"><a class="l" href="#102">102: </a> <span class="php-keyword1">try</span> {
</span><span id="103" class="l"><a class="l" href="#103">103: </a> <span class="php-var">$this</span>-&gt;connexion = <span class="php-keyword1">new</span> PDO(<span class="php-var">$this</span>-&gt;dsn, <span class="php-var">$this</span>-&gt;utilisateur, <span class="php-var">$this</span>-&gt;pass);
</span><span id="104" class="l"><a class="l" href="#104">104: </a> <span class="php-var">$this</span>-&gt;connexion-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
</span><span id="105" class="l"><a class="l" href="#105">105: </a> } <span class="php-keyword1">catch</span> (PDOException <span class="php-var">$e</span>) {
</span><span id="106" class="l"><a class="l" href="#106">106: </a> <span class="php-keyword1">throw</span> <span class="php-keyword1">new</span> Exception(<span class="php-quote">'Erreur de connexion à la base de données : '</span>.<span class="php-var">$e</span>-&gt;getMessage());
</span><span id="107" class="l"><a class="l" href="#107">107: </a> }
</span><span id="108" class="l"><a class="l" href="#108">108: </a> <span class="php-keyword1">break</span>;
</span><span id="109" class="l"><a class="l" href="#109">109: </a>
</span><span id="110" class="l"><a class="l" href="#110">110: </a> <span class="php-keyword1">case</span> <span class="php-quote">'mysql'</span>:
</span><span id="111" class="l"><a class="l" href="#111">111: </a> <span class="php-var">$this</span>-&gt;connexion = <span class="php-keyword2">mysql_connect</span>(<span class="php-var">$this</span>-&gt;hote,<span class="php-var">$this</span>-&gt;utilisateur,<span class="php-var">$this</span>-&gt;pass);
</span><span id="112" class="l"><a class="l" href="#112">112: </a> <span class="php-keyword1">if</span> (<span class="php-var">$this</span>-&gt;connexion != <span class="php-keyword1">null</span>) {
</span><span id="113" class="l"><a class="l" href="#113">113: </a> <span class="php-keyword2">mysql_select_db</span>(<span class="php-var">$this</span>-&gt;bdd_nom, <span class="php-var">$this</span>-&gt;connexion);
</span><span id="114" class="l"><a class="l" href="#114">114: </a> } <span class="php-keyword1">else</span> {
</span><span id="115" class="l"><a class="l" href="#115">115: </a> <span class="php-keyword1">throw</span> <span class="php-keyword1">new</span> Exception(<span class="php-quote">'Erreur de connexion à la base de données, vérifiez les paramètres du fichier de configuration'</span>);
</span><span id="116" class="l"><a class="l" href="#116">116: </a> }
</span><span id="117" class="l"><a class="l" href="#117">117: </a> <span class="php-keyword1">break</span>;
</span><span id="118" class="l"><a class="l" href="#118">118: </a>
</span><span id="119" class="l"><a class="l" href="#119">119: </a> <span class="php-keyword1">case</span> <span class="php-quote">'mysqli'</span>:
</span><span id="120" class="l"><a class="l" href="#120">120: </a> <span class="php-var">$this</span>-&gt;connexion = <span class="php-keyword1">new</span> mysqli(<span class="php-var">$this</span>-&gt;hote,<span class="php-var">$this</span>-&gt;utilisateur,<span class="php-var">$this</span>-&gt;pass, <span class="php-var">$this</span>-&gt;bdd_nom);
</span><span id="121" class="l"><a class="l" href="#121">121: </a> <span class="php-keyword1">if</span> (!<span class="php-var">$this</span>-&gt;connexion) {
</span><span id="122" class="l"><a class="l" href="#122">122: </a> <span class="php-keyword1">throw</span> <span class="php-keyword1">new</span> Exception(<span class="php-quote">'Erreur de connexion à la base de données, vérifiez les paramètres du fichier de configuration'</span>);
</span><span id="123" class="l"><a class="l" href="#123">123: </a> <span class="php-keyword1">return</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 class="php-keyword1">break</span>;
</span><span id="126" class="l"><a class="l" href="#126">126: </a>
</span><span id="127" class="l"><a class="l" href="#127">127: </a> <span class="php-keyword1">case</span> <span class="php-quote">'sqlite3'</span>:
</span><span id="128" class="l"><a class="l" href="#128">128: </a> <span class="php-comment">// cas particulier de sqllite, on considère que le nom de la base de données correspond au fichier à ouvrir</span>
</span><span id="129" class="l"><a class="l" href="#129">129: </a> <span class="php-var">$this</span>-&gt;connexion = <span class="php-keyword1">new</span> SQLite3(<span class="php-var">$this</span>-&gt;bdd_nom);
</span><span id="130" class="l"><a class="l" href="#130">130: </a> <span class="php-keyword1">if</span> (!<span class="php-var">$this</span>-&gt;connexion) {
</span><span id="131" class="l"><a class="l" href="#131">131: </a> <span class="php-keyword1">throw</span> <span class="php-keyword1">new</span> Exception(<span class="php-quote">'Erreur de connexion à la base de données, vérifiez les paramètres du fichier de configuration'</span>);
</span><span id="132" class="l"><a class="l" href="#132">132: </a> <span class="php-keyword1">return</span>;
</span><span id="133" class="l"><a class="l" href="#133">133: </a> }
</span><span id="134" class="l"><a class="l" href="#134">134: </a> <span class="php-keyword1">break</span>;
</span><span id="135" class="l"><a class="l" href="#135">135: </a>
</span><span id="136" class="l"><a class="l" href="#136">136: </a> <span class="php-keyword1">default</span>:
</span><span id="137" class="l"><a class="l" href="#137">137: </a> <span class="php-var">$this</span>-&gt;connexion = <span class="php-keyword1">null</span>;
</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><span id="140" class="l"><a class="l" href="#140">140: </a> <span class="php-keyword1">if</span> (<span class="php-var">$this</span>-&gt;encodage != <span class="php-keyword1">null</span>) {
</span><span id="141" class="l"><a class="l" href="#141">141: </a> <span class="php-var">$this</span>-&gt;requete(<span class="php-quote">&quot;SET names '&quot;</span>.<span class="php-var">$this</span>-&gt;encodage.<span class="php-quote">&quot;'&quot;</span>);
</span><span id="142" class="l"><a class="l" href="#142">142: </a> }
</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-comment">/**
</span></span><span id="146" class="l"><a class="l" href="#146">146: </a><span class="php-comment"> * Fonction qui appelle la bonne fonction pour executer une requête suivant le type de bdd.
</span></span><span id="147" class="l"><a class="l" href="#147">147: </a><span class="php-comment"> *
</span></span><span id="148" class="l"><a class="l" href="#148">148: </a><span class="php-comment"> * @param string la requete à effectuer
</span></span><span id="149" class="l"><a class="l" href="#149">149: </a><span class="php-comment"> * @return PDOStatement un objet contenant le résultat de la requête
</span></span><span id="150" class="l"><a class="l" href="#150">150: </a><span class="php-comment"> */</span>
</span><span id="151" class="l"><a class="l" href="#151">151: </a> <span class="php-keyword1">final</span> <span class="php-keyword1">protected</span> <span class="php-keyword1">function</span> <a id="_requete" href="#_requete">requete</a>(<span class="php-var">$requete</span>) {
</span><span id="152" class="l"><a class="l" href="#152">152: </a> <span class="php-comment">// on ne se connecte que lors du premier appel à une requete (lazy connexion)</span>
</span><span id="153" class="l"><a class="l" href="#153">153: </a> <span class="php-keyword1">if</span> (<span class="php-var">$this</span>-&gt;connexion == <span class="php-keyword1">null</span>) {
</span><span id="154" class="l"><a class="l" href="#154">154: </a> <span class="php-var">$this</span>-&gt;connecter();
</span><span id="155" class="l"><a class="l" href="#155">155: </a> }
</span><span id="156" class="l"><a class="l" href="#156">156: </a>
</span><span id="157" class="l"><a class="l" href="#157">157: </a> <span class="php-var">$retour</span> = <span class="php-keyword1">null</span>;
</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 class="php-keyword1">switch</span> (<span class="php-var">$this</span>-&gt;abstraction) {
</span><span id="160" class="l"><a class="l" href="#160">160: </a> <span class="php-keyword1">case</span> <span class="php-quote">'pdo'</span>:
</span><span id="161" class="l"><a class="l" href="#161">161: </a> <span class="php-var">$retour</span> = <span class="php-var">$this</span>-&gt;connexion-&gt;query(<span class="php-var">$requete</span>);
</span><span id="162" class="l"><a class="l" href="#162">162: </a> <span class="php-keyword1">break</span>;
</span><span id="163" class="l"><a class="l" href="#163">163: </a> <span class="php-keyword1">case</span> <span class="php-quote">'mysql'</span>:
</span><span id="164" class="l"><a class="l" href="#164">164: </a> <span class="php-var">$retour</span> = <span class="php-keyword2">mysql_query</span>(<span class="php-var">$requete</span>,<span class="php-var">$this</span>-&gt;connexion);
</span><span id="165" class="l"><a class="l" href="#165">165: </a> <span class="php-keyword1">break</span>;
</span><span id="166" class="l"><a class="l" href="#166">166: </a> <span class="php-keyword1">case</span> <span class="php-quote">'mysqli'</span>:
</span><span id="167" class="l"><a class="l" href="#167">167: </a> <span class="php-var">$retour</span> = <span class="php-var">$this</span>-&gt;connexion-&gt;query(<span class="php-var">$requete</span>);
</span><span id="168" class="l"><a class="l" href="#168">168: </a> <span class="php-keyword1">break</span>;
</span><span id="169" class="l"><a class="l" href="#169">169: </a> <span class="php-keyword1">case</span> <span class="php-quote">'sqlite3'</span>:
</span><span id="170" class="l"><a class="l" href="#170">170: </a> <span class="php-var">$retour</span> = <span class="php-var">$this</span>-&gt;connexion-&gt;<span class="php-keyword2">exec</span>(<span class="php-var">$requete</span>);
</span><span id="171" class="l"><a class="l" href="#171">171: </a> <span class="php-keyword1">break</span>;
</span><span id="172" class="l"><a class="l" href="#172">172: </a> }
</span><span id="173" class="l"><a class="l" href="#173">173: </a>
</span><span id="174" class="l"><a class="l" href="#174">174: </a> <span class="php-keyword1">return</span> <span class="php-var">$retour</span>;
</span><span id="175" class="l"><a class="l" href="#175">175: </a> }
</span><span id="176" class="l"><a class="l" href="#176">176: </a>
</span><span id="177" class="l"><a class="l" href="#177">177: </a> <span class="php-keyword1">final</span> <span class="php-keyword1">protected</span> <span class="php-keyword1">function</span> <a id="_requeteUn" href="#_requeteUn">requeteUn</a>(<span class="php-var">$requete</span>,<span class="php-var">$mode</span> = <span class="php-quote">'ASSOC'</span>) {
</span><span id="178" class="l"><a class="l" href="#178">178: </a> <span class="php-comment">// Connection seulement lors du premier appel à une requete (lazy connexion)</span>
</span><span id="179" class="l"><a class="l" href="#179">179: </a> <span class="php-keyword1">if</span> (<span class="php-var">$this</span>-&gt;connexion == <span class="php-keyword1">null</span>) {
</span><span id="180" class="l"><a class="l" href="#180">180: </a> <span class="php-var">$this</span>-&gt;connecter();
</span><span id="181" class="l"><a class="l" href="#181">181: </a> }
</span><span id="182" class="l"><a class="l" href="#182">182: </a>
</span><span id="183" class="l"><a class="l" href="#183">183: </a> <span class="php-var">$retour</span> = <span class="php-keyword1">null</span>;
</span><span id="184" class="l"><a class="l" href="#184">184: </a> <span class="php-keyword1">switch</span> (<span class="php-var">$this</span>-&gt;abstraction) {
</span><span id="185" class="l"><a class="l" href="#185">185: </a> <span class="php-keyword1">case</span> <span class="php-quote">'pdo'</span>:
</span><span id="186" class="l"><a class="l" href="#186">186: </a> <span class="php-keyword1">try</span> {
</span><span id="187" class="l"><a class="l" href="#187">187: </a> <span class="php-var">$res_req</span> = <span class="php-var">$this</span>-&gt;connexion-&gt;query(<span class="php-var">$requete</span>);
</span><span id="188" class="l"><a class="l" href="#188">188: </a> <span class="php-var">$retour</span> = (<span class="php-var">$res_req</span> !== <span class="php-keyword1">false</span>) ? <span class="php-var">$res_req</span>-&gt;fetch(<span class="php-var">$this</span>-&gt;<span class="php-var">$mode</span>) : <span class="php-var">$res_req</span>;
</span><span id="189" class="l"><a class="l" href="#189">189: </a> } <span class="php-keyword1">catch</span> (PDOException <span class="php-var">$e</span>) {
</span><span id="190" class="l"><a class="l" href="#190">190: </a> <span class="php-var">$message</span> = <span class="php-quote">'Requête echec. Fichier : &quot;%s&quot;. Ligne : &quot;%s&quot;. Message : %s'</span>;
</span><span id="191" class="l"><a class="l" href="#191">191: </a> <span class="php-keyword2">trigger_error</span>(<span class="php-keyword2">sprintf</span>(<span class="php-var">$message</span>, <span class="php-var">$e</span>-&gt;getFile(), <span class="php-var">$e</span>-&gt;getLine(), <span class="php-var">$e</span>-&gt;getMessage()), E_USER_WARNING);
</span><span id="192" class="l"><a class="l" href="#192">192: </a> }
</span><span id="193" class="l"><a class="l" href="#193">193: </a> <span class="php-keyword1">break</span>;
</span><span id="194" class="l"><a class="l" href="#194">194: </a> <span class="php-keyword1">case</span> <span class="php-quote">'mysql'</span>:
</span><span id="195" class="l"><a class="l" href="#195">195: </a> <span class="php-var">$res</span> = <span class="php-keyword2">mysql_query</span>(<span class="php-var">$requete</span>,<span class="php-var">$this</span>-&gt;connexion);
</span><span id="196" class="l"><a class="l" href="#196">196: </a> <span class="php-var">$fonction_fetch</span> = <span class="php-var">$this</span>-&gt;<span class="php-var">$mode</span>;
</span><span id="197" class="l"><a class="l" href="#197">197: </a> <span class="php-var">$retour</span> = <span class="php-var">$fonction_fetch</span>(<span class="php-var">$res</span>);
</span><span id="198" class="l"><a class="l" href="#198">198: </a> <span class="php-keyword1">break</span>;
</span><span id="199" class="l"><a class="l" href="#199">199: </a> <span class="php-keyword1">case</span> <span class="php-quote">'mysqli'</span>:
</span><span id="200" class="l"><a class="l" href="#200">200: </a> <span class="php-var">$res</span> = <span class="php-var">$this</span>-&gt;connexion-&gt;query(<span class="php-var">$requete</span>);
</span><span id="201" class="l"><a class="l" href="#201">201: </a> <span class="php-var">$fonction_fetch</span> = <span class="php-var">$this</span>-&gt;<span class="php-var">$mode</span>;
</span><span id="202" class="l"><a class="l" href="#202">202: </a> <span class="php-var">$retour</span> = <span class="php-var">$res</span>-&gt;<span class="php-var">$fonction_fetch</span>();
</span><span id="203" class="l"><a class="l" href="#203">203: </a> <span class="php-keyword1">break</span>;
</span><span id="204" class="l"><a class="l" href="#204">204: </a> <span class="php-keyword1">case</span> <span class="php-quote">'sqlite3'</span>:
</span><span id="205" class="l"><a class="l" href="#205">205: </a> <span class="php-var">$retour</span> = <span class="php-var">$this</span>-&gt;connexion-&gt;querySingle(<span class="php-var">$requete</span>);
</span><span id="206" class="l"><a class="l" href="#206">206: </a> <span class="php-keyword1">break</span>;
</span><span id="207" class="l"><a class="l" href="#207">207: </a> }
</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 class="php-keyword1">return</span> <span class="php-var">$retour</span>;
</span><span id="210" class="l"><a class="l" href="#210">210: </a> }
</span><span id="211" class="l"><a class="l" href="#211">211: </a>
</span><span id="212" class="l"><a class="l" href="#212">212: </a>
</span><span id="213" class="l"><a class="l" href="#213">213: </a> <span class="php-keyword1">final</span> <span class="php-keyword1">protected</span> <span class="php-keyword1">function</span> <a id="_requeteTous" href="#_requeteTous">requeteTous</a>(<span class="php-var">$requete</span>,<span class="php-var">$mode</span> = <span class="php-quote">'ASSOC'</span>) {
</span><span id="214" class="l"><a class="l" href="#214">214: </a> <span class="php-comment">// Connexion seulement lors du premier appel à une requete (lazy connexion)</span>
</span><span id="215" class="l"><a class="l" href="#215">215: </a> <span class="php-keyword1">if</span> (<span class="php-var">$this</span>-&gt;connexion == <span class="php-keyword1">null</span>) {
</span><span id="216" class="l"><a class="l" href="#216">216: </a> <span class="php-var">$this</span>-&gt;connecter();
</span><span id="217" class="l"><a class="l" href="#217">217: </a> }
</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 class="php-var">$retour</span> = <span class="php-keyword1">null</span>;
</span><span id="220" class="l"><a class="l" href="#220">220: </a>
</span><span id="221" class="l"><a class="l" href="#221">221: </a> <span class="php-keyword1">switch</span> (<span class="php-var">$this</span>-&gt;abstraction) {
</span><span id="222" class="l"><a class="l" href="#222">222: </a> <span class="php-keyword1">case</span> <span class="php-quote">'pdo'</span>:
</span><span id="223" class="l"><a class="l" href="#223">223: </a> <span class="php-keyword1">try</span> {
</span><span id="224" class="l"><a class="l" href="#224">224: </a> <span class="php-var">$res_req</span> = <span class="php-var">$this</span>-&gt;connexion-&gt;query(<span class="php-var">$requete</span>);
</span><span id="225" class="l"><a class="l" href="#225">225: </a> <span class="php-keyword1">if</span> (<span class="php-var">$res_req</span> !== <span class="php-keyword1">false</span>) {
</span><span id="226" class="l"><a class="l" href="#226">226: </a> <span class="php-var">$retour</span> = <span class="php-var">$res_req</span>-&gt;fetchAll(<span class="php-var">$this</span>-&gt;<span class="php-var">$mode</span>);
</span><span id="227" class="l"><a class="l" href="#227">227: </a> } <span class="php-keyword1">else</span> {
</span><span id="228" class="l"><a class="l" href="#228">228: </a> <span class="php-var">$retour</span> = <span class="php-keyword1">false</span>;
</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-keyword1">catch</span> (PDOException <span class="php-var">$e</span>) {
</span><span id="231" class="l"><a class="l" href="#231">231: </a> <span class="php-var">$message</span> = <span class="php-quote">'Requête echec. Fichier : &quot;%s&quot;. Ligne : &quot;%s&quot;. Message : %s'</span>;
</span><span id="232" class="l"><a class="l" href="#232">232: </a> <span class="php-keyword2">trigger_error</span>(<span class="php-keyword2">sprintf</span>(<span class="php-var">$message</span>, <span class="php-var">$e</span>-&gt;getFile(), <span class="php-var">$e</span>-&gt;getLine(), <span class="php-var">$e</span>-&gt;getMessage()), E_USER_WARNING);
</span><span id="233" class="l"><a class="l" href="#233">233: </a> }
</span><span id="234" class="l"><a class="l" href="#234">234: </a> <span class="php-keyword1">break</span>;
</span><span id="235" class="l"><a class="l" href="#235">235: </a> <span class="php-keyword1">case</span> <span class="php-quote">'mysql'</span>:
</span><span id="236" class="l"><a class="l" href="#236">236: </a> <span class="php-var">$res</span> = <span class="php-keyword2">mysql_query</span>(<span class="php-var">$requete</span>, <span class="php-var">$this</span>-&gt;connexion);
</span><span id="237" class="l"><a class="l" href="#237">237: </a> <span class="php-var">$fonction_fetch</span> = <span class="php-var">$this</span>-&gt;<span class="php-var">$mode</span>;
</span><span id="238" class="l"><a class="l" href="#238">238: </a> <span class="php-keyword1">while</span> (<span class="php-var">$ligne</span> = <span class="php-var">$fonction_fetch</span>(<span class="php-var">$res</span>)) {
</span><span id="239" class="l"><a class="l" href="#239">239: </a> <span class="php-var">$retour</span>[] = <span class="php-var">$ligne</span>;
</span><span id="240" class="l"><a class="l" href="#240">240: </a> }
</span><span id="241" class="l"><a class="l" href="#241">241: </a> <span class="php-keyword1">break</span>;
</span><span id="242" class="l"><a class="l" href="#242">242: </a> <span class="php-keyword1">case</span> <span class="php-quote">'mysqli'</span>:
</span><span id="243" class="l"><a class="l" href="#243">243: </a> <span class="php-var">$res</span> = <span class="php-var">$this</span>-&gt;connexion-&gt;query(<span class="php-var">$requete</span>);
</span><span id="244" class="l"><a class="l" href="#244">244: </a> <span class="php-var">$function_fetch</span> = <span class="php-var">$this</span>-&gt;<span class="php-var">$mode</span>;
</span><span id="245" class="l"><a class="l" href="#245">245: </a> <span class="php-keyword1">while</span> (<span class="php-var">$ligne</span> = <span class="php-var">$res</span>-&gt;<span class="php-var">$function_fetch</span>()) {
</span><span id="246" class="l"><a class="l" href="#246">246: </a> <span class="php-var">$retour</span>[] = <span class="php-var">$ligne</span>;
</span><span id="247" class="l"><a class="l" href="#247">247: </a> }
</span><span id="248" class="l"><a class="l" href="#248">248: </a> <span class="php-keyword1">break</span>;
</span><span id="249" class="l"><a class="l" href="#249">249: </a> <span class="php-keyword1">case</span> <span class="php-quote">'sqlite3'</span>:
</span><span id="250" class="l"><a class="l" href="#250">250: </a> <span class="php-var">$res</span> = <span class="php-var">$this</span>-&gt;connexion-&gt;query(<span class="php-var">$requete</span>);
</span><span id="251" class="l"><a class="l" href="#251">251: </a> <span class="php-keyword1">while</span> (<span class="php-var">$ligne</span> = <span class="php-var">$res</span>-&gt;fetch_array(<span class="php-var">$this</span>-&gt;ASSOC)) {
</span><span id="252" class="l"><a class="l" href="#252">252: </a> <span class="php-keyword1">if</span> (<span class="php-var">$mode</span> == <span class="php-var">$this</span>-&gt;ASSOC) {
</span><span id="253" class="l"><a class="l" href="#253">253: </a> <span class="php-var">$retour</span>[] = <span class="php-var">$ligne</span>;
</span><span id="254" class="l"><a class="l" href="#254">254: </a> } <span class="php-keyword1">elseif</span> (<span class="php-var">$mode</span> == <span class="php-var">$this</span>-&gt;OBJECT) {
</span><span id="255" class="l"><a class="l" href="#255">255: </a> <span class="php-comment">// cas particulier de sqllite</span>
</span><span id="256" class="l"><a class="l" href="#256">256: </a> <span class="php-comment">// qui n'a pas de fonction fetch_object</span>
</span><span id="257" class="l"><a class="l" href="#257">257: </a> <span class="php-var">$ligneObjet</span> = <span class="php-keyword1">new</span> stdClass();
</span><span id="258" class="l"><a class="l" href="#258">258: </a> <span class="php-keyword1">foreach</span> (<span class="php-var">$ligne</span> <span class="php-keyword1">as</span> <span class="php-var">$colonne</span> =&gt; <span class="php-var">$valeur</span>) {
</span><span id="259" class="l"><a class="l" href="#259">259: </a> <span class="php-var">$ligneObjet</span>-&gt;<span class="php-var">$colonne</span> = <span class="php-var">$valeur</span>;
</span><span id="260" class="l"><a class="l" href="#260">260: </a> }
</span><span id="261" class="l"><a class="l" href="#261">261: </a> <span class="php-var">$retour</span>[] = <span class="php-var">$ligneObjet</span>;
</span><span id="262" class="l"><a class="l" href="#262">262: </a> }
</span><span id="263" class="l"><a class="l" href="#263">263: </a> }
</span><span id="264" class="l"><a class="l" href="#264">264: </a> <span class="php-keyword1">break</span>;
</span><span id="265" class="l"><a class="l" href="#265">265: </a> }
</span><span id="266" class="l"><a class="l" href="#266">266: </a>
</span><span id="267" class="l"><a class="l" href="#267">267: </a> <span class="php-keyword1">return</span> <span class="php-var">$retour</span>;
</span><span id="268" class="l"><a class="l" href="#268">268: </a> }
</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 class="php-comment">/**
</span></span><span id="271" class="l"><a class="l" href="#271">271: </a><span class="php-comment"> * protège une chaine de caractères avant l'insertion dans la base de données
</span></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-keyword1">final</span> <span class="php-keyword1">protected</span> <span class="php-keyword1">function</span> <a id="_proteger" href="#_proteger">proteger</a>(<span class="php-var">$chaine</span>) {
</span><span id="274" class="l"><a class="l" href="#274">274: </a> <span class="php-comment">// on ne se connecte que lors du premier appel à une requete</span>
</span><span id="275" class="l"><a class="l" href="#275">275: </a> <span class="php-keyword1">if</span> (<span class="php-var">$this</span>-&gt;connexion == <span class="php-keyword1">null</span>) {
</span><span id="276" class="l"><a class="l" href="#276">276: </a> <span class="php-var">$this</span>-&gt;connecter();
</span><span id="277" class="l"><a class="l" href="#277">277: </a> }
</span><span id="278" class="l"><a class="l" href="#278">278: </a>
</span><span id="279" class="l"><a class="l" href="#279">279: </a> <span class="php-var">$retour</span> = <span class="php-var">$chaine</span>;
</span><span id="280" class="l"><a class="l" href="#280">280: </a> <span class="php-keyword1">switch</span> (<span class="php-var">$this</span>-&gt;abstraction) {
</span><span id="281" class="l"><a class="l" href="#281">281: </a> <span class="php-keyword1">case</span> <span class="php-quote">'pdo'</span>:
</span><span id="282" class="l"><a class="l" href="#282">282: </a> <span class="php-var">$retour</span> = <span class="php-var">$this</span>-&gt;connexion-&gt;quote(<span class="php-var">$chaine</span>);
</span><span id="283" class="l"><a class="l" href="#283">283: </a> <span class="php-keyword1">break</span>;
</span><span id="284" class="l"><a class="l" href="#284">284: </a> <span class="php-keyword1">case</span> <span class="php-quote">'mysql'</span>:
</span><span id="285" class="l"><a class="l" href="#285">285: </a> <span class="php-var">$retour</span> = <span class="php-quote">'&quot;'</span>.<span class="php-keyword2">mysql_real_escape_string</span>(<span class="php-var">$chaine</span>, <span class="php-var">$this</span>-&gt;connexion).<span class="php-quote">'&quot;'</span>;
</span><span id="286" class="l"><a class="l" href="#286">286: </a> <span class="php-keyword1">break</span>;
</span><span id="287" class="l"><a class="l" href="#287">287: </a> <span class="php-keyword1">case</span> <span class="php-quote">'mysqli'</span>:
</span><span id="288" class="l"><a class="l" href="#288">288: </a> <span class="php-var">$retour</span> = <span class="php-quote">'&quot;'</span>.<span class="php-var">$this</span>-&gt;connexion-&gt;real_escape_string(<span class="php-var">$chaine</span>).<span class="php-quote">'&quot;'</span>;
</span><span id="289" class="l"><a class="l" href="#289">289: </a> <span class="php-keyword1">break</span>;
</span><span id="290" class="l"><a class="l" href="#290">290: </a> <span class="php-keyword1">case</span> <span class="php-quote">'sqlite3'</span>:
</span><span id="291" class="l"><a class="l" href="#291">291: </a> <span class="php-var">$retour</span> = <span class="php-var">$this</span>-&gt;connexion-&gt;escapeString(<span class="php-var">$chaine</span>);
</span><span id="292" class="l"><a class="l" href="#292">292: </a> <span class="php-keyword1">break</span>;
</span><span id="293" class="l"><a class="l" href="#293">293: </a> }
</span><span id="294" class="l"><a class="l" href="#294">294: </a> <span class="php-keyword1">return</span> <span class="php-var">$retour</span>;
</span><span id="295" class="l"><a class="l" href="#295">295: </a> }
</span><span id="296" class="l"><a class="l" href="#296">296: </a>
</span><span id="297" class="l"><a class="l" href="#297">297: </a> <span class="php-comment">/**
</span></span><span id="298" class="l"><a class="l" href="#298">298: </a><span class="php-comment"> * initialise les constantes de classe à leur bonne valeur
</span></span><span id="299" class="l"><a class="l" href="#299">299: </a><span class="php-comment"> * et lance une exception si le protocole n'est pas bien défini
</span></span><span id="300" class="l"><a class="l" href="#300">300: </a><span class="php-comment"> * @throws Exception
</span></span><span id="301" class="l"><a class="l" href="#301">301: </a><span class="php-comment"> */</span>
</span><span id="302" class="l"><a class="l" href="#302">302: </a> <span class="php-keyword1">final</span> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_initialiserProtocole" href="#_initialiserProtocole">initialiserProtocole</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-keyword1">switch</span> (<span class="php-var">$this</span>-&gt;abstraction) {
</span><span id="305" class="l"><a class="l" href="#305">305: </a> <span class="php-keyword1">case</span> <span class="php-quote">'pdo'</span>:
</span><span id="306" class="l"><a class="l" href="#306">306: </a> <span class="php-var">$this</span>-&gt;ASSOC = PDO::FETCH_ASSOC;
</span><span id="307" class="l"><a class="l" href="#307">307: </a> <span class="php-var">$this</span>-&gt;OBJECT = PDO::FETCH_CLASS;
</span><span id="308" class="l"><a class="l" href="#308">308: </a> <span class="php-keyword1">break</span>;
</span><span id="309" class="l"><a class="l" href="#309">309: </a> <span class="php-keyword1">case</span> <span class="php-quote">'mysql'</span>:
</span><span id="310" class="l"><a class="l" href="#310">310: </a> <span class="php-var">$this</span>-&gt;ASSOC = <span class="php-quote">'mysql_fetch_assoc'</span>;
</span><span id="311" class="l"><a class="l" href="#311">311: </a> <span class="php-var">$this</span>-&gt;OBJECT = <span class="php-quote">'mysql_fetch_object'</span>;
</span><span id="312" class="l"><a class="l" href="#312">312: </a> <span class="php-keyword1">break</span>;
</span><span id="313" class="l"><a class="l" href="#313">313: </a> <span class="php-keyword1">case</span> <span class="php-quote">'mysqli'</span>:
</span><span id="314" class="l"><a class="l" href="#314">314: </a> <span class="php-var">$this</span>-&gt;ASSOC = <span class="php-quote">'fetch_assoc'</span>;
</span><span id="315" class="l"><a class="l" href="#315">315: </a> <span class="php-var">$this</span>-&gt;OBJECT = <span class="php-quote">'fetch_object'</span>;
</span><span id="316" class="l"><a class="l" href="#316">316: </a> <span class="php-keyword1">break</span>;
</span><span id="317" class="l"><a class="l" href="#317">317: </a> <span class="php-keyword1">case</span> <span class="php-quote">'sqlite3'</span>:
</span><span id="318" class="l"><a class="l" href="#318">318: </a> <span class="php-var">$this</span>-&gt;ASSOC = <span class="php-quote">'SQLITE3_ASSOC'</span>;
</span><span id="319" class="l"><a class="l" href="#319">319: </a> <span class="php-var">$this</span>-&gt;OBJECT = <span class="php-quote">'SQLITE3_OBJECT'</span>;
</span><span id="320" class="l"><a class="l" href="#320">320: </a> <span class="php-keyword1">break</span>;
</span><span id="321" class="l"><a class="l" href="#321">321: </a> <span class="php-keyword1">default</span>:
</span><span id="322" class="l"><a class="l" href="#322">322: </a> <span class="php-keyword1">throw</span> <span class="php-keyword1">new</span> Exception(<span class="php-quote">'Erreur : l\'abstraction '</span>.<span class="php-var">$this</span>-&gt;abstraction.<span class="php-quote">' n\'est pas prise en charge'</span>);
</span><span id="323" class="l"><a class="l" href="#323">323: </a> <span class="php-keyword1">break</span>;
</span><span id="324" class="l"><a class="l" href="#324">324: </a> }
</span><span id="325" class="l"><a class="l" href="#325">325: </a> }
</span><span id="326" class="l"><a class="l" href="#326">326: </a>
</span><span id="327" class="l"><a class="l" href="#327">327: </a> <span class="php-comment">/**
</span></span><span id="328" class="l"><a class="l" href="#328">328: </a><span class="php-comment"> * Destructeur de classe, se contente de fermer explicitement la connexion
</span></span><span id="329" class="l"><a class="l" href="#329">329: </a><span class="php-comment"> */</span>
</span><span id="330" class="l"><a class="l" href="#330">330: </a> <span class="php-keyword1">final</span> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="___destruct" href="#___destruct">__destruct</a>() {
</span><span id="331" class="l"><a class="l" href="#331">331: </a> <span class="php-keyword1">switch</span> (<span class="php-var">$this</span>-&gt;abstraction) {
</span><span id="332" class="l"><a class="l" href="#332">332: </a> <span class="php-keyword1">case</span> <span class="php-quote">'pdo'</span>:
</span><span id="333" class="l"><a class="l" href="#333">333: </a> <span class="php-var">$this</span>-&gt;connexion = <span class="php-keyword1">null</span>;
</span><span id="334" class="l"><a class="l" href="#334">334: </a> <span class="php-keyword1">break</span>;
</span><span id="335" class="l"><a class="l" href="#335">335: </a> <span class="php-keyword1">case</span> <span class="php-quote">'mysql'</span>:
</span><span id="336" class="l"><a class="l" href="#336">336: </a> <span class="php-keyword1">return</span> <span class="php-keyword2">mysql_close</span>(<span class="php-var">$this</span>-&gt;connexion);
</span><span id="337" class="l"><a class="l" href="#337">337: </a> <span class="php-keyword1">break</span>;
</span><span id="338" class="l"><a class="l" href="#338">338: </a> <span class="php-keyword1">case</span> <span class="php-quote">'mysqli'</span>:
</span><span id="339" class="l"><a class="l" href="#339">339: </a> <span class="php-var">$this</span>-&gt;connexion-&gt;close();
</span><span id="340" class="l"><a class="l" href="#340">340: </a> <span class="php-keyword1">break</span>;
</span><span id="341" class="l"><a class="l" href="#341">341: </a> <span class="php-keyword1">case</span> <span class="php-quote">'sqlite3'</span>:
</span><span id="342" class="l"><a class="l" href="#342">342: </a> <span class="php-var">$this</span>-&gt;connexion-&gt;close();
</span><span id="343" class="l"><a class="l" href="#343">343: </a> <span class="php-keyword1">break</span>;
</span><span id="344" class="l"><a class="l" href="#344">344: </a> }
</span><span id="345" class="l"><a class="l" href="#345">345: </a> }
</span><span id="346" class="l"><a class="l" href="#346">346: </a>}
</span><span id="347" class="l"><a class="l" href="#347">347: </a></span><span class="xlang">?&gt;</span></code></pre>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/resources/footer.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/branches/v0.2-buhl/doc/ApiGen/resources/footer.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/branches/v0.2-buhl/doc/ApiGen/resources/tree-last.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/branches/v0.2-buhl/doc/ApiGen/resources/tree-last.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/branches/v0.2-buhl/doc/ApiGen/resources/resize.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/branches/v0.2-buhl/doc/ApiGen/resources/resize.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/branches/v0.2-buhl/doc/ApiGen/resources/inherit.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/branches/v0.2-buhl/doc/ApiGen/resources/inherit.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/branches/v0.2-buhl/doc/ApiGen/resources/style.css
New file
0,0 → 1,608
/*!
* ApiGen 2.8.0 - API documentation generator for PHP 5.3+
*
* Copyright (c) 2010-2011 David Grudl (http://davidgrudl.com)
* Copyright (c) 2011-2012 Jaroslav Hanslík (https://github.com/kukulich)
* Copyright (c) 2011-2012 Ondřej Nešpor (https://github.com/Andrewsville)
*
* For the full copyright and license information, please view
* the file LICENSE.md that was distributed with this source code.
*/
 
body {
font: 13px/1.5 Verdana, 'Geneva CE', lucida, sans-serif;
margin: 0;
padding: 0;
background: #ffffff;
color: #333333;
}
 
h1, h2, h3, h4, caption {
font-family: 'Trebuchet MS', 'Geneva CE', lucida, sans-serif;
color: #053368;
}
 
h1 {
color: #1e5eb6;
font-size: 230%;
font-weight: normal;
margin: .3em 0;
}
 
h2 {
color: #1e5eb6;
font-size: 150%;
font-weight: normal;
margin: -.3em 0 .3em 0;
}
 
h3 {
font-size: 1.6em;
font-weight: normal;
margin-bottom: 2px;
}
 
h4 {
font-size: 100%;
font-weight: bold;
padding: 0;
margin: 0;
}
 
caption {
border: 1px solid #cccccc;
background: #ecede5;
font-weight: bold;
font-size: 1.2em;
padding: 3px 5px;
text-align: left;
margin-bottom: 0;
}
 
p {
margin: .7em 0 1em;
padding: 0;
}
 
hr {
margin: 2em 0 1em;
border: none;
border-top: 1px solid #cccccc;
height: 0;
}
 
a {
color: #006aeb;
padding: 3px 1px;
text-decoration: none;
}
 
h1 a {
color: #1e5eb6;
}
 
a:hover, a:active, a:focus, a:hover b, a:hover var {
background-color: #006aeb;
color: #ffffff !important;
}
 
code, var, pre {
font-family: monospace;
}
 
var {
font-weight: bold;
font-style: normal;
color: #ca8a04;
}
 
pre {
margin: 0;
}
 
code a b {
color: #000000;
}
 
.deprecated {
text-decoration: line-through;
}
 
.invalid {
color: #e71818;
}
 
.hidden {
display: none;
}
 
/* Left side */
#left {
overflow: auto;
width: 270px;
height: 100%;
position: fixed;
}
 
/* Menu */
#menu {
padding: 10px;
}
 
#menu ul {
list-style: none;
padding: 0;
margin: 0;
}
 
#menu ul ul {
padding-left: 10px;
}
 
#menu li {
white-space: nowrap;
position: relative;
}
 
#menu a {
display: block;
padding: 0 2px;
}
 
#menu .active > a, #menu > span {
color: #333333;
background: none;
font-weight: bold;
}
 
#menu .active > a.invalid {
color: #e71818;
}
 
#menu .active > a:hover, #menu .active > a:active, #menu .active > a:focus {
background-color: #006aeb;
}
 
#menu #groups span {
position: absolute;
top: 4px;
right: 2px;
cursor: pointer;
display: block;
width: 12px;
height: 12px;
background: url('collapsed.png') transparent 0 0 no-repeat;
}
 
#menu #groups span:hover {
background-position: -12px 0;
}
 
#menu #groups span.collapsed {
background-position: 0 -12px;
}
 
#menu #groups span.collapsed:hover {
background-position: -12px -12px;
}
 
#menu #groups ul.collapsed {
display: none;
}
 
/* Right side */
#right {
overflow: auto;
margin-left: 275px;
height: 100%;
position: fixed;
left: 0;
right: 0;
}
 
#rightInner {
max-width: 1000px;
min-width: 350px;
}
 
/* Search */
#search {
float: right;
margin: 3px 8px;
}
 
#search input.text {
padding: 3px 5px;
width: 250px;
}
 
/* Autocomplete */
.ac_results {
padding: 0;
border: 1px solid #cccccc;
background-color: #ffffff;
overflow: hidden;
z-index: 99999;
}
 
.ac_results ul {
width: 100%;
list-style-position: outside;
list-style: none;
padding: 0;
margin: 0;
}
 
.ac_results li {
margin: 0;
padding: 2px 5px;
cursor: default;
display: block;
font: 12px 'Trebuchet MS', 'Geneva CE', lucida, sans-serif;
line-height: 16px;
overflow: hidden;
white-space: nowrap;
}
 
.ac_results li strong {
color: #000000;
}
 
.ac_odd {
background-color: #eeeeee;
}
 
.ac_over {
background-color: #006aeb;
color: #ffffff;
}
 
.ac_results li.ac_over strong {
color: #ffffff;
}
 
/* Navigation */
#navigation {
padding: 3px 8px;
background-color: #f6f6f4;
height: 26px;
}
 
#navigation ul {
list-style: none;
margin: 0 8px 4px 0;
padding: 0;
overflow: hidden;
float: left;
}
 
#navigation ul + ul {
border-left: 1px solid #000000;
padding-left: 8px;
}
 
#navigation ul li {
float: left;
margin: 2px;
padding: 0 3px;
font-family: Verdana, 'Geneva CE', lucida, sans-serif;
color: #808080;
}
 
#navigation ul li.active {
background-color: #053368;
color: #ffffff;
font-weight: bold;
}
 
#navigation ul li a {
color: #000000;
font-weight: bold;
padding: 0;
}
 
#navigation ul li span {
float: left;
padding: 0 3px;
}
 
#navigation ul li a:hover span, #navigation ul li a:active span, #navigation ul li a:focus span {
background-color: #006aeb;
}
 
/* Content */
#content {
clear: both;
padding: 5px 15px;
}
 
.description pre {
padding: .6em;
background: #fcfcf7;
}
 
#content > .description {
background: #ecede5;
padding: 1px 8px;
margin: 1.2em 0;
}
 
#content > .description pre {
margin: .5em 0;
}
 
dl.tree {
margin: 1.2em 0;
}
 
dl.tree dd {
margin: 0;
padding: 0;
}
 
.info {
margin: 1.2em 0;
}
 
.summary {
border: 1px solid #cccccc;
border-collapse: collapse;
font-size: 1em;
width: 100%;
margin: 1.2em 0 2.4em;
}
 
.summary caption {
border-width: 1px 1px 0;
}
 
.summary caption.switchable {
background: #ecede5 url('sort.png') no-repeat center right;
cursor: pointer;
}
 
.summary td {
border: 1px solid #cccccc;
margin: 0;
padding: 3px 10px;
font-size: 1em;
vertical-align: top;
}
 
.summary td:first-child {
text-align: right;
}
 
#packages.summary td:first-child, #namespaces.summary td:first-child, .inherited.summary td:first-child, .used.summary td:first-child {
text-align: left;
}
 
.summary tr:hover td {
background: #f6f6f4;
}
 
.summary .description pre {
border: .5em solid #ecede5;
}
 
.summary .description p {
margin: 0;
}
 
.summary .description p + p, .summary .description ul {
margin: 3px 0 0 0;
}
 
.summary .description.detailed h4 {
margin-top: 3px;
}
 
.summary dl {
margin: 0;
}
 
.summary dd {
margin: 0 0 0 25px;
}
 
.name, .attributes {
white-space: nowrap;
}
 
.value {
white-space: pre-wrap;
}
 
td.name, td.attributes {
width: 1%;
}
 
.class #methods .name {
width: auto;
white-space: normal;
}
 
.class #methods .name > div > code {
white-space: pre-wrap;
}
 
.class #methods .name > div > code span, .function .value > code {
white-space: nowrap;
}
 
.class #methods td.name > div, .class td.description > div {
position: relative;
padding-right: 1em;
}
 
.anchor {
position: absolute;
top: 0;
right: 0;
line-height: 1;
font-size: 85%;
margin: 0;
color: #006aeb !important;
}
 
.list {
margin: 0 0 5px 25px;
}
 
div.invalid {
background-color: #fae4e0;
padding: 10px;
}
 
/* Splitter */
#splitter {
position: fixed;
height: 100%;
width: 5px;
left: 270px;
background: #1e5eb6 url('resize.png') left center no-repeat;
cursor: e-resize;
}
 
#splitter.active {
opacity: .5;
}
 
/* Footer */
#footer {
border-top: 1px solid #e9eeef;
clear: both;
color: #a7a7a7;
font-size: 8pt;
text-align: center;
padding: 20px 0 0;
margin: 3em 0 0;
height: 90px;
background: #ffffff url('footer.png') no-repeat center top;
}
 
/* Tree */
div.tree ul {
list-style: none;
background: url('tree-vertical.png') left repeat-y;
padding: 0;
margin-left: 20px;
}
 
div.tree li {
margin: 0;
padding: 0;
}
 
div.tree div {
padding-left: 30px;
}
 
div.tree div.notlast {
background: url('tree-hasnext.png') left 10px no-repeat;
}
 
div.tree div.last {
background: url('tree-last.png') left -240px no-repeat;
}
 
div.tree li.last {
background: url('tree-cleaner.png') left center repeat-y;
}
 
div.tree span.padding {
padding-left: 15px;
}
 
/* Source code */
.php-keyword1 {
color: #e71818;
font-weight: bold;
}
 
.php-keyword2 {
font-weight: bold;
}
 
.php-var {
color: #d59401;
font-weight: bold;
}
 
.php-num {
color: #cd0673;
}
 
.php-quote {
color: #008000;
}
 
.php-comment {
color: #929292;
}
 
.xlang {
color: #ff0000;
font-weight: bold;
}
 
span.l {
display: block;
}
 
span.l.selected {
background: #f6f6f4;
}
 
span.l a {
color: #333333;
}
 
span.l a:hover, div.l a:active, div.l a:focus {
background: transparent;
color: #333333 !important;
}
 
span.l .php-var a {
color: #d59401;
}
 
span.l .php-var a:hover, span.l .php-var a:active, span.l .php-var a:focus {
color: #d59401 !important;
}
 
span.l a.l {
padding-left: 2px;
color: #c0c0c0;
}
 
span.l a.l:hover, span.l a.l:active, span.l a.l:focus {
background: transparent;
color: #c0c0c0 !important;
}
 
#rightInner.medium #navigation {
height: 52px;
}
 
#rightInner.medium #navigation ul:first-child + ul {
clear: left;
border: none;
padding: 0;
}
 
#rightInner.medium .name, #rightInner.medium .attributes {
white-space: normal;
}
 
#rightInner.small #search {
float: left;
}
 
#rightInner.small #navigation {
height: 78px;
}
 
#rightInner.small #navigation ul:first-child {
clear: both;
}
/branches/v0.2-buhl/doc/ApiGen/resources/collapsed.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/branches/v0.2-buhl/doc/ApiGen/resources/collapsed.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/branches/v0.2-buhl/doc/ApiGen/resources/tree-cleaner.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/branches/v0.2-buhl/doc/ApiGen/resources/tree-cleaner.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/branches/v0.2-buhl/doc/ApiGen/resources/tree-vertical.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/branches/v0.2-buhl/doc/ApiGen/resources/tree-vertical.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/branches/v0.2-buhl/doc/ApiGen/resources/sort.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/branches/v0.2-buhl/doc/ApiGen/resources/sort.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/branches/v0.2-buhl/doc/ApiGen/resources/tree-hasnext.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/branches/v0.2-buhl/doc/ApiGen/resources/tree-hasnext.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/branches/v0.2-buhl/doc/ApiGen/resources/combined.js
New file
0,0 → 1,1264
 
var ApiGen = ApiGen || {};
ApiGen.config = {"require":{"min":"2.8.0"},"resources":{"resources":"resources"},"templates":{"common":{"overview.latte":"index.html","combined.js.latte":"resources\/combined.js","elementlist.js.latte":"elementlist.js","404.latte":"404.html"},"optional":{"sitemap":{"filename":"sitemap.xml","template":"sitemap.xml.latte"},"opensearch":{"filename":"opensearch.xml","template":"opensearch.xml.latte"},"robots":{"filename":"robots.txt","template":"robots.txt.latte"}},"main":{"package":{"filename":"package-%s.html","template":"package.latte"},"namespace":{"filename":"namespace-%s.html","template":"namespace.latte"},"class":{"filename":"class-%s.html","template":"class.latte"},"constant":{"filename":"constant-%s.html","template":"constant.latte"},"function":{"filename":"function-%s.html","template":"function.latte"},"source":{"filename":"source-%s.html","template":"source.latte"},"tree":{"filename":"tree.html","template":"tree.latte"},"deprecated":{"filename":"deprecated.html","template":"deprecated.latte"},"todo":{"filename":"todo.html","template":"todo.latte"}}},"options":{"elementDetailsCollapsed":true,"elementsOrder":"natural"},"config":"\/opt\/lampp\/lib\/php\/data\/ApiGen\/templates\/default\/config.neon"};
 
 
/*! jQuery v1.7 jquery.com | jquery.org/license */
(function(a,b){function cA(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cx(a){if(!cm[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cn||(cn=c.createElement("iframe"),cn.frameBorder=cn.width=cn.height=0),b.appendChild(cn);if(!co||!cn.createElement)co=(cn.contentWindow||cn.contentDocument).document,co.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),co.close();d=co.createElement(a),co.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cn)}cm[a]=e}return cm[a]}function cw(a,b){var c={};f.each(cs.concat.apply([],cs.slice(0,b)),function(){c[this]=a});return c}function cv(){ct=b}function cu(){setTimeout(cv,0);return ct=f.now()}function cl(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ck(){try{return new a.XMLHttpRequest}catch(b){}}function ce(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function cd(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function cc(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bG.test(a)?d(a,e):cc(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)cc(a+"["+e+"]",b[e],c,d);else d(a,b)}function cb(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function ca(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bV,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=ca(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=ca(a,c,d,e,"*",g));return l}function b_(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bR),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bE(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bz:bA;if(d>0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bB(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function br(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bi,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bq(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bp(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bp)}function bp(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bo(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bn(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bm(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c+(i[c][d].namespace?".":"")+i[c][d].namespace,i[c][d],i[c][d].data)}h.data&&(h.data=f.extend({},h.data))}}function bl(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function X(a){var b=Y.split(" "),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function W(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(R.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function V(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function N(){return!0}function M(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function K(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(K,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z]|[0-9])/ig,x=/^-ms-/,y=function(a,b){return(b+"").toUpperCase()},z=d.userAgent,A,B,C,D=Object.prototype.toString,E=Object.prototype.hasOwnProperty,F=Array.prototype.push,G=Array.prototype.slice,H=String.prototype.trim,I=Array.prototype.indexOf,J={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7",length:0,size:function(){return this.length},toArray:function(){return G.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?F.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),B.add(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(G.apply(this,arguments),"slice",G.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:F,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;B.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!B){B=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",C,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",C),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&K()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return a!=null&&m.test(a)&&!isNaN(a)},type:function(a){return a==null?String(a):J[D.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!E.call(a,"constructor")&&!E.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||E.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(x,"ms-").replace(w,y)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:H?function(a){return a==null?"":H.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?F.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(I)return I.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=G.call(arguments,2),g=function(){return a.apply(c,f.concat(G.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){J["[object "+b+"]"]=b.toLowerCase()}),A=e.uaMatch(z),A.browser&&(e.browser[A.browser]=!0,e.browser.version=A.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?C=function(){c.removeEventListener("DOMContentLoaded",C,!1),e.ready()}:c.attachEvent&&(C=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",C),e.ready())}),typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return e});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?m(g):h==="function"&&(!a.unique||!o.has(g))&&c.push(g)},n=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,l=j||0,j=0,k=c.length;for(;c&&l<k;l++)if(c[l].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}i=!1,c&&(a.once?e===!0?o.disable():c=[]:d&&d.length&&(e=d.shift(),o.fireWith(e[0],e[1])))},o={add:function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){i&&f<=k&&(k--,f<=l&&l--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&o.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(i?a.once||d.push([b,c]):(!a.once||!e)&&n(b,c));return this},fire:function(){o.fireWith(this,arguments);return this},fired:function(){return!!e}};return o};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){return i.done.apply(i,arguments).fail.apply(i,arguments)},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;a.setAttribute("className","t"),a.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/><nav></nav>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,unknownElems:!!a.getElementsByTagName("nav").length,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",enctype:!!c.createElement("form").enctype,submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.lastChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},m&&f.extend(p,{position:"absolute",left:"-999px",top:"-999px"});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;f(function(){var a,b,d,e,g,h,i=1,j="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",l="visibility:hidden;border:0;",n="style='"+j+"border:5px solid #000;padding:0;'",p="<div "+n+"><div></div></div>"+"<table "+n+" cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>";m=c.getElementsByTagName("body")[0];!m||(a=c.createElement("div"),a.style.cssText=l+"width:0;height:0;position:static;top:0;margin-top:"+i+"px",m.insertBefore(a,m.firstChild),o=c.createElement("div"),o.style.cssText=j+l,o.innerHTML=p,a.appendChild(o),b=o.firstChild,d=b.firstChild,g=b.nextSibling.firstChild.firstChild,h={doesNotAddBorder:d.offsetTop!==5,doesAddBorderForTableAndCells:g.offsetTop===5},d.style.position="fixed",d.style.top="20px",h.fixedPosition=d.offsetTop===20||d.offsetTop===15,d.style.position=d.style.top="",b.style.overflow="hidden",b.style.position="relative",h.subtractsBorderForOverflowNotVisible=d.offsetTop===-5,h.doesNotIncludeMarginInBodyOffset=m.offsetTop!==i,m.removeChild(a),o=a=null,f.extend(k,h))}),o.innerHTML="",n.removeChild(o),o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[f.expando]:a[f.expando]&&f.expando,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[f.expando]=n=++f.uuid:n=f.expando),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[f.expando]:f.expando;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)?b=b:b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" "));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[f.expando]:a.removeAttribute?a.removeAttribute(f.expando):a[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h=null;if(typeof a=="undefined"){if(this.length){h=f.data(this[0]);if(this[0].nodeType===1&&!f._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var i=0,j=e.length;i<j;i++)g=e[i].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),l(this[0],g,h[g]));f._data(this[0],"parsedAttrs",!0)}}return h}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split("."),d[1]=d[1]?"."+d[1]:"";if(c===b){h=this.triggerHandler("getData"+d[1]+"!",[d[0]]),h===b&&this.length&&(h=f.data(this[0],a),h=l(this[0],a,h));return h===b&&d[1]?this.data(d[0]):h}return this.each(function(){var b=f(this),e=[d[0],c];b.triggerHandler("setData"+d[1]+"!",e),f.data(this,a,c),b.triggerHandler("changeData"+d[1]+"!",e)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise()}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];if(!arguments.length){if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}return b}e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!a||j===3||j===8||j===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g},removeAttr:function(a,b){var c,d,e,g,h=0;if(a.nodeType===1){d=(b||"").split(p),g=d.length;for(;h<g;h++)e=d[h].toLowerCase(),c=f.propFix[e]||e,f.attr(a,e,""),a.removeAttribute(v?e:c),u.test(e)&&c in a&&(a[c]=!1)}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return b;h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/\.(.*)$/,A=/^(?:textarea|input|select)$/i,B=/\./g,C=/ /g,D=/[^\w\s.|`]/g,E=/^([^\.]*)?(?:\.(.+))?$/,F=/\bhover(\.\S+)?/,G=/^key/,H=/^(?:mouse|contextmenu)|click/,I=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,J=function(a){var b=I.exec(a);b&&
(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},K=function(a,b){return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||a.id===b[2])&&(!b[3]||b[3].test(a.className))},L=function(a){return f.event.special.hover?a:a.replace(F,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=L(c).split(" ");for(k=0;k<c.length;k++){l=E.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,namespace:n.join(".")},p),g&&(o.quick=J(g),!o.quick&&f.expr.match.POS.test(g)&&(o.isPositional=!0)),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d){var e=f.hasData(a)&&f._data(a),g,h,i,j,k,l,m,n,o,p,q;if(!!e&&!!(m=e.events)){b=L(b||"").split(" ");for(g=0;g<b.length;g++){h=E.exec(b[g])||[],i=h[1],j=h[2];if(!i){j=j?"."+j:"";for(l in m)f.event.remove(a,l+j,c,d);return}n=f.event.special[i]||{},i=(d?n.delegateType:n.bindType)||i,p=m[i]||[],k=p.length,j=j?new RegExp("(^|\\.)"+j.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;if(c||j||d||n.remove)for(l=0;l<p.length;l++){q=p[l];if(!c||c.guid===q.guid)if(!j||j.test(q.namespace))if(!d||d===q.selector||d==="**"&&q.selector)p.splice(l--,1),q.selector&&p.delegateCount--,n.remove&&n.remove.call(a,q)}else p.length=0;p.length===0&&k!==p.length&&((!n.teardown||n.teardown.call(a,j)===!1)&&f.removeEvent(a,i,e.handle),delete m[i])}f.isEmptyObject(m)&&(o=e.handle,o&&(o.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"",(g||!e)&&c.preventDefault();if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,n=null;for(m=e.parentNode;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length;l++){m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d);if(c.isPropagationStopped())break}c.type=h,c.isDefaultPrevented()||(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=(f.event.special[c.type]||{}).handle,j=[],k,l,m,n,o,p,q,r,s,t,u;g[0]=c,c.delegateTarget=this;if(e&&!c.target.disabled&&(!c.button||c.type!=="click"))for(m=c.target;m!=this;m=m.parentNode||this){o={},q=[];for(k=0;k<e;k++)r=d[k],s=r.selector,t=o[s],r.isPositional?t=(t||(o[s]=f(s))).index(m)>=0:t===b&&(t=o[s]=r.quick?K(m,r.quick):f(m).is(s)),t&&q.push(r);q.length&&j.push({elem:m,matches:q})}d.length>e&&j.push({elem:this,matches:d.slice(e)});for(k=0;k<j.length&&!c.isPropagationStopped();k++){p=j[k],c.currentTarget=p.elem;for(l=0;l<p.matches.length&&!c.isImmediatePropagationStopped();l++){r=p.matches[l];if(h||!c.namespace&&!r.namespace||c.namespace_re&&c.namespace_re.test(r.namespace))c.data=r.data,c.handleObj=r,n=(i||r.handler).apply(p.elem,g),n!==b&&(c.result=n,n===!1&&(c.preventDefault(),c.stopPropagation()))}}return c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement wheelDelta".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},focus:{delegateType:"focusin",noBubble:!0},blur:{delegateType:"focusout",noBubble:!0},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?N:M):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=N;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=N;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=N,this.stopPropagation()},isDefaultPrevented:M,isPropagationStopped:M,isImmediatePropagationStopped:M},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]=f.event.special[b]={delegateType:b,bindType:b,handle:function(a){var b=this,c=a.relatedTarget,d=a.handleObj,e=d.selector,g,h;if(!c||d.origType===a.type||c!==b&&!f.contains(b,c))g=a.type,a.type=d.origType,h=d.handler.apply(this,arguments),a.type=g;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){this.parentNode&&f.event.simulate("submit",this.parentNode,a,!0)}),d._submit_attached=!0)})},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(A.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;A.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return A.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=M;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on.call(this,a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.type+"."+e.namespace:e.type,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=M);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),G.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),H.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw"Syntax error, unrecognized expression: "+a};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var O=/Until$/,P=/^(?:parents|prevUntil|prevAll)/,Q=/,/,R=/^.[^:#\[\.,]*$/,S=Array.prototype.slice,T=f.expr.match.POS,U={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(W(this,a,!1),"not",a)},filter:function(a){return this.pushStack(W(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?T.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=T.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(V(c[0])||V(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=S.call(arguments);O.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!U[a]?f.unique(e):e,(this.length>1||Q.test(d))&&P.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var Y="abbr article aside audio canvas datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",Z=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,_=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,ba=/<([\w:]+)/,bb=/<tbody/i,bc=/<|&#?\w+;/,bd=/<(?:script|style)/i,be=/<(?:script|object|embed|option|style)/i,bf=new RegExp("<(?:"+Y.replace(" ","|")+")","i"),bg=/checked\s*(?:[^=]|=\s*.checked.)/i,bh=/\/(java|ecma)script/i,bi=/^\s*<!(?:\[CDATA\[|\-\-)/,bj={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bk=X(c);bj.optgroup=bj.option,bj.tbody=bj.tfoot=bj.colgroup=bj.caption=bj.thead,bj.th=bj.td,f.support.htmlSerialize||(bj._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after"
,arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Z,""):null;if(typeof a=="string"&&!bd.test(a)&&(f.support.leadingWhitespace||!$.test(a))&&!bj[(ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(_,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bg.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bl(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,br)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!be.test(j)&&(f.support.checkClone||!bg.test(j))&&!f.support.unknownElems&&bf.test(j)&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bn(a,d),e=bo(a),g=bo(d);for(h=0;e[h];++h)g[h]&&bn(e[h],g[h])}if(b){bm(a,d);if(c){e=bo(a),g=bo(d);for(h=0;e[h];++h)bm(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!bc.test(k))k=b.createTextNode(k);else{k=k.replace(_,"<$1></$2>");var l=(ba.exec(k)||["",""])[1].toLowerCase(),m=bj[l]||bj._default,n=m[0],o=b.createElement("div");b===c?bk.appendChild(o):X(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=bb.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&$.test(k)&&o.insertBefore(b.createTextNode($.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bq(k[i]);else bq(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||bh.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bs=/alpha\([^)]*\)/i,bt=/opacity=([^)]*)/,bu=/([A-Z]|^ms)/g,bv=/^-?\d+(?:px)?$/i,bw=/^-?\d/,bx=/^([\-+])=([\-+.\de]+)/,by={position:"absolute",visibility:"hidden",display:"block"},bz=["Left","Right"],bA=["Top","Bottom"],bB,bC,bD;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bB(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bx.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bB)return bB(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return bE(a,b,d);f.swap(a,by,function(){e=bE(a,b,d)});return e}},set:function(a,b){if(!bv.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bt.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bs,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bs.test(g)?g.replace(bs,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bB(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bC=function(a,c){var d,e,g;c=c.replace(bu,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bD=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bv.test(f)&&bw.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bB=bC||bD,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bF=/%20/g,bG=/\[\]$/,bH=/\r?\n/g,bI=/#.*$/,bJ=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bK=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bL=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bM=/^(?:GET|HEAD)$/,bN=/^\/\//,bO=/\?/,bP=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bQ=/^(?:select|textarea)/i,bR=/\s+/,bS=/([?&])_=[^&]*/,bT=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bU=f.fn.load,bV={},bW={},bX,bY,bZ=["*/"]+["*"];try{bX=e.href}catch(b$){bX=c.createElement("a"),bX.href="",bX=bX.href}bY=bT.exec(bX.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bU)return bU.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bP,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bQ.test(this.nodeName)||bK.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bH,"\r\n")}}):{name:b.name,value:c.replace(bH,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?cb(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),cb(a,b);return a},ajaxSettings:{url:bX,isLocal:bL.test(bY[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bZ},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:b_(bV),ajaxTransport:b_(bW),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cd(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=ce(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bJ.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bI,"").replace(bN,bY[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bR),d.crossDomain==null&&(r=bT.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bY[1]&&r[2]==bY[2]&&(r[3]||(r[1]==="http:"?80:443))==(bY[3]||(bY[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),ca(bV,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bM.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bO.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bS,"$1_="+x);d.url=y+(y===d.url?(bO.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bZ+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=ca(bW,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){s<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)cc(g,a[g],c,e);return d.join("&").replace(bF,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cf=f.now(),cg=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cf++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cg.test(b.url)||e&&cg.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cg,l),b.url===j&&(e&&(k=k.replace(cg,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ch=a.ActiveXObject?function(){for(var a in cj)cj[a](0,1)}:!1,ci=0,cj;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ck()||cl()}:ck,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ch&&delete cj[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++ci,ch&&(cj||(cj={},f(a).unload(ch)),cj[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cm={},cn,co,cp=/^(?:toggle|show|hide)$/,cq=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cr,cs=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],ct;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cw("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cx(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cw("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cw("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cx(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cp.test(h)?(o=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),o?(f._data(this,"toggle"+i,o==="show"?"hide":"show"),j[o]()):j[h]()):(k=cq.exec(h),l=j.cur(),k?(m=parseFloat(k[2]),n=k[3]||(f.cssNumber[i]?"":"px"),n!=="px"&&(f.style(this,i,(m||1)+n),l=(m||1)/j.cur()*l,f.style(this,i,l+n)),k[1]&&(m=(k[1]==="-="?-1:1)*m+l),j.custom(l,m,n)):j.custom(l,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:cw("show",1),slideUp:cw("hide",1),slideToggle:cw("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=ct||cu(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){e.options.hide&&f._data(e.elem,"fxshow"+e.prop)===b&&f._data(e.elem,"fxshow"+e.prop,e.start)},h()&&f.timers.push(h)&&!cr&&(cr=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=ct||cu(),g=!0,h=this.elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cr),cr=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(["width","height"],function(a,b){f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now))}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cy=/^t(?:able|d|h)$/i,cz=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cA(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.support.fixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cy.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.support.fixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cz.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cz.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cA(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cA(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window);
/**
* Cookie plugin
*
* Copyright (c) 2006 Klaus Hartl (stilbuero.de)
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
*/
 
/**
* Create a cookie with the given name and value and other optional parameters.
*
* @example $.cookie('the_cookie', 'the_value');
* @desc Set the value of a cookie.
* @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
* @desc Create a cookie with all available options.
* @example $.cookie('the_cookie', 'the_value');
* @desc Create a session cookie.
* @example $.cookie('the_cookie', null);
* @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain
* used when the cookie was set.
*
* @param String name The name of the cookie.
* @param String value The value of the cookie.
* @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
* @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
* If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
* If set to null or omitted, the cookie will be a session cookie and will not be retained
* when the the browser exits.
* @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
* @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
* @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
* require a secure protocol (like HTTPS).
* @type undefined
*
* @name $.cookie
* @cat Plugins/Cookie
* @author Klaus Hartl/klaus.hartl@stilbuero.de
*/
 
/**
* Get the value of a cookie with the given name.
*
* @example $.cookie('the_cookie');
* @desc Get the value of a cookie.
*
* @param String name The name of the cookie.
* @return The value of the cookie.
* @type String
*
* @name $.cookie
* @cat Plugins/Cookie
* @author Klaus Hartl/klaus.hartl@stilbuero.de
*/
jQuery.cookie = function(name, value, options) {
if (typeof value != 'undefined') { // name and value given, set cookie
options = options || {};
if (value === null) {
value = '';
options.expires = -1;
}
var expires = '';
if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
var date;
if (typeof options.expires == 'number') {
date = new Date();
date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
} else {
date = options.expires;
}
expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
}
// CAUTION: Needed to parenthesize options.path and options.domain
// in the following expressions, otherwise they evaluate to undefined
// in the packed version for some reason...
var path = options.path ? '; path=' + (options.path) : '';
var domain = options.domain ? '; domain=' + (options.domain) : '';
var secure = options.secure ? '; secure' : '';
document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
} else { // only name given, get cookie
var cookieValue = null;
if (document.cookie && document.cookie != '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = jQuery.trim(cookies[i]);
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) == (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
};
/*!
* sprintf and vsprintf for jQuery
* somewhat based on http://jan.moesen.nu/code/javascript/sprintf-and-printf-in-javascript/
* Copyright (c) 2008 Sabin Iacob (m0n5t3r) <iacobs@m0n5t3r.info>
* @license http://www.gnu.org/licenses/gpl.html
* @project jquery.sprintf
*/
(function(d){var a={b:function(e){return parseInt(e,10).toString(2)},c:function(e){return String.fromCharCode(parseInt(e,10))},d:function(e){return parseInt(e,10)},u:function(e){return Math.abs(e)},f:function(f,e){e=parseInt(e,10);f=parseFloat(f);if(isNaN(e&&f)){return NaN}return e&&f.toFixed(e)||f},o:function(e){return parseInt(e,10).toString(8)},s:function(e){return e},x:function(e){return(""+parseInt(e,10).toString(16)).toLowerCase()},X:function(e){return(""+parseInt(e,10).toString(16)).toUpperCase()}};var c=/%(?:(\d+)?(?:\.(\d+))?|\(([^)]+)\))([%bcdufosxX])/g;var b=function(f){if(f.length==1&&typeof f[0]=="object"){f=f[0];return function(i,h,k,j,g,m,l){return a[g](f[j])}}else{var e=0;return function(i,h,k,j,g,m,l){if(g=="%"){return"%"}return a[g](f[e++],k)}}};d.extend({sprintf:function(f){var e=Array.apply(null,arguments).slice(1);return f.replace(c,b(e))},vsprintf:function(f,e){return f.replace(c,b(e))}})})(jQuery);
 
/*!
* jQuery Autocomplete plugin 1.1
*
* Copyright (c) 2009 Jörn Zaefferer
*
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
* Revision: $Id: jquery.autocomplete.js 15 2009-08-22 10:30:27Z joern.zaefferer $
*/
 
;(function($) {
 
$.fn.extend({
autocomplete: function(urlOrData, options) {
var isUrl = typeof urlOrData == "string";
options = $.extend({}, $.Autocompleter.defaults, {
url: isUrl ? urlOrData : null,
data: isUrl ? null : urlOrData,
delay: isUrl ? $.Autocompleter.defaults.delay : 10,
max: options && !options.scroll ? 10 : 150
}, options);
 
// if highlight is set to false, replace it with a do-nothing function
options.highlight = options.highlight || function(value) { return value; };
 
// if the formatMatch option is not specified, then use formatItem for backwards compatibility
options.formatMatch = options.formatMatch || options.formatItem;
 
options.show = options.show || function(list) {};
 
return this.each(function() {
new $.Autocompleter(this, options);
});
},
result: function(handler) {
return this.bind("result", handler);
},
search: function(handler) {
return this.trigger("search", [handler]);
},
flushCache: function() {
return this.trigger("flushCache");
},
setOptions: function(options){
return this.trigger("setOptions", [options]);
},
unautocomplete: function() {
return this.trigger("unautocomplete");
}
});
 
$.Autocompleter = function(input, options) {
 
var KEY = {
UP: 38,
DOWN: 40,
DEL: 46,
TAB: 9,
RETURN: 13,
ESC: 27,
COMMA: 188,
PAGEUP: 33,
PAGEDOWN: 34,
BACKSPACE: 8
};
 
// Create $ object for input element
var $input = $(input).attr("autocomplete", "off").addClass(options.inputClass);
 
var timeout;
var previousValue = "";
var cache = $.Autocompleter.Cache(options);
var hasFocus = 0;
var lastKeyPressCode;
var config = {
mouseDownOnSelect: false
};
var select = $.Autocompleter.Select(options, input, selectCurrent, config);
 
// only opera doesn't trigger keydown multiple times while pressed, others don't work with keypress at all
$input.bind(($.browser.opera ? "keypress" : "keydown") + ".autocomplete", function(event) {
// a keypress means the input has focus
// avoids issue where input had focus before the autocomplete was applied
hasFocus = 1;
// track last key pressed
lastKeyPressCode = event.keyCode;
switch(event.keyCode) {
 
case KEY.UP:
event.preventDefault();
if ( select.visible() ) {
select.prev();
} else {
onChange(0, true);
}
break;
 
case KEY.DOWN:
event.preventDefault();
if ( select.visible() ) {
select.next();
} else {
onChange(0, true);
}
break;
 
case KEY.PAGEUP:
event.preventDefault();
if ( select.visible() ) {
select.pageUp();
} else {
onChange(0, true);
}
break;
 
case KEY.PAGEDOWN:
event.preventDefault();
if ( select.visible() ) {
select.pageDown();
} else {
onChange(0, true);
}
break;
 
// matches also semicolon
case options.multiple && $.trim(options.multipleSeparator) == "," && KEY.COMMA:
case KEY.TAB:
case KEY.RETURN:
if( selectCurrent() ) {
//event.preventDefault();
//return false;
}
break;
 
case KEY.ESC:
select.hide();
break;
 
default:
clearTimeout(timeout);
timeout = setTimeout(onChange, options.delay);
break;
}
}).focus(function(){
// track whether the field has focus, we shouldn't process any
// results if the field no longer has focus
hasFocus++;
}).blur(function() {
hasFocus = 0;
if (!config.mouseDownOnSelect) {
hideResults();
}
}).click(function() {
// show select when clicking in a focused field
if ( hasFocus++ > 1 && !select.visible() ) {
onChange(0, true);
}
}).bind("search", function() {
// TODO why not just specifying both arguments?
var fn = (arguments.length > 1) ? arguments[1] : null;
function findValueCallback(q, data) {
var result;
if( data && data.length ) {
for (var i=0; i < data.length; i++) {
if( data[i].result.toLowerCase() == q.toLowerCase() ) {
result = data[i];
break;
}
}
}
if( typeof fn == "function" ) fn(result);
else $input.trigger("result", result && [result.data, result.value]);
}
$.each(trimWords($input.val()), function(i, value) {
request(value, findValueCallback, findValueCallback);
});
}).bind("flushCache", function() {
cache.flush();
}).bind("setOptions", function() {
$.extend(options, arguments[1]);
// if we've updated the data, repopulate
if ( "data" in arguments[1] )
cache.populate();
}).bind("unautocomplete", function() {
select.unbind();
$input.unbind();
$(input.form).unbind(".autocomplete");
});
 
 
function selectCurrent() {
var selected = select.selected();
if( !selected )
return false;
 
var v = selected.result;
previousValue = v;
 
if ( options.multiple ) {
var words = trimWords($input.val());
if ( words.length > 1 ) {
var seperator = options.multipleSeparator.length;
var cursorAt = $(input).selection().start;
var wordAt, progress = 0;
$.each(words, function(i, word) {
progress += word.length;
if (cursorAt <= progress) {
wordAt = i;
return false;
}
progress += seperator;
});
words[wordAt] = v;
// TODO this should set the cursor to the right position, but it gets overriden somewhere
//$.Autocompleter.Selection(input, progress + seperator, progress + seperator);
v = words.join( options.multipleSeparator );
}
v += options.multipleSeparator;
}
 
$input.val(v);
hideResultsNow();
$input.trigger("result", [selected.data, selected.value]);
return true;
}
 
function onChange(crap, skipPrevCheck) {
if( lastKeyPressCode == KEY.DEL ) {
select.hide();
return;
}
 
var currentValue = $input.val();
 
if ( !skipPrevCheck && currentValue == previousValue )
return;
 
previousValue = currentValue;
 
currentValue = lastWord(currentValue);
if ( currentValue.length >= options.minChars) {
$input.addClass(options.loadingClass);
if (!options.matchCase)
currentValue = currentValue.toLowerCase();
request(currentValue, receiveData, hideResultsNow);
} else {
stopLoading();
select.hide();
}
};
 
function trimWords(value) {
if (!value)
return [""];
if (!options.multiple)
return [$.trim(value)];
return $.map(value.split(options.multipleSeparator), function(word) {
return $.trim(value).length ? $.trim(word) : null;
});
}
 
function lastWord(value) {
if ( !options.multiple )
return value;
var words = trimWords(value);
if (words.length == 1)
return words[0];
var cursorAt = $(input).selection().start;
if (cursorAt == value.length) {
words = trimWords(value)
} else {
words = trimWords(value.replace(value.substring(cursorAt), ""));
}
return words[words.length - 1];
}
 
// fills in the input box w/the first match (assumed to be the best match)
// q: the term entered
// sValue: the first matching result
function autoFill(q, sValue){
// autofill in the complete box w/the first match as long as the user hasn't entered in more data
// if the last user key pressed was backspace, don't autofill
if( options.autoFill && (lastWord($input.val()).toLowerCase() == q.toLowerCase()) && lastKeyPressCode != KEY.BACKSPACE ) {
// fill in the value (keep the case the user has typed)
$input.val($input.val() + sValue.substring(lastWord(previousValue).length));
// select the portion of the value not typed by the user (so the next character will erase)
$(input).selection(previousValue.length, previousValue.length + sValue.length);
}
};
 
function hideResults() {
clearTimeout(timeout);
timeout = setTimeout(hideResultsNow, 200);
};
 
function hideResultsNow() {
var wasVisible = select.visible();
select.hide();
clearTimeout(timeout);
stopLoading();
if (options.mustMatch) {
// call search and run callback
$input.search(
function (result){
// if no value found, clear the input box
if( !result ) {
if (options.multiple) {
var words = trimWords($input.val()).slice(0, -1);
$input.val( words.join(options.multipleSeparator) + (words.length ? options.multipleSeparator : "") );
}
else {
$input.val( "" );
$input.trigger("result", null);
}
}
}
);
}
};
 
function receiveData(q, data) {
if ( data && data.length && hasFocus ) {
stopLoading();
select.display(data, q);
autoFill(q, data[0].value);
select.show();
} else {
hideResultsNow();
}
};
 
function request(term, success, failure) {
if (!options.matchCase)
term = term.toLowerCase();
var data = cache.load(term);
// recieve the cached data
if (data && data.length) {
success(term, data);
// if an AJAX url has been supplied, try loading the data now
} else if( (typeof options.url == "string") && (options.url.length > 0) ){
 
var extraParams = {
timestamp: +new Date()
};
$.each(options.extraParams, function(key, param) {
extraParams[key] = typeof param == "function" ? param() : param;
});
 
$.ajax({
// try to leverage ajaxQueue plugin to abort previous requests
mode: "abort",
// limit abortion to this input
port: "autocomplete" + input.name,
dataType: options.dataType,
url: options.url,
data: $.extend({
q: lastWord(term),
limit: options.max
}, extraParams),
success: function(data) {
var parsed = options.parse && options.parse(data) || parse(data);
cache.add(term, parsed);
success(term, parsed);
}
});
} else {
// if we have a failure, we need to empty the list -- this prevents the the [TAB] key from selecting the last successful match
select.emptyList();
failure(term);
}
};
 
function parse(data) {
var parsed = [];
var rows = data.split("\n");
for (var i=0; i < rows.length; i++) {
var row = $.trim(rows[i]);
if (row) {
row = row.split("|");
parsed[parsed.length] = {
data: row,
value: row[0],
result: options.formatResult && options.formatResult(row, row[0]) || row[0]
};
}
}
return parsed;
};
 
function stopLoading() {
$input.removeClass(options.loadingClass);
};
 
};
 
$.Autocompleter.defaults = {
inputClass: "ac_input",
resultsClass: "ac_results",
loadingClass: "ac_loading",
minChars: 1,
delay: 400,
matchCase: false,
matchSubset: true,
matchContains: false,
cacheLength: 10,
max: 100,
mustMatch: false,
extraParams: {},
selectFirst: true,
formatItem: function(row) { return row[0]; },
formatMatch: null,
autoFill: false,
width: 0,
multiple: false,
multipleSeparator: ", ",
highlight: function(value, term) {
return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1") + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<strong>$1</strong>");
},
scroll: true,
scrollHeight: 180
};
 
$.Autocompleter.Cache = function(options) {
 
var data = {};
var length = 0;
 
function matchSubset(s, sub) {
if (!options.matchCase)
s = s.toLowerCase();
var i = s.indexOf(sub);
if (options.matchContains == "word"){
i = s.toLowerCase().search("\\b" + sub.toLowerCase());
}
if (i == -1) return false;
return i == 0 || options.matchContains;
};
 
function add(q, value) {
if (length > options.cacheLength){
flush();
}
if (!data[q]){
length++;
}
data[q] = value;
}
 
function populate(){
if( !options.data ) return false;
// track the matches
var stMatchSets = {},
nullData = 0;
 
// no url was specified, we need to adjust the cache length to make sure it fits the local data store
if( !options.url ) options.cacheLength = 1;
 
// track all options for minChars = 0
stMatchSets[""] = [];
 
// loop through the array and create a lookup structure
for ( var i = 0, ol = options.data.length; i < ol; i++ ) {
var rawValue = options.data[i];
// if rawValue is a string, make an array otherwise just reference the array
rawValue = (typeof rawValue == "string") ? [rawValue] : rawValue;
 
var value = options.formatMatch(rawValue, i+1, options.data.length);
if ( value === false )
continue;
 
var firstChar = value.charAt(0).toLowerCase();
// if no lookup array for this character exists, look it up now
if( !stMatchSets[firstChar] )
stMatchSets[firstChar] = [];
 
// if the match is a string
var row = {
value: value,
data: rawValue,
result: options.formatResult && options.formatResult(rawValue) || value
};
 
// push the current match into the set list
stMatchSets[firstChar].push(row);
 
// keep track of minChars zero items
if ( nullData++ < options.max ) {
stMatchSets[""].push(row);
}
};
 
// add the data items to the cache
$.each(stMatchSets, function(i, value) {
// increase the cache size
options.cacheLength++;
// add to the cache
add(i, value);
});
}
 
// populate any existing data
setTimeout(populate, 25);
 
function flush(){
data = {};
length = 0;
}
 
return {
flush: flush,
add: add,
populate: populate,
load: function(q) {
if (!options.cacheLength || !length)
return null;
/*
* if dealing w/local data and matchContains than we must make sure
* to loop through all the data collections looking for matches
*/
if( !options.url && options.matchContains ){
// track all matches
var csub = [];
// loop through all the data grids for matches
for( var k in data ){
// don't search through the stMatchSets[""] (minChars: 0) cache
// this prevents duplicates
if( k.length > 0 ){
var c = data[k];
$.each(c, function(i, x) {
// if we've got a match, add it to the array
if (matchSubset(x.value, q)) {
csub.push(x);
}
});
}
}
return csub;
} else
// if the exact item exists, use it
if (data[q]){
return data[q];
} else
if (options.matchSubset) {
for (var i = q.length - 1; i >= options.minChars; i--) {
var c = data[q.substr(0, i)];
if (c) {
var csub = [];
$.each(c, function(i, x) {
if (matchSubset(x.value, q)) {
csub[csub.length] = x;
}
});
return csub;
}
}
}
return null;
}
};
};
 
$.Autocompleter.Select = function (options, input, select, config) {
var CLASSES = {
ACTIVE: "ac_over"
};
 
var listItems,
active = -1,
data,
term = "",
needsInit = true,
element,
list;
 
// Create results
function init() {
if (!needsInit)
return;
element = $("<div/>")
.hide()
.addClass(options.resultsClass)
.css("position", "absolute")
.appendTo(document.body);
 
list = $("<ul/>").appendTo(element).mouseover( function(event) {
if(target(event).nodeName && target(event).nodeName.toUpperCase() == 'LI') {
active = $("li", list).removeClass(CLASSES.ACTIVE).index(target(event));
$(target(event)).addClass(CLASSES.ACTIVE);
}
}).click(function(event) {
$(target(event)).addClass(CLASSES.ACTIVE);
select();
// TODO provide option to avoid setting focus again after selection? useful for cleanup-on-focus
input.focus();
return false;
}).mousedown(function() {
config.mouseDownOnSelect = true;
}).mouseup(function() {
config.mouseDownOnSelect = false;
});
 
if( options.width > 0 )
element.css("width", options.width);
 
needsInit = false;
}
 
function target(event) {
var element = event.target;
while(element && element.tagName != "LI")
element = element.parentNode;
// more fun with IE, sometimes event.target is empty, just ignore it then
if(!element)
return [];
return element;
}
 
function moveSelect(step) {
listItems.slice(active, active + 1).removeClass(CLASSES.ACTIVE);
movePosition(step);
var activeItem = listItems.slice(active, active + 1).addClass(CLASSES.ACTIVE);
if(options.scroll) {
var offset = 0;
listItems.slice(0, active).each(function() {
offset += this.offsetHeight;
});
if((offset + activeItem[0].offsetHeight - list.scrollTop()) > list[0].clientHeight) {
list.scrollTop(offset + activeItem[0].offsetHeight - list.innerHeight());
} else if(offset < list.scrollTop()) {
list.scrollTop(offset);
}
}
};
 
function movePosition(step) {
active += step;
if (active < 0) {
active = listItems.size() - 1;
} else if (active >= listItems.size()) {
active = 0;
}
}
 
function limitNumberOfItems(available) {
return options.max && options.max < available
? options.max
: available;
}
 
function fillList() {
list.empty();
var max = limitNumberOfItems(data.length);
for (var i=0; i < max; i++) {
if (!data[i])
continue;
var formatted = options.formatItem(data[i].data, i+1, max, data[i].value, term);
if ( formatted === false )
continue;
var li = $("<li/>").html( options.highlight(formatted, term) ).addClass(i%2 == 0 ? "ac_even" : "ac_odd").appendTo(list)[0];
$.data(li, "ac_data", data[i]);
}
listItems = list.find("li");
if ( options.selectFirst ) {
listItems.slice(0, 1).addClass(CLASSES.ACTIVE);
active = 0;
}
// apply bgiframe if available
if ( $.fn.bgiframe )
list.bgiframe();
}
 
return {
display: function(d, q) {
init();
data = d;
term = q;
fillList();
},
next: function() {
moveSelect(1);
},
prev: function() {
moveSelect(-1);
},
pageUp: function() {
if (active != 0 && active - 8 < 0) {
moveSelect( -active );
} else {
moveSelect(-8);
}
},
pageDown: function() {
if (active != listItems.size() - 1 && active + 8 > listItems.size()) {
moveSelect( listItems.size() - 1 - active );
} else {
moveSelect(8);
}
},
hide: function() {
element && element.hide();
listItems && listItems.removeClass(CLASSES.ACTIVE);
active = -1;
},
visible : function() {
return element && element.is(":visible");
},
current: function() {
return this.visible() && (listItems.filter("." + CLASSES.ACTIVE)[0] || options.selectFirst && listItems[0]);
},
show: function() {
var offset = $(input).offset();
element.css({
width: typeof options.width == "string" || options.width > 0 ? options.width : $(input).innerWidth(),
top: offset.top + input.offsetHeight,
left: offset.left
}).show();
options.show(element);
if(options.scroll) {
list.scrollTop(0);
list.css({
maxHeight: options.scrollHeight,
overflow: 'auto'
});
 
if($.browser.msie && typeof document.body.style.maxHeight === "undefined") {
var listHeight = 0;
listItems.each(function() {
listHeight += this.offsetHeight;
});
var scrollbarsVisible = listHeight > options.scrollHeight;
list.css('height', scrollbarsVisible ? options.scrollHeight : listHeight );
if (!scrollbarsVisible) {
// IE doesn't recalculate width when scrollbar disappears
listItems.width( list.width() - parseInt(listItems.css("padding-left")) - parseInt(listItems.css("padding-right")) );
}
}
 
}
},
selected: function() {
var selected = listItems && listItems.filter("." + CLASSES.ACTIVE).removeClass(CLASSES.ACTIVE);
return selected && selected.length && $.data(selected[0], "ac_data");
},
emptyList: function (){
list && list.empty();
},
unbind: function() {
element && element.remove();
}
};
};
 
$.fn.selection = function(start, end) {
if (start !== undefined) {
return this.each(function() {
if( this.createTextRange ){
var selRange = this.createTextRange();
if (end === undefined || start == end) {
selRange.move("character", start);
selRange.select();
} else {
selRange.collapse(true);
selRange.moveStart("character", start);
selRange.moveEnd("character", end);
selRange.select();
}
} else if( this.setSelectionRange ){
this.setSelectionRange(start, end);
} else if( this.selectionStart ){
this.selectionStart = start;
this.selectionEnd = end;
}
});
}
var field = this[0];
if ( field.createTextRange ) {
var range = document.selection.createRange(),
orig = field.value,
teststring = "<->",
textLength = range.text.length;
range.text = teststring;
var caretAt = field.value.indexOf(teststring);
field.value = orig;
this.selection(caretAt, caretAt + textLength);
return {
start: caretAt,
end: caretAt + textLength
}
} else if( field.selectionStart !== undefined ){
return {
start: field.selectionStart,
end: field.selectionEnd
}
}
};
 
})(jQuery);
/**
* jQuery.fn.sortElements
* --------------
* @author James Padolsey (http://james.padolsey.com)
* @version 0.11
* @updated 18-MAR-2010
* --------------
* @param Function comparator:
* Exactly the same behaviour as [1,2,3].sort(comparator)
*
* @param Function getSortable
* A function that should return the element that is
* to be sorted. The comparator will run on the
* current collection, but you may want the actual
* resulting sort to occur on a parent or another
* associated element.
*
* E.g. $('td').sortElements(comparator, function(){
* return this.parentNode;
* })
*
* The <td>'s parent (<tr>) will be sorted instead
* of the <td> itself.
*/
jQuery.fn.sortElements = (function(){
 
var sort = [].sort;
 
return function(comparator, getSortable) {
 
getSortable = getSortable || function(){return this;};
 
var placements = this.map(function(){
 
var sortElement = getSortable.call(this),
parentNode = sortElement.parentNode,
 
// Since the element itself will change position, we have
// to have some way of storing it's original position in
// the DOM. The easiest way is to have a 'flag' node:
nextSibling = parentNode.insertBefore(
document.createTextNode(''),
sortElement.nextSibling
);
 
return function() {
 
if (parentNode === this) {
throw new Error(
"You can't sort elements if any one is a descendant of another."
);
}
 
// Insert before flag:
parentNode.insertBefore(this, nextSibling);
// Remove flag:
parentNode.removeChild(nextSibling);
 
};
 
});
 
return sort.call(this, comparator).each(function(i){
placements[i].call(getSortable.call(this));
});
 
};
 
})();
/*!
* ApiGen 2.8.0 - API documentation generator for PHP 5.3+
*
* Copyright (c) 2010-2011 David Grudl (http://davidgrudl.com)
* Copyright (c) 2011-2012 Jaroslav Hanslík (https://github.com/kukulich)
* Copyright (c) 2011-2012 Ondřej Nešpor (https://github.com/Andrewsville)
*
* For the full copyright and license information, please view
* the file LICENSE.md that was distributed with this source code.
*/
 
$(function() {
var $document = $(document);
var $left = $('#left');
var $right = $('#right');
var $rightInner = $('#rightInner');
var $splitter = $('#splitter');
var $groups = $('#groups');
var $content = $('#content');
 
// Menu
 
// Hide deep packages and namespaces
$('ul span', $groups).click(function(event) {
event.preventDefault();
event.stopPropagation();
$(this)
.toggleClass('collapsed')
.parent()
.next('ul')
.toggleClass('collapsed');
}).click();
 
$active = $('ul li.active', $groups);
if ($active.length > 0) {
// Open active
$('> a > span', $active).click();
} else {
$main = $('> ul > li.main', $groups);
if ($main.length > 0) {
// Open first level of the main project
$('> a > span', $main).click();
} else {
// Open first level of all
$('> ul > li > a > span', $groups).click();
}
}
 
// Content
 
// Search autocompletion
var autocompleteFound = false;
var autocompleteFiles = {'c': 'class', 'co': 'constant', 'f': 'function', 'm': 'class', 'mm': 'class', 'p': 'class', 'mp': 'class', 'cc': 'class'};
var $search = $('#search input[name=q]');
$search
.autocomplete(ApiGen.elements, {
matchContains: true,
scrollHeight: 200,
max: 20,
formatItem: function(data) {
return data[1].replace(/^(.+\\)(.+)$/, '<span><small>$1</small>$2</span>');
},
formatMatch: function(data) {
return data[1];
},
formatResult: function(data) {
return data[1];
},
show: function($list) {
var $items = $('li span', $list);
var maxWidth = Math.max.apply(null, $items.map(function() {
return $(this).width();
}));
// 10px padding
$list
.width(Math.max(maxWidth + 10, $search.innerWidth()))
.css('left', $search.offset().left + $search.outerWidth() - $list.outerWidth());
}
}).result(function(event, data) {
autocompleteFound = true;
var location = window.location.href.split('/');
location.pop();
var parts = data[1].split(/::|$/);
var file = $.sprintf(ApiGen.config.templates.main[autocompleteFiles[data[0]]].filename, parts[0].replace(/[^\w]/g, '.'));
if (parts[1]) {
file += '#' + ('mm' === data[0] || 'mp' === data[0] ? 'm' : '') + parts[1].replace(/([\w]+)\(\)/, '_$1');
}
location.push(file);
window.location = location.join('/');
 
// Workaround for Opera bug
$(this).closest('form').attr('action', location.join('/'));
}).closest('form')
.submit(function() {
var query = $search.val();
if ('' === query) {
return false;
}
 
var label = $('#search input[name=more]').val();
if (!autocompleteFound && label && -1 === query.indexOf('more:')) {
$search.val(query + ' more:' + label);
}
 
return !autocompleteFound && '' !== $('#search input[name=cx]').val();
});
 
// Save natural order
$('table.summary tr[data-order]', $content).each(function(index) {
do {
index = '0' + index;
} while (index.length < 3);
$(this).attr('data-order-natural', index);
});
 
// Switch between natural and alphabetical order
var $caption = $('table.summary', $content)
.filter(':has(tr[data-order])')
.find('caption');
$caption
.click(function() {
var $this = $(this);
var order = $this.data('order') || 'natural';
order = 'natural' === order ? 'alphabetical' : 'natural';
$this.data('order', order);
$.cookie('order', order, {expires: 365});
var attr = 'alphabetical' === order ? 'data-order' : 'data-order-natural';
$this
.closest('table')
.find('tr').sortElements(function(a, b) {
return $(a).attr(attr) > $(b).attr(attr) ? 1 : -1;
});
return false;
})
.addClass('switchable')
.attr('title', 'Switch between natural and alphabetical order');
if ((null === $.cookie('order') && 'alphabetical' === ApiGen.config.options.elementsOrder) || 'alphabetical' === $.cookie('order')) {
$caption.click();
}
 
// Open details
if (ApiGen.config.options.elementDetailsCollapsed) {
$('tr', $content).filter(':has(.detailed)')
.click(function() {
var $this = $(this);
$('.short', $this).hide();
$('.detailed', $this).show();
});
}
 
// Splitter
var splitterWidth = $splitter.width();
function setSplitterPosition(position)
{
$left.width(position);
$right.css('margin-left', position + splitterWidth);
$splitter.css('left', position);
}
function setNavigationPosition()
{
var width = $rightInner.width();
$rightInner
.toggleClass('medium', width <= 960)
.toggleClass('small', width <= 650);
}
$splitter.mousedown(function() {
$splitter.addClass('active');
 
$document.mousemove(function(event) {
if (event.pageX >= 230 && $document.width() - event.pageX >= 600 + splitterWidth) {
setSplitterPosition(event.pageX);
setNavigationPosition();
}
});
 
$()
.add($splitter)
.add($document)
.mouseup(function() {
$splitter
.removeClass('active')
.unbind('mouseup');
$document
.unbind('mousemove')
.unbind('mouseup');
 
$.cookie('splitter', parseInt($splitter.css('left')), {expires: 365});
});
 
return false;
});
var splitterPosition = $.cookie('splitter');
if (null !== splitterPosition) {
setSplitterPosition(parseInt(splitterPosition));
}
setNavigationPosition();
$(window).resize(setNavigationPosition);
 
// Select selected lines
var matches = window.location.hash.substr(1).match(/^\d+(?:-\d+)?(?:,\d+(?:-\d+)?)*$/);
if (null !== matches) {
var lists = matches[0].split(',');
for (var i = 0; i < lists.length; i++) {
var lines = lists[i].split('-');
lines[1] = lines[1] || lines[0];
for (var j = lines[0]; j <= lines[1]; j++) {
$('#' + j).addClass('selected');
}
}
 
var $firstLine = $('#' + parseInt(matches[0]));
if ($firstLine.length > 0) {
$right.scrollTop($firstLine.offset().top);
}
}
 
// Save selected lines
var lastLine;
$('a.l').click(function(event) {
event.preventDefault();
 
var $selectedLine = $(this).parent();
var selectedLine = parseInt($selectedLine.attr('id'));
 
if (event.shiftKey) {
if (lastLine) {
for (var i = Math.min(selectedLine, lastLine); i <= Math.max(selectedLine, lastLine); i++) {
$('#' + i).addClass('selected');
}
} else {
$selectedLine.addClass('selected');
}
} else if (event.ctrlKey) {
$selectedLine.toggleClass('selected');
} else {
var $selected = $('.l.selected')
.not($selectedLine)
.removeClass('selected');
if ($selected.length > 0) {
$selectedLine.addClass('selected');
} else {
$selectedLine.toggleClass('selected');
}
}
 
lastLine = $selectedLine.hasClass('selected') ? selectedLine : null;
 
// Update hash
var lines = $('.l.selected')
.map(function() {
return parseInt($(this).attr('id'));
})
.get()
.sort(function(a, b) {
return a - b;
});
 
var hash = [];
var list = [];
for (var j = 0; j < lines.length; j++) {
if (0 === j && j + 1 === lines.length) {
hash.push(lines[j]);
} else if (0 === j) {
list[0] = lines[j];
} else if (lines[j - 1] + 1 !== lines[j] && j + 1 === lines.length) {
hash.push(list.join('-'));
hash.push(lines[j]);
} else if (lines[j - 1] + 1 !== lines[j]) {
hash.push(list.join('-'));
list = [lines[j]];
} else if (j + 1 === lines.length) {
list[1] = lines[j];
hash.push(list.join('-'));
} else {
list[1] = lines[j];
}
}
 
window.location.hash = hash.join(',');
});
});
 
/branches/v0.2-buhl/doc/ApiGen/index.html
New file
0,0 → 1,129
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="generator" content="ApiGen 2.8.0">
 
<title>TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js"></script>
<script type="text/javascript" src="elementlist.js"></script>
<link rel="stylesheet" type="text/css" media="all" href="resources/style.css?3505392360">
 
</head>
 
<body>
<div id="left">
<div id="menu">
<span>Overview</span>
 
<div id="groups">
<h3>Packages</h3>
<ul>
<li><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-PDOStatement.html">PDOStatement</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
<h3>Interfaces</h3>
<ul>
<li><a href="class-Traversable.html">Traversable</a></li>
</ul>
 
 
<h3>Exceptions</h3>
<ul>
<li><a href="class-Exception.html">Exception</a></li>
</ul>
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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" autofocus>
<input type="submit" value="Search">
</form>
 
<div id="navigation">
<ul>
<li class="active">
<span>Overview</span> </li>
<li>
<span>Package</span> </li>
<li>
<span>Class</span> </li>
</ul>
<ul>
<li>
<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
</li>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<div id="content">
<h1>TBFramework - v0.2</h1>
 
 
 
<table class="summary" id="packages">
<caption>Packages summary</caption>
<tr>
<td class="name"><a href="package-Framework.html">Framework</a></td>
</tr>
<tr>
<td class="name"><a href="package-PHP.html">PHP</a></td>
</tr>
</table>
 
</div>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/class-Modele.html
New file
0,0 → 1,420
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="generator" content="ApiGen 2.8.0">
 
<title>Class Modele | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li class="active"><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li class="active"><a href="class-Modele.html">Modele</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
 
 
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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="package-Framework.html" title="Summary of Framework"><span>Package</span></a>
</li>
<li class="active">
<span>Class</span> </li>
</ul>
<ul>
<li>
<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
</li>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<div id="content" class="class">
<h1>Class Modele</h1>
 
 
<div class="description">
<p>Classe modèle, donc d'accés au données, elle ne devrait pas être appelée
de l'extérieur. Elle fait office d'abstraction légère de base de données en
utilisant diveres possibilités d'abstraction de base de données (PDO, mysql,
mysqli, sqlite) Elle est abstraite donc doit obligatoirement être étendue.</p>
 
<p>PHP Version 5</p>
 
</div>
 
 
 
 
 
 
 
 
 
<div class="info">
<b>Abstract</b><br>
<b>Package:</b> <a href="package-Framework.html">Framework</a><br>
 
<b>Category:</b>
Class<br>
<b>Copyright:</b>
2009 Tela-Botanica<br>
<b>License:</b>
<a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">Licence CECILL</a><br>
<b>License:</b>
<a href="http://www.gnu.org/licenses/gpl.html">Licence GNU-GPL</a><br>
<b>Author:</b>
aurelien &lt;<a
href="mailto:aurelien&#64;tela-botanica.org">aurelien&#64;<!-- -->tela-botanica.org</a>&gt;<br>
<b>Version:</b>
SVN: $$Id: Modele.php 426 2013-04-30 16:58:14Z jpm $$<br>
<b>Link:</b>
/doc/framework/<br>
<b>Located at</b> <a href="source-class-Modele.html#3-346" title="Go to source code">Modele.php</a><br>
</div>
 
 
 
<table class="summary" id="methods">
<caption>Methods summary</caption>
<tr data-order="__construct" id="___construct">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#___construct">#</a>
<code><a href="source-class-Modele.html#74-90" title="Go to source code">__construct</a>( )</code>
 
<div class="description short">
<p>Constructeur par défaut, appelé à l'initialisation.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Constructeur par défaut, appelé à l'initialisation.</p>
 
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="requete" id="_requete">
 
<td class="attributes"><code>
final protected
<code><a href="class-PDOStatement.html">PDOStatement</a></code>
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_requete">#</a>
<code><a href="source-class-Modele.html#145-175" title="Go to source code">requete</a>( <span>string <var>$requete</var></span> )</code>
 
<div class="description short">
<p>Fonction qui appelle la bonne fonction pour executer une requête suivant le
type de bdd.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Fonction qui appelle la bonne fonction pour executer une requête suivant le
type de bdd.</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$requete</var></dt>
<dd><code>string</code><br>la requete à effectuer</dd>
</dl></div>
 
<h4>Returns</h4>
<div class="list">
<code><code><a href="class-PDOStatement.html">PDOStatement</a></code></code><br>un objet contenant le résultat de la requête<br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="requeteUn" id="_requeteUn">
 
<td class="attributes"><code>
final protected
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_requeteUn">#</a>
<code><a href="source-class-Modele.html#177-210" title="Go to source code">requeteUn</a>( <span>mixed <var>$requete</var></span>, <span>mixed <var>$mode</var> = <span class="php-quote">'ASSOC'</span></span> )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="requeteTous" id="_requeteTous">
 
<td class="attributes"><code>
final protected
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_requeteTous">#</a>
<code><a href="source-class-Modele.html#213-268" title="Go to source code">requeteTous</a>( <span>mixed <var>$requete</var></span>, <span>mixed <var>$mode</var> = <span class="php-quote">'ASSOC'</span></span> )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="proteger" id="_proteger">
 
<td class="attributes"><code>
final protected
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_proteger">#</a>
<code><a href="source-class-Modele.html#270-295" title="Go to source code">proteger</a>( <span>mixed <var>$chaine</var></span> )</code>
 
<div class="description short">
<p>protège une chaine de caractères avant l'insertion dans la base de
données</p>
 
</div>
 
<div class="description detailed hidden">
<p>protège une chaine de caractères avant l'insertion dans la base de
données</p>
 
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="initialiserProtocole" id="_initialiserProtocole">
 
<td class="attributes"><code>
final public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_initialiserProtocole">#</a>
<code><a href="source-class-Modele.html#297-325" title="Go to source code">initialiserProtocole</a>( )</code>
 
<div class="description short">
<p>initialise les constantes de classe à leur bonne valeur et lance une
exception si le protocole n'est pas bien défini</p>
 
</div>
 
<div class="description detailed hidden">
<p>initialise les constantes de classe à leur bonne valeur et lance une
exception si le protocole n'est pas bien défini</p>
 
 
 
 
 
<h4>Throws</h4>
<div class="list">
<code><code><a href="class-Exception.html">Exception</a></code></code><br>
</div>
 
 
 
</div>
</div></td>
</tr>
<tr data-order="__destruct" id="___destruct">
 
<td class="attributes"><code>
final public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#___destruct">#</a>
<code><a href="source-class-Modele.html#327-345" title="Go to source code">__destruct</a>( )</code>
 
<div class="description short">
<p>Destructeur de classe, se contente de fermer explicitement la connexion</p>
 
</div>
 
<div class="description detailed hidden">
<p>Destructeur de classe, se contente de fermer explicitement la connexion</p>
 
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
</table>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
</div>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/package-PHP.html
New file
0,0 → 1,131
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="generator" content="ApiGen 2.8.0">
 
<title>Package PHP | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li><a href="package-Framework.html">Framework</a>
</li>
<li class="active"><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-PDOStatement.html">PDOStatement</a></li>
</ul>
 
<h3>Interfaces</h3>
<ul>
<li><a href="class-Traversable.html">Traversable</a></li>
</ul>
 
 
<h3>Exceptions</h3>
<ul>
<li><a href="class-Exception.html">Exception</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 class="active">
<span>Package</span> </li>
<li>
<span>Class</span> </li>
</ul>
<ul>
<li>
<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
</li>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<div id="content" class="package">
<h1>Package PHP</h1>
 
 
 
<table class="summary" id="classes">
<caption>Classes summary</caption>
<tr>
<td class="name"><a href="class-PDOStatement.html">PDOStatement</a></td>
<td></td>
</tr>
</table>
 
<table class="summary" id="interfaces">
<caption>Interfaces summary</caption>
<tr>
<td class="name"><a href="class-Traversable.html">Traversable</a></td>
<td></td>
</tr>
</table>
 
 
<table class="summary" id="exceptions">
<caption>Exceptions summary</caption>
<tr>
<td class="name"><a href="class-Exception.html">Exception</a></td>
<td></td>
</tr>
</table>
 
 
</div>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/source-class-SquelettePhp.html
New file
0,0 → 1,183
<!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 SquelettePhp.php | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li class="active"><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li class="active"><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
 
 
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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="package-Framework.html" title="Summary of Framework"><span>Package</span></a>
</li>
<li>
<a href="class-SquelettePhp.html" title="Summary of SquelettePhp"><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>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<pre><code><span id="1" class="l"><a class="l" href="#1"> 1: </a><span class="xlang">&lt;?php</span>
</span><span id="2" class="l"><a class="l" href="#2"> 2: </a><span class="php-comment">// declare(encoding='UTF-8');</span>
</span><span id="3" class="l"><a class="l" href="#3"> 3: </a><span class="php-comment">/**
</span></span><span id="4" class="l"><a class="l" href="#4"> 4: </a><span class="php-comment"> * Classe SquelettePhp, traitant les squelette Php utilisant la syntaxe courte php ou pas.
</span></span><span id="5" class="l"><a class="l" href="#5"> 5: </a><span class="php-comment"> * Ces méthodes sont statiques.
</span></span><span id="6" class="l"><a class="l" href="#6"> 6: </a><span class="php-comment"> *
</span></span><span id="7" class="l"><a class="l" href="#7"> 7: </a><span class="php-comment"> * @category php5
</span></span><span id="8" class="l"><a class="l" href="#8"> 8: </a><span class="php-comment"> * @package Framework
</span></span><span id="9" class="l"><a class="l" href="#9"> 9: </a><span class="php-comment"> * @author Jean-Pascal MILCENT &lt;jpm@tela-botanica.org&gt;
</span></span><span id="10" class="l"><a class="l" href="#10">10: </a><span class="php-comment"> * @copyright 2010 Tela-Botanica
</span></span><span id="11" class="l"><a class="l" href="#11">11: </a><span class="php-comment"> * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
</span></span><span id="12" class="l"><a class="l" href="#12">12: </a><span class="php-comment"> * @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
</span></span><span id="13" class="l"><a class="l" href="#13">13: </a><span class="php-comment"> * @version SVN: $$Id: SquelettePhp.php 153 2010-03-04 10:48:32Z jpm $$
</span></span><span id="14" class="l"><a class="l" href="#14">14: </a><span class="php-comment"> * @link /doc/framework/
</span></span><span id="15" class="l"><a class="l" href="#15">15: </a><span class="php-comment"> */</span>
</span><span id="16" class="l"><a class="l" href="#16">16: </a><span class="php-keyword1">class</span> <a id="SquelettePhp" href="#SquelettePhp">SquelettePhp</a> {
</span><span id="17" class="l"><a class="l" href="#17">17: </a>
</span><span id="18" class="l"><a class="l" href="#18">18: </a> <span class="php-comment">/**
</span></span><span id="19" class="l"><a class="l" href="#19">19: </a><span class="php-comment"> * Fonction prenant en paramètre un chemin de fichier squelette et un tableau associatif de données,
</span></span><span id="20" class="l"><a class="l" href="#20">20: </a><span class="php-comment"> * en extrait les variables, charge le squelette et retourne le résultat des deux combinés.
</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"> * @param String $fichier le chemin du fichier du squelette
</span></span><span id="23" class="l"><a class="l" href="#23">23: </a><span class="php-comment"> * @param Array $donnees un tableau associatif contenant les variables a injecter dans le squelette.
</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"> * @return boolean false si la vue n'existe pas, sinon la chaine résultat.
</span></span><span id="26" class="l"><a class="l" href="#26">26: </a><span class="php-comment"> */</span>
</span><span id="27" class="l"><a class="l" href="#27">27: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_analyser" href="#_analyser">analyser</a>(<span class="php-var">$fichier</span>, <span class="php-keyword1">Array</span> <span class="php-var">$donnees</span> = <span class="php-keyword1">array</span>()) {
</span><span id="28" class="l"><a class="l" href="#28">28: </a> <span class="php-var">$sortie</span> = <span class="php-keyword1">false</span>;
</span><span id="29" class="l"><a class="l" href="#29">29: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">file_exists</span>(<span class="php-var">$fichier</span>)) {
</span><span id="30" class="l"><a class="l" href="#30">30: </a> <span class="php-comment">// Extraction des variables du tableau de données</span>
</span><span id="31" class="l"><a class="l" href="#31">31: </a> <span class="php-keyword2">extract</span>(<span class="php-var">$donnees</span>);
</span><span id="32" class="l"><a class="l" href="#32">32: </a> <span class="php-comment">// Démarage de la bufferisation de sortie</span>
</span><span id="33" class="l"><a class="l" href="#33">33: </a> <span class="php-keyword2">ob_start</span>();
</span><span id="34" class="l"><a class="l" href="#34">34: </a> <span class="php-comment">// Si les tags courts sont activés</span>
</span><span id="35" class="l"><a class="l" href="#35">35: </a> <span class="php-keyword1">if</span> ((bool) @<span class="php-keyword2">ini_get</span>(<span class="php-quote">'short_open_tag'</span>) === <span class="php-keyword1">true</span>) {
</span><span id="36" class="l"><a class="l" href="#36">36: </a> <span class="php-comment">// Simple inclusion du squelette</span>
</span><span id="37" class="l"><a class="l" href="#37">37: </a> <span class="php-keyword1">include</span> <span class="php-var">$fichier</span>;
</span><span id="38" class="l"><a class="l" href="#38">38: </a> } <span class="php-keyword1">else</span> {
</span><span id="39" class="l"><a class="l" href="#39">39: </a> <span class="php-comment">// Sinon, remplacement des tags courts par la syntaxe classique avec echo</span>
</span><span id="40" class="l"><a class="l" href="#40">40: </a> <span class="php-var">$html_et_code_php</span> = self::traiterTagsCourts(<span class="php-var">$fichier</span>);
</span><span id="41" class="l"><a class="l" href="#41">41: </a> <span class="php-comment">// Pour évaluer du php mélangé dans du html il est nécessaire de fermer la balise php ouverte par eval</span>
</span><span id="42" class="l"><a class="l" href="#42">42: </a> <span class="php-var">$html_et_code_php</span> = <span class="php-quote">'?&gt;'</span>.<span class="php-var">$html_et_code_php</span>;
</span><span id="43" class="l"><a class="l" href="#43">43: </a> <span class="php-comment">// Interprétation du html et du php dans le buffer</span>
</span><span id="44" class="l"><a class="l" href="#44">44: </a> <span class="php-keyword1">echo</span> <span class="php-keyword2">eval</span>(<span class="php-var">$html_et_code_php</span>);
</span><span id="45" class="l"><a class="l" href="#45">45: </a> }
</span><span id="46" class="l"><a class="l" href="#46">46: </a> <span class="php-comment">// Récupèration du contenu du buffer</span>
</span><span id="47" class="l"><a class="l" href="#47">47: </a> <span class="php-var">$sortie</span> = <span class="php-keyword2">ob_get_contents</span>();
</span><span id="48" class="l"><a class="l" href="#48">48: </a> <span class="php-comment">// Suppression du buffer</span>
</span><span id="49" class="l"><a class="l" href="#49">49: </a> @<span class="php-keyword2">ob_end_clean</span>();
</span><span id="50" class="l"><a class="l" href="#50">50: </a> } <span class="php-keyword1">else</span> {
</span><span id="51" class="l"><a class="l" href="#51">51: </a> <span class="php-var">$msg</span> = <span class="php-quote">&quot;Le fichier du squelette '</span><span class="php-var">$fichier</span><span class="php-quote">' n'existe pas.&quot;</span>;
</span><span id="52" class="l"><a class="l" href="#52">52: </a> <span class="php-keyword2">trigger_error</span>(<span class="php-var">$msg</span>, E_USER_WARNING);
</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">// Retourne le contenu</span>
</span><span id="55" class="l"><a class="l" href="#55">55: </a> <span class="php-keyword1">return</span> <span class="php-var">$sortie</span>;
</span><span id="56" class="l"><a class="l" href="#56">56: </a> }
</span><span id="57" class="l"><a class="l" href="#57">57: </a>
</span><span id="58" class="l"><a class="l" href="#58">58: </a> <span class="php-comment">/**
</span></span><span id="59" class="l"><a class="l" href="#59">59: </a><span class="php-comment"> * Fonction chargeant le contenu du squelette et remplaçant les tags court php (&lt;?= ...) par un tag long avec echo.
</span></span><span id="60" class="l"><a class="l" href="#60">60: </a><span class="php-comment"> *
</span></span><span id="61" class="l"><a class="l" href="#61">61: </a><span class="php-comment"> * @param String $chemin_squelette le chemin du fichier du squelette
</span></span><span id="62" class="l"><a class="l" href="#62">62: </a><span class="php-comment"> *
</span></span><span id="63" class="l"><a class="l" href="#63">63: </a><span class="php-comment"> * @return string le contenu du fichier du squelette php avec les tags courts remplacés.
</span></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-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_traiterTagsCourts" href="#_traiterTagsCourts">traiterTagsCourts</a>(<span class="php-var">$chemin_squelette</span>) {
</span><span id="66" class="l"><a class="l" href="#66">66: </a> <span class="php-var">$contenu</span> = <span class="php-keyword2">file_get_contents</span>(<span class="php-var">$chemin_squelette</span>);
</span><span id="67" class="l"><a class="l" href="#67">67: </a> <span class="php-comment">// Remplacement de tags courts par un tag long avec echo</span>
</span><span id="68" class="l"><a class="l" href="#68">68: </a> <span class="php-var">$contenu</span> = <span class="php-keyword2">str_replace</span>(<span class="php-quote">'&lt;?='</span>, <span class="php-quote">'&lt;?php echo '</span>, <span class="php-var">$contenu</span>);
</span><span id="69" class="l"><a class="l" href="#69">69: </a> <span class="php-comment">// Ajout systématique d'un point virgule avant la fermeture php</span>
</span><span id="70" class="l"><a class="l" href="#70">70: </a> <span class="php-var">$contenu</span> = <span class="php-keyword2">preg_replace</span>(<span class="php-quote">&quot;/;*\s*\?&gt;/&quot;</span>, <span class="php-quote">&quot;; ?&gt;&quot;</span>, <span class="php-var">$contenu</span>);
</span><span id="71" class="l"><a class="l" href="#71">71: </a> <span class="php-keyword1">return</span> <span class="php-var">$contenu</span>;
</span><span id="72" class="l"><a class="l" href="#72">72: </a> }
</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><span class="xlang">?&gt;</span></code></pre>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/source-class-Chronometre.html
New file
0,0 → 1,261
<!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 Chronometre.php | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li class="active"><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li class="active"><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
 
 
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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="package-Framework.html" title="Summary of Framework"><span>Package</span></a>
</li>
<li>
<a href="class-Chronometre.html" title="Summary of Chronometre"><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>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<pre><code><span id="1" class="l"><a class="l" href="#1"> 1: </a><span class="xlang">&lt;?php</span>
</span><span id="2" class="l"><a class="l" href="#2"> 2: </a><span class="php-comment">// declare(encoding='UTF-8');</span>
</span><span id="3" class="l"><a class="l" href="#3"> 3: </a><span class="php-comment">/** Classe Chronometre() - Permet de stocker et d'afficher
</span></span><span id="4" class="l"><a class="l" href="#4"> 4: </a><span class="php-comment"> * les temps d'éxécution de script.
</span></span><span id="5" class="l"><a class="l" href="#5"> 5: </a><span class="php-comment"> *
</span></span><span id="6" class="l"><a class="l" href="#6"> 6: </a><span class="php-comment"> * Cette classe permet de réaliser un ensemble
</span></span><span id="7" class="l"><a class="l" href="#7"> 7: </a><span class="php-comment"> * de mesure de temps prises à
</span></span><span id="8" class="l"><a class="l" href="#8"> 8: </a><span class="php-comment"> * différents endroits d'un script.
</span></span><span id="9" class="l"><a class="l" href="#9"> 9: </a><span class="php-comment"> * Ces mesures peuvent ensuite être affichées au
</span></span><span id="10" class="l"><a class="l" href="#10"> 10: </a><span class="php-comment"> * sein d'un tableau XHTML.
</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"> *
</span></span><span id="13" class="l"><a class="l" href="#13"> 13: </a><span class="php-comment"> * PHP Version 5
</span></span><span id="14" class="l"><a class="l" href="#14"> 14: </a><span class="php-comment"> *
</span></span><span id="15" class="l"><a class="l" href="#15"> 15: </a><span class="php-comment"> * @category PHP
</span></span><span id="16" class="l"><a class="l" href="#16"> 16: </a><span class="php-comment"> * @package Framework
</span></span><span id="17" class="l"><a class="l" href="#17"> 17: </a><span class="php-comment"> * @author Jean-Pascal MILCENT &lt;jpm@tela-botanica.org&gt;
</span></span><span id="18" class="l"><a class="l" href="#18"> 18: </a><span class="php-comment"> * @copyright 2009 Tela-Botanica
</span></span><span id="19" class="l"><a class="l" href="#19"> 19: </a><span class="php-comment"> * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
</span></span><span id="20" class="l"><a class="l" href="#20"> 20: </a><span class="php-comment"> * @version Release: &lt;package_version&gt;
</span></span><span id="21" class="l"><a class="l" href="#21"> 21: </a><span class="php-comment"> * @link /doc/framework/
</span></span><span id="22" class="l"><a class="l" href="#22"> 22: </a><span class="php-comment"> */</span>
</span><span id="23" class="l"><a class="l" href="#23"> 23: </a><span class="php-keyword1">class</span> <a id="Chronometre" href="#Chronometre">Chronometre</a> {
</span><span id="24" class="l"><a class="l" href="#24"> 24: </a> <span class="php-comment">/*** Attributs : ***/</span>
</span><span id="25" class="l"><a class="l" href="#25"> 25: </a> <span class="php-keyword1">private</span> <span class="php-var"><a id="$_temps" href="#$_temps">$_temps</a></span> = <span class="php-keyword1">array</span>();
</span><span id="26" class="l"><a class="l" href="#26"> 26: </a>
</span><span id="27" class="l"><a class="l" href="#27"> 27: </a> <span class="php-comment">/** Constructeur : **/</span>
</span><span id="28" class="l"><a class="l" href="#28"> 28: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="___construct" href="#___construct">__construct</a>() {
</span><span id="29" class="l"><a class="l" href="#29"> 29: </a> <span class="php-var">$this</span>-&gt;setTemps(<span class="php-keyword1">array</span>(<span class="php-quote">'depart'</span> =&gt; <span class="php-keyword2">microtime</span>()));
</span><span id="30" class="l"><a class="l" href="#30"> 30: </a> }
</span><span id="31" class="l"><a class="l" href="#31"> 31: </a>
</span><span id="32" class="l"><a class="l" href="#32"> 32: </a> <span class="php-comment">/** Accesseurs :
</span></span><span id="33" class="l"><a class="l" href="#33"> 33: </a><span class="php-comment"> *
</span></span><span id="34" class="l"><a class="l" href="#34"> 34: </a><span class="php-comment"> * @param string $cle la cle associée à un chronomètre particulier
</span></span><span id="35" class="l"><a class="l" href="#35"> 35: </a><span class="php-comment"> *
</span></span><span id="36" class="l"><a class="l" href="#36"> 36: </a><span class="php-comment"> * @return int le temps écoulé
</span></span><span id="37" class="l"><a class="l" href="#37"> 37: </a><span class="php-comment"> */</span>
</span><span id="38" class="l"><a class="l" href="#38"> 38: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_getTemps" href="#_getTemps">getTemps</a>(<span class="php-var">$cle</span> = <span class="php-keyword1">null</span>) {
</span><span id="39" class="l"><a class="l" href="#39"> 39: </a> <span class="php-var">$temps</span> = <span class="php-quote">''</span>;
</span><span id="40" class="l"><a class="l" href="#40"> 40: </a> <span class="php-keyword1">if</span> (!<span class="php-keyword2">is_null</span>(<span class="php-var">$cle</span>)) {
</span><span id="41" class="l"><a class="l" href="#41"> 41: </a> <span class="php-var">$temps</span> = <span class="php-var">$this</span>-&gt;_temps[<span class="php-var">$cle</span>];
</span><span id="42" class="l"><a class="l" href="#42"> 42: </a> } <span class="php-keyword1">else</span> {
</span><span id="43" class="l"><a class="l" href="#43"> 43: </a> <span class="php-var">$temps</span> = <span class="php-var">$this</span>-&gt;_temps;
</span><span id="44" class="l"><a class="l" href="#44"> 44: </a> }
</span><span id="45" class="l"><a class="l" href="#45"> 45: </a> <span class="php-keyword1">return</span> <span class="php-var">$temps</span>;
</span><span id="46" class="l"><a class="l" href="#46"> 46: </a> }
</span><span id="47" class="l"><a class="l" href="#47"> 47: </a>
</span><span id="48" class="l"><a class="l" href="#48"> 48: </a> <span class="php-comment">/** Setteur pour la variable temps
</span></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"> * @param array() $moment ajoute des points de chronométrage au tableau _temps
</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-comment"> * @return null
</span></span><span id="53" class="l"><a class="l" href="#53"> 53: </a><span class="php-comment"> */</span>
</span><span id="54" class="l"><a class="l" href="#54"> 54: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_setTemps" href="#_setTemps">setTemps</a>(<span class="php-var">$moment</span> = <span class="php-keyword1">array</span> ()) {
</span><span id="55" class="l"><a class="l" href="#55"> 55: </a> <span class="php-keyword2">array_push</span>(<span class="php-var">$this</span>-&gt;_temps, <span class="php-var">$moment</span>);
</span><span id="56" class="l"><a class="l" href="#56"> 56: </a> }
</span><span id="57" class="l"><a class="l" href="#57"> 57: </a>
</span><span id="58" class="l"><a class="l" href="#58"> 58: </a> <span class="php-comment">/*** Méthodes : ***/</span>
</span><span id="59" class="l"><a class="l" href="#59"> 59: </a>
</span><span id="60" class="l"><a class="l" href="#60"> 60: </a> <span class="php-comment">/** Méthode afficherChrono() -
</span></span><span id="61" class="l"><a class="l" href="#61"> 61: </a><span class="php-comment"> * Permet d'afficher les temps d'éxécution de différentes parties d'un script.
</span></span><span id="62" class="l"><a class="l" href="#62"> 62: </a><span class="php-comment"> *
</span></span><span id="63" class="l"><a class="l" href="#63"> 63: </a><span class="php-comment"> * Cette fonction permet d'afficher un ensemble de
</span></span><span id="64" class="l"><a class="l" href="#64"> 64: </a><span class="php-comment"> * mesure de temps prises à différents endroits d'un script.
</span></span><span id="65" class="l"><a class="l" href="#65"> 65: </a><span class="php-comment"> * Ces mesures sont affichées au sein d'un tableau XHTML
</span></span><span id="66" class="l"><a class="l" href="#66"> 66: </a><span class="php-comment"> * dont on peut controler l'indentation des balises.
</span></span><span id="67" class="l"><a class="l" href="#67"> 67: </a><span class="php-comment"> * Pour un site en production, il suffit d'ajouter un style
</span></span><span id="68" class="l"><a class="l" href="#68"> 68: </a><span class="php-comment"> * #chrono {display:none;} dans la css. De cette façon,
</span></span><span id="69" class="l"><a class="l" href="#69"> 69: </a><span class="php-comment"> * le tableau ne s'affichera pas. Le webmaster lui pourra
</span></span><span id="70" class="l"><a class="l" href="#70"> 70: </a><span class="php-comment"> * rajouter sa propre feuille de style affichant le tableau.
</span></span><span id="71" class="l"><a class="l" href="#71"> 71: </a><span class="php-comment"> * Le développeur initial de cette fonction est Loic d'Anterroches.
</span></span><span id="72" class="l"><a class="l" href="#72"> 72: </a><span class="php-comment"> * Elle a été modifiée par Jean-Pascal Milcent.
</span></span><span id="73" class="l"><a class="l" href="#73"> 73: </a><span class="php-comment"> * Elle utilise une variable gobale : $_CHRONO_
</span></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"> * @author Loic d'Anterroches
</span></span><span id="76" class="l"><a class="l" href="#76"> 76: </a><span class="php-comment"> * @author Jean-Pascal MILCENT &lt;jpm@tela-botanica.org&gt;
</span></span><span id="77" class="l"><a class="l" href="#77"> 77: </a><span class="php-comment"> *
</span></span><span id="78" class="l"><a class="l" href="#78"> 78: </a><span class="php-comment"> * @param int $indentation_origine l'indentation de base.
</span></span><span id="79" class="l"><a class="l" href="#79"> 79: </a><span class="php-comment"> * @param int $indentation le pas d'indentation.
</span></span><span id="80" class="l"><a class="l" href="#80"> 80: </a><span class="php-comment"> * @return string la chaine XHTML de mesure des temps.
</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">public</span> <span class="php-keyword1">function</span> <a id="_afficherChrono" href="#_afficherChrono">afficherChrono</a>(<span class="php-var">$indentation_origine</span> = <span class="php-num">8</span>, <span class="php-var">$indentation</span> = <span class="php-num">4</span>) {
</span><span id="83" class="l"><a class="l" href="#83"> 83: </a> <span class="php-comment">// Création du chrono de fin</span>
</span><span id="84" class="l"><a class="l" href="#84"> 84: </a> <span class="php-var">$GLOBALS</span>[<span class="php-quote">'_SCRIPT_'</span>][<span class="php-quote">'chrono'</span>]-&gt;setTemps(<span class="php-keyword1">array</span> (
</span><span id="85" class="l"><a class="l" href="#85"> 85: </a> <span class="php-quote">'fin'</span> =&gt; <span class="php-keyword2">microtime</span>()
</span><span id="86" class="l"><a class="l" href="#86"> 86: </a> ));
</span><span id="87" class="l"><a class="l" href="#87"> 87: </a>
</span><span id="88" class="l"><a class="l" href="#88"> 88: </a> <span class="php-comment">// Début création de l'affichage</span>
</span><span id="89" class="l"><a class="l" href="#89"> 89: </a> <span class="php-var">$sortie</span> = <span class="php-keyword2">str_repeat</span>(<span class="php-quote">' '</span>, <span class="php-var">$indentation_origine</span>) .
</span><span id="90" class="l"><a class="l" href="#90"> 90: </a> <span class="php-quote">'&lt;table id=&quot;chrono&quot; lang=&quot;fr&quot; summary=&quot;Résultat du
</span></span><span id="91" class="l"><a class="l" href="#91"> 91: </a><span class="php-quote"> chronométrage du programme affichant la page actuelle.&quot;&gt;'</span> . <span class="php-quote">&quot;\n&quot;</span>;
</span><span id="92" class="l"><a class="l" href="#92"> 92: </a> <span class="php-var">$sortie</span> .= <span class="php-keyword2">str_repeat</span>(<span class="php-quote">' '</span>, (<span class="php-var">$indentation_origine</span> + (<span class="php-var">$indentation</span> * <span class="php-num">1</span>))) .
</span><span id="93" class="l"><a class="l" href="#93"> 93: </a> <span class="php-quote">'&lt;caption&gt;Chronométrage&lt;/caption&gt;'</span> . <span class="php-quote">&quot;\n&quot;</span>;
</span><span id="94" class="l"><a class="l" href="#94"> 94: </a> <span class="php-var">$sortie</span> .= <span class="php-keyword2">str_repeat</span>(<span class="php-quote">' '</span>, (<span class="php-var">$indentation_origine</span> + (<span class="php-var">$indentation</span> * <span class="php-num">1</span>))) .
</span><span id="95" class="l"><a class="l" href="#95"> 95: </a> <span class="php-quote">'&lt;thead&gt;'</span> . <span class="php-quote">&quot;\n&quot;</span>;
</span><span id="96" class="l"><a class="l" href="#96"> 96: </a> <span class="php-var">$sortie</span> .= <span class="php-keyword2">str_repeat</span>(<span class="php-quote">' '</span>, (<span class="php-var">$indentation_origine</span> + (<span class="php-var">$indentation</span> * <span class="php-num">2</span>))) .
</span><span id="97" class="l"><a class="l" href="#97"> 97: </a> <span class="php-quote">'&lt;tr&gt;&lt;th&gt;Action&lt;/th&gt;&lt;th&gt;Temps écoulé (en s.)&lt;/th&gt;
</span></span><span id="98" class="l"><a class="l" href="#98"> 98: </a><span class="php-quote"> &lt;th&gt;Cumul du temps écoulé (en s.)&lt;/th&gt;&lt;/tr&gt;'</span> . <span class="php-quote">&quot;\n&quot;</span>;
</span><span id="99" class="l"><a class="l" href="#99"> 99: </a> <span class="php-var">$sortie</span> .= <span class="php-keyword2">str_repeat</span>(<span class="php-quote">' '</span>, (<span class="php-var">$indentation_origine</span> + (<span class="php-var">$indentation</span> * <span class="php-num">1</span>))) .
</span><span id="100" class="l"><a class="l" href="#100">100: </a> <span class="php-quote">'&lt;/thead&gt;'</span> . <span class="php-quote">&quot;\n&quot;</span>;
</span><span id="101" class="l"><a class="l" href="#101">101: </a>
</span><span id="102" class="l"><a class="l" href="#102">102: </a> <span class="php-var">$tbody</span> = <span class="php-keyword2">str_repeat</span>(<span class="php-quote">' '</span>, (<span class="php-var">$indentation_origine</span> + (<span class="php-var">$indentation</span> * <span class="php-num">1</span>))) .
</span><span id="103" class="l"><a class="l" href="#103">103: </a> <span class="php-quote">'&lt;tbody&gt;'</span> . <span class="php-quote">&quot;\n&quot;</span>;
</span><span id="104" class="l"><a class="l" href="#104">104: </a>
</span><span id="105" class="l"><a class="l" href="#105">105: </a> <span class="php-var">$total_tps_ecoule</span> = <span class="php-num">0</span>;
</span><span id="106" class="l"><a class="l" href="#106">106: </a>
</span><span id="107" class="l"><a class="l" href="#107">107: </a> <span class="php-comment">// Récupération de la premiére mesure</span>
</span><span id="108" class="l"><a class="l" href="#108">108: </a> <span class="php-var">$tab_depart</span> = &amp; <span class="php-var">$this</span>-&gt;getTemps(<span class="php-num">0</span>);
</span><span id="109" class="l"><a class="l" href="#109">109: </a> <span class="php-keyword1">list</span> (<span class="php-var">$usec</span>, <span class="php-var">$sec</span>) = <span class="php-keyword2">explode</span>(<span class="php-quote">' '</span>, <span class="php-var">$tab_depart</span>[<span class="php-quote">'depart'</span>]);
</span><span id="110" class="l"><a class="l" href="#110">110: </a>
</span><span id="111" class="l"><a class="l" href="#111">111: </a> <span class="php-comment">// Ce temps correspond à tps_fin</span>
</span><span id="112" class="l"><a class="l" href="#112">112: </a> <span class="php-var">$tps_debut</span> = ((float) <span class="php-var">$usec</span> + (float) <span class="php-var">$sec</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-keyword1">foreach</span> (<span class="php-var">$this</span>-&gt;getTemps() <span class="php-keyword1">as</span> <span class="php-var">$tab_temps</span>) {
</span><span id="115" class="l"><a class="l" href="#115">115: </a> <span class="php-keyword1">foreach</span> (<span class="php-var">$tab_temps</span> <span class="php-keyword1">as</span> <span class="php-var">$cle</span> =&gt; <span class="php-var">$valeur</span>) {
</span><span id="116" class="l"><a class="l" href="#116">116: </a> <span class="php-keyword1">list</span> (<span class="php-var">$usec</span>, <span class="php-var">$sec</span>) = <span class="php-keyword2">explode</span>(<span class="php-quote">' '</span>, <span class="php-var">$valeur</span>);
</span><span id="117" class="l"><a class="l" href="#117">117: </a> <span class="php-var">$tps_fin</span> = ((float) <span class="php-var">$usec</span> + (float) <span class="php-var">$sec</span>);
</span><span id="118" class="l"><a class="l" href="#118">118: </a>
</span><span id="119" class="l"><a class="l" href="#119">119: </a> <span class="php-var">$tps_ecoule</span> = <span class="php-keyword2">abs</span>(<span class="php-var">$tps_fin</span> - <span class="php-var">$tps_debut</span>);
</span><span id="120" class="l"><a class="l" href="#120">120: </a> <span class="php-var">$total_tps_ecoule</span> += <span class="php-var">$tps_ecoule</span>;
</span><span id="121" class="l"><a class="l" href="#121">121: </a>
</span><span id="122" class="l"><a class="l" href="#122">122: </a> <span class="php-var">$tbody</span> .= <span class="php-keyword2">str_repeat</span>(<span class="php-quote">' '</span>,
</span><span id="123" class="l"><a class="l" href="#123">123: </a> (<span class="php-var">$indentation_origine</span> + (<span class="php-var">$indentation</span> * <span class="php-num">2</span>))) .
</span><span id="124" class="l"><a class="l" href="#124">124: </a> <span class="php-quote">'&lt;tr&gt;'</span> .
</span><span id="125" class="l"><a class="l" href="#125">125: </a> <span class="php-quote">'&lt;th&gt;'</span> . <span class="php-var">$cle</span> . <span class="php-quote">'&lt;/th&gt;'</span> .
</span><span id="126" class="l"><a class="l" href="#126">126: </a> <span class="php-quote">'&lt;td&gt;'</span> . <span class="php-keyword2">number_format</span>(<span class="php-var">$tps_ecoule</span>, <span class="php-num">3</span>, <span class="php-quote">','</span>, <span class="php-quote">' '</span>) . <span class="php-quote">'&lt;/td&gt;'</span> .
</span><span id="127" class="l"><a class="l" href="#127">127: </a> <span class="php-quote">'&lt;td&gt;'</span> . <span class="php-keyword2">number_format</span>(<span class="php-var">$total_tps_ecoule</span>, <span class="php-num">3</span>, <span class="php-quote">','</span>, <span class="php-quote">' '</span>) . <span class="php-quote">'&lt;/td&gt;'</span> .
</span><span id="128" class="l"><a class="l" href="#128">128: </a> <span class="php-quote">'&lt;/tr&gt;'</span> . <span class="php-quote">&quot;\n&quot;</span>;
</span><span id="129" class="l"><a class="l" href="#129">129: </a> <span class="php-var">$tps_debut</span> = <span class="php-var">$tps_fin</span>;
</span><span id="130" class="l"><a class="l" href="#130">130: </a> }
</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-var">$tbody</span> .= <span class="php-keyword2">str_repeat</span>(<span class="php-quote">' '</span>, (<span class="php-var">$indentation_origine</span> + (<span class="php-var">$indentation</span> * <span class="php-num">1</span>))) .
</span><span id="133" class="l"><a class="l" href="#133">133: </a> <span class="php-quote">'&lt;/tbody&gt;'</span> . <span class="php-quote">&quot;\n&quot;</span>;
</span><span id="134" class="l"><a class="l" href="#134">134: </a>
</span><span id="135" class="l"><a class="l" href="#135">135: </a> <span class="php-var">$sortie</span> .= <span class="php-keyword2">str_repeat</span>(<span class="php-quote">' '</span>, (<span class="php-var">$indentation_origine</span> + (<span class="php-var">$indentation</span> * <span class="php-num">1</span>))) .
</span><span id="136" class="l"><a class="l" href="#136">136: </a> <span class="php-quote">'&lt;tfoot&gt;'</span> . <span class="php-quote">&quot;\n&quot;</span>;
</span><span id="137" class="l"><a class="l" href="#137">137: </a> <span class="php-var">$sortie</span> .= <span class="php-keyword2">str_repeat</span>(<span class="php-quote">' '</span>, (<span class="php-var">$indentation_origine</span> + (<span class="php-var">$indentation</span> * <span class="php-num">2</span>))) .
</span><span id="138" class="l"><a class="l" href="#138">138: </a> <span class="php-quote">'&lt;tr&gt;'</span> .
</span><span id="139" class="l"><a class="l" href="#139">139: </a> <span class="php-quote">'&lt;th&gt;'</span> . <span class="php-quote">'Total du temps écoulé (en s.)'</span> . <span class="php-quote">'&lt;/th&gt;'</span> .
</span><span id="140" class="l"><a class="l" href="#140">140: </a> <span class="php-quote">'&lt;td colspan=&quot;2&quot;&gt;'</span> .
</span><span id="141" class="l"><a class="l" href="#141">141: </a> <span class="php-keyword2">number_format</span>(<span class="php-var">$total_tps_ecoule</span>, <span class="php-num">3</span>, <span class="php-quote">','</span>, <span class="php-quote">' '</span>) . <span class="php-quote">'&lt;/td&gt;'</span> .
</span><span id="142" class="l"><a class="l" href="#142">142: </a> <span class="php-quote">'&lt;/tr&gt;'</span> . <span class="php-quote">&quot;\n&quot;</span>;
</span><span id="143" class="l"><a class="l" href="#143">143: </a> <span class="php-var">$sortie</span> .= <span class="php-keyword2">str_repeat</span>(<span class="php-quote">' '</span>, (<span class="php-var">$indentation_origine</span> + (<span class="php-var">$indentation</span> * <span class="php-num">1</span>))) .
</span><span id="144" class="l"><a class="l" href="#144">144: </a> <span class="php-quote">'&lt;/tfoot&gt;'</span> . <span class="php-quote">&quot;\n&quot;</span>;
</span><span id="145" class="l"><a class="l" href="#145">145: </a> <span class="php-var">$sortie</span> .= <span class="php-var">$tbody</span>;
</span><span id="146" class="l"><a class="l" href="#146">146: </a> <span class="php-var">$sortie</span> .= <span class="php-keyword2">str_repeat</span>(<span class="php-quote">' '</span>, <span class="php-var">$indentation_origine</span>) .
</span><span id="147" class="l"><a class="l" href="#147">147: </a> <span class="php-quote">'&lt;/table&gt;'</span> . <span class="php-quote">&quot;\n&quot;</span>;
</span><span id="148" class="l"><a class="l" href="#148">148: </a>
</span><span id="149" class="l"><a class="l" href="#149">149: </a> <span class="php-keyword1">return</span> <span class="php-var">$sortie</span>;
</span><span id="150" class="l"><a class="l" href="#150">150: </a> }
</span><span id="151" class="l"><a class="l" href="#151">151: </a>}
</span><span id="152" class="l"><a class="l" href="#152">152: </a></span><span class="xlang">?&gt;</span></code></pre>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/package-Framework.html
New file
0,0 → 1,190
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="generator" content="ApiGen 2.8.0">
 
<title>Package Framework | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li class="active"><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
 
 
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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 class="active">
<span>Package</span> </li>
<li>
<span>Class</span> </li>
</ul>
<ul>
<li>
<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
</li>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<div id="content" class="package">
<h1>Package Framework</h1>
 
 
 
<table class="summary" id="classes">
<caption>Classes summary</caption>
<tr>
<td class="name"><a href="class-Application.html">Application</a></td>
<td>Classe fournissant des informations au Framework sur l'application.
<!-- by Texy2! --></td>
</tr>
<tr>
<td class="name"><a href="class-Chronometre.html">Chronometre</a></td>
<td>Classe Chronometre() - Permet de stocker et d'afficher les temps d'éxécution
de script.</td>
</tr>
<tr>
<td class="name"><a href="class-Config.html">Config</a></td>
<td>Config permet de charger automatiquement les fichiers ini du Framework et de
l'application. Elle offre l'accès en lecture seule aux paramètres de config.
C'est une Singleton.</td>
</tr>
<tr>
<td class="name"><a href="class-Controleur.html">Controleur</a></td>
<td>Classe Controleur, coeur d'une application, c'est normalement la seule classe
d'une application qui devrait être appelée de l'extérieur. Elle est abstraite
donc doit obligatoirement être étendue.</td>
</tr>
<tr>
<td class="name"><a href="class-Debug.html">Debug</a></td>
<td>Classe fournissant des fonctions de débogage équivalante à var_dump et
print_r. L'affichage et l'utilisation de ces fonctions sont améliorés via
cette classe. Cette classe est inspirée de la classe Zend_Debug.</td>
</tr>
<tr>
<td class="name"><a href="class-GestionnaireException.html">GestionnaireException</a></td>
<td>Classe de gestion des exceptions. C'est un Singleton.</td>
</tr>
<tr>
<td class="name"><a href="class-Log.html">Log</a></td>
<td>Classe permettant de logger des messages dans les fichier situés dans le
dossier de log.</td>
</tr>
<tr>
<td class="name"><a href="class-Modele.html">Modele</a></td>
<td>Classe modèle, donc d'accés au données, elle ne devrait pas être appelée de
l'extérieur. Elle fait office d'abstraction légère de base de données en
utilisant diveres possibilités d'abstraction de base de données (PDO, mysql,
mysqli, sqlite) Elle est abstraite donc doit obligatoirement être étendue.</td>
</tr>
<tr>
<td class="name"><a href="class-Registre.html">Registre</a></td>
<td>Classe registre, qui permet un accès à différentes variables à travers les
autres classes. C'est un singleton</td>
</tr>
<tr>
<td class="name"><a href="class-SquelettePhp.html">SquelettePhp</a></td>
<td>Classe SquelettePhp, traitant les squelette Php utilisant la syntaxe courte php
ou pas. Ces méthodes sont statiques.</td>
</tr>
<tr>
<td class="name"><a href="class-Url.html">Url</a></td>
<td>classe Url, gérant le découpage des paramètres, leurs modification etc...
Traduction et conversion d'une classe (NET_Url2) issue de Pear</td>
</tr>
</table>
 
 
 
 
 
<table class="summary" id="functions">
<caption>Functions summary</caption>
<tr>
<td class="name"><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></td>
<td></td>
</tr>
<tr>
<td class="name"><a href="function-autoloadFw.html">autoloadFw</a></td>
<td></td>
</tr>
</table>
</div>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/class-SquelettePhp.html
New file
0,0 → 1,223
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="generator" content="ApiGen 2.8.0">
 
<title>Class SquelettePhp | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li class="active"><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li class="active"><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
 
 
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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="package-Framework.html" title="Summary of Framework"><span>Package</span></a>
</li>
<li class="active">
<span>Class</span> </li>
</ul>
<ul>
<li>
<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
</li>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<div id="content" class="class">
<h1>Class SquelettePhp</h1>
 
 
<div class="description">
<p>Classe SquelettePhp, traitant les squelette Php utilisant la syntaxe courte
php ou pas. Ces méthodes sont statiques.</p>
 
</div>
 
 
 
 
 
 
 
 
 
<div class="info">
<b>Package:</b> <a href="package-Framework.html">Framework</a><br>
 
<b>Category:</b>
php5<br>
<b>Copyright:</b>
2010 Tela-Botanica<br>
<b>License:</b>
<a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">Licence CECILL</a><br>
<b>License:</b>
<a href="http://www.gnu.org/licenses/gpl.html">Licence GNU-GPL</a><br>
<b>Author:</b>
Jean-Pascal MILCENT &lt;<a
href="mailto:jpm&#64;tela-botanica.org">jpm&#64;<!-- -->tela-botanica.org</a>&gt;<br>
<b>Version:</b>
SVN: $$Id: SquelettePhp.php 153 2010-03-04 10:48:32Z jpm $$<br>
<b>Link:</b>
/doc/framework/<br>
<b>Located at</b> <a href="source-class-SquelettePhp.html#3-73" title="Go to source code">SquelettePhp.php</a><br>
</div>
 
 
 
<table class="summary" id="methods">
<caption>Methods summary</caption>
<tr data-order="analyser" id="_analyser">
 
<td class="attributes"><code>
public static
boolean
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_analyser">#</a>
<code><a href="source-class-SquelettePhp.html#18-56" title="Go to source code">analyser</a>( <span>String <var>$fichier</var></span>, <span>array <var>$donnees</var> = <span class="php-keyword1">array</span>()</span> )</code>
 
<div class="description short">
<p>Fonction prenant en paramètre un chemin de fichier squelette et un tableau
associatif de données, en extrait les variables, charge le squelette et
retourne le résultat des deux combinés.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Fonction prenant en paramètre un chemin de fichier squelette et un tableau
associatif de données, en extrait les variables, charge le squelette et
retourne le résultat des deux combinés.</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$fichier</var></dt>
<dd><code>String</code><br>$fichier le chemin du fichier du squelette</dd>
<dt><var>$donnees</var></dt>
<dd><code>Array</code><br>$donnees un tableau associatif contenant les variables a injecter dans le
squelette.</dd>
</dl></div>
 
<h4>Returns</h4>
<div class="list">
<code>boolean</code><br>false si la vue n'existe pas, sinon la chaine résultat.<br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
</table>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
</div>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/class-Chronometre.html
New file
0,0 → 1,356
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="generator" content="ApiGen 2.8.0">
 
<title>Class Chronometre | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li class="active"><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li class="active"><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
 
 
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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="package-Framework.html" title="Summary of Framework"><span>Package</span></a>
</li>
<li class="active">
<span>Class</span> </li>
</ul>
<ul>
<li>
<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
</li>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<div id="content" class="class">
<h1>Class Chronometre</h1>
 
 
<div class="description">
<p>Classe Chronometre() - Permet de stocker et d'afficher les temps
d'éxécution de script.</p>
 
<p>Cette classe permet de réaliser un ensemble de mesure de temps prises à
différents endroits d'un script. Ces mesures peuvent ensuite être affichées
au sein d'un tableau XHTML.</p>
 
<p>PHP Version 5</p>
 
</div>
 
 
 
 
 
 
 
 
 
<div class="info">
<b>Package:</b> <a href="package-Framework.html">Framework</a><br>
 
<b>Category:</b>
PHP<br>
<b>Copyright:</b>
2009 Tela-Botanica<br>
<b>License:</b>
<a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">Licence CECILL</a><br>
<b>Author:</b>
Jean-Pascal MILCENT &lt;<a
href="mailto:jpm&#64;tela-botanica.org">jpm&#64;<!-- -->tela-botanica.org</a>&gt;<br>
<b>Version:</b>
Release: &lt;package_version&gt;<br>
<b>Link:</b>
/doc/framework/<br>
<b>Located at</b> <a href="source-class-Chronometre.html#3-151" title="Go to source code">Chronometre.php</a><br>
</div>
 
 
 
<table class="summary" id="methods">
<caption>Methods summary</caption>
<tr data-order="__construct" id="___construct">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#___construct">#</a>
<code><a href="source-class-Chronometre.html#27-30" title="Go to source code">__construct</a>( )</code>
 
<div class="description short">
<p>Constructeur : *</p>
 
</div>
 
<div class="description detailed hidden">
<p>Constructeur : *</p>
 
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getTemps" id="_getTemps">
 
<td class="attributes"><code>
public
integer
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getTemps">#</a>
<code><a href="source-class-Chronometre.html#32-46" title="Go to source code">getTemps</a>( <span>string <var>$cle</var> = <span class="php-keyword1">null</span></span> )</code>
 
<div class="description short">
<p>Accesseurs :</p>
 
</div>
 
<div class="description detailed hidden">
<p>Accesseurs :</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$cle</var></dt>
<dd><code>string</code><br>$cle la cle associée à un chronomètre particulier</dd>
</dl></div>
 
<h4>Returns</h4>
<div class="list">
<code>integer</code><br>le temps écoulé<br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="setTemps" id="_setTemps">
 
<td class="attributes"><code>
public
null
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_setTemps">#</a>
<code><a href="source-class-Chronometre.html#48-56" title="Go to source code">setTemps</a>( <span>array() <var>$moment</var> = <span class="php-keyword1">array</span> ()</span> )</code>
 
<div class="description short">
<p>Setteur pour la variable temps</p>
 
</div>
 
<div class="description detailed hidden">
<p>Setteur pour la variable temps</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$moment</var></dt>
<dd><code>array()</code><br>$moment ajoute des points de chronométrage au tableau _temps</dd>
</dl></div>
 
<h4>Returns</h4>
<div class="list">
<code>null</code><br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="afficherChrono" id="_afficherChrono">
 
<td class="attributes"><code>
public
string
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_afficherChrono">#</a>
<code><a href="source-class-Chronometre.html#60-150" title="Go to source code">afficherChrono</a>( <span>integer <var>$indentation_origine</var> = <span class="php-num">8</span></span>, <span>integer <var>$indentation</var> = <span class="php-num">4</span></span> )</code>
 
<div class="description short">
<p>Méthode afficherChrono() - Permet d'afficher les temps d'éxécution de
différentes parties d'un script.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Méthode afficherChrono() - Permet d'afficher les temps d'éxécution de
différentes parties d'un script.</p>
 
<p>Cette fonction permet d'afficher un ensemble de mesure de temps prises à
différents endroits d'un script. Ces mesures sont affichées au sein d'un
tableau XHTML dont on peut controler l'indentation des balises. Pour un site en
production, il suffit d'ajouter un style #chrono {display:none;} dans la css. De
cette façon, le tableau ne s'affichera pas. Le webmaster lui pourra rajouter sa
propre feuille de style affichant le tableau. Le développeur initial de cette
fonction est Loic d'Anterroches. Elle a été modifiée par Jean-Pascal Milcent.
Elle utilise une variable gobale : $_CHRONO_</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$indentation_origine</var></dt>
<dd><code>integer</code><br>$indentation_origine l'indentation de base.</dd>
<dt><var>$indentation</var></dt>
<dd><code>integer</code><br>$indentation le pas d'indentation.</dd>
</dl></div>
 
<h4>Returns</h4>
<div class="list">
<code>string</code><br>la chaine XHTML de mesure des temps.<br>
</div>
 
 
<h4>Author</h4>
<div class="list">
Loic d'Anterroches<br>
Jean-Pascal MILCENT &lt;<a
href="mailto:jpm&#64;tela-botanica.org">jpm&#64;<!-- -->tela-botanica.org</a>&gt;<br>
</div>
 
 
</div>
</div></td>
</tr>
</table>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
</div>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/source-class-Controleur.html
New file
0,0 → 1,248
<!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 Controleur.php | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li class="active"><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li class="active"><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
 
 
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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="package-Framework.html" title="Summary of Framework"><span>Package</span></a>
</li>
<li>
<a href="class-Controleur.html" title="Summary of Controleur"><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>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<pre><code><span id="1" class="l"><a class="l" href="#1"> 1: </a><span class="xlang">&lt;?php</span>
</span><span id="2" class="l"><a class="l" href="#2"> 2: </a><span class="php-comment">// declare(encoding='UTF-8');</span>
</span><span id="3" class="l"><a class="l" href="#3"> 3: </a><span class="php-comment">/**
</span></span><span id="4" class="l"><a class="l" href="#4"> 4: </a><span class="php-comment"> * Classe Controleur, coeur d'une application, c'est normalement la seule classe d'une application
</span></span><span id="5" class="l"><a class="l" href="#5"> 5: </a><span class="php-comment"> * qui devrait être appelée de l'extérieur.
</span></span><span id="6" class="l"><a class="l" href="#6"> 6: </a><span class="php-comment"> * Elle est abstraite donc doit obligatoirement être étendue.
</span></span><span id="7" class="l"><a class="l" href="#7"> 7: </a><span class="php-comment"> *
</span></span><span id="8" class="l"><a class="l" href="#8"> 8: </a><span class="php-comment"> * @category php5
</span></span><span id="9" class="l"><a class="l" href="#9"> 9: </a><span class="php-comment"> * @package Framework
</span></span><span id="10" class="l"><a class="l" href="#10"> 10: </a><span class="php-comment"> * @author Aurélien PERONNET &lt;aurelien@tela-botanica.org&gt;
</span></span><span id="11" class="l"><a class="l" href="#11"> 11: </a><span class="php-comment"> * @author Jean-Pascal MILCENT &lt;jpm@tela-botanica.org&gt;
</span></span><span id="12" class="l"><a class="l" href="#12"> 12: </a><span class="php-comment"> * @copyright 2009 Tela-Botanica
</span></span><span id="13" class="l"><a class="l" href="#13"> 13: </a><span class="php-comment"> * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
</span></span><span id="14" class="l"><a class="l" href="#14"> 14: </a><span class="php-comment"> * @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
</span></span><span id="15" class="l"><a class="l" href="#15"> 15: </a><span class="php-comment"> * @version SVN: $Id: Controleur.php 191 2010-04-29 15:34:49Z jpm $
</span></span><span id="16" class="l"><a class="l" href="#16"> 16: </a><span class="php-comment"> * @link /doc/framework/
</span></span><span id="17" class="l"><a class="l" href="#17"> 17: </a><span class="php-comment"> *
</span></span><span id="18" class="l"><a class="l" href="#18"> 18: </a><span class="php-comment"> */</span>
</span><span id="19" class="l"><a class="l" href="#19"> 19: </a><span class="php-keyword1">abstract</span> <span class="php-keyword1">class</span> <a id="Controleur" href="#Controleur">Controleur</a> {
</span><span id="20" class="l"><a class="l" href="#20"> 20: </a> <span class="php-comment">/** Variable statique indiquant que les tableaux _GET et _POST ont déjà été encodé au format de l'appli. */</span>
</span><span id="21" class="l"><a class="l" href="#21"> 21: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-var"><a id="$encodage" href="#$encodage">$encodage</a></span> = <span class="php-keyword1">false</span>;
</span><span id="22" class="l"><a class="l" href="#22"> 22: </a>
</span><span id="23" class="l"><a class="l" href="#23"> 23: </a> <span class="php-comment">/** Registre global, normalement accessible partout */</span>
</span><span id="24" class="l"><a class="l" href="#24"> 24: </a> <span class="php-keyword1">private</span> <span class="php-var"><a id="$registre" href="#$registre">$registre</a></span>;
</span><span id="25" class="l"><a class="l" href="#25"> 25: </a>
</span><span id="26" class="l"><a class="l" href="#26"> 26: </a> <span class="php-comment">/**
</span></span><span id="27" class="l"><a class="l" href="#27"> 27: </a><span class="php-comment"> * Constructeur par défaut
</span></span><span id="28" class="l"><a class="l" href="#28"> 28: </a><span class="php-comment"> */</span>
</span><span id="29" class="l"><a class="l" href="#29"> 29: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="___construct" href="#___construct">__construct</a>() {
</span><span id="30" class="l"><a class="l" href="#30"> 30: </a> <span class="php-var">$this</span>-&gt;registre = Registre::getInstance();
</span><span id="31" class="l"><a class="l" href="#31"> 31: </a> <span class="php-var">$this</span>-&gt;registre-&gt;set(<span class="php-quote">'base_chemin_modele'</span>, Config::get(<span class="php-quote">'chemin_modeles'</span>));
</span><span id="32" class="l"><a class="l" href="#32"> 32: </a> <span class="php-var">$this</span>-&gt;registre-&gt;set(<span class="php-quote">'base_chemin_squelette'</span>, Config::get(<span class="php-quote">'chemin_squelettes'</span>));
</span><span id="33" class="l"><a class="l" href="#33"> 33: </a> <span class="php-var">$this</span>-&gt;registre-&gt;set(<span class="php-quote">'base_chemin_controleur'</span>, Config::get(<span class="php-quote">'chemin_controleurs'</span>));
</span><span id="34" class="l"><a class="l" href="#34"> 34: </a> <span class="php-var">$this</span>-&gt;registre-&gt;set(<span class="php-quote">'base_url_application'</span>, <span class="php-keyword1">new</span> Url(Config::get(<span class="php-quote">'url_base'</span>)));
</span><span id="35" class="l"><a class="l" href="#35"> 35: </a> <span class="php-var">$this</span>-&gt;verifierEtReencoderTableauRequete();
</span><span id="36" class="l"><a class="l" href="#36"> 36: </a> }
</span><span id="37" class="l"><a class="l" href="#37"> 37: </a>
</span><span id="38" class="l"><a class="l" href="#38"> 38: </a> <span class="php-comment">/**
</span></span><span id="39" class="l"><a class="l" href="#39"> 39: </a><span class="php-comment"> * Charge un modele donné et le rend disponible sous la forme $this-&gt;nom_modele
</span></span><span id="40" class="l"><a class="l" href="#40"> 40: </a><span class="php-comment"> *
</span></span><span id="41" class="l"><a class="l" href="#41"> 41: </a><span class="php-comment"> * @param string $nom_modele le nom du modèle à  charger
</span></span><span id="42" class="l"><a class="l" href="#42"> 42: </a><span class="php-comment"> *
</span></span><span id="43" class="l"><a class="l" href="#43"> 43: </a><span class="php-comment"> * @return boolean false si le chargement a échoué, sinon true.
</span></span><span id="44" class="l"><a class="l" href="#44"> 44: </a><span class="php-comment"> */</span>
</span><span id="45" class="l"><a class="l" href="#45"> 45: </a> <span class="php-keyword1">final</span> <span class="php-keyword1">protected</span> <span class="php-keyword1">function</span> <a id="_chargerModele" href="#_chargerModele">chargerModele</a>(<span class="php-var">$nom_modele</span>) {
</span><span id="46" class="l"><a class="l" href="#46"> 46: </a> <span class="php-var">$sortie</span> = <span class="php-keyword1">true</span>;
</span><span id="47" class="l"><a class="l" href="#47"> 47: </a> <span class="php-var">$modele</span> = <span class="php-var">$this</span>-&gt;getModele(<span class="php-var">$nom_modele</span>);
</span><span id="48" class="l"><a class="l" href="#48"> 48: </a> <span class="php-keyword1">if</span> (<span class="php-var">$modele</span> !== <span class="php-keyword1">false</span>) {
</span><span id="49" class="l"><a class="l" href="#49"> 49: </a> <span class="php-var">$this</span>-&gt;<span class="php-var">$nom_modele</span> = <span class="php-keyword1">new</span> <span class="php-var">$nom_modele</span>;
</span><span id="50" class="l"><a class="l" href="#50"> 50: </a> } <span class="php-keyword1">else</span> {
</span><span id="51" class="l"><a class="l" href="#51"> 51: </a> <span class="php-var">$sortie</span> = <span class="php-keyword1">false</span>;
</span><span id="52" class="l"><a class="l" href="#52"> 52: </a> }
</span><span id="53" class="l"><a class="l" href="#53"> 53: </a> <span class="php-keyword1">return</span> <span class="php-var">$sortie</span>;
</span><span id="54" class="l"><a class="l" href="#54"> 54: </a> }
</span><span id="55" class="l"><a class="l" href="#55"> 55: </a>
</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-comment"> * Retourne un modele donné
</span></span><span id="58" class="l"><a class="l" href="#58"> 58: </a><span class="php-comment"> *
</span></span><span id="59" class="l"><a class="l" href="#59"> 59: </a><span class="php-comment"> * @param string $nom_modele le nom du fichier modèle à charger sans son extension
</span></span><span id="60" class="l"><a class="l" href="#60"> 60: </a><span class="php-comment"> * @param String $ext l'extension du fichier du modèel (par défaut : &quot;.php&quot;
</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-comment"> * @return mixed false si le chargement a échoué, sinon l'objet du modèle demandé.
</span></span><span id="63" class="l"><a class="l" href="#63"> 63: </a><span class="php-comment"> */</span>
</span><span id="64" class="l"><a class="l" href="#64"> 64: </a> <span class="php-keyword1">final</span> <span class="php-keyword1">protected</span> <span class="php-keyword1">function</span> <a id="_getModele" href="#_getModele">getModele</a>(<span class="php-var">$nom_modele</span>, <span class="php-var">$ext</span> = <span class="php-quote">'.php'</span>) {
</span><span id="65" class="l"><a class="l" href="#65"> 65: </a> <span class="php-var">$sortie</span> = <span class="php-keyword1">false</span>;
</span><span id="66" class="l"><a class="l" href="#66"> 66: </a> <span class="php-var">$chemin_modele</span> = <span class="php-var">$this</span>-&gt;registre-&gt;get(<span class="php-quote">'base_chemin_modele'</span>).<span class="php-var">$nom_modele</span>.<span class="php-var">$ext</span>;
</span><span id="67" class="l"><a class="l" href="#67"> 67: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">file_exists</span>(<span class="php-var">$chemin_modele</span>)) {
</span><span id="68" class="l"><a class="l" href="#68"> 68: </a> <span class="php-keyword1">include_once</span> <span class="php-var">$chemin_modele</span>;
</span><span id="69" class="l"><a class="l" href="#69"> 69: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">class_exists</span>(<span class="php-var">$nom_modele</span>)) {
</span><span id="70" class="l"><a class="l" href="#70"> 70: </a> <span class="php-var">$sortie</span> = <span class="php-keyword1">new</span> <span class="php-var">$nom_modele</span>;
</span><span id="71" class="l"><a class="l" href="#71"> 71: </a> }
</span><span id="72" class="l"><a class="l" href="#72"> 72: </a> }
</span><span id="73" class="l"><a class="l" href="#73"> 73: </a> <span class="php-keyword1">return</span> <span class="php-var">$sortie</span>;
</span><span id="74" class="l"><a class="l" href="#74"> 74: </a> }
</span><span id="75" class="l"><a class="l" href="#75"> 75: </a>
</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-comment"> * Fonction prenant en paramètre le nom d'un squelette et un tableau associatif de données,
</span></span><span id="78" class="l"><a class="l" href="#78"> 78: </a><span class="php-comment"> * en extrait les variables, charge le squelette et retourne le résultat des deux combinés.
</span></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"> * @param String $nom_squelette le nom du squelette sans son extension
</span></span><span id="81" class="l"><a class="l" href="#81"> 81: </a><span class="php-comment"> * @param Array $donnees un tableau associatif contenant les variables a injecter dans la vue
</span></span><span id="82" class="l"><a class="l" href="#82"> 82: </a><span class="php-comment"> * @param String $ext l'extension du fichier du squelette (par défaut : &quot;.tpl.html&quot;
</span></span><span id="83" class="l"><a class="l" href="#83"> 83: </a><span class="php-comment"> *
</span></span><span id="84" class="l"><a class="l" href="#84"> 84: </a><span class="php-comment"> * @return boolean false si la vue n'existe pas, sinon la chaine résultat.
</span></span><span id="85" class="l"><a class="l" href="#85"> 85: </a><span class="php-comment"> */</span>
</span><span id="86" class="l"><a class="l" href="#86"> 86: </a> <span class="php-keyword1">final</span> <span class="php-keyword1">protected</span> <span class="php-keyword1">function</span> <a id="_getVue" href="#_getVue">getVue</a>(<span class="php-var">$nom_squelette</span>, <span class="php-var">$donnees</span> = <span class="php-keyword1">array</span>(), <span class="php-var">$ext</span> = <span class="php-quote">'.tpl.html'</span>) {
</span><span id="87" class="l"><a class="l" href="#87"> 87: </a> <span class="php-var">$donnees</span> = <span class="php-var">$this</span>-&gt;preTraiterDonnees(<span class="php-var">$donnees</span>);
</span><span id="88" class="l"><a class="l" href="#88"> 88: </a> <span class="php-var">$chemin_squelette</span> = (<span class="php-var">$this</span>-&gt;registre-&gt;get(<span class="php-quote">'base_chemin_squelette'</span>)).<span class="php-var">$nom_squelette</span>.<span class="php-var">$ext</span>;
</span><span id="89" class="l"><a class="l" href="#89"> 89: </a> <span class="php-var">$sortie</span> = SquelettePhp::analyser(<span class="php-var">$chemin_squelette</span>, <span class="php-var">$donnees</span>);
</span><span id="90" class="l"><a class="l" href="#90"> 90: </a>
</span><span id="91" class="l"><a class="l" href="#91"> 91: </a> <span class="php-keyword1">return</span> <span class="php-var">$sortie</span>;
</span><span id="92" class="l"><a class="l" href="#92"> 92: </a> }
</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"> * Fonction prenant en paramètre un tableau de données et effectuant un traitement dessus.
</span></span><span id="96" class="l"><a class="l" href="#96"> 96: </a><span class="php-comment"> * Cette fonction est à surcharger dans les classes filles pour automatiser un traitement
</span></span><span id="97" class="l"><a class="l" href="#97"> 97: </a><span class="php-comment"> * avant chaque chargement de vue.
</span></span><span id="98" class="l"><a class="l" href="#98"> 98: </a><span class="php-comment"> *
</span></span><span id="99" class="l"><a class="l" href="#99"> 99: </a><span class="php-comment"> * @param Array $donnees Le tableau de données à traiter
</span></span><span id="100" class="l"><a class="l" href="#100">100: </a><span class="php-comment"> *
</span></span><span id="101" class="l"><a class="l" href="#101">101: </a><span class="php-comment"> * @return Array $donnees Le tableau de données traité
</span></span><span id="102" class="l"><a class="l" href="#102">102: </a><span class="php-comment"> */</span>
</span><span id="103" class="l"><a class="l" href="#103">103: </a> <span class="php-keyword1">protected</span> <span class="php-keyword1">function</span> <a id="_preTraiterDonnees" href="#_preTraiterDonnees">preTraiterDonnees</a>(<span class="php-var">$donnees</span>) {
</span><span id="104" class="l"><a class="l" href="#104">104: </a> <span class="php-keyword1">return</span> <span class="php-var">$donnees</span>;
</span><span id="105" class="l"><a class="l" href="#105">105: </a> }
</span><span id="106" class="l"><a class="l" href="#106">106: </a>
</span><span id="107" class="l"><a class="l" href="#107">107: </a> <span class="php-comment">/**
</span></span><span id="108" class="l"><a class="l" href="#108">108: </a><span class="php-comment"> * Procédure vérifiant l'encodage des tableaux $_GET et $_POST et les transcodant dans l'encodage de l'application
</span></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-keyword1">protected</span> <span class="php-keyword1">function</span> <a id="_verifierEtReencoderTableauRequete" href="#_verifierEtReencoderTableauRequete">verifierEtReencoderTableauRequete</a>() {
</span><span id="111" class="l"><a class="l" href="#111">111: </a> <span class="php-keyword1">if</span> (self::<span class="php-var">$encodage</span> == <span class="php-keyword1">false</span> &amp;&amp; Config::get(<span class="php-quote">'sortie_encodage'</span>) != Config::get(<span class="php-quote">'appli_encodage'</span>)) {
</span><span id="112" class="l"><a class="l" href="#112">112: </a> <span class="php-var">$_POST</span> = <span class="php-var">$this</span>-&gt;encoderTableau(<span class="php-var">$_POST</span>, Config::get(<span class="php-quote">'appli_encodage'</span>), Config::get(<span class="php-quote">'sortie_encodage'</span>));
</span><span id="113" class="l"><a class="l" href="#113">113: </a> <span class="php-var">$_GET</span> = <span class="php-var">$this</span>-&gt;encoderTableau(<span class="php-var">$_GET</span>, Config::get(<span class="php-quote">'appli_encodage'</span>), Config::get(<span class="php-quote">'sortie_encodage'</span>));
</span><span id="114" class="l"><a class="l" href="#114">114: </a> self::<span class="php-var">$encodage</span> = <span class="php-keyword1">true</span>;
</span><span id="115" class="l"><a class="l" href="#115">115: </a> }
</span><span id="116" class="l"><a class="l" href="#116">116: </a> }
</span><span id="117" class="l"><a class="l" href="#117">117: </a>
</span><span id="118" class="l"><a class="l" href="#118">118: </a> <span class="php-comment">/**
</span></span><span id="119" class="l"><a class="l" href="#119">119: </a><span class="php-comment"> * Fonction récursive transcodant toutes les valeurs d'un tableau de leur encodage d'entrée vers un encodage de sortie donné
</span></span><span id="120" class="l"><a class="l" href="#120">120: </a><span class="php-comment"> * @param $tableau Array Un tableau de données à encoder
</span></span><span id="121" class="l"><a class="l" href="#121">121: </a><span class="php-comment"> * @param $encodage_sortie String l'encodage vers lequel on doit transcoder
</span></span><span id="122" class="l"><a class="l" href="#122">122: </a><span class="php-comment"> * @param $encodage_entree String l'encodage original des chaines du tableau (optionnel)
</span></span><span id="123" class="l"><a class="l" href="#123">123: </a><span class="php-comment"> * @return Array Le tableau encodé dans l'encodage de sortie
</span></span><span id="124" class="l"><a class="l" href="#124">124: </a><span class="php-comment"> *
</span></span><span id="125" class="l"><a class="l" href="#125">125: </a><span class="php-comment"> */</span>
</span><span id="126" class="l"><a class="l" href="#126">126: </a> <span class="php-keyword1">final</span> <span class="php-keyword1">protected</span> <span class="php-keyword1">function</span> <a id="_encoderTableau" href="#_encoderTableau">encoderTableau</a>(<span class="php-var">$tableau</span>, <span class="php-var">$encodage_sortie</span>, <span class="php-var">$encodage_entree</span> = <span class="php-keyword1">null</span>) {
</span><span id="127" class="l"><a class="l" href="#127">127: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">is_array</span>(<span class="php-var">$tableau</span>)) {
</span><span id="128" class="l"><a class="l" href="#128">128: </a> <span class="php-keyword1">foreach</span> (<span class="php-var">$tableau</span> <span class="php-keyword1">as</span> <span class="php-var">$cle</span> =&gt; <span class="php-var">$valeur</span>) {
</span><span id="129" class="l"><a class="l" href="#129">129: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">is_array</span>(<span class="php-var">$valeur</span>)) {
</span><span id="130" class="l"><a class="l" href="#130">130: </a> <span class="php-var">$tableau</span>[<span class="php-var">$cle</span>] = <span class="php-var">$this</span>-&gt;encoderTableau(<span class="php-var">$valeur</span>, <span class="php-var">$encodage_sortie</span>, <span class="php-var">$encodage_entree</span>);
</span><span id="131" class="l"><a class="l" href="#131">131: </a> } <span class="php-keyword1">else</span> {
</span><span id="132" class="l"><a class="l" href="#132">132: </a> <span class="php-var">$tableau</span>[<span class="php-var">$cle</span>] = <span class="php-keyword2">mb_convert_encoding</span>(<span class="php-var">$valeur</span>, <span class="php-var">$encodage_sortie</span>, <span class="php-var">$encodage_entree</span>);
</span><span id="133" class="l"><a class="l" href="#133">133: </a> }
</span><span id="134" class="l"><a class="l" href="#134">134: </a> }
</span><span id="135" class="l"><a class="l" href="#135">135: </a> }
</span><span id="136" class="l"><a class="l" href="#136">136: </a> <span class="php-keyword1">return</span> <span class="php-var">$tableau</span>;
</span><span id="137" class="l"><a class="l" href="#137">137: </a> }
</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><span class="xlang">?&gt;</span></code></pre>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/class-Controleur.html
New file
0,0 → 1,478
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="generator" content="ApiGen 2.8.0">
 
<title>Class Controleur | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li class="active"><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li class="active"><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
 
 
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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="package-Framework.html" title="Summary of Framework"><span>Package</span></a>
</li>
<li class="active">
<span>Class</span> </li>
</ul>
<ul>
<li>
<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
</li>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<div id="content" class="class">
<h1>Class Controleur</h1>
 
 
<div class="description">
<p>Classe Controleur, coeur d'une application, c'est normalement la seule classe
d'une application qui devrait être appelée de l'extérieur. Elle est abstraite
donc doit obligatoirement être étendue.</p>
 
</div>
 
 
 
 
 
 
 
 
 
<div class="info">
<b>Abstract</b><br>
<b>Package:</b> <a href="package-Framework.html">Framework</a><br>
 
<b>Category:</b>
php5<br>
<b>Copyright:</b>
2009 Tela-Botanica<br>
<b>License:</b>
<a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">Licence CECILL</a><br>
<b>License:</b>
<a href="http://www.gnu.org/licenses/gpl.html">Licence GNU-GPL</a><br>
<b>Author:</b>
Aurélien PERONNET &lt;<a
href="mailto:aurelien&#64;tela-botanica.org">aurelien&#64;<!-- -->tela-botanica.org</a>&gt;<br>
<b>Author:</b>
Jean-Pascal MILCENT &lt;<a
href="mailto:jpm&#64;tela-botanica.org">jpm&#64;<!-- -->tela-botanica.org</a>&gt;<br>
<b>Version:</b>
SVN: $Id: Controleur.php 191 2010-04-29 15:34:49Z jpm $<br>
<b>Link:</b>
/doc/framework/<br>
<b>Located at</b> <a href="source-class-Controleur.html#3-138" title="Go to source code">Controleur.php</a><br>
</div>
 
 
 
<table class="summary" id="methods">
<caption>Methods summary</caption>
<tr data-order="__construct" id="___construct">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#___construct">#</a>
<code><a href="source-class-Controleur.html#26-36" title="Go to source code">__construct</a>( )</code>
 
<div class="description short">
<p>Constructeur par défaut</p>
 
</div>
 
<div class="description detailed hidden">
<p>Constructeur par défaut</p>
 
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="chargerModele" id="_chargerModele">
 
<td class="attributes"><code>
final protected
boolean
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_chargerModele">#</a>
<code><a href="source-class-Controleur.html#38-54" title="Go to source code">chargerModele</a>( <span>string <var>$nom_modele</var></span> )</code>
 
<div class="description short">
<p>Charge un modele donné et le rend disponible sous la forme
$this-&gt;nom_modele</p>
 
</div>
 
<div class="description detailed hidden">
<p>Charge un modele donné et le rend disponible sous la forme
$this-&gt;nom_modele</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$nom_modele</var></dt>
<dd><code>string</code><br>$nom_modele le nom du modèle à  charger</dd>
</dl></div>
 
<h4>Returns</h4>
<div class="list">
<code>boolean</code><br>false si le chargement a échoué, sinon true.<br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getModele" id="_getModele">
 
<td class="attributes"><code>
final protected
mixed
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getModele">#</a>
<code><a href="source-class-Controleur.html#56-74" title="Go to source code">getModele</a>( <span>string <var>$nom_modele</var></span>, <span>String <var>$ext</var> = <span class="php-quote">'.php'</span></span> )</code>
 
<div class="description short">
<p>Retourne un modele donné</p>
 
</div>
 
<div class="description detailed hidden">
<p>Retourne un modele donné</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$nom_modele</var></dt>
<dd><code>string</code><br>$nom_modele le nom du fichier modèle à charger sans son extension</dd>
<dt><var>$ext</var></dt>
<dd><code>String</code><br>$ext l'extension du fichier du modèel (par défaut : ".php"</dd>
</dl></div>
 
<h4>Returns</h4>
<div class="list">
<code>mixed</code><br>false si le chargement a échoué, sinon l'objet du modèle demandé.<br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getVue" id="_getVue">
 
<td class="attributes"><code>
final protected
boolean
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getVue">#</a>
<code><a href="source-class-Controleur.html#76-92" title="Go to source code">getVue</a>( <span>String <var>$nom_squelette</var></span>, <span>Array <var>$donnees</var> = <span class="php-keyword1">array</span>()</span>, <span>String <var>$ext</var> = <span class="php-quote">'.tpl.html'</span></span> )</code>
 
<div class="description short">
<p>Fonction prenant en paramètre le nom d'un squelette et un tableau associatif
de données, en extrait les variables, charge le squelette et retourne le
résultat des deux combinés.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Fonction prenant en paramètre le nom d'un squelette et un tableau associatif
de données, en extrait les variables, charge le squelette et retourne le
résultat des deux combinés.</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$nom_squelette</var></dt>
<dd><code>String</code><br>$nom_squelette le nom du squelette sans son extension</dd>
<dt><var>$donnees</var></dt>
<dd><code>Array</code><br>$donnees un tableau associatif contenant les variables a injecter dans la vue</dd>
<dt><var>$ext</var></dt>
<dd><code>String</code><br>$ext l'extension du fichier du squelette (par défaut : ".tpl.html"</dd>
</dl></div>
 
<h4>Returns</h4>
<div class="list">
<code>boolean</code><br>false si la vue n'existe pas, sinon la chaine résultat.<br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="preTraiterDonnees" id="_preTraiterDonnees">
 
<td class="attributes"><code>
protected
Array
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_preTraiterDonnees">#</a>
<code><a href="source-class-Controleur.html#94-105" title="Go to source code">preTraiterDonnees</a>( <span>Array <var>$donnees</var></span> )</code>
 
<div class="description short">
<p>Fonction prenant en paramètre un tableau de données et effectuant un
traitement dessus. Cette fonction est à surcharger dans les classes filles pour
automatiser un traitement avant chaque chargement de vue.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Fonction prenant en paramètre un tableau de données et effectuant un
traitement dessus. Cette fonction est à surcharger dans les classes filles pour
automatiser un traitement avant chaque chargement de vue.</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$donnees</var></dt>
<dd><code>Array</code><br>$donnees Le tableau de données à traiter</dd>
</dl></div>
 
<h4>Returns</h4>
<div class="list">
<code>Array</code><br>$donnees Le tableau de données traité<br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="verifierEtReencoderTableauRequete" id="_verifierEtReencoderTableauRequete">
 
<td class="attributes"><code>
protected
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_verifierEtReencoderTableauRequete">#</a>
<code><a href="source-class-Controleur.html#107-116" title="Go to source code">verifierEtReencoderTableauRequete</a>( )</code>
 
<div class="description short">
<p>Procédure vérifiant l'encodage des tableaux $_GET et $_POST et les
transcodant dans l'encodage de l'application</p>
 
</div>
 
<div class="description detailed hidden">
<p>Procédure vérifiant l'encodage des tableaux $_GET et $_POST et les
transcodant dans l'encodage de l'application</p>
 
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="encoderTableau" id="_encoderTableau">
 
<td class="attributes"><code>
final protected
Array
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_encoderTableau">#</a>
<code><a href="source-class-Controleur.html#118-137" title="Go to source code">encoderTableau</a>( <span>mixed <var>$tableau</var></span>, <span>mixed <var>$encodage_sortie</var></span>, <span>mixed <var>$encodage_entree</var> = <span class="php-keyword1">null</span></span> )</code>
 
<div class="description short">
<p>Fonction récursive transcodant toutes les valeurs d'un tableau de leur
encodage d'entrée vers un encodage de sortie donné</p>
 
</div>
 
<div class="description detailed hidden">
<p>Fonction récursive transcodant toutes les valeurs d'un tableau de leur
encodage d'entrée vers un encodage de sortie donné</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$tableau</var></dt>
<dd><code>mixed</code><br>$tableau Array Un tableau de données à encoder</dd>
<dt><var>$encodage_sortie</var></dt>
<dd><code>mixed</code><br>$encodage_sortie String l'encodage vers lequel on doit transcoder</dd>
<dt><var>$encodage_entree</var></dt>
<dd><code>mixed</code><br>$encodage_entree String l'encodage original des chaines du tableau (optionnel)</dd>
</dl></div>
 
<h4>Returns</h4>
<div class="list">
<code>Array</code><br>Le tableau encodé dans l'encodage de sortie<br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
</table>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
</div>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/tree.html
New file
0,0 → 1,239
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="generator" content="ApiGen 2.8.0">
 
<title>Tree | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-PDOStatement.html">PDOStatement</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
<h3>Interfaces</h3>
<ul>
<li><a href="class-Traversable.html">Traversable</a></li>
</ul>
 
 
<h3>Exceptions</h3>
<ul>
<li><a href="class-Exception.html">Exception</a></li>
</ul>
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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>
<span>Package</span> </li>
<li>
<span>Class</span> </li>
</ul>
<ul>
<li class="active">
<span>Tree</span> </li>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<div id="content">
<h1>Tree</h1>
 
<h3>Classes</h3>
<div class="tree">
<ul>
 
<li><div class="notlast"><a href="class-Application.html"><span>Application</span></a>
</div>
 
</li>
 
<li><div class="notlast"><a href="class-Chronometre.html"><span>Chronometre</span></a>
</div>
 
</li>
 
<li><div class="notlast"><a href="class-Config.html"><span>Config</span></a>
</div>
 
</li>
 
<li><div class="notlast"><a href="class-Controleur.html"><span>Controleur</span></a>
</div>
 
</li>
 
<li><div class="notlast"><a href="class-Debug.html"><span>Debug</span></a>
</div>
 
</li>
 
<li><div class="notlast"><a href="class-GestionnaireException.html"><span>GestionnaireException</span></a>
</div>
 
</li>
 
<li><div class="notlast"><a href="class-Log.html"><span>Log</span></a>
</div>
 
</li>
 
<li><div class="notlast"><a href="class-Modele.html"><span>Modele</span></a>
</div>
 
</li>
 
<li><div class="notlast"><a href="class-PDOStatement.html"><span>PDOStatement</span></a>
implements
<a href="class-Traversable.html"><span>Traversable</span></a>
</div>
 
</li>
 
<li><div class="notlast"><a href="class-Registre.html"><span>Registre</span></a>
</div>
 
</li>
 
<li><div class="notlast"><a href="class-SquelettePhp.html"><span>SquelettePhp</span></a>
</div>
 
</li>
 
<li class="last"><div class="last"><a href="class-Url.html"><span>Url</span></a>
</div>
 
</li>
</ul>
</div>
 
<h3>Interfaces</h3>
<div class="tree">
<ul>
 
<li class="last"><div class="last"><a href="class-Traversable.html"><span>Traversable</span></a>
</div>
 
</li>
</ul>
</div>
 
 
<h3>Exceptions</h3>
<div class="tree">
<ul>
 
<li class="last"><div class="last"><a href="class-Exception.html"><span>Exception</span></a>
</div>
 
</li>
</ul>
</div>
</div>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/deprecated.html
New file
0,0 → 1,135
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="generator" content="ApiGen 2.8.0">
 
<title>Deprecated | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-PDOStatement.html">PDOStatement</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
<h3>Interfaces</h3>
<ul>
<li><a href="class-Traversable.html">Traversable</a></li>
</ul>
 
 
<h3>Exceptions</h3>
<ul>
<li><a href="class-Exception.html">Exception</a></li>
</ul>
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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>
<span>Package</span> </li>
<li>
<span>Class</span> </li>
</ul>
<ul>
<li>
<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
</li>
<li class="active">
<span>Deprecated</span> </li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<div id="content">
<h1>Deprecated</h1>
 
 
 
 
 
 
<table class="summary" id="methods">
<caption>Methods summary</caption>
<tr>
<td class="name"><a href="class-GestionnaireException.html">GestionnaireException</a></td>
<td class="name"><code><a href="class-GestionnaireException.html#_getExceptions">getExceptions()</a></code></td>
<td>
</td>
</tr>
</table>
 
 
 
</div>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/source-class-Application.html
New file
0,0 → 1,205
<!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 Application.php | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li class="active"><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li class="active"><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
 
 
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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="package-Framework.html" title="Summary of Framework"><span>Package</span></a>
</li>
<li>
<a href="class-Application.html" title="Summary of Application"><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>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<pre><code><span id="1" class="l"><a class="l" href="#1"> 1: </a><span class="xlang">&lt;?php</span>
</span><span id="2" class="l"><a class="l" href="#2"> 2: </a><span class="php-comment">// declare(encoding='UTF-8');</span>
</span><span id="3" class="l"><a class="l" href="#3"> 3: </a><span class="php-comment">/**
</span></span><span id="4" class="l"><a class="l" href="#4"> 4: </a><span class="php-comment"> * Classe fournissant des informations au Framework sur l'application.
</span></span><span id="5" class="l"><a class="l" href="#5"> 5: </a><span class="php-comment"> *
</span></span><span id="6" class="l"><a class="l" href="#6"> 6: </a><span class="php-comment"> * PHP version 5
</span></span><span id="7" class="l"><a class="l" href="#7"> 7: </a><span class="php-comment"> *
</span></span><span id="8" class="l"><a class="l" href="#8"> 8: </a><span class="php-comment"> * @category Debogage
</span></span><span id="9" class="l"><a class="l" href="#9"> 9: </a><span class="php-comment"> * @package Framework
</span></span><span id="10" class="l"><a class="l" href="#10">10: </a><span class="php-comment"> // Auteur principal :
</span></span><span id="11" class="l"><a class="l" href="#11">11: </a><span class="php-comment"> * @author Jean-Pascal MILCENT &lt;jpm@tela-botanica.org&gt;
</span></span><span id="12" class="l"><a class="l" href="#12">12: </a><span class="php-comment"> // Autres auteurs :
</span></span><span id="13" class="l"><a class="l" href="#13">13: </a><span class="php-comment"> * @license GPL v3 &lt;http://www.gnu.org/licenses/gpl.txt&gt;
</span></span><span id="14" class="l"><a class="l" href="#14">14: </a><span class="php-comment"> * @license CECILL v2 &lt;http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt&gt;
</span></span><span id="15" class="l"><a class="l" href="#15">15: </a><span class="php-comment"> * @version $Id: Application.php 456 2014-02-06 11:07:43Z jpm $
</span></span><span id="16" class="l"><a class="l" href="#16">16: </a><span class="php-comment"> * @copyright 1999-2009 Tela Botanica (accueil@tela-botanica.org)
</span></span><span id="17" class="l"><a class="l" href="#17">17: </a><span class="php-comment"> */</span>
</span><span id="18" class="l"><a class="l" href="#18">18: </a><span class="php-keyword1">class</span> <a id="Application" href="#Application">Application</a> {
</span><span id="19" class="l"><a class="l" href="#19">19: </a>
</span><span id="20" class="l"><a class="l" href="#20">20: </a> <span class="php-comment">/**
</span></span><span id="21" class="l"><a class="l" href="#21">21: </a><span class="php-comment"> * Tableau d'informations sur l'application
</span></span><span id="22" class="l"><a class="l" href="#22">22: </a><span class="php-comment"> */</span>
</span><span id="23" class="l"><a class="l" href="#23">23: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-var"><a id="$info" href="#$info">$info</a></span> = <span class="php-keyword1">null</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"> * Chemin de base de l'application
</span></span><span id="26" class="l"><a class="l" href="#26">26: </a><span class="php-comment"> */</span>
</span><span id="27" class="l"><a class="l" href="#27">27: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-var"><a id="$chemin" href="#$chemin">$chemin</a></span> = <span class="php-keyword1">null</span>;
</span><span id="28" class="l"><a class="l" href="#28">28: </a>
</span><span id="29" class="l"><a class="l" href="#29">29: </a> <span class="php-comment">/**
</span></span><span id="30" class="l"><a class="l" href="#30">30: </a><span class="php-comment"> * Initialise différentes classes du Framework nécessaires pour le fonctionnement de l'application.
</span></span><span id="31" class="l"><a class="l" href="#31">31: </a><span class="php-comment"> * Ces classes sont ensuites controlées via les fichiers de config.ini.
</span></span><span id="32" class="l"><a class="l" href="#32">32: </a><span class="php-comment"> * Elle est appelée automatiquement suite à la définition du chemin de l'application via Application::setChemin().
</span></span><span id="33" class="l"><a class="l" href="#33">33: </a><span class="php-comment"> */</span>
</span><span id="34" class="l"><a class="l" href="#34">34: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_initialiser" href="#_initialiser">initialiser</a>() {
</span><span id="35" class="l"><a class="l" href="#35">35: </a> <span class="php-comment">// Configuration du gestionnaire d'exception</span>
</span><span id="36" class="l"><a class="l" href="#36">36: </a> GestionnaireException::configurer();
</span><span id="37" class="l"><a class="l" href="#37">37: </a> <span class="php-comment">// Configuration du gestionnaire de logs</span>
</span><span id="38" class="l"><a class="l" href="#38">38: </a> <span class="php-comment">//Log::configurer();</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"> * Permet d'indiquer le chemin de base de l'Application.
</span></span><span id="43" class="l"><a class="l" href="#43">43: </a><span class="php-comment"> * Cette méthode doit obligatoirement être utilisée par l'application pour que le Framework fonctionne correctement.
</span></span><span id="44" class="l"><a class="l" href="#44">44: </a><span class="php-comment"> * @param string $chemin_fichier_principal chemin de base
</span></span><span id="45" class="l"><a class="l" href="#45">45: </a><span class="php-comment"> */</span>
</span><span id="46" class="l"><a class="l" href="#46">46: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_setChemin" href="#_setChemin">setChemin</a>(<span class="php-var">$chemin_fichier_principal</span>) {
</span><span id="47" class="l"><a class="l" href="#47">47: </a> <span class="php-keyword1">if</span> (self::<span class="php-var">$chemin</span> === <span class="php-keyword1">null</span>) {
</span><span id="48" class="l"><a class="l" href="#48">48: </a> <span class="php-keyword1">if</span> (!<span class="php-keyword2">file_exists</span>(<span class="php-var">$chemin_fichier_principal</span>)) {
</span><span id="49" class="l"><a class="l" href="#49">49: </a> <span class="php-keyword2">trigger_error</span>(<span class="php-quote">&quot;Le fichier indiqué n'existe pas. Utilisez __FILE__ dans la méthode set().&quot;</span>, E_USER_ERROR);
</span><span id="50" class="l"><a class="l" href="#50">50: </a> } <span class="php-keyword1">else</span> {
</span><span id="51" class="l"><a class="l" href="#51">51: </a> self::<span class="php-var">$chemin</span> = <span class="php-keyword2">dirname</span>(<span class="php-var">$chemin_fichier_principal</span>).DS;
</span><span id="52" class="l"><a class="l" href="#52">52: </a> self::initialiser();
</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-keyword1">else</span> {
</span><span id="55" class="l"><a class="l" href="#55">55: </a> <span class="php-keyword2">trigger_error</span>(<span class="php-quote">&quot;Le chemin de l'application a déjà été enregistré auprès du Framework&quot;</span>, E_USER_WARNING);
</span><span id="56" class="l"><a class="l" href="#56">56: </a> }
</span><span id="57" class="l"><a class="l" href="#57">57: </a> }
</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"> * accesseur pour le chemin
</span></span><span id="61" class="l"><a class="l" href="#61">61: </a><span class="php-comment"> * @return string le chemin
</span></span><span id="62" class="l"><a class="l" href="#62">62: </a><span class="php-comment"> */</span>
</span><span id="63" class="l"><a class="l" href="#63">63: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_getChemin" href="#_getChemin">getChemin</a>() {
</span><span id="64" class="l"><a class="l" href="#64">64: </a> <span class="php-keyword1">return</span> self::<span class="php-var">$chemin</span>;
</span><span id="65" class="l"><a class="l" href="#65">65: </a> }
</span><span id="66" class="l"><a class="l" href="#66">66: </a>
</span><span id="67" class="l"><a class="l" href="#67">67: </a> <span class="php-comment">/** Le tableau des informations sur l'application possède les clés suivantes :
</span></span><span id="68" class="l"><a class="l" href="#68">68: </a><span class="php-comment"> * - nom : nom de l'application
</span></span><span id="69" class="l"><a class="l" href="#69">69: </a><span class="php-comment"> * - abr : abréviation de l'application
</span></span><span id="70" class="l"><a class="l" href="#70">70: </a><span class="php-comment"> * - encodage : encodage de l'application (ISO-8859-15, UTF-8...)
</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-comment"> * @param array $info tableau fournissant des informations sur l'application
</span></span><span id="73" class="l"><a class="l" href="#73">73: </a><span class="php-comment"> * @return void
</span></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-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_setInfo" href="#_setInfo">setInfo</a>(<span class="php-var">$info</span>) {
</span><span id="76" class="l"><a class="l" href="#76">76: </a> <span class="php-keyword1">if</span> (self::<span class="php-var">$info</span> === <span class="php-keyword1">null</span>) {
</span><span id="77" class="l"><a class="l" href="#77">77: </a> self::<span class="php-var">$info</span> = <span class="php-var">$info</span>;
</span><span id="78" class="l"><a class="l" href="#78">78: </a> } <span class="php-keyword1">else</span> {
</span><span id="79" class="l"><a class="l" href="#79">79: </a> <span class="php-keyword2">trigger_error</span>(<span class="php-quote">&quot;Le informations de l'application ont déjà été enregistrées auprès du Framework&quot;</span>, E_USER_WARNING);
</span><span id="80" class="l"><a class="l" href="#80">80: </a> }
</span><span id="81" class="l"><a class="l" href="#81">81: </a> }
</span><span id="82" class="l"><a class="l" href="#82">82: </a>
</span><span id="83" class="l"><a class="l" href="#83">83: </a> <span class="php-comment">/**
</span></span><span id="84" class="l"><a class="l" href="#84">84: </a><span class="php-comment"> * accesseur pour le tableau d'infos
</span></span><span id="85" class="l"><a class="l" href="#85">85: </a><span class="php-comment"> * @param string $cle la clé à laquelle on veut accéder
</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">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_getInfo" href="#_getInfo">getInfo</a>(<span class="php-var">$cle</span> = <span class="php-keyword1">null</span>) {
</span><span id="88" class="l"><a class="l" href="#88">88: </a> <span class="php-keyword1">if</span> (<span class="php-var">$cle</span> !== <span class="php-keyword1">null</span>) {
</span><span id="89" class="l"><a class="l" href="#89">89: </a> <span class="php-keyword1">if</span> (<span class="php-keyword1">isset</span>(self::<span class="php-var">$info</span>[<span class="php-var">$cle</span>])) {
</span><span id="90" class="l"><a class="l" href="#90">90: </a> <span class="php-keyword1">return</span> self::<span class="php-var">$info</span>[<span class="php-var">$cle</span>];
</span><span id="91" class="l"><a class="l" href="#91">91: </a> }
</span><span id="92" class="l"><a class="l" href="#92">92: </a> } <span class="php-keyword1">else</span> {
</span><span id="93" class="l"><a class="l" href="#93">93: </a> <span class="php-keyword1">return</span> self::<span class="php-var">$info</span>;
</span><span id="94" class="l"><a class="l" href="#94">94: </a> }
</span><span id="95" class="l"><a class="l" href="#95">95: </a> }
</span><span id="96" class="l"><a class="l" href="#96">96: </a></span>}</code></pre>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/source-class-Config.html
New file
0,0 → 1,374
<!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 Config.php | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li class="active"><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li class="active"><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
 
 
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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="package-Framework.html" title="Summary of Framework"><span>Package</span></a>
</li>
<li>
<a href="class-Config.html" title="Summary of Config"><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>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<pre><code><span id="1" class="l"><a class="l" href="#1"> 1: </a><span class="xlang">&lt;?php</span>
</span><span id="2" class="l"><a class="l" href="#2"> 2: </a><span class="php-comment">// declare(encoding='UTF-8');</span>
</span><span id="3" class="l"><a class="l" href="#3"> 3: </a><span class="php-comment">/**
</span></span><span id="4" class="l"><a class="l" href="#4"> 4: </a><span class="php-comment"> * Config permet de charger automatiquement les fichiers ini du Framework et de l'application.
</span></span><span id="5" class="l"><a class="l" href="#5"> 5: </a><span class="php-comment"> * Elle offre l'accès en lecture seule aux paramètres de config.
</span></span><span id="6" class="l"><a class="l" href="#6"> 6: </a><span class="php-comment"> * C'est une Singleton.
</span></span><span id="7" class="l"><a class="l" href="#7"> 7: </a><span class="php-comment"> *
</span></span><span id="8" class="l"><a class="l" href="#8"> 8: </a><span class="php-comment"> * PHP Version 5
</span></span><span id="9" class="l"><a class="l" href="#9"> 9: </a><span class="php-comment"> *
</span></span><span id="10" class="l"><a class="l" href="#10"> 10: </a><span class="php-comment"> * @category PHP
</span></span><span id="11" class="l"><a class="l" href="#11"> 11: </a><span class="php-comment"> * @package Framework
</span></span><span id="12" class="l"><a class="l" href="#12"> 12: </a><span class="php-comment"> * @author Jean-Pascal MILCENT &lt;jpm@tela-botanica.org&gt;
</span></span><span id="13" class="l"><a class="l" href="#13"> 13: </a><span class="php-comment"> * @copyright 2009 Tela-Botanica
</span></span><span id="14" class="l"><a class="l" href="#14"> 14: </a><span class="php-comment"> * @license GPL-v3 et CECILL-v2
</span></span><span id="15" class="l"><a class="l" href="#15"> 15: </a><span class="php-comment"> * @version SVN: &lt;svn_id&gt;
</span></span><span id="16" class="l"><a class="l" href="#16"> 16: </a><span class="php-comment"> * @link /doc/framework/
</span></span><span id="17" class="l"><a class="l" href="#17"> 17: </a><span class="php-comment"> */</span>
</span><span id="18" class="l"><a class="l" href="#18"> 18: </a>
</span><span id="19" class="l"><a class="l" href="#19"> 19: </a><span class="php-keyword1">class</span> <a id="Config" href="#Config">Config</a> {
</span><span id="20" class="l"><a class="l" href="#20"> 20: </a>
</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"> * instance de la classe pointant sur elle même (pour le pattern singleton)
</span></span><span id="23" class="l"><a class="l" href="#23"> 23: </a><span class="php-comment"> */</span>
</span><span id="24" class="l"><a class="l" href="#24"> 24: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-var"><a id="$instance" href="#$instance">$instance</a></span> = <span class="php-keyword1">null</span>;
</span><span id="25" class="l"><a class="l" href="#25"> 25: </a>
</span><span id="26" class="l"><a class="l" href="#26"> 26: </a> <span class="php-comment">/**
</span></span><span id="27" class="l"><a class="l" href="#27"> 27: </a><span class="php-comment"> * paramètres de configuration
</span></span><span id="28" class="l"><a class="l" href="#28"> 28: </a><span class="php-comment"> */</span>
</span><span id="29" class="l"><a class="l" href="#29"> 29: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-var"><a id="$parametres" href="#$parametres">$parametres</a></span> = <span class="php-keyword1">array</span>();
</span><span id="30" class="l"><a class="l" href="#30"> 30: </a>
</span><span id="31" class="l"><a class="l" href="#31"> 31: </a> <span class="php-comment">/**
</span></span><span id="32" class="l"><a class="l" href="#32"> 32: </a><span class="php-comment"> * Constructeur vide
</span></span><span id="33" class="l"><a class="l" href="#33"> 33: </a><span class="php-comment"> */</span>
</span><span id="34" class="l"><a class="l" href="#34"> 34: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">function</span> <a id="___construct" href="#___construct">__construct</a>() {
</span><span id="35" class="l"><a class="l" href="#35"> 35: </a> <span class="php-comment">// Définition de paramètres avant chargement du config.ini</span>
</span><span id="36" class="l"><a class="l" href="#36"> 36: </a> self::<span class="php-var">$parametres</span> = <span class="php-keyword1">array</span>(
</span><span id="37" class="l"><a class="l" href="#37"> 37: </a> <span class="php-quote">'fw_fichier_config'</span> =&gt; <span class="php-quote">'config%s.ini'</span>,
</span><span id="38" class="l"><a class="l" href="#38"> 38: </a> <span class="php-quote">'fw_chemin'</span> =&gt; <span class="php-keyword2">dirname</span>(__FILE__).DS
</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">// Chargement du fichier config.ini du Framework</span>
</span><span id="42" class="l"><a class="l" href="#42"> 42: </a> <span class="php-var">$existe</span> = self::parserFichierIni(self::<span class="php-var">$parametres</span>[<span class="php-quote">'fw_chemin'</span>].<span class="php-keyword2">sprintf</span>(self::<span class="php-var">$parametres</span>[<span class="php-quote">'fw_fichier_config'</span>], <span class="php-quote">''</span>));
</span><span id="43" class="l"><a class="l" href="#43"> 43: </a> <span class="php-keyword1">if</span> (<span class="php-var">$existe</span> === <span class="php-keyword1">false</span>) {
</span><span id="44" class="l"><a class="l" href="#44"> 44: </a> <span class="php-keyword2">trigger_error</span>(<span class="php-quote">&quot;Veuillez configurer le Framework en renommant le fichier config.defaut.ini en config.ini.&quot;</span>, E_USER_ERROR);
</span><span id="45" class="l"><a class="l" href="#45"> 45: </a> }
</span><span id="46" class="l"><a class="l" href="#46"> 46: </a>
</span><span id="47" class="l"><a class="l" href="#47"> 47: </a> <span class="php-comment">// Chargement du fichier config.ini par défaut de l'application</span>
</span><span id="48" class="l"><a class="l" href="#48"> 48: </a> <span class="php-var">$chemin_config_defaut_appli</span> = self::<span class="php-var">$parametres</span>[<span class="php-quote">'chemin_configurations'</span>].<span class="php-keyword2">sprintf</span>(self::<span class="php-var">$parametres</span>[<span class="php-quote">'fw_fichier_config'</span>], <span class="php-quote">''</span>);
</span><span id="49" class="l"><a class="l" href="#49"> 49: </a> self::parserFichierIni(<span class="php-var">$chemin_config_defaut_appli</span>);
</span><span id="50" class="l"><a class="l" href="#50"> 50: </a>
</span><span id="51" class="l"><a class="l" href="#51"> 51: </a> <span class="php-comment">// Chargement des fichiers config.ini contextuels</span>
</span><span id="52" class="l"><a class="l" href="#52"> 52: </a> <span class="php-keyword1">if</span> (PHP_SAPI == <span class="php-quote">'cli'</span>) {<span class="php-comment">// mode console</span>
</span><span id="53" class="l"><a class="l" href="#53"> 53: </a> <span class="php-keyword1">foreach</span> (<span class="php-var">$_SERVER</span>[<span class="php-quote">'argv'</span>] <span class="php-keyword1">as</span> <span class="php-var">$cle</span> =&gt; <span class="php-var">$valeur</span>) {
</span><span id="54" class="l"><a class="l" href="#54"> 54: </a> <span class="php-keyword1">if</span> (<span class="php-var">$valeur</span> == <span class="php-quote">'-contexte'</span>) {
</span><span id="55" class="l"><a class="l" href="#55"> 55: </a> chargerFichierContexte(<span class="php-var">$_SERVER</span>[<span class="php-quote">'argv'</span>][(<span class="php-var">$cle</span>+<span class="php-num">1</span>)]);
</span><span id="56" class="l"><a class="l" href="#56"> 56: </a> <span class="php-keyword1">break</span>;
</span><span id="57" class="l"><a class="l" href="#57"> 57: </a> }
</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-keyword1">else</span> {<span class="php-comment">// mode web</span>
</span><span id="60" class="l"><a class="l" href="#60"> 60: </a> <span class="php-comment">// Pour Papyrus</span>
</span><span id="61" class="l"><a class="l" href="#61"> 61: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">defined</span>(<span class="php-quote">'PAP_VERSION'</span>)) {
</span><span id="62" class="l"><a class="l" href="#62"> 62: </a> self::chargerFichierContexte(<span class="php-quote">'papyrus'</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">// Via le fichie .ini par défaut de l'appli</span>
</span><span id="65" class="l"><a class="l" href="#65"> 65: </a> <span class="php-keyword1">if</span> (Config::existeValeur(<span class="php-quote">'info.contexte'</span>, self::<span class="php-var">$parametres</span>)) {
</span><span id="66" class="l"><a class="l" href="#66"> 66: </a> self::chargerFichierContexte(Config::get(<span class="php-quote">'info.contexte'</span>));
</span><span id="67" class="l"><a class="l" href="#67"> 67: </a> }
</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">// Chargement du contexte présent dans le GET</span>
</span><span id="70" class="l"><a class="l" href="#70"> 70: </a> <span class="php-keyword1">if</span> (<span class="php-keyword1">isset</span>(<span class="php-var">$_GET</span>[<span class="php-quote">'contexte'</span>])) {
</span><span id="71" class="l"><a class="l" href="#71"> 71: </a> self::chargerFichierContexte(<span class="php-var">$_GET</span>[<span class="php-quote">'contexte'</span>]);
</span><span id="72" class="l"><a class="l" href="#72"> 72: </a> }
</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">// Chargement du contexte présent dans le POST</span>
</span><span id="75" class="l"><a class="l" href="#75"> 75: </a> <span class="php-keyword1">if</span> (<span class="php-keyword1">isset</span>(<span class="php-var">$_POST</span>[<span class="php-quote">'contexte'</span>])) {
</span><span id="76" class="l"><a class="l" href="#76"> 76: </a> self::chargerFichierContexte(<span class="php-var">$_POST</span>[<span class="php-quote">'contexte'</span>]);
</span><span id="77" class="l"><a class="l" href="#77"> 77: </a> }
</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><span id="80" class="l"><a class="l" href="#80"> 80: </a>
</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-comment"> * Charge le fichier de config correspondant au contexte
</span></span><span id="83" class="l"><a class="l" href="#83"> 83: </a><span class="php-comment"> * @param string $contexte le contexte
</span></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-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_chargerFichierContexte" href="#_chargerFichierContexte">chargerFichierContexte</a>(<span class="php-var">$contexte</span>) {
</span><span id="86" class="l"><a class="l" href="#86"> 86: </a> <span class="php-var">$chemin_config_appli_contextuel</span> = self::<span class="php-var">$parametres</span>[<span class="php-quote">'chemin_configurations'</span>];
</span><span id="87" class="l"><a class="l" href="#87"> 87: </a> <span class="php-var">$chemin_config_appli_contextuel</span> .= <span class="php-keyword2">sprintf</span>(self::<span class="php-var">$parametres</span>[<span class="php-quote">'fw_fichier_config'</span>], <span class="php-quote">'_'</span>.<span class="php-var">$contexte</span>);
</span><span id="88" class="l"><a class="l" href="#88"> 88: </a> self::parserFichierIni(<span class="php-var">$chemin_config_appli_contextuel</span>);
</span><span id="89" class="l"><a class="l" href="#89"> 89: </a> }
</span><span id="90" class="l"><a class="l" href="#90"> 90: </a>
</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-comment"> * Parse le fichier ini donné en paramètre
</span></span><span id="93" class="l"><a class="l" href="#93"> 93: </a><span class="php-comment"> * @param string $fichier_ini nom du fichier ini à parser
</span></span><span id="94" class="l"><a class="l" href="#94"> 94: </a><span class="php-comment"> * @return array tableau contenant les paramètres du fichier ini
</span></span><span id="95" class="l"><a class="l" href="#95"> 95: </a><span class="php-comment"> */</span>
</span><span id="96" class="l"><a class="l" href="#96"> 96: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_parserFichierIni" href="#_parserFichierIni">parserFichierIni</a>(<span class="php-var">$fichier_ini</span>) {
</span><span id="97" class="l"><a class="l" href="#97"> 97: </a> <span class="php-var">$retour</span> = <span class="php-keyword1">false</span>;
</span><span id="98" class="l"><a class="l" href="#98"> 98: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">file_exists</span>(<span class="php-var">$fichier_ini</span>)) {
</span><span id="99" class="l"><a class="l" href="#99"> 99: </a> <span class="php-var">$ini</span> = <span class="php-keyword2">parse_ini_file</span>(<span class="php-var">$fichier_ini</span>, <span class="php-keyword1">true</span>);
</span><span id="100" class="l"><a class="l" href="#100">100: </a> <span class="php-var">$ini</span> = self::analyserTableauIni(<span class="php-var">$ini</span>);
</span><span id="101" class="l"><a class="l" href="#101">101: </a> self::fusionner(<span class="php-var">$ini</span>);
</span><span id="102" class="l"><a class="l" href="#102">102: </a> <span class="php-var">$retour</span> = <span class="php-keyword1">true</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-keyword1">return</span> <span class="php-var">$retour</span>;
</span><span id="105" class="l"><a class="l" href="#105">105: </a> }
</span><span id="106" class="l"><a class="l" href="#106">106: </a>
</span><span id="107" class="l"><a class="l" href="#107">107: </a> <span class="php-comment">/**
</span></span><span id="108" class="l"><a class="l" href="#108">108: </a><span class="php-comment"> * fusionne un tableau de paramètres avec le tableau de paramètres global
</span></span><span id="109" class="l"><a class="l" href="#109">109: </a><span class="php-comment"> * @param array $ini le tableau à fusionner
</span></span><span id="110" class="l"><a class="l" href="#110">110: </a><span class="php-comment"> */</span>
</span><span id="111" class="l"><a class="l" href="#111">111: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_fusionner" href="#_fusionner">fusionner</a>(<span class="php-keyword1">array</span> <span class="php-var">$ini</span>) {
</span><span id="112" class="l"><a class="l" href="#112">112: </a> self::<span class="php-var">$parametres</span> = <span class="php-keyword2">array_merge</span>(self::<span class="php-var">$parametres</span>, <span class="php-var">$ini</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><span id="115" class="l"><a class="l" href="#115">115: </a> <span class="php-comment">/**
</span></span><span id="116" class="l"><a class="l" href="#116">116: </a><span class="php-comment"> * renvoie la valeur demandé grâce une chaine de paramètres
</span></span><span id="117" class="l"><a class="l" href="#117">117: </a><span class="php-comment"> * @param string $param la chaine de paramètres
</span></span><span id="118" class="l"><a class="l" href="#118">118: </a><span class="php-comment"> * @param array $config le tableau de paramètre
</span></span><span id="119" class="l"><a class="l" href="#119">119: </a><span class="php-comment"> * @return string la valeur de la chaine demandée
</span></span><span id="120" class="l"><a class="l" href="#120">120: </a><span class="php-comment"> */</span>
</span><span id="121" class="l"><a class="l" href="#121">121: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_getValeur" href="#_getValeur">getValeur</a>(<span class="php-var">$param</span>, <span class="php-var">$config</span>) {
</span><span id="122" class="l"><a class="l" href="#122">122: </a> <span class="php-keyword1">if</span> (<span class="php-var">$param</span> === <span class="php-keyword1">null</span>) {
</span><span id="123" class="l"><a class="l" href="#123">123: </a> <span class="php-keyword1">return</span> <span class="php-keyword1">null</span>;
</span><span id="124" class="l"><a class="l" href="#124">124: </a> } <span class="php-keyword1">else</span> {
</span><span id="125" class="l"><a class="l" href="#125">125: </a> <span class="php-keyword1">if</span> (<span class="php-keyword1">isset</span>(<span class="php-var">$config</span>[<span class="php-var">$param</span>])) {
</span><span id="126" class="l"><a class="l" href="#126">126: </a> <span class="php-keyword1">return</span> <span class="php-var">$config</span>[<span class="php-var">$param</span>];
</span><span id="127" class="l"><a class="l" href="#127">127: </a> } <span class="php-keyword1">else</span> <span class="php-keyword1">if</span> (<span class="php-keyword2">strpos</span>(<span class="php-var">$param</span>, <span class="php-quote">'.'</span>) !== <span class="php-keyword1">false</span>) {
</span><span id="128" class="l"><a class="l" href="#128">128: </a> <span class="php-var">$pieces</span> = <span class="php-keyword2">explode</span>(<span class="php-quote">'.'</span>, <span class="php-var">$param</span>, <span class="php-num">2</span>);
</span><span id="129" class="l"><a class="l" href="#129">129: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">strlen</span>(<span class="php-var">$pieces</span>[<span class="php-num">0</span>]) &amp;&amp; <span class="php-keyword2">strlen</span>(<span class="php-var">$pieces</span>[<span class="php-num">1</span>])) {
</span><span id="130" class="l"><a class="l" href="#130">130: </a> <span class="php-keyword1">if</span> (<span class="php-keyword1">isset</span>(<span class="php-var">$config</span>[<span class="php-var">$pieces</span>[<span class="php-num">0</span>]])) {
</span><span id="131" class="l"><a class="l" href="#131">131: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">is_array</span>(<span class="php-var">$config</span>[<span class="php-var">$pieces</span>[<span class="php-num">0</span>]])) {
</span><span id="132" class="l"><a class="l" href="#132">132: </a> <span class="php-keyword1">return</span> self::getValeur(<span class="php-var">$pieces</span>[<span class="php-num">1</span>], <span class="php-var">$config</span>[<span class="php-var">$pieces</span>[<span class="php-num">0</span>]]);
</span><span id="133" class="l"><a class="l" href="#133">133: </a> }
</span><span id="134" class="l"><a class="l" href="#134">134: </a> }
</span><span id="135" class="l"><a class="l" href="#135">135: </a> }
</span><span id="136" class="l"><a class="l" href="#136">136: </a> } <span class="php-keyword1">else</span> {
</span><span id="137" class="l"><a class="l" href="#137">137: </a> <span class="php-keyword1">return</span> <span class="php-keyword1">null</span>;
</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><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><span id="142" class="l"><a class="l" href="#142">142: </a> <span class="php-comment">/**
</span></span><span id="143" class="l"><a class="l" href="#143">143: </a><span class="php-comment"> * Teste si param existe dans le tableau config
</span></span><span id="144" class="l"><a class="l" href="#144">144: </a><span class="php-comment"> * @param string $param nom du paramètre
</span></span><span id="145" class="l"><a class="l" href="#145">145: </a><span class="php-comment"> * @param array tableau de configuration
</span></span><span id="146" class="l"><a class="l" href="#146">146: </a><span class="php-comment"> */</span>
</span><span id="147" class="l"><a class="l" href="#147">147: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_existeValeur" href="#_existeValeur">existeValeur</a>(<span class="php-var">$param</span>, <span class="php-var">$config</span>) {
</span><span id="148" class="l"><a class="l" href="#148">148: </a> <span class="php-var">$retour</span> = <span class="php-keyword1">false</span>;
</span><span id="149" class="l"><a class="l" href="#149">149: </a> <span class="php-keyword1">if</span> (self::getValeur(<span class="php-var">$param</span>, <span class="php-var">$config</span>) !== <span class="php-keyword1">null</span>) {
</span><span id="150" class="l"><a class="l" href="#150">150: </a> <span class="php-var">$retour</span> = <span class="php-keyword1">true</span>;
</span><span id="151" class="l"><a class="l" href="#151">151: </a> }
</span><span id="152" class="l"><a class="l" href="#152">152: </a> <span class="php-keyword1">return</span> <span class="php-var">$retour</span>;
</span><span id="153" class="l"><a class="l" href="#153">153: </a> }
</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-comment">/**
</span></span><span id="156" class="l"><a class="l" href="#156">156: </a><span class="php-comment"> * Vérifie si l'instance de classe à été crée, si non la crée
</span></span><span id="157" class="l"><a class="l" href="#157">157: </a><span class="php-comment"> */</span>
</span><span id="158" class="l"><a class="l" href="#158">158: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_verifierCreationInstance" href="#_verifierCreationInstance">verifierCreationInstance</a>() {
</span><span id="159" class="l"><a class="l" href="#159">159: </a> <span class="php-keyword1">if</span> (<span class="php-keyword1">empty</span>(self::<span class="php-var">$instance</span>)) {
</span><span id="160" class="l"><a class="l" href="#160">160: </a> self::<span class="php-var">$instance</span> = <span class="php-keyword1">new</span> Config();
</span><span id="161" class="l"><a class="l" href="#161">161: </a> }
</span><span id="162" class="l"><a class="l" href="#162">162: </a> }
</span><span id="163" class="l"><a class="l" href="#163">163: </a>
</span><span id="164" class="l"><a class="l" href="#164">164: </a> <span class="php-comment">/**
</span></span><span id="165" class="l"><a class="l" href="#165">165: </a><span class="php-comment"> * analyse un tableau de paramètres
</span></span><span id="166" class="l"><a class="l" href="#166">166: </a><span class="php-comment"> * @param array $config le tableau de paramètres
</span></span><span id="167" class="l"><a class="l" href="#167">167: </a><span class="php-comment"> * @return array le tableau analysé
</span></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-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_analyserTableauIni" href="#_analyserTableauIni">analyserTableauIni</a>(<span class="php-var">$config</span> = <span class="php-keyword1">array</span>()) {
</span><span id="170" class="l"><a class="l" href="#170">170: </a> <span class="php-keyword1">foreach</span> (<span class="php-var">$config</span> <span class="php-keyword1">as</span> <span class="php-var">$cle</span> =&gt; &amp;<span class="php-var">$valeur</span>) {
</span><span id="171" class="l"><a class="l" href="#171">171: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">is_array</span>(<span class="php-var">$valeur</span>)) {
</span><span id="172" class="l"><a class="l" href="#172">172: </a> <span class="php-var">$config</span>[<span class="php-var">$cle</span>] = self::analyserTableauIni(<span class="php-var">$valeur</span>);
</span><span id="173" class="l"><a class="l" href="#173">173: </a> } <span class="php-keyword1">else</span> {
</span><span id="174" class="l"><a class="l" href="#174">174: </a> self::evaluerReferences(<span class="php-var">$config</span>, <span class="php-var">$cle</span>);
</span><span id="175" class="l"><a class="l" href="#175">175: </a> self::evaluerPhp(<span class="php-var">$config</span>, <span class="php-var">$cle</span>);
</span><span id="176" class="l"><a class="l" href="#176">176: </a> self::evaluerCle(<span class="php-var">$config</span>, <span class="php-var">$cle</span>, <span class="php-var">$config</span>[<span class="php-var">$cle</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><span id="179" class="l"><a class="l" href="#179">179: </a> <span class="php-keyword1">return</span> <span class="php-var">$config</span>;
</span><span id="180" class="l"><a class="l" href="#180">180: </a> }
</span><span id="181" class="l"><a class="l" href="#181">181: </a>
</span><span id="182" class="l"><a class="l" href="#182">182: </a> <span class="php-comment">/**
</span></span><span id="183" class="l"><a class="l" href="#183">183: </a><span class="php-comment"> * dans le cas des chaine de configuration à sous clé (ex.: cle.souscle)
</span></span><span id="184" class="l"><a class="l" href="#184">184: </a><span class="php-comment"> * evalue les valeurs correspondantes et crée les sous tableaux associés
</span></span><span id="185" class="l"><a class="l" href="#185">185: </a><span class="php-comment"> * @param array $config tableau de configuration (par référence)
</span></span><span id="186" class="l"><a class="l" href="#186">186: </a><span class="php-comment"> * @param string $cle la cle dans le tableau
</span></span><span id="187" class="l"><a class="l" href="#187">187: </a><span class="php-comment"> * @param string $valeur la valeur à affecter
</span></span><span id="188" class="l"><a class="l" href="#188">188: </a><span class="php-comment"> */</span>
</span><span id="189" class="l"><a class="l" href="#189">189: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_evaluerCle" href="#_evaluerCle">evaluerCle</a>(&amp;<span class="php-var">$config</span>, <span class="php-var">$cle</span>, <span class="php-var">$valeur</span>) {
</span><span id="190" class="l"><a class="l" href="#190">190: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">strpos</span>(<span class="php-var">$cle</span>, <span class="php-quote">'.'</span>) !== <span class="php-keyword1">false</span>) {
</span><span id="191" class="l"><a class="l" href="#191">191: </a> <span class="php-keyword1">unset</span>(<span class="php-var">$config</span>[<span class="php-var">$cle</span>]);
</span><span id="192" class="l"><a class="l" href="#192">192: </a> <span class="php-var">$pieces</span> = <span class="php-keyword2">explode</span>(<span class="php-quote">'.'</span>, <span class="php-var">$cle</span>, <span class="php-num">2</span>);
</span><span id="193" class="l"><a class="l" href="#193">193: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">strlen</span>(<span class="php-var">$pieces</span>[<span class="php-num">0</span>]) &amp;&amp; <span class="php-keyword2">strlen</span>(<span class="php-var">$pieces</span>[<span class="php-num">1</span>])) {
</span><span id="194" class="l"><a class="l" href="#194">194: </a> <span class="php-keyword1">if</span> (<span class="php-keyword1">isset</span>(<span class="php-var">$config</span>[<span class="php-var">$pieces</span>[<span class="php-num">0</span>]]) &amp;&amp; !<span class="php-keyword2">is_array</span>(<span class="php-var">$config</span>[<span class="php-var">$pieces</span>[<span class="php-num">0</span>]])) {
</span><span id="195" class="l"><a class="l" href="#195">195: </a> <span class="php-var">$m</span> = <span class="php-quote">&quot;Ne peut pas créer de sous-clé pour '</span><span class="php-var">{$pieces[0]}</span><span class="php-quote">' car la clé existe déjà&quot;</span>;
</span><span id="196" class="l"><a class="l" href="#196">196: </a> <span class="php-keyword2">trigger_error</span>(<span class="php-var">$m</span>, E_USER_WARNING);
</span><span id="197" class="l"><a class="l" href="#197">197: </a> } <span class="php-keyword1">else</span> {
</span><span id="198" class="l"><a class="l" href="#198">198: </a> <span class="php-var">$config</span>[<span class="php-var">$pieces</span>[<span class="php-num">0</span>]][<span class="php-var">$pieces</span>[<span class="php-num">1</span>]] = <span class="php-var">$valeur</span>;
</span><span id="199" class="l"><a class="l" href="#199">199: </a> <span class="php-var">$config</span>[<span class="php-var">$pieces</span>[<span class="php-num">0</span>]] = self::evaluerCle(<span class="php-var">$config</span>[<span class="php-var">$pieces</span>[<span class="php-num">0</span>]], <span class="php-var">$pieces</span>[<span class="php-num">1</span>], <span class="php-var">$valeur</span>);
</span><span id="200" class="l"><a class="l" href="#200">200: </a> }
</span><span id="201" class="l"><a class="l" href="#201">201: </a> } <span class="php-keyword1">else</span> {
</span><span id="202" class="l"><a class="l" href="#202">202: </a> <span class="php-var">$m</span> = <span class="php-quote">&quot;Clé invalide '</span><span class="php-var">$cle</span><span class="php-quote">'&quot;</span>;
</span><span id="203" class="l"><a class="l" href="#203">203: </a> <span class="php-keyword2">trigger_error</span>(<span class="php-var">$m</span>, E_USER_WARNING);
</span><span id="204" class="l"><a class="l" href="#204">204: </a> }
</span><span id="205" class="l"><a class="l" href="#205">205: </a> } <span class="php-keyword1">else</span> {
</span><span id="206" class="l"><a class="l" href="#206">206: </a> <span class="php-var">$config</span>[<span class="php-var">$cle</span>] = <span class="php-var">$valeur</span>;
</span><span id="207" class="l"><a class="l" href="#207">207: </a> }
</span><span id="208" class="l"><a class="l" href="#208">208: </a> <span class="php-keyword1">return</span> <span class="php-var">$config</span>;
</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><span id="211" class="l"><a class="l" href="#211">211: </a> <span class="php-comment">/**
</span></span><span id="212" class="l"><a class="l" href="#212">212: </a><span class="php-comment"> * Evalue les valeurs de références à une clé dans le tableau config (cas du ref:cle)
</span></span><span id="213" class="l"><a class="l" href="#213">213: </a><span class="php-comment"> * @param array $config tableau de configuration
</span></span><span id="214" class="l"><a class="l" href="#214">214: </a><span class="php-comment"> * @param string $cle la clé dont il faut évaluer les références
</span></span><span id="215" class="l"><a class="l" href="#215">215: </a><span class="php-comment"> */</span>
</span><span id="216" class="l"><a class="l" href="#216">216: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_evaluerReferences" href="#_evaluerReferences">evaluerReferences</a>(&amp;<span class="php-var">$config</span>, <span class="php-var">$cle</span>) {
</span><span id="217" class="l"><a class="l" href="#217">217: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">preg_match_all</span>(<span class="php-quote">'/{ref:([A-Za-z0-9_.-]+)}/'</span>, <span class="php-var">$config</span>[<span class="php-var">$cle</span>], <span class="php-var">$correspondances</span>, PREG_SET_ORDER)) {
</span><span id="218" class="l"><a class="l" href="#218">218: </a> <span class="php-keyword1">foreach</span> (<span class="php-var">$correspondances</span> <span class="php-keyword1">as</span> <span class="php-var">$ref</span>) {
</span><span id="219" class="l"><a class="l" href="#219">219: </a> <span class="php-var">$config</span>[<span class="php-var">$cle</span>] = <span class="php-keyword2">str_replace</span>(<span class="php-var">$ref</span>[<span class="php-num">0</span>], self::getValeur(<span class="php-var">$ref</span>[<span class="php-num">1</span>], <span class="php-var">$config</span>), <span class="php-var">$config</span>[<span class="php-var">$cle</span>]);
</span><span id="220" class="l"><a class="l" href="#220">220: </a> }
</span><span id="221" class="l"><a class="l" href="#221">221: </a> }
</span><span id="222" class="l"><a class="l" href="#222">222: </a> }
</span><span id="223" class="l"><a class="l" href="#223">223: </a>
</span><span id="224" class="l"><a class="l" href="#224">224: </a> <span class="php-comment">/**
</span></span><span id="225" class="l"><a class="l" href="#225">225: </a><span class="php-comment"> * Evalue le code php contenu dans un clé tu tableau config
</span></span><span id="226" class="l"><a class="l" href="#226">226: </a><span class="php-comment"> * @param array $config tableau de configuration (par référence)
</span></span><span id="227" class="l"><a class="l" href="#227">227: </a><span class="php-comment"> * @param string $cle le clé du tableau dont il faut évaluer la valeur
</span></span><span id="228" class="l"><a class="l" href="#228">228: </a><span class="php-comment"> */</span>
</span><span id="229" class="l"><a class="l" href="#229">229: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_evaluerPhp" href="#_evaluerPhp">evaluerPhp</a>(&amp;<span class="php-var">$config</span>, <span class="php-var">$cle</span>) {
</span><span id="230" class="l"><a class="l" href="#230">230: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">preg_match</span>(<span class="php-quote">'/^php:(.+)$/'</span>, <span class="php-var">$config</span>[<span class="php-var">$cle</span>], <span class="php-var">$correspondances</span>)) {
</span><span id="231" class="l"><a class="l" href="#231">231: </a> <span class="php-keyword2">eval</span>(<span class="php-quote">'$config[&quot;'</span>.<span class="php-var">$cle</span>.<span class="php-quote">'&quot;] = '</span>.<span class="php-var">$correspondances</span>[<span class="php-num">1</span>].<span class="php-quote">';'</span>);
</span><span id="232" class="l"><a class="l" href="#232">232: </a> }
</span><span id="233" class="l"><a class="l" href="#233">233: </a> }
</span><span id="234" class="l"><a class="l" href="#234">234: </a>
</span><span id="235" class="l"><a class="l" href="#235">235: </a> <span class="php-comment">/**
</span></span><span id="236" class="l"><a class="l" href="#236">236: </a><span class="php-comment"> * Charge un fichier ini dans le tableau des paramètres de l'appli
</span></span><span id="237" class="l"><a class="l" href="#237">237: </a><span class="php-comment"> * @param string $fichier_ini le nom du fichier à charger
</span></span><span id="238" class="l"><a class="l" href="#238">238: </a><span class="php-comment"> * @return array le fichier ini parsé
</span></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-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_charger" href="#_charger">charger</a>(<span class="php-var">$fichier_ini</span>) {
</span><span id="241" class="l"><a class="l" href="#241">241: </a> self::verifierCreationInstance();
</span><span id="242" class="l"><a class="l" href="#242">242: </a> <span class="php-keyword1">return</span> self::parserFichierIni(<span class="php-var">$fichier_ini</span>);
</span><span id="243" class="l"><a class="l" href="#243">243: </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-comment">/**
</span></span><span id="246" class="l"><a class="l" href="#246">246: </a><span class="php-comment"> * Acesseur pour la valeur d'un paramètre
</span></span><span id="247" class="l"><a class="l" href="#247">247: </a><span class="php-comment"> * @param string $param le nom du paramètre
</span></span><span id="248" class="l"><a class="l" href="#248">248: </a><span class="php-comment"> * @return string la valeur du paramètre
</span></span><span id="249" class="l"><a class="l" href="#249">249: </a><span class="php-comment"> */</span>
</span><span id="250" class="l"><a class="l" href="#250">250: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_get" href="#_get">get</a>(<span class="php-var">$param</span> = <span class="php-keyword1">null</span>) {
</span><span id="251" class="l"><a class="l" href="#251">251: </a> self::verifierCreationInstance();
</span><span id="252" class="l"><a class="l" href="#252">252: </a> <span class="php-keyword1">return</span> self::getValeur(<span class="php-var">$param</span>, self::<span class="php-var">$parametres</span>);
</span><span id="253" class="l"><a class="l" href="#253">253: </a> }
</span><span id="254" class="l"><a class="l" href="#254">254: </a>
</span><span id="255" class="l"><a class="l" href="#255">255: </a> <span class="php-comment">/**
</span></span><span id="256" class="l"><a class="l" href="#256">256: </a><span class="php-comment"> * Vérifie si la valeur d'un paramètre existe
</span></span><span id="257" class="l"><a class="l" href="#257">257: </a><span class="php-comment"> * @param string $param le nom du paramètre
</span></span><span id="258" class="l"><a class="l" href="#258">258: </a><span class="php-comment"> * @return boolean vrai si le paramètre existe, false sinon
</span></span><span id="259" class="l"><a class="l" href="#259">259: </a><span class="php-comment"> */</span>
</span><span id="260" class="l"><a class="l" href="#260">260: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_existe" href="#_existe">existe</a>(<span class="php-var">$param</span>) {
</span><span id="261" class="l"><a class="l" href="#261">261: </a> self::verifierCreationInstance();
</span><span id="262" class="l"><a class="l" href="#262">262: </a> <span class="php-keyword1">return</span> self::existeValeur(<span class="php-var">$param</span>, self::<span class="php-var">$parametres</span>);
</span><span id="263" class="l"><a class="l" href="#263">263: </a> }
</span><span id="264" class="l"><a class="l" href="#264">264: </a>}
</span><span id="265" class="l"><a class="l" href="#265">265: </a></span><span class="xlang">?&gt;</span></code></pre>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/class-Application.html
New file
0,0 → 1,348
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="generator" content="ApiGen 2.8.0">
 
<title>Class Application | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li class="active"><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li class="active"><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
 
 
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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="package-Framework.html" title="Summary of Framework"><span>Package</span></a>
</li>
<li class="active">
<span>Class</span> </li>
</ul>
<ul>
<li>
<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
</li>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<div id="content" class="class">
<h1>Class Application</h1>
 
 
<div class="description">
<p>Classe fournissant des informations au Framework sur l'application.</p>
 
<p>PHP version 5</p>
 
</div>
 
 
 
 
 
 
 
 
 
<div class="info">
<b>Package:</b> <a href="package-Framework.html">Framework</a><br>
 
<b>Category:</b>
Debogage<br>
<b>Copyright:</b>
1999-2009 Tela Botanica (<a
href="mailto:accueil&#64;tela-botanica.org">accueil&#64;<!-- -->tela-botanica.org</a>)<br>
<b>License:</b>
<a href="GPL">v3 &lt;http://www.gnu.org/licenses/gpl.txt&gt;</a><br>
<b>License:</b>
<a href="CECILL">v2 &lt;http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt&gt;</a><br>
<b>Author:</b>
Jean-Pascal MILCENT &lt;<a
href="mailto:jpm&#64;tela-botanica.org">jpm&#64;<!-- -->tela-botanica.org</a>&gt;
// Autres auteurs :<br>
<b>Version:</b>
$Id: Application.php 456 2014-02-06 11:07:43Z jpm $<br>
<b>Located at</b> <a href="source-class-Application.html#3-96" title="Go to source code">Application.php</a><br>
</div>
 
 
 
<table class="summary" id="methods">
<caption>Methods summary</caption>
<tr data-order="setChemin" id="_setChemin">
 
<td class="attributes"><code>
public static
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_setChemin">#</a>
<code><a href="source-class-Application.html#41-57" title="Go to source code">setChemin</a>( <span>string <var>$chemin_fichier_principal</var></span> )</code>
 
<div class="description short">
<p>Permet d'indiquer le chemin de base de l'Application. Cette méthode doit
obligatoirement être utilisée par l'application pour que le Framework
fonctionne correctement.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Permet d'indiquer le chemin de base de l'Application. Cette méthode doit
obligatoirement être utilisée par l'application pour que le Framework
fonctionne correctement.</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$chemin_fichier_principal</var></dt>
<dd><code>string</code><br>$chemin_fichier_principal chemin de base</dd>
</dl></div>
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getChemin" id="_getChemin">
 
<td class="attributes"><code>
public static
string
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getChemin">#</a>
<code><a href="source-class-Application.html#59-65" title="Go to source code">getChemin</a>( )</code>
 
<div class="description short">
<p>accesseur pour le chemin</p>
 
</div>
 
<div class="description detailed hidden">
<p>accesseur pour le chemin</p>
 
 
 
 
<h4>Returns</h4>
<div class="list">
<code>string</code><br>le chemin<br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="setInfo" id="_setInfo">
 
<td class="attributes"><code>
public static
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_setInfo">#</a>
<code><a href="source-class-Application.html#67-81" title="Go to source code">setInfo</a>( <span>array <var>$info</var></span> )</code>
 
<div class="description short">
<p>Le tableau des informations sur l'application possède les clés suivantes
:</p>
 
<ul>
<li>nom : nom de l'application</li>
 
<li>abr : abréviation de l'application</li>
 
<li>encodage : encodage de l'application (ISO-8859-15, UTF-8...)</li>
</ul>
 
</div>
 
<div class="description detailed hidden">
<p>Le tableau des informations sur l'application possède les clés suivantes
:</p>
 
<ul>
<li>nom : nom de l'application</li>
 
<li>abr : abréviation de l'application</li>
 
<li>encodage : encodage de l'application (ISO-8859-15, UTF-8...)</li>
</ul>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$info</var></dt>
<dd><code>array</code><br>$info tableau fournissant des informations sur l'application</dd>
</dl></div>
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getInfo" id="_getInfo">
 
<td class="attributes"><code>
public static
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getInfo">#</a>
<code><a href="source-class-Application.html#83-95" title="Go to source code">getInfo</a>( <span>string <var>$cle</var> = <span class="php-keyword1">null</span></span> )</code>
 
<div class="description short">
<p>accesseur pour le tableau d'infos</p>
 
</div>
 
<div class="description detailed hidden">
<p>accesseur pour le tableau d'infos</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$cle</var></dt>
<dd><code>string</code><br>$cle la clé à laquelle on veut accéder</dd>
</dl></div>
 
 
 
 
 
</div>
</div></td>
</tr>
</table>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
</div>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/source-class-GestionnaireException.html
New file
0,0 → 1,337
<!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 GestionnaireException.php | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li class="active"><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li class="active"><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
 
 
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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="package-Framework.html" title="Summary of Framework"><span>Package</span></a>
</li>
<li>
<a href="class-GestionnaireException.html" title="Summary of GestionnaireException"><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>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<pre><code><span id="1" class="l"><a class="l" href="#1"> 1: </a><span class="xlang">&lt;?php</span>
</span><span id="2" class="l"><a class="l" href="#2"> 2: </a><span class="php-comment">// declare(encoding='UTF-8');</span>
</span><span id="3" class="l"><a class="l" href="#3"> 3: </a><span class="php-comment">/**
</span></span><span id="4" class="l"><a class="l" href="#4"> 4: </a><span class="php-comment"> * Classe de gestion des exceptions.
</span></span><span id="5" class="l"><a class="l" href="#5"> 5: </a><span class="php-comment"> * C'est un Singleton.
</span></span><span id="6" class="l"><a class="l" href="#6"> 6: </a><span class="php-comment"> *
</span></span><span id="7" class="l"><a class="l" href="#7"> 7: </a><span class="php-comment"> * @category PHP 5.2
</span></span><span id="8" class="l"><a class="l" href="#8"> 8: </a><span class="php-comment"> * @package Framework
</span></span><span id="9" class="l"><a class="l" href="#9"> 9: </a><span class="php-comment"> * @author Aurélien PERONNET &lt;aurelien@tela-botanica.org&gt;
</span></span><span id="10" class="l"><a class="l" href="#10"> 10: </a><span class="php-comment"> * @author Jean-Pascal MILCENT &lt;jmp@tela-botanica.org&gt;
</span></span><span id="11" class="l"><a class="l" href="#11"> 11: </a><span class="php-comment"> * @copyright Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)
</span></span><span id="12" class="l"><a class="l" href="#12"> 12: </a><span class="php-comment"> * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
</span></span><span id="13" class="l"><a class="l" href="#13"> 13: </a><span class="php-comment"> * @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
</span></span><span id="14" class="l"><a class="l" href="#14"> 14: </a><span class="php-comment"> * @version $Id: GestionnaireException.php 342 2011-06-06 13:58:53Z jpm $$
</span></span><span id="15" class="l"><a class="l" href="#15"> 15: </a><span class="php-comment"> * @link /doc/framework/
</span></span><span id="16" class="l"><a class="l" href="#16"> 16: </a><span class="php-comment"> *
</span></span><span id="17" class="l"><a class="l" href="#17"> 17: </a><span class="php-comment"> */</span>
</span><span id="18" class="l"><a class="l" href="#18"> 18: </a><span class="php-keyword1">class</span> <a id="GestionnaireException" href="#GestionnaireException">GestionnaireException</a> {
</span><span id="19" class="l"><a class="l" href="#19"> 19: </a>
</span><span id="20" class="l"><a class="l" href="#20"> 20: </a> <span class="php-keyword1">const</span> <a id="MODE_CLI" href="#MODE_CLI">MODE_CLI</a> = <span class="php-quote">'cli'</span>;
</span><span id="21" class="l"><a class="l" href="#21"> 21: </a>
</span><span id="22" class="l"><a class="l" href="#22"> 22: </a> <span class="php-comment">/** Liste des exceptions enregistrées */</span>
</span><span id="23" class="l"><a class="l" href="#23"> 23: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-var"><a id="$exceptions" href="#$exceptions">$exceptions</a></span> = <span class="php-keyword1">array</span>();
</span><span id="24" class="l"><a class="l" href="#24"> 24: </a>
</span><span id="25" class="l"><a class="l" href="#25"> 25: </a> <span class="php-comment">/** Détermine si l'on affiche ou non le contexte */</span>
</span><span id="26" class="l"><a class="l" href="#26"> 26: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-var"><a id="$contexte" href="#$contexte">$contexte</a></span> = <span class="php-keyword1">false</span>;
</span><span id="27" class="l"><a class="l" href="#27"> 27: </a>
</span><span id="28" class="l"><a class="l" href="#28"> 28: </a> <span class="php-comment">/** Détermine si l'on loggue ou non les erreurs */</span>
</span><span id="29" class="l"><a class="l" href="#29"> 29: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-var"><a id="$logger" href="#$logger">$logger</a></span> = <span class="php-keyword1">false</span>;
</span><span id="30" class="l"><a class="l" href="#30"> 30: </a>
</span><span id="31" class="l"><a class="l" href="#31"> 31: </a> <span class="php-comment">/** Détermine si l'affichage des erreurs est forcé (true) ou pas (false) à la destruction de la classe */</span>
</span><span id="32" class="l"><a class="l" href="#32"> 32: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-var"><a id="$afficher" href="#$afficher">$afficher</a></span> = <span class="php-keyword1">false</span>;
</span><span id="33" class="l"><a class="l" href="#33"> 33: </a>
</span><span id="34" class="l"><a class="l" href="#34"> 34: </a> <span class="php-comment">/** Definit si php est lancé en ligne de commande ou en mode serveur */</span>
</span><span id="35" class="l"><a class="l" href="#35"> 35: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-var"><a id="$mode" href="#$mode">$mode</a></span> = <span class="php-keyword1">null</span> ;
</span><span id="36" class="l"><a class="l" href="#36"> 36: </a>
</span><span id="37" class="l"><a class="l" href="#37"> 37: </a> <span class="php-comment">/** Initialise le Gestionnaire d'exceptions et d'erreur sans tenir comptes des paramêtres de config. */</span>
</span><span id="38" class="l"><a class="l" href="#38"> 38: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_initialiser" href="#_initialiser">initialiser</a>() {
</span><span id="39" class="l"><a class="l" href="#39"> 39: </a> self::<span class="php-var">$mode</span> = <span class="php-keyword2">php_sapi_name</span>();
</span><span id="40" class="l"><a class="l" href="#40"> 40: </a> <span class="php-comment">// Désactivation des balises HTML dans les messages d'erreur de PHP en mode ligne de commande</span>
</span><span id="41" class="l"><a class="l" href="#41"> 41: </a> <span class="php-keyword1">if</span> (self::<span class="php-var">$mode</span> == self::MODE_CLI) {
</span><span id="42" class="l"><a class="l" href="#42"> 42: </a> <span class="php-keyword2">ini_set</span>(<span class="php-quote">'html_errors'</span>, <span class="php-num">0</span>);
</span><span id="43" class="l"><a class="l" href="#43"> 43: </a> }
</span><span id="44" class="l"><a class="l" href="#44"> 44: </a>
</span><span id="45" class="l"><a class="l" href="#45"> 45: </a> <span class="php-keyword2">set_exception_handler</span>(<span class="php-keyword1">array</span>(<span class="php-keyword2">get_class</span>(),<span class="php-quote">'gererException'</span>));
</span><span id="46" class="l"><a class="l" href="#46"> 46: </a> <span class="php-keyword2">set_error_handler</span>(<span class="php-keyword1">array</span>(<span class="php-keyword2">get_class</span>(),<span class="php-quote">'gererErreur'</span>));
</span><span id="47" class="l"><a class="l" href="#47"> 47: </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">/** Configure le Gestionnaire d'exceptions et d'erreur à partir des paramêtres de config. */</span>
</span><span id="50" class="l"><a class="l" href="#50"> 50: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_configurer" href="#_configurer">configurer</a>() {
</span><span id="51" class="l"><a class="l" href="#51"> 51: </a> self::<span class="php-var">$contexte</span> = Config::get(<span class="php-quote">'fw_debogage_contexte'</span>);
</span><span id="52" class="l"><a class="l" href="#52"> 52: </a> self::<span class="php-var">$logger</span> = Config::get(<span class="php-quote">'fw_log_debogage'</span>);
</span><span id="53" class="l"><a class="l" href="#53"> 53: </a> self::<span class="php-var">$afficher</span> = Config::get(<span class="php-quote">'fw_debogage'</span>);
</span><span id="54" class="l"><a class="l" href="#54"> 54: </a> }
</span><span id="55" class="l"><a class="l" href="#55"> 55: </a>
</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-comment"> * Renvoie le nombre d'exceptions et d'erreurs levées.
</span></span><span id="58" class="l"><a class="l" href="#58"> 58: </a><span class="php-comment"> * @see getExceptions() pour obtenir les exceptions formatées.
</span></span><span id="59" class="l"><a class="l" href="#59"> 59: </a><span class="php-comment"> * @since 0.3
</span></span><span id="60" class="l"><a class="l" href="#60"> 60: </a><span class="php-comment"> * @return int le nombre d'exception actuellement levées
</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">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_getExceptionsNbre" href="#_getExceptionsNbre">getExceptionsNbre</a>() {
</span><span id="63" class="l"><a class="l" href="#63"> 63: </a> <span class="php-keyword1">return</span> <span class="php-keyword2">count</span>(self::<span class="php-var">$exceptions</span>);
</span><span id="64" class="l"><a class="l" href="#64"> 64: </a> }
</span><span id="65" class="l"><a class="l" href="#65"> 65: </a>
</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-comment"> * Renvoie le booleen définissant si l'on affiche le contexte ou non
</span></span><span id="68" class="l"><a class="l" href="#68"> 68: </a><span class="php-comment"> * @return bool true si on affiche le contexte sinon false.
</span></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-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_getContexte" href="#_getContexte">getContexte</a>() {
</span><span id="71" class="l"><a class="l" href="#71"> 71: </a> <span class="php-keyword1">return</span> self::<span class="php-var">$contexte</span>;
</span><span id="72" class="l"><a class="l" href="#72"> 72: </a> }
</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"> * Definit si l'on veut afficher le contexte ou non
</span></span><span id="76" class="l"><a class="l" href="#76"> 76: </a><span class="php-comment"> * @param bool true si on veut afficher le contexte, false sinon, par défaut vaut false
</span></span><span id="77" class="l"><a class="l" href="#77"> 77: </a><span class="php-comment"> */</span>
</span><span id="78" class="l"><a class="l" href="#78"> 78: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_setContexte" href="#_setContexte">setContexte</a>(<span class="php-var">$contexte</span>) {
</span><span id="79" class="l"><a class="l" href="#79"> 79: </a> self::<span class="php-var">$contexte</span> = <span class="php-var">$contexte</span>;
</span><span id="80" class="l"><a class="l" href="#80"> 80: </a> }
</span><span id="81" class="l"><a class="l" href="#81"> 81: </a>
</span><span id="82" class="l"><a class="l" href="#82"> 82: </a> <span class="php-comment">/**
</span></span><span id="83" class="l"><a class="l" href="#83"> 83: </a><span class="php-comment"> * Fonction de gestion des exceptions, remplace le handler par défaut.
</span></span><span id="84" class="l"><a class="l" href="#84"> 84: </a><span class="php-comment"> * Si une boucle génère de multiple exception (ou erreur) identique une seule sera stockée.
</span></span><span id="85" class="l"><a class="l" href="#85"> 85: </a><span class="php-comment"> * @param Exception $e l'exception à traiter
</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">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_gererException" href="#_gererException">gererException</a>(Exception <span class="php-var">$e</span>) {
</span><span id="88" class="l"><a class="l" href="#88"> 88: </a> <span class="php-var">$cle</span> = <span class="php-keyword2">hash</span>(<span class="php-quote">'md5'</span>, <span class="php-var">$e</span>-&gt;getMessage().<span class="php-quote">'-'</span>.<span class="php-var">$e</span>-&gt;getFile().<span class="php-quote">'-'</span>.<span class="php-var">$e</span>-&gt;getLine());
</span><span id="89" class="l"><a class="l" href="#89"> 89: </a> <span class="php-keyword1">if</span> (!<span class="php-keyword1">isset</span>(self::<span class="php-var">$exceptions</span>[<span class="php-var">$cle</span>])) {
</span><span id="90" class="l"><a class="l" href="#90"> 90: </a> self::<span class="php-var">$exceptions</span>[<span class="php-var">$cle</span>] = <span class="php-var">$e</span>;
</span><span id="91" class="l"><a class="l" href="#91"> 91: </a> self::loggerException(<span class="php-var">$e</span>);
</span><span id="92" class="l"><a class="l" href="#92"> 92: </a> }
</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><span id="95" class="l"><a class="l" href="#95"> 95: </a> <span class="php-comment">/**
</span></span><span id="96" class="l"><a class="l" href="#96"> 96: </a><span class="php-comment"> * Gère les erreurs en les convertissant en exceptions (remplace la fonction gestion d'erreurs native de php)
</span></span><span id="97" class="l"><a class="l" href="#97"> 97: </a><span class="php-comment"> * @param int $niveau le niveau de l'erreur
</span></span><span id="98" class="l"><a class="l" href="#98"> 98: </a><span class="php-comment"> * @param string $message le message associé à l'erreur
</span></span><span id="99" class="l"><a class="l" href="#99"> 99: </a><span class="php-comment"> * @param string $fichier le nom du fichier où l'erreur s'est produite
</span></span><span id="100" class="l"><a class="l" href="#100">100: </a><span class="php-comment"> * @param int $ligne la ligne où l'erreur s'est produite
</span></span><span id="101" class="l"><a class="l" href="#101">101: </a><span class="php-comment"> * @param string $contexte le contexte associé à l'erreur
</span></span><span id="102" class="l"><a class="l" href="#102">102: </a><span class="php-comment"> */</span>
</span><span id="103" class="l"><a class="l" href="#103">103: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_gererErreur" href="#_gererErreur">gererErreur</a>(<span class="php-var">$niveau</span>, <span class="php-var">$message</span>, <span class="php-var">$fichier</span>, <span class="php-var">$ligne</span>, <span class="php-var">$contexte</span>){
</span><span id="104" class="l"><a class="l" href="#104">104: </a> <span class="php-comment">// Si un rapport d'erreur existe, création d'une exception</span>
</span><span id="105" class="l"><a class="l" href="#105">105: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">error_reporting</span>() != <span class="php-num">0</span>) {
</span><span id="106" class="l"><a class="l" href="#106">106: </a> <span class="php-var">$e</span> = <span class="php-keyword1">new</span> ErrorException(<span class="php-var">$message</span>, <span class="php-num">0</span>, <span class="php-var">$niveau</span>, <span class="php-var">$fichier</span>, <span class="php-var">$ligne</span>);
</span><span id="107" class="l"><a class="l" href="#107">107: </a> self::gererException(<span class="php-var">$e</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-keyword1">return</span> <span class="php-keyword1">null</span>;
</span><span id="110" class="l"><a class="l" href="#110">110: </a> }
</span><span id="111" class="l"><a class="l" href="#111">111: </a>
</span><span id="112" class="l"><a class="l" href="#112">112: </a> <span class="php-comment">/**
</span></span><span id="113" class="l"><a class="l" href="#113">113: </a><span class="php-comment"> * Renvoie les exceptions au format (X)HTML ou bien au format texte suivant le mode d'utilisation de PHP.
</span></span><span id="114" class="l"><a class="l" href="#114">114: </a><span class="php-comment"> * @since 0.3
</span></span><span id="115" class="l"><a class="l" href="#115">115: </a><span class="php-comment"> * @deprecated
</span></span><span id="116" class="l"><a class="l" href="#116">116: </a><span class="php-comment"> * @see getExceptionsFormatees()
</span></span><span id="117" class="l"><a class="l" href="#117">117: </a><span class="php-comment"> * @return string les exceptions formatées en texte ou (X)HTML.
</span></span><span id="118" class="l"><a class="l" href="#118">118: </a><span class="php-comment"> */</span>
</span><span id="119" class="l"><a class="l" href="#119">119: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_getExceptions" href="#_getExceptions">getExceptions</a>() {
</span><span id="120" class="l"><a class="l" href="#120">120: </a> <span class="php-keyword1">return</span> self::getExceptionsFormatees();
</span><span id="121" class="l"><a class="l" href="#121">121: </a> }
</span><span id="122" class="l"><a class="l" href="#122">122: </a>
</span><span id="123" class="l"><a class="l" href="#123">123: </a> <span class="php-comment">/**
</span></span><span id="124" class="l"><a class="l" href="#124">124: </a><span class="php-comment"> * Renvoie les exceptions au format (X)HTML ou bien au format texte suivant le mode d'utilisation de PHP.
</span></span><span id="125" class="l"><a class="l" href="#125">125: </a><span class="php-comment"> * @since 0.3
</span></span><span id="126" class="l"><a class="l" href="#126">126: </a><span class="php-comment"> * @return string les exceptions formatées en texte ou (X)HTML.
</span></span><span id="127" class="l"><a class="l" href="#127">127: </a><span class="php-comment"> */</span>
</span><span id="128" class="l"><a class="l" href="#128">128: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_getExceptionsFormatees" href="#_getExceptionsFormatees">getExceptionsFormatees</a>() {
</span><span id="129" class="l"><a class="l" href="#129">129: </a> <span class="php-var">$retour</span> = <span class="php-quote">''</span>;
</span><span id="130" class="l"><a class="l" href="#130">130: </a> <span class="php-keyword1">if</span> (self::getExceptionsNbre() &gt; <span class="php-num">0</span>) {
</span><span id="131" class="l"><a class="l" href="#131">131: </a> <span class="php-keyword1">foreach</span> (self::<span class="php-var">$exceptions</span> <span class="php-keyword1">as</span> <span class="php-var">$cle</span> =&gt; <span class="php-var">$e</span>) {
</span><span id="132" class="l"><a class="l" href="#132">132: </a> <span class="php-keyword1">switch</span> (self::<span class="php-var">$mode</span>) {
</span><span id="133" class="l"><a class="l" href="#133">133: </a> <span class="php-keyword1">case</span> self::MODE_CLI :
</span><span id="134" class="l"><a class="l" href="#134">134: </a> <span class="php-var">$retour</span> .= self::formaterExceptionTxt(<span class="php-var">$e</span>);
</span><span id="135" class="l"><a class="l" href="#135">135: </a> <span class="php-keyword1">break</span>;
</span><span id="136" class="l"><a class="l" href="#136">136: </a> <span class="php-keyword1">default</span>:
</span><span id="137" class="l"><a class="l" href="#137">137: </a> <span class="php-var">$retour</span> .= self::formaterExceptionXhtml(<span class="php-var">$e</span>);
</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-comment">// Nous vidons le tableau des exceptions au fur et à mesure pour éviter le réaffichage avec le destructeur.</span>
</span><span id="140" class="l"><a class="l" href="#140">140: </a> <span class="php-keyword1">unset</span>(self::<span class="php-var">$exceptions</span>[<span class="php-var">$cle</span>]);
</span><span id="141" class="l"><a class="l" href="#141">141: </a> }
</span><span id="142" class="l"><a class="l" href="#142">142: </a> }
</span><span id="143" class="l"><a class="l" href="#143">143: </a> <span class="php-keyword1">return</span> <span class="php-var">$retour</span>;
</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><span id="146" class="l"><a class="l" href="#146">146: </a> <span class="php-comment">/**
</span></span><span id="147" class="l"><a class="l" href="#147">147: </a><span class="php-comment"> * Renvoie le tableau d'objets Exception générées par le script PHP triées du niveau de sévérité le plus élevé au moins élevé.
</span></span><span id="148" class="l"><a class="l" href="#148">148: </a><span class="php-comment"> * Format du tableau :
</span></span><span id="149" class="l"><a class="l" href="#149">149: </a><span class="php-comment"> * array{sévérité_1 = array{Exception1, Exception2, Exception3,...}, sévérité_1 = array{Exception1, Exception2, ...}, ...};
</span></span><span id="150" class="l"><a class="l" href="#150">150: </a><span class="php-comment"> * ATTENTION : si vous utilisez cette méthode, c'est à vous de gérer l'affichage des Exceptions. Le gestionnaire d'exception
</span></span><span id="151" class="l"><a class="l" href="#151">151: </a><span class="php-comment"> * n'enverra plus rien au navigateur ou à la console.
</span></span><span id="152" class="l"><a class="l" href="#152">152: </a><span class="php-comment"> * @since 0.3
</span></span><span id="153" class="l"><a class="l" href="#153">153: </a><span class="php-comment"> * @return array le tableau trié d'objet Exception.
</span></span><span id="154" class="l"><a class="l" href="#154">154: </a><span class="php-comment"> */</span>
</span><span id="155" class="l"><a class="l" href="#155">155: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_getExceptionsTriees" href="#_getExceptionsTriees">getExceptionsTriees</a>() {
</span><span id="156" class="l"><a class="l" href="#156">156: </a> <span class="php-var">$retour</span> = <span class="php-keyword1">array</span>();
</span><span id="157" class="l"><a class="l" href="#157">157: </a> <span class="php-keyword1">if</span> (self::getExceptionsNbre() &gt; <span class="php-num">0</span>) {
</span><span id="158" class="l"><a class="l" href="#158">158: </a> <span class="php-keyword1">foreach</span> (self::<span class="php-var">$exceptions</span> <span class="php-keyword1">as</span> <span class="php-var">$cle</span> =&gt; <span class="php-var">$e</span>) {
</span><span id="159" class="l"><a class="l" href="#159">159: </a> <span class="php-var">$retour</span>[<span class="php-var">$e</span>-&gt;getSeverity()][] = <span class="php-var">$e</span>;
</span><span id="160" class="l"><a class="l" href="#160">160: </a> <span class="php-comment">// Nous vidons le tableau des exceptions au fur et à mesure pour éviter le réaffichage avec le destructeur.</span>
</span><span id="161" class="l"><a class="l" href="#161">161: </a> <span class="php-keyword1">unset</span>(self::<span class="php-var">$exceptions</span>[<span class="php-var">$cle</span>]);
</span><span id="162" class="l"><a class="l" href="#162">162: </a> }
</span><span id="163" class="l"><a class="l" href="#163">163: </a> <span class="php-keyword2">ksort</span>(<span class="php-var">$retour</span>);
</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-keyword1">return</span> <span class="php-var">$retour</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"> * Logue une exception donnée sous une forme lisible si self::logger vaut true.
</span></span><span id="170" class="l"><a class="l" href="#170">170: </a><span class="php-comment"> * @param Exception $e l'exception à logger
</span></span><span id="171" class="l"><a class="l" href="#171">171: </a><span class="php-comment"> */</span>
</span><span id="172" class="l"><a class="l" href="#172">172: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_loggerException" href="#_loggerException">loggerException</a>(Exception <span class="php-var">$e</span>) {
</span><span id="173" class="l"><a class="l" href="#173">173: </a> <span class="php-keyword1">if</span> (self::<span class="php-var">$logger</span>) {
</span><span id="174" class="l"><a class="l" href="#174">174: </a> <span class="php-var">$message</span> = self::formaterExceptionTxt(<span class="php-var">$e</span>);
</span><span id="175" class="l"><a class="l" href="#175">175: </a> <span class="php-keyword2">Log</span>::ajouterEntree(<span class="php-quote">'erreurs'</span>, <span class="php-var">$message</span>);
</span><span id="176" class="l"><a class="l" href="#176">176: </a> }
</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><span id="179" class="l"><a class="l" href="#179">179: </a> <span class="php-comment">/**
</span></span><span id="180" class="l"><a class="l" href="#180">180: </a><span class="php-comment"> * Formate en texte une exception passée en paramètre.
</span></span><span id="181" class="l"><a class="l" href="#181">181: </a><span class="php-comment"> * @since 0.3
</span></span><span id="182" class="l"><a class="l" href="#182">182: </a><span class="php-comment"> * @param Exception l'exception à formater.
</span></span><span id="183" class="l"><a class="l" href="#183">183: </a><span class="php-comment"> */</span>
</span><span id="184" class="l"><a class="l" href="#184">184: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_formaterExceptionTxt" href="#_formaterExceptionTxt">formaterExceptionTxt</a>(Exception <span class="php-var">$e</span>) {
</span><span id="185" class="l"><a class="l" href="#185">185: </a> <span class="php-var">$message</span> = <span class="php-quote">''</span>;
</span><span id="186" class="l"><a class="l" href="#186">186: </a> <span class="php-var">$message</span> .= <span class="php-var">$e</span>-&gt;getMessage().<span class="php-quote">&quot;\n&quot;</span>;
</span><span id="187" class="l"><a class="l" href="#187">187: </a> <span class="php-var">$message</span> .= <span class="php-quote">'Fichier : '</span>.<span class="php-var">$e</span>-&gt;getFile().<span class="php-quote">&quot;\n&quot;</span>;
</span><span id="188" class="l"><a class="l" href="#188">188: </a> <span class="php-var">$message</span> .= <span class="php-quote">'Ligne : '</span>.<span class="php-var">$e</span>-&gt;getLine().<span class="php-quote">&quot;\n&quot;</span>;
</span><span id="189" class="l"><a class="l" href="#189">189: </a> <span class="php-keyword1">if</span> (self::getContexte()) {
</span><span id="190" class="l"><a class="l" href="#190">190: </a> <span class="php-var">$message</span> .= <span class="php-quote">'Contexte : '</span>.<span class="php-quote">&quot;\n&quot;</span>.<span class="php-keyword2">print_r</span>(<span class="php-var">$e</span>-&gt;getTraceAsString(), <span class="php-keyword1">true</span>).<span class="php-quote">&quot;\n&quot;</span>;
</span><span id="191" class="l"><a class="l" href="#191">191: </a> }
</span><span id="192" class="l"><a class="l" href="#192">192: </a> <span class="php-var">$message</span> .= <span class="php-quote">&quot;\n&quot;</span>;
</span><span id="193" class="l"><a class="l" href="#193">193: </a> <span class="php-keyword1">return</span> <span class="php-var">$message</span>;
</span><span id="194" class="l"><a class="l" href="#194">194: </a> }
</span><span id="195" class="l"><a class="l" href="#195">195: </a>
</span><span id="196" class="l"><a class="l" href="#196">196: </a> <span class="php-comment">/**
</span></span><span id="197" class="l"><a class="l" href="#197">197: </a><span class="php-comment"> * Formate en (X)HTML une exception passée en paramètre.
</span></span><span id="198" class="l"><a class="l" href="#198">198: </a><span class="php-comment"> * @since 0.3
</span></span><span id="199" class="l"><a class="l" href="#199">199: </a><span class="php-comment"> * @param Exception l'exception à formater.
</span></span><span id="200" class="l"><a class="l" href="#200">200: </a><span class="php-comment"> */</span>
</span><span id="201" class="l"><a class="l" href="#201">201: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_formaterExceptionXhtml" href="#_formaterExceptionXhtml">formaterExceptionXhtml</a>(Exception <span class="php-var">$e</span>) {
</span><span id="202" class="l"><a class="l" href="#202">202: </a> <span class="php-var">$message</span> = <span class="php-quote">''</span>;
</span><span id="203" class="l"><a class="l" href="#203">203: </a> <span class="php-var">$message</span> .= <span class="php-quote">'&lt;div class=&quot;debogage&quot;&gt;'</span>.<span class="php-quote">&quot;\n&quot;</span>;
</span><span id="204" class="l"><a class="l" href="#204">204: </a> <span class="php-var">$message</span> .= <span class="php-var">$e</span>-&gt;getMessage().<span class="php-quote">&quot;\n&quot;</span>;
</span><span id="205" class="l"><a class="l" href="#205">205: </a> <span class="php-var">$message</span> .= <span class="php-quote">'&lt;span class=&quot;debogage_fichier&quot;&gt;'</span>.<span class="php-quote">'Fichier : '</span>.<span class="php-var">$e</span>-&gt;getFile().<span class="php-quote">'&lt;/span&gt;'</span>.<span class="php-quote">&quot;\n&quot;</span>;
</span><span id="206" class="l"><a class="l" href="#206">206: </a> <span class="php-var">$message</span> .= <span class="php-quote">'&lt;span class=&quot;debogage_ligne&quot;&gt;'</span>.<span class="php-quote">'Ligne : '</span>.<span class="php-var">$e</span>-&gt;getLine().<span class="php-quote">'&lt;/span&gt;'</span>.<span class="php-quote">&quot;\n&quot;</span>;
</span><span id="207" class="l"><a class="l" href="#207">207: </a> <span class="php-keyword1">if</span> (self::getContexte()) {
</span><span id="208" class="l"><a class="l" href="#208">208: </a> <span class="php-var">$message</span> .= <span class="php-quote">'&lt;pre&gt;'</span>.<span class="php-quote">&quot;\n&quot;</span>;
</span><span id="209" class="l"><a class="l" href="#209">209: </a> <span class="php-var">$message</span> .= <span class="php-quote">'&lt;strong&gt;Contexte : &lt;/strong&gt;'</span>.<span class="php-quote">&quot;\n&quot;</span>.<span class="php-keyword2">print_r</span>(<span class="php-var">$e</span>-&gt;getTraceAsString(), <span class="php-keyword1">true</span>).<span class="php-quote">&quot;\n&quot;</span>;
</span><span id="210" class="l"><a class="l" href="#210">210: </a> <span class="php-var">$message</span> .= <span class="php-quote">'&lt;/pre&gt;'</span>.<span class="php-quote">&quot;\n&quot;</span>;
</span><span id="211" class="l"><a class="l" href="#211">211: </a> }
</span><span id="212" class="l"><a class="l" href="#212">212: </a> <span class="php-var">$message</span> .= <span class="php-quote">'&lt;/div&gt;'</span>.<span class="php-quote">&quot;\n&quot;</span>;
</span><span id="213" class="l"><a class="l" href="#213">213: </a> <span class="php-keyword1">return</span> <span class="php-var">$message</span>;
</span><span id="214" class="l"><a class="l" href="#214">214: </a> }
</span><span id="215" class="l"><a class="l" href="#215">215: </a>
</span><span id="216" class="l"><a class="l" href="#216">216: </a> <span class="php-comment">/**
</span></span><span id="217" class="l"><a class="l" href="#217">217: </a><span class="php-comment"> * Lors de la destruction de la classe si des exceptions n'ont pas été affichées, et si le débogage est à true, elles sont
</span></span><span id="218" class="l"><a class="l" href="#218">218: </a><span class="php-comment"> * affichées.
</span></span><span id="219" class="l"><a class="l" href="#219">219: </a><span class="php-comment"> */</span>
</span><span id="220" class="l"><a class="l" href="#220">220: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="___destruct" href="#___destruct">__destruct</a>() {
</span><span id="221" class="l"><a class="l" href="#221">221: </a> <span class="php-comment">// Si des erreurs n'ont pas été affichée nous forçons leur affichage</span>
</span><span id="222" class="l"><a class="l" href="#222">222: </a> <span class="php-keyword1">if</span> (self::<span class="php-var">$afficher</span> &amp;&amp; self::getExceptionsNbre() &gt; <span class="php-num">0</span>) {
</span><span id="223" class="l"><a class="l" href="#223">223: </a> <span class="php-keyword1">echo</span> self::getExceptionsFormatees();
</span><span id="224" class="l"><a class="l" href="#224">224: </a> }
</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><span id="227" class="l"><a class="l" href="#227">227: </a>}
</span><span id="228" class="l"><a class="l" href="#228">228: </a></span><span class="xlang">?&gt;</span></code></pre>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/404.html
New file
0,0 → 1,122
<!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>Page not found | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-PDOStatement.html">PDOStatement</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
<h3>Interfaces</h3>
<ul>
<li><a href="class-Traversable.html">Traversable</a></li>
</ul>
 
 
<h3>Exceptions</h3>
<ul>
<li><a href="class-Exception.html">Exception</a></li>
</ul>
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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>
<span>Package</span> </li>
<li>
<span>Class</span> </li>
</ul>
<ul>
<li>
<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
</li>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<div id="content">
<h1>Page not found</h1>
<p>The requested page could not be found.</p>
<p>You have probably clicked on a link that is outdated and points to a page that does not exist any more or you have made an typing error in the address.</p>
<p>To continue please try to find requested page in the menu, take a look at <a href="tree.html">the tree view</a> of the whole project or use search field on the top.</p>
</div>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/class-Config.html
New file
0,0 → 1,301
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="generator" content="ApiGen 2.8.0">
 
<title>Class Config | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li class="active"><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li class="active"><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
 
 
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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="package-Framework.html" title="Summary of Framework"><span>Package</span></a>
</li>
<li class="active">
<span>Class</span> </li>
</ul>
<ul>
<li>
<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
</li>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<div id="content" class="class">
<h1>Class Config</h1>
 
 
<div class="description">
<p>Config permet de charger automatiquement les fichiers ini du Framework et de
l'application. Elle offre l'accès en lecture seule aux paramètres de config.
C'est une Singleton.</p>
 
<p>PHP Version 5</p>
 
</div>
 
 
 
 
 
 
 
 
 
<div class="info">
<b>Package:</b> <a href="package-Framework.html">Framework</a><br>
 
<b>Category:</b>
PHP<br>
<b>Copyright:</b>
2009 Tela-Botanica<br>
<b>License:</b>
<a href="GPL-v3">et CECILL-v2</a><br>
<b>Author:</b>
Jean-Pascal MILCENT &lt;<a
href="mailto:jpm&#64;tela-botanica.org">jpm&#64;<!-- -->tela-botanica.org</a>&gt;<br>
<b>Version:</b>
SVN: &lt;svn_id&gt;<br>
<b>Link:</b>
/doc/framework/<br>
<b>Located at</b> <a href="source-class-Config.html#4-264" title="Go to source code">Config.php</a><br>
</div>
 
 
 
<table class="summary" id="methods">
<caption>Methods summary</caption>
<tr data-order="charger" id="_charger">
 
<td class="attributes"><code>
public static
array
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_charger">#</a>
<code><a href="source-class-Config.html#235-243" title="Go to source code">charger</a>( <span>string <var>$fichier_ini</var></span> )</code>
 
<div class="description short">
<p>Charge un fichier ini dans le tableau des paramètres de l'appli</p>
 
</div>
 
<div class="description detailed hidden">
<p>Charge un fichier ini dans le tableau des paramètres de l'appli</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$fichier_ini</var></dt>
<dd><code>string</code><br>$fichier_ini le nom du fichier à charger</dd>
</dl></div>
 
<h4>Returns</h4>
<div class="list">
<code>array</code><br>le fichier ini parsé<br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="get" id="_get">
 
<td class="attributes"><code>
public static
string
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_get">#</a>
<code><a href="source-class-Config.html#245-253" title="Go to source code">get</a>( <span>string <var>$param</var> = <span class="php-keyword1">null</span></span> )</code>
 
<div class="description short">
<p>Acesseur pour la valeur d'un paramètre</p>
 
</div>
 
<div class="description detailed hidden">
<p>Acesseur pour la valeur d'un paramètre</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$param</var></dt>
<dd><code>string</code><br>$param le nom du paramètre</dd>
</dl></div>
 
<h4>Returns</h4>
<div class="list">
<code>string</code><br>la valeur du paramètre<br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="existe" id="_existe">
 
<td class="attributes"><code>
public static
boolean
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_existe">#</a>
<code><a href="source-class-Config.html#255-263" title="Go to source code">existe</a>( <span>string <var>$param</var></span> )</code>
 
<div class="description short">
<p>Vérifie si la valeur d'un paramètre existe</p>
 
</div>
 
<div class="description detailed hidden">
<p>Vérifie si la valeur d'un paramètre existe</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$param</var></dt>
<dd><code>string</code><br>$param le nom du paramètre</dd>
</dl></div>
 
<h4>Returns</h4>
<div class="list">
<code>boolean</code><br>vrai si le paramètre existe, false sinon<br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
</table>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
</div>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/source-function-autoloadAppliDefaut.html
New file
0,0 → 1,172
<!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 autoload.inc.php | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li class="active"><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
 
 
 
 
<h3>Functions</h3>
<ul>
<li class="active"><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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="package-Framework.html" title="Summary of Framework"><span>Package</span></a>
</li>
<li>
<a href="function-autoloadAppliDefaut.html" title="Summary of autoloadAppliDefaut"><span>Function</span></a>
</li>
</ul>
<ul>
<li>
<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
</li>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<pre><code><span id="1" class="l"><a class="l" href="#1"> 1: </a><span class="xlang">&lt;?php</span>
</span><span id="2" class="l"><a class="l" href="#2"> 2: </a><span class="php-comment">// declare(encoding='UTF-8');</span>
</span><span id="3" class="l"><a class="l" href="#3"> 3: </a><span class="php-comment">/**
</span></span><span id="4" class="l"><a class="l" href="#4"> 4: </a><span class="php-comment"> * Fichier contenant la fonction de chargement automatique de classes, il doit toujours rester à la racine
</span></span><span id="5" class="l"><a class="l" href="#5"> 5: </a><span class="php-comment"> * du framework car il initialise le chemin de l'application en se basant sur son propre emplacement.
</span></span><span id="6" class="l"><a class="l" href="#6"> 6: </a><span class="php-comment"> *
</span></span><span id="7" class="l"><a class="l" href="#7"> 7: </a><span class="php-comment"> * PHP Version 5.1.2
</span></span><span id="8" class="l"><a class="l" href="#8"> 8: </a><span class="php-comment"> *
</span></span><span id="9" class="l"><a class="l" href="#9"> 9: </a><span class="php-comment"> * @category Fichier_De_Fonctions
</span></span><span id="10" class="l"><a class="l" href="#10">10: </a><span class="php-comment"> * @package Framework
</span></span><span id="11" class="l"><a class="l" href="#11">11: </a><span class="php-comment"> // Auteur principal :
</span></span><span id="12" class="l"><a class="l" href="#12">12: </a><span class="php-comment"> * @author Aurelien PERONNET &lt;aurelien@tela-botanica.org&gt;
</span></span><span id="13" class="l"><a class="l" href="#13">13: </a><span class="php-comment"> // Autres auteurs :
</span></span><span id="14" class="l"><a class="l" href="#14">14: </a><span class="php-comment"> * @author Jean-Pascal MILCENT &lt;jpm@tela-botanica.org&gt;
</span></span><span id="15" class="l"><a class="l" href="#15">15: </a><span class="php-comment"> * @license GPL v3 &lt;http://www.gnu.org/licenses/gpl.txt&gt;
</span></span><span id="16" class="l"><a class="l" href="#16">16: </a><span class="php-comment"> * @license CECILL v2 &lt;http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt&gt;
</span></span><span id="17" class="l"><a class="l" href="#17">17: </a><span class="php-comment"> * @version $$Id: autoload.inc.php 188 2010-04-29 12:09:17Z jpm $$
</span></span><span id="18" class="l"><a class="l" href="#18">18: </a><span class="php-comment"> * @copyright 1999-2009 Tela Botanica (accueil@tela-botanica.org)
</span></span><span id="19" class="l"><a class="l" href="#19">19: </a><span class="php-comment"> */</span>
</span><span id="20" class="l"><a class="l" href="#20">20: </a>
</span><span id="21" class="l"><a class="l" href="#21">21: </a><span class="php-comment">// Redéfinition de la constante DIRECTORY_SEPARATOR</span>
</span><span id="22" class="l"><a class="l" href="#22">22: </a><span class="php-keyword1">if</span> (!<span class="php-keyword2">defined</span>(<span class="php-quote">'DS'</span>)) {
</span><span id="23" class="l"><a class="l" href="#23">23: </a> <span class="php-keyword2">define</span>(<span class="php-quote">'DS'</span>, DIRECTORY_SEPARATOR);
</span><span id="24" class="l"><a class="l" href="#24">24: </a>}
</span><span id="25" class="l"><a class="l" href="#25">25: </a><span class="php-comment">// Redéfinition de la constante PATH_SEPARATOR</span>
</span><span id="26" class="l"><a class="l" href="#26">26: </a><span class="php-keyword1">if</span> (!<span class="php-keyword2">defined</span>(<span class="php-quote">'PS'</span>)) {
</span><span id="27" class="l"><a class="l" href="#27">27: </a> <span class="php-keyword2">define</span>(<span class="php-quote">'PS'</span>, PATH_SEPARATOR);
</span><span id="28" class="l"><a class="l" href="#28">28: </a>}
</span><span id="29" class="l"><a class="l" href="#29">29: </a>
</span><span id="30" class="l"><a class="l" href="#30">30: </a><span class="php-comment">// Autoload pour le Framework</span>
</span><span id="31" class="l"><a class="l" href="#31">31: </a><span class="php-keyword1">function</span> <a id="_autoloadFw" href="#_autoloadFw">autoloadFw</a>(<span class="php-var">$nom_classe_fw</span>) {
</span><span id="32" class="l"><a class="l" href="#32">32: </a> <span class="php-var">$fichier_a_inclure</span> = <span class="php-keyword2">dirname</span>(__FILE__).DS.<span class="php-var">$nom_classe_fw</span>.<span class="php-quote">'.php'</span>;
</span><span id="33" class="l"><a class="l" href="#33">33: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">file_exists</span>(<span class="php-var">$fichier_a_inclure</span>)) {
</span><span id="34" class="l"><a class="l" href="#34">34: </a> <span class="php-keyword1">include_once</span> <span class="php-var">$fichier_a_inclure</span>;
</span><span id="35" class="l"><a class="l" href="#35">35: </a> <span class="php-keyword1">return</span> <span class="php-keyword1">null</span>;
</span><span id="36" class="l"><a class="l" href="#36">36: </a> }
</span><span id="37" class="l"><a class="l" href="#37">37: </a>}
</span><span id="38" class="l"><a class="l" href="#38">38: </a><span class="php-keyword2">spl_autoload_register</span>(<span class="php-quote">'autoloadFw'</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 class="php-comment">// Initialisation du gestionnaire d'erreur avant toute chose</span>
</span><span id="41" class="l"><a class="l" href="#41">41: </a>GestionnaireException::initialiser();
</span><span id="42" class="l"><a class="l" href="#42">42: </a>
</span><span id="43" class="l"><a class="l" href="#43">43: </a><span class="php-comment">// Autoload par défaut pour l'application</span>
</span><span id="44" class="l"><a class="l" href="#44">44: </a><span class="php-keyword1">function</span> <a id="_autoloadAppliDefaut" href="#_autoloadAppliDefaut">autoloadAppliDefaut</a>(<span class="php-var">$nom_classe</span>) {
</span><span id="45" class="l"><a class="l" href="#45">45: </a> <span class="php-var">$dossiers_classes</span> = <span class="php-keyword1">array</span>( Config::get(<span class="php-quote">'chemin_controleurs'</span>),
</span><span id="46" class="l"><a class="l" href="#46">46: </a> Config::get(<span class="php-quote">'chemin_modeles'</span>),
</span><span id="47" class="l"><a class="l" href="#47">47: </a> Config::get(<span class="php-quote">'chemin_bibliotheque'</span>));
</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-keyword1">foreach</span> (<span class="php-var">$dossiers_classes</span> <span class="php-keyword1">as</span> <span class="php-var">$chemin</span>) {
</span><span id="50" class="l"><a class="l" href="#50">50: </a> <span class="php-var">$fichier_a_tester</span> = <span class="php-var">$chemin</span>.<span class="php-var">$nom_classe</span>.<span class="php-quote">'.php'</span>;
</span><span id="51" class="l"><a class="l" href="#51">51: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">file_exists</span>(<span class="php-var">$fichier_a_tester</span>)) {
</span><span id="52" class="l"><a class="l" href="#52">52: </a> <span class="php-keyword1">include_once</span> <span class="php-var">$fichier_a_tester</span>;
</span><span id="53" class="l"><a class="l" href="#53">53: </a> <span class="php-keyword1">return</span> <span class="php-keyword1">null</span>;
</span><span id="54" class="l"><a class="l" href="#54">54: </a> }
</span><span id="55" class="l"><a class="l" href="#55">55: </a> }
</span><span id="56" class="l"><a class="l" href="#56">56: </a>}
</span><span id="57" class="l"><a class="l" href="#57">57: </a><span class="php-keyword2">spl_autoload_register</span>(<span class="php-quote">'autoloadAppliDefaut'</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">// Autoload défini par l'application</span>
</span><span id="60" class="l"><a class="l" href="#60">60: </a><span class="php-keyword1">if</span> (<span class="php-keyword2">function_exists</span>(<span class="php-quote">'__autoload'</span>)) {
</span><span id="61" class="l"><a class="l" href="#61">61: </a> <span class="php-keyword2">spl_autoload_register</span>(<span class="php-quote">'__autoload'</span>);
</span><span id="62" class="l"><a class="l" href="#62">62: </a>}
</span><span id="63" class="l"><a class="l" href="#63">63: </a></span><span class="xlang">?&gt;</span></code></pre>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/class-GestionnaireException.html
New file
0,0 → 1,743
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="generator" content="ApiGen 2.8.0">
 
<title>Class GestionnaireException | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li class="active"><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li class="active"><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
 
 
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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="package-Framework.html" title="Summary of Framework"><span>Package</span></a>
</li>
<li class="active">
<span>Class</span> </li>
</ul>
<ul>
<li>
<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
</li>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<div id="content" class="class">
<h1>Class GestionnaireException</h1>
 
 
<div class="description">
<p>Classe de gestion des exceptions. C'est un Singleton.</p>
 
</div>
 
 
 
 
 
 
 
 
 
<div class="info">
<b>Package:</b> <a href="package-Framework.html">Framework</a><br>
 
<b>Category:</b>
PHP 5.2<br>
<b>Copyright:</b>
Copyright (c) 2009, Tela Botanica (<a
href="mailto:accueil&#64;tela-botanica.org">accueil&#64;<!-- -->tela-botanica.org</a>)<br>
<b>License:</b>
<a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">Licence CECILL</a><br>
<b>License:</b>
<a href="http://www.gnu.org/licenses/gpl.html">Licence GNU-GPL</a><br>
<b>Author:</b>
Aurélien PERONNET &lt;<a
href="mailto:aurelien&#64;tela-botanica.org">aurelien&#64;<!-- -->tela-botanica.org</a>&gt;<br>
<b>Author:</b>
Jean-Pascal MILCENT &lt;<a
href="mailto:jmp&#64;tela-botanica.org">jmp&#64;<!-- -->tela-botanica.org</a>&gt;<br>
<b>Version:</b>
$Id: GestionnaireException.php 342 2011-06-06 13:58:53Z jpm $$<br>
<b>Link:</b>
/doc/framework/<br>
<b>Located at</b> <a href="source-class-GestionnaireException.html#3-227" title="Go to source code">GestionnaireException.php</a><br>
</div>
 
 
 
<table class="summary" id="methods">
<caption>Methods summary</caption>
<tr data-order="initialiser" id="_initialiser">
 
<td class="attributes"><code>
public static
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_initialiser">#</a>
<code><a href="source-class-GestionnaireException.html#37-47" title="Go to source code">initialiser</a>( )</code>
 
<div class="description short">
<p>Initialise le Gestionnaire d'exceptions et d'erreur sans tenir comptes des
paramêtres de config.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Initialise le Gestionnaire d'exceptions et d'erreur sans tenir comptes des
paramêtres de config.</p>
 
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="configurer" id="_configurer">
 
<td class="attributes"><code>
public static
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_configurer">#</a>
<code><a href="source-class-GestionnaireException.html#49-54" title="Go to source code">configurer</a>( )</code>
 
<div class="description short">
<p>Configure le Gestionnaire d'exceptions et d'erreur à partir des paramêtres
de config.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Configure le Gestionnaire d'exceptions et d'erreur à partir des paramêtres
de config.</p>
 
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getExceptionsNbre" id="_getExceptionsNbre">
 
<td class="attributes"><code>
public static
integer
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getExceptionsNbre">#</a>
<code><a href="source-class-GestionnaireException.html#56-64" title="Go to source code">getExceptionsNbre</a>( )</code>
 
<div class="description short">
<p>Renvoie le nombre d'exceptions et d'erreurs levées.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Renvoie le nombre d'exceptions et d'erreurs levées.</p>
 
 
 
 
<h4>Returns</h4>
<div class="list">
<code>integer</code><br>le nombre d'exception actuellement levées<br>
</div>
 
 
<h4>Since</h4>
<div class="list">
0.3<br>
</div>
<h4>See</h4>
<div class="list">
getExceptions() pour obtenir les exceptions formatées.<br>
</div>
 
 
</div>
</div></td>
</tr>
<tr data-order="getContexte" id="_getContexte">
 
<td class="attributes"><code>
public static
boolean
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getContexte">#</a>
<code><a href="source-class-GestionnaireException.html#66-72" title="Go to source code">getContexte</a>( )</code>
 
<div class="description short">
<p>Renvoie le booleen définissant si l'on affiche le contexte ou non</p>
 
</div>
 
<div class="description detailed hidden">
<p>Renvoie le booleen définissant si l'on affiche le contexte ou non</p>
 
 
 
 
<h4>Returns</h4>
<div class="list">
<code>boolean</code><br>true si on affiche le contexte sinon false.<br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="setContexte" id="_setContexte">
 
<td class="attributes"><code>
public static
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_setContexte">#</a>
<code><a href="source-class-GestionnaireException.html#74-80" title="Go to source code">setContexte</a>( <span>boolean <var>$contexte</var></span> )</code>
 
<div class="description short">
<p>Definit si l'on veut afficher le contexte ou non</p>
 
</div>
 
<div class="description detailed hidden">
<p>Definit si l'on veut afficher le contexte ou non</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$contexte</var></dt>
<dd><code>boolean</code><br>true si on veut afficher le contexte, false sinon, par défaut vaut false</dd>
</dl></div>
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="gererException" id="_gererException">
 
<td class="attributes"><code>
public static
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_gererException">#</a>
<code><a href="source-class-GestionnaireException.html#82-93" title="Go to source code">gererException</a>( <span><code><a href="class-Exception.html">Exception</a></code> <var>$e</var></span> )</code>
 
<div class="description short">
<p>Fonction de gestion des exceptions, remplace le handler par défaut. Si une
boucle génère de multiple exception (ou erreur) identique une seule sera
stockée.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Fonction de gestion des exceptions, remplace le handler par défaut. Si une
boucle génère de multiple exception (ou erreur) identique une seule sera
stockée.</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$e</var></dt>
<dd><code><code><a href="class-Exception.html">Exception</a></code></code><br>$e l'exception à traiter</dd>
</dl></div>
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="gererErreur" id="_gererErreur">
 
<td class="attributes"><code>
public static
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_gererErreur">#</a>
<code><a href="source-class-GestionnaireException.html#95-110" title="Go to source code">gererErreur</a>( <span>integer <var>$niveau</var></span>, <span>string <var>$message</var></span>, <span>string <var>$fichier</var></span>, <span>integer <var>$ligne</var></span>, <span>string <var>$contexte</var></span> )</code>
 
<div class="description short">
<p>Gère les erreurs en les convertissant en exceptions (remplace la fonction
gestion d'erreurs native de php)</p>
 
</div>
 
<div class="description detailed hidden">
<p>Gère les erreurs en les convertissant en exceptions (remplace la fonction
gestion d'erreurs native de php)</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$niveau</var></dt>
<dd><code>integer</code><br>$niveau le niveau de l'erreur</dd>
<dt><var>$message</var></dt>
<dd><code>string</code><br>$message le message associé à l'erreur</dd>
<dt><var>$fichier</var></dt>
<dd><code>string</code><br>$fichier le nom du fichier où l'erreur s'est produite</dd>
<dt><var>$ligne</var></dt>
<dd><code>integer</code><br>$ligne la ligne où l'erreur s'est produite</dd>
<dt><var>$contexte</var></dt>
<dd><code>string</code><br>$contexte le contexte associé à l'erreur</dd>
</dl></div>
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getExceptions" id="_getExceptions">
 
<td class="attributes"><code>
public static
string
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getExceptions">#</a>
<code><a href="source-class-GestionnaireException.html#112-121" title="Go to source code">getExceptions</a>( )</code>
 
<div class="description short">
<p>Renvoie les exceptions au format (X)HTML ou bien au format texte suivant le
mode d'utilisation de PHP.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Renvoie les exceptions au format (X)HTML ou bien au format texte suivant le
mode d'utilisation de PHP.</p>
 
 
<h4>Deprecated</h4>
<div class="list">
</div>
 
 
<h4>Returns</h4>
<div class="list">
<code>string</code><br>les exceptions formatées en texte ou (X)HTML.<br>
</div>
 
 
<h4>Since</h4>
<div class="list">
0.3<br>
</div>
<h4>See</h4>
<div class="list">
<code><code><a href="class-GestionnaireException.html#_getExceptionsFormatees">GestionnaireException::getExceptionsFormatees()</a></code></code><br>
</div>
 
 
</div>
</div></td>
</tr>
<tr data-order="getExceptionsFormatees" id="_getExceptionsFormatees">
 
<td class="attributes"><code>
public static
string
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getExceptionsFormatees">#</a>
<code><a href="source-class-GestionnaireException.html#123-144" title="Go to source code">getExceptionsFormatees</a>( )</code>
 
<div class="description short">
<p>Renvoie les exceptions au format (X)HTML ou bien au format texte suivant le
mode d'utilisation de PHP.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Renvoie les exceptions au format (X)HTML ou bien au format texte suivant le
mode d'utilisation de PHP.</p>
 
 
 
 
<h4>Returns</h4>
<div class="list">
<code>string</code><br>les exceptions formatées en texte ou (X)HTML.<br>
</div>
 
 
<h4>Since</h4>
<div class="list">
0.3<br>
</div>
 
 
</div>
</div></td>
</tr>
<tr data-order="getExceptionsTriees" id="_getExceptionsTriees">
 
<td class="attributes"><code>
public static
array
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getExceptionsTriees">#</a>
<code><a href="source-class-GestionnaireException.html#146-166" title="Go to source code">getExceptionsTriees</a>( )</code>
 
<div class="description short">
<p>Renvoie le tableau d'objets Exception générées par le script PHP triées
du niveau de sévérité le plus élevé au moins élevé. Format du tableau :
array{sévérité_1 = array{Exception1, Exception2, Exception3,...},
sévérité_1 = array{Exception1, Exception2, ...}, ...}; ATTENTION : si vous
utilisez cette méthode, c'est à vous de gérer l'affichage des Exceptions. Le
gestionnaire d'exception n'enverra plus rien au navigateur ou à la console.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Renvoie le tableau d'objets Exception générées par le script PHP triées
du niveau de sévérité le plus élevé au moins élevé. Format du tableau :
array{sévérité_1 = array{Exception1, Exception2, Exception3,...},
sévérité_1 = array{Exception1, Exception2, ...}, ...}; ATTENTION : si vous
utilisez cette méthode, c'est à vous de gérer l'affichage des Exceptions. Le
gestionnaire d'exception n'enverra plus rien au navigateur ou à la console.</p>
 
 
 
 
<h4>Returns</h4>
<div class="list">
<code>array</code><br>le tableau trié d'objet Exception.<br>
</div>
 
 
<h4>Since</h4>
<div class="list">
0.3<br>
</div>
 
 
</div>
</div></td>
</tr>
<tr data-order="formaterExceptionTxt" id="_formaterExceptionTxt">
 
<td class="attributes"><code>
public static
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_formaterExceptionTxt">#</a>
<code><a href="source-class-GestionnaireException.html#179-194" title="Go to source code">formaterExceptionTxt</a>( <span><code><a href="class-Exception.html">Exception</a></code> <var>$e</var></span> )</code>
 
<div class="description short">
<p>Formate en texte une exception passée en paramètre.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Formate en texte une exception passée en paramètre.</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$e</var></dt>
<dd><code><code><a href="class-Exception.html">Exception</a></code></code><br>l'exception à formater.</dd>
</dl></div>
 
 
 
<h4>Since</h4>
<div class="list">
0.3<br>
</div>
 
 
</div>
</div></td>
</tr>
<tr data-order="formaterExceptionXhtml" id="_formaterExceptionXhtml">
 
<td class="attributes"><code>
public static
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_formaterExceptionXhtml">#</a>
<code><a href="source-class-GestionnaireException.html#196-214" title="Go to source code">formaterExceptionXhtml</a>( <span><code><a href="class-Exception.html">Exception</a></code> <var>$e</var></span> )</code>
 
<div class="description short">
<p>Formate en (X)HTML une exception passée en paramètre.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Formate en (X)HTML une exception passée en paramètre.</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$e</var></dt>
<dd><code><code><a href="class-Exception.html">Exception</a></code></code><br>l'exception à formater.</dd>
</dl></div>
 
 
 
<h4>Since</h4>
<div class="list">
0.3<br>
</div>
 
 
</div>
</div></td>
</tr>
<tr data-order="__destruct" id="___destruct">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#___destruct">#</a>
<code><a href="source-class-GestionnaireException.html#216-225" title="Go to source code">__destruct</a>( )</code>
 
<div class="description short">
<p>Lors de la destruction de la classe si des exceptions n'ont pas été
affichées, et si le débogage est à true, elles sont affichées.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Lors de la destruction de la classe si des exceptions n'ont pas été
affichées, et si le débogage est à true, elles sont affichées.</p>
 
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
</table>
 
 
 
 
 
 
 
 
<table class="summary" id="constants">
<caption>Constants summary</caption>
<tr data-order="MODE_CLI" id="MODE_CLI">
 
<td class="attributes"><code>string</code></td>
<td class="name"><code>
<a href="source-class-GestionnaireException.html#20" title="Go to source code"><b>MODE_CLI</b></a>
</code></td>
<td class="value"><code><span class="php-quote">'cli'</span></code></td>
<td class="description"><div>
<a href="#MODE_CLI" class="anchor">#</a>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
</div>
</div></td>
</tr>
</table>
 
 
 
 
 
 
 
 
 
 
</div>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/class-PDOStatement.html
New file
0,0 → 1,790
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="generator" content="ApiGen 2.8.0">
 
<title>Class PDOStatement | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li><a href="package-Framework.html">Framework</a>
</li>
<li class="active"><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li class="active"><a href="class-PDOStatement.html">PDOStatement</a></li>
</ul>
 
<h3>Interfaces</h3>
<ul>
<li><a href="class-Traversable.html">Traversable</a></li>
</ul>
 
 
<h3>Exceptions</h3>
<ul>
<li><a href="class-Exception.html">Exception</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="package-PHP.html" title="Summary of PHP"><span>Package</span></a>
</li>
<li class="active">
<span>Class</span> </li>
</ul>
<ul>
<li>
<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
</li>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<div id="content" class="class">
<h1>Class PDOStatement</h1>
 
 
 
<dl class="tree">
<dd style="padding-left:0px">
<b><span>PDOStatement</span></b>
implements
<a href="class-Traversable.html"><span>Traversable</span></a>
</dd>
</dl>
 
 
 
 
 
 
 
 
<div class="info">
<b>PHP Extension:</b> <a href="http://php.net/manual/book.pdo.php" title="Go to PHP documentation">PDO</a><br>
 
<b>Documented at</b> <a href="http://php.net/manual/class.pdostatement.php" title="Go to PHP documentation">php.net</a><br>
</div>
 
 
 
<table class="summary" id="methods">
<caption>Methods summary</caption>
<tr data-order="execute" id="_execute">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_execute">#</a>
<code><a href="http://php.net/manual/pdostatement.execute.php" title="Go to PHP documentation">execute</a>( <span>mixed <var>$bound_input_params</var></span> )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="fetch" id="_fetch">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_fetch">#</a>
<code><a href="http://php.net/manual/pdostatement.fetch.php" title="Go to PHP documentation">fetch</a>( <span>mixed <var>$how</var></span>, <span>mixed <var>$orientation</var></span>, <span>mixed <var>$offset</var></span> )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="bindParam" id="_bindParam">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_bindParam">#</a>
<code><a href="http://php.net/manual/pdostatement.bindparam.php" title="Go to PHP documentation">bindParam</a>( <span>mixed <var>$paramno</var></span>, <span>mixed <var>&amp; $param</var></span>, <span>mixed <var>$type</var></span>, <span>mixed <var>$maxlen</var></span>, <span>mixed <var>$driverdata</var></span> )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="bindColumn" id="_bindColumn">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_bindColumn">#</a>
<code><a href="http://php.net/manual/pdostatement.bindcolumn.php" title="Go to PHP documentation">bindColumn</a>( <span>mixed <var>$column</var></span>, <span>mixed <var>&amp; $param</var></span>, <span>mixed <var>$type</var></span>, <span>mixed <var>$maxlen</var></span>, <span>mixed <var>$driverdata</var></span> )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="bindValue" id="_bindValue">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_bindValue">#</a>
<code><a href="http://php.net/manual/pdostatement.bindvalue.php" title="Go to PHP documentation">bindValue</a>( <span>mixed <var>$paramno</var></span>, <span>mixed <var>$param</var></span>, <span>mixed <var>$type</var></span> )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="rowCount" id="_rowCount">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_rowCount">#</a>
<code><a href="http://php.net/manual/pdostatement.rowcount.php" title="Go to PHP documentation">rowCount</a>( )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="fetchColumn" id="_fetchColumn">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_fetchColumn">#</a>
<code><a href="http://php.net/manual/pdostatement.fetchcolumn.php" title="Go to PHP documentation">fetchColumn</a>( <span>mixed <var>$column_number</var></span> )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="fetchAll" id="_fetchAll">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_fetchAll">#</a>
<code><a href="http://php.net/manual/pdostatement.fetchall.php" title="Go to PHP documentation">fetchAll</a>( <span>mixed <var>$how</var></span>, <span>mixed <var>$class_name</var></span>, <span>mixed <var>$ctor_args</var></span> )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="fetchObject" id="_fetchObject">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_fetchObject">#</a>
<code><a href="http://php.net/manual/pdostatement.fetchobject.php" title="Go to PHP documentation">fetchObject</a>( <span>mixed <var>$class_name</var></span>, <span>mixed <var>$ctor_args</var></span> )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="errorCode" id="_errorCode">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_errorCode">#</a>
<code><a href="http://php.net/manual/pdostatement.errorcode.php" title="Go to PHP documentation">errorCode</a>( )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="errorInfo" id="_errorInfo">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_errorInfo">#</a>
<code><a href="http://php.net/manual/pdostatement.errorinfo.php" title="Go to PHP documentation">errorInfo</a>( )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="setAttribute" id="_setAttribute">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_setAttribute">#</a>
<code><a href="http://php.net/manual/pdostatement.setattribute.php" title="Go to PHP documentation">setAttribute</a>( <span>mixed <var>$attribute</var></span>, <span>mixed <var>$value</var></span> )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getAttribute" id="_getAttribute">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getAttribute">#</a>
<code><a href="http://php.net/manual/pdostatement.getattribute.php" title="Go to PHP documentation">getAttribute</a>( <span>mixed <var>$attribute</var></span> )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="columnCount" id="_columnCount">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_columnCount">#</a>
<code><a href="http://php.net/manual/pdostatement.columncount.php" title="Go to PHP documentation">columnCount</a>( )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="getColumnMeta" id="_getColumnMeta">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getColumnMeta">#</a>
<code><a href="http://php.net/manual/pdostatement.getcolumnmeta.php" title="Go to PHP documentation">getColumnMeta</a>( <span>mixed <var>$column</var></span> )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="setFetchMode" id="_setFetchMode">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_setFetchMode">#</a>
<code><a href="http://php.net/manual/pdostatement.setfetchmode.php" title="Go to PHP documentation">setFetchMode</a>( <span>mixed <var>$mode</var></span>, <span>mixed <var>$params</var></span> )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="nextRowset" id="_nextRowset">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_nextRowset">#</a>
<code><a href="http://php.net/manual/pdostatement.nextrowset.php" title="Go to PHP documentation">nextRowset</a>( )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="closeCursor" id="_closeCursor">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_closeCursor">#</a>
<code><a href="http://php.net/manual/pdostatement.closecursor.php" title="Go to PHP documentation">closeCursor</a>( )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="debugDumpParams" id="_debugDumpParams">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_debugDumpParams">#</a>
<code><a href="http://php.net/manual/pdostatement.debugdumpparams.php" title="Go to PHP documentation">debugDumpParams</a>( )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="__wakeup" id="___wakeup">
 
<td class="attributes"><code>
final public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#___wakeup">#</a>
<code><a href="http://php.net/manual/pdostatement.wakeup.php" title="Go to PHP documentation">__wakeup</a>( )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="__sleep" id="___sleep">
 
<td class="attributes"><code>
final public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#___sleep">#</a>
<code><a href="http://php.net/manual/pdostatement.sleep.php" title="Go to PHP documentation">__sleep</a>( )</code>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
</table>
 
 
 
 
 
 
 
 
 
 
 
 
<table class="summary" id="properties">
<caption>Properties summary</caption>
<tr data-order="queryString" id="$queryString">
<td class="attributes"><code>
public
mixed
</code></td>
 
<td class="name">
<a href="http://php.net/manual/class.pdostatement.php#pdostatement.props.querystring" title="Go to PHP documentation"><var>$queryString</var></a>
</td>
<td class="value"><code></code></td>
<td class="description"><div>
<a href="#$queryString" class="anchor">#</a>
 
<div class="description short">
</div>
 
<div class="description detailed hidden">
 
</div>
</div></td>
</tr>
</table>
 
 
 
 
 
 
</div>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/function-autoloadAppliDefaut.html
New file
0,0 → 1,147
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="generator" content="ApiGen 2.8.0">
 
<title>Function autoloadAppliDefaut | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li class="active"><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
 
 
 
 
<h3>Functions</h3>
<ul>
<li class="active"><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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="package-Framework.html" title="Summary of Framework"><span>Package</span></a>
</li>
<li class="active">
<span>Function</span> </li>
</ul>
<ul>
<li>
<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
</li>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<div id="content" class="function">
<h1>Function autoloadAppliDefaut</h1>
 
 
 
<div class="info">
<b>Package:</b> <a href="package-Framework.html">Framework</a><br>
<b>Copyright:</b>
1999-2009 Tela Botanica (<a
href="mailto:accueil&#64;tela-botanica.org">accueil&#64;<!-- -->tela-botanica.org</a>)<br>
<b>License:</b>
<a href="GPL">v3 &lt;http://www.gnu.org/licenses/gpl.txt&gt;</a><br>
<b>License:</b>
<a href="CECILL">v2 &lt;http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt&gt;</a><br>
<b>Author:</b>
Aurelien PERONNET &lt;<a
href="mailto:aurelien&#64;tela-botanica.org">aurelien&#64;<!-- -->tela-botanica.org</a>&gt;
// Autres auteurs :<br>
<b>Author:</b>
Jean-Pascal MILCENT &lt;<a
href="mailto:jpm&#64;tela-botanica.org">jpm&#64;<!-- -->tela-botanica.org</a>&gt;<br>
<b>Located at</b> <a href="source-function-autoloadAppliDefaut.html#44-56" title="Go to source code">autoload.inc.php</a><br>
</div>
 
 
<table class="summary" id="parameters">
<caption>Parameters summary</caption>
<tr id="$nom_classe">
<td class="name"><code>mixed</code></td>
<td class="value"><code><var>$nom_classe</var></code></td>
<td>
</td>
</tr>
</table>
 
 
 
</div>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/class-Traversable.html
New file
0,0 → 1,147
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="generator" content="ApiGen 2.8.0">
 
<title>Interface Traversable | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li><a href="package-Framework.html">Framework</a>
</li>
<li class="active"><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-PDOStatement.html">PDOStatement</a></li>
</ul>
 
<h3>Interfaces</h3>
<ul>
<li class="active"><a href="class-Traversable.html">Traversable</a></li>
</ul>
 
 
<h3>Exceptions</h3>
<ul>
<li><a href="class-Exception.html">Exception</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="package-PHP.html" title="Summary of PHP"><span>Package</span></a>
</li>
<li class="active">
<span>Class</span> </li>
</ul>
<ul>
<li>
<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
</li>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<div id="content" class="class">
<h1>Interface Traversable</h1>
 
 
 
 
 
 
 
<div>
<h4>Direct known implementers</h4>
<a href="class-PDOStatement.html">PDOStatement</a>
</div>
 
 
 
 
<div class="info">
<b>PHP Extension:</b> <a href="http://php.net/manual" title="Go to PHP documentation">Core</a><br>
 
<b>Documented at</b> <a href="http://php.net/manual/class.traversable.php" title="Go to PHP documentation">php.net</a><br>
</div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
</div>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/source-class-Log.html
New file
0,0 → 1,287
<!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 Log.php | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li class="active"><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li class="active"><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
 
 
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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="package-Framework.html" title="Summary of Framework"><span>Package</span></a>
</li>
<li>
<a href="class-Log.html" title="Summary of Log"><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>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<pre><code><span id="1" class="l"><a class="l" href="#1"> 1: </a><span class="xlang">&lt;?php</span>
</span><span id="2" class="l"><a class="l" href="#2"> 2: </a><span class="php-comment">//declare(encoding='UTF-8');</span>
</span><span id="3" class="l"><a class="l" href="#3"> 3: </a><span class="php-comment">/**
</span></span><span id="4" class="l"><a class="l" href="#4"> 4: </a><span class="php-comment"> * Classe permettant de logger des messages dans les fichier situés dans le dossier de log.
</span></span><span id="5" class="l"><a class="l" href="#5"> 5: </a><span class="php-comment"> *
</span></span><span id="6" class="l"><a class="l" href="#6"> 6: </a><span class="php-comment"> * @category PHP 5.2
</span></span><span id="7" class="l"><a class="l" href="#7"> 7: </a><span class="php-comment"> * @package Framework
</span></span><span id="8" class="l"><a class="l" href="#8"> 8: </a><span class="php-comment"> * @author aurelien &lt;aurelien@tela-botanica.org&gt;
</span></span><span id="9" class="l"><a class="l" href="#9"> 9: </a><span class="php-comment"> * @copyright 2009 Tela-Botanica
</span></span><span id="10" class="l"><a class="l" href="#10"> 10: </a><span class="php-comment"> * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
</span></span><span id="11" class="l"><a class="l" href="#11"> 11: </a><span class="php-comment"> * @version SVN: $Id: Log.php 255 2010-12-23 10:37:30Z jpm $
</span></span><span id="12" class="l"><a class="l" href="#12"> 12: </a><span class="php-comment"> * @link /doc/framework/
</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><span id="15" class="l"><a class="l" href="#15"> 15: </a><span class="php-keyword1">class</span> <span class="php-keyword2">Log</span> {
</span><span id="16" class="l"><a class="l" href="#16"> 16: </a>
</span><span id="17" class="l"><a class="l" href="#17"> 17: </a> <span class="php-comment">/**
</span></span><span id="18" class="l"><a class="l" href="#18"> 18: </a><span class="php-comment"> * Boolean indiquant si l'on doit utiliser les logs ou pas
</span></span><span id="19" class="l"><a class="l" href="#19"> 19: </a><span class="php-comment"> */</span>
</span><span id="20" class="l"><a class="l" href="#20"> 20: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-var"><a id="$logger" href="#$logger">$logger</a></span> = <span class="php-keyword1">false</span>;
</span><span id="21" class="l"><a class="l" href="#21"> 21: </a>
</span><span id="22" class="l"><a class="l" href="#22"> 22: </a> <span class="php-comment">/**
</span></span><span id="23" class="l"><a class="l" href="#23"> 23: </a><span class="php-comment"> * Tableau associatif stockant les descripteurs de fichiers
</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-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-var"><a id="$fichiersLog" href="#$fichiersLog">$fichiersLog</a></span> = <span class="php-keyword1">array</span>();
</span><span id="26" class="l"><a class="l" href="#26"> 26: </a>
</span><span id="27" class="l"><a class="l" href="#27"> 27: </a> <span class="php-comment">/**
</span></span><span id="28" class="l"><a class="l" href="#28"> 28: </a><span class="php-comment"> * Chemin de base du dossier log de l'application
</span></span><span id="29" class="l"><a class="l" href="#29"> 29: </a><span class="php-comment"> */</span>
</span><span id="30" class="l"><a class="l" href="#30"> 30: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-var"><a id="$cheminLogs" href="#$cheminLogs">$cheminLogs</a></span> = <span class="php-quote">''</span>;
</span><span id="31" class="l"><a class="l" href="#31"> 31: </a>
</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-comment"> * Booleen indiquant si l'on peut correctement écrire dans les fichiers de logs
</span></span><span id="34" class="l"><a class="l" href="#34"> 34: </a><span class="php-comment"> */</span>
</span><span id="35" class="l"><a class="l" href="#35"> 35: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-var"><a id="$droitLogger" href="#$droitLogger">$droitLogger</a></span> = <span class="php-keyword1">true</span>;
</span><span id="36" class="l"><a class="l" href="#36"> 36: </a>
</span><span id="37" class="l"><a class="l" href="#37"> 37: </a> <span class="php-comment">/**
</span></span><span id="38" class="l"><a class="l" href="#38"> 38: </a><span class="php-comment"> * Zone horaire (pour éviter des avertissements dans les dates)
</span></span><span id="39" class="l"><a class="l" href="#39"> 39: </a><span class="php-comment"> */</span>
</span><span id="40" class="l"><a class="l" href="#40"> 40: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-var"><a id="$timeZone" href="#$timeZone">$timeZone</a></span> = <span class="php-quote">'Europe/Paris'</span>;
</span><span id="41" class="l"><a class="l" href="#41"> 41: </a>
</span><span id="42" class="l"><a class="l" href="#42"> 42: </a> <span class="php-comment">/**
</span></span><span id="43" class="l"><a class="l" href="#43"> 43: </a><span class="php-comment"> * Taille maximum d'un fichier de log avant que celui ne soit archivé (en octets)
</span></span><span id="44" class="l"><a class="l" href="#44"> 44: </a><span class="php-comment"> */</span>
</span><span id="45" class="l"><a class="l" href="#45"> 45: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-var"><a id="$tailleMax" href="#$tailleMax">$tailleMax</a></span> = <span class="php-num">10000</span>;
</span><span id="46" class="l"><a class="l" href="#46"> 46: </a>
</span><span id="47" class="l"><a class="l" href="#47"> 47: </a> <span class="php-comment">/**
</span></span><span id="48" class="l"><a class="l" href="#48"> 48: </a><span class="php-comment"> * séparateur de dossier dans un chemin
</span></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-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-var"><a id="$sd" href="#$sd">$sd</a></span> = DIRECTORY_SEPARATOR;
</span><span id="51" class="l"><a class="l" href="#51"> 51: </a>
</span><span id="52" class="l"><a class="l" href="#52"> 52: </a> <span class="php-comment">/**
</span></span><span id="53" class="l"><a class="l" href="#53"> 53: </a><span class="php-comment"> * Extension des fichiers de log
</span></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-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-var"><a id="$ext" href="#$ext">$ext</a></span> = <span class="php-quote">'.log'</span>;
</span><span id="56" class="l"><a class="l" href="#56"> 56: </a>
</span><span id="57" class="l"><a class="l" href="#57"> 57: </a> <span class="php-comment">/**
</span></span><span id="58" class="l"><a class="l" href="#58"> 58: </a><span class="php-comment"> * Initialiser les logs par défaut, sans tenir comptes des paramêtres de config.
</span></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-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_initialiser" href="#_initialiser">initialiser</a>() {
</span><span id="61" class="l"><a class="l" href="#61"> 61: </a> <span class="php-comment">// gestion de la timezone pour éviter des erreurs</span>
</span><span id="62" class="l"><a class="l" href="#62"> 62: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">function_exists</span>(<span class="php-quote">'date_default_timezone_set'</span>) &amp;&amp; <span class="php-keyword2">function_exists</span>(<span class="php-quote">'date_default_timezone_get'</span>)) {
</span><span id="63" class="l"><a class="l" href="#63"> 63: </a> <span class="php-keyword2">date_default_timezone_set</span>(self::<span class="php-var">$timeZone</span>);
</span><span id="64" class="l"><a class="l" href="#64"> 64: </a> }
</span><span id="65" class="l"><a class="l" href="#65"> 65: </a>
</span><span id="66" class="l"><a class="l" href="#66"> 66: </a> <span class="php-keyword1">if</span> (self::<span class="php-var">$logger</span> &amp;&amp; (!<span class="php-keyword2">is_dir</span>(self::<span class="php-var">$cheminLogs</span>) || !<span class="php-keyword2">is_writable</span>(self::<span class="php-var">$cheminLogs</span>))) {
</span><span id="67" class="l"><a class="l" href="#67"> 67: </a> self::desactiverEcriture();
</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><span id="70" class="l"><a class="l" href="#70"> 70: </a>
</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-comment"> * Configure le Log à partir des paramêtres de config.
</span></span><span id="73" class="l"><a class="l" href="#73"> 73: </a><span class="php-comment"> */</span>
</span><span id="74" class="l"><a class="l" href="#74"> 74: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_configurer" href="#_configurer">configurer</a>() {
</span><span id="75" class="l"><a class="l" href="#75"> 75: </a> self::<span class="php-var">$sd</span> = Config::get(<span class="php-quote">'ds'</span>);
</span><span id="76" class="l"><a class="l" href="#76"> 76: </a> self::<span class="php-var">$cheminLogs</span> = Config::get(<span class="php-quote">'chemin_logs'</span>);
</span><span id="77" class="l"><a class="l" href="#77"> 77: </a> self::<span class="php-var">$timeZone</span> = (Config::get(<span class="php-quote">'fw_timezone'</span>) != <span class="php-quote">''</span>) ? Config::get(<span class="php-quote">'fw_timezone'</span>) : self::<span class="php-var">$timeZone</span>;
</span><span id="78" class="l"><a class="l" href="#78"> 78: </a> self::<span class="php-var">$tailleMax</span> = (Config::get(<span class="php-quote">'fw_taille_max_logs'</span>) != <span class="php-quote">''</span>) ? Config::get(<span class="php-quote">'fw_taille_max_logs'</span>) : self::<span class="php-var">$tailleMax</span>;
</span><span id="79" class="l"><a class="l" href="#79"> 79: </a> self::<span class="php-var">$logger</span> = (Config::get(<span class="php-quote">'fw_log_debogage'</span>) != <span class="php-quote">''</span>) ? Config::get(<span class="php-quote">'fw_log_debogage'</span>) : self::<span class="php-var">$logger</span>;
</span><span id="80" class="l"><a class="l" href="#80"> 80: </a> self::initialiser();
</span><span id="81" class="l"><a class="l" href="#81"> 81: </a> }
</span><span id="82" class="l"><a class="l" href="#82"> 82: </a>
</span><span id="83" class="l"><a class="l" href="#83"> 83: </a> <span class="php-comment">/**
</span></span><span id="84" class="l"><a class="l" href="#84"> 84: </a><span class="php-comment"> * Ajoute une entrée au log spécifié par le paramètre $nomFichier
</span></span><span id="85" class="l"><a class="l" href="#85"> 85: </a><span class="php-comment"> * @param string $nomFichier le nom du fichier dans lequel écrire
</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">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_ajouterEntree" href="#_ajouterEntree">ajouterEntree</a>(<span class="php-var">$nomFichier</span>, <span class="php-var">$entree</span>, <span class="php-var">$mode</span> = <span class="php-quote">'a+'</span>) {
</span><span id="88" class="l"><a class="l" href="#88"> 88: </a> <span class="php-keyword1">if</span> (self::<span class="php-var">$droitLogger</span>) {
</span><span id="89" class="l"><a class="l" href="#89"> 89: </a> <span class="php-var">$date</span> = <span class="php-quote">&quot;\n&quot;</span>.<span class="php-quote">&quot;\n&quot;</span>.<span class="php-keyword2">date</span>(<span class="php-quote">'d m Y H:i'</span>).<span class="php-quote">&quot;\n&quot;</span> ;
</span><span id="90" class="l"><a class="l" href="#90"> 90: </a>
</span><span id="91" class="l"><a class="l" href="#91"> 91: </a> <span class="php-comment">// si le fichier est déjà dans le tableau et qu'on peut y écrire</span>
</span><span id="92" class="l"><a class="l" href="#92"> 92: </a> <span class="php-keyword1">if</span>(self::verifierOuvrirFichier(<span class="php-var">$nomFichier</span>,<span class="php-var">$mode</span>)) {
</span><span id="93" class="l"><a class="l" href="#93"> 93: </a> <span class="php-comment">// on y écrit le message de log</span>
</span><span id="94" class="l"><a class="l" href="#94"> 94: </a> <span class="php-keyword2">fwrite</span>(self::<span class="php-var">$fichiersLog</span>[<span class="php-var">$nomFichier</span>],<span class="php-var">$date</span>.<span class="php-var">$entree</span>);
</span><span id="95" class="l"><a class="l" href="#95"> 95: </a> <span class="php-comment">// on vérifie si le fichier ne dépasse pas la taille maximale</span>
</span><span id="96" class="l"><a class="l" href="#96"> 96: </a> self::verifierTailleFichierOuArchiver(<span class="php-var">$nomFichier</span>);
</span><span id="97" class="l"><a class="l" href="#97"> 97: </a> } <span class="php-keyword1">else</span> {
</span><span id="98" class="l"><a class="l" href="#98"> 98: </a> <span class="php-comment">// sinon on interdit l'écriture</span>
</span><span id="99" class="l"><a class="l" href="#99"> 99: </a> self::desactiverEcriture(<span class="php-var">$nomFichier</span>);
</span><span id="100" class="l"><a class="l" href="#100">100: </a> }
</span><span id="101" class="l"><a class="l" href="#101">101: </a> }
</span><span id="102" class="l"><a class="l" href="#102">102: </a> }
</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"> * Vide un fichier log indiqué
</span></span><span id="106" class="l"><a class="l" href="#106">106: </a><span class="php-comment"> * @param string $nomFichier le nom du fichier à vider
</span></span><span id="107" class="l"><a class="l" href="#107">107: </a><span class="php-comment"> */</span>
</span><span id="108" class="l"><a class="l" href="#108">108: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_viderLog" href="#_viderLog">viderLog</a>(<span class="php-var">$nomFichier</span>) {
</span><span id="109" class="l"><a class="l" href="#109">109: </a> self::ajouterEntree(<span class="php-var">$nomFichier</span>, <span class="php-quote">''</span>, <span class="php-quote">'w'</span>);
</span><span id="110" class="l"><a class="l" href="#110">110: </a> }
</span><span id="111" class="l"><a class="l" href="#111">111: </a>
</span><span id="112" class="l"><a class="l" href="#112">112: </a> <span class="php-comment">/**
</span></span><span id="113" class="l"><a class="l" href="#113">113: </a><span class="php-comment"> * Vérifie la présence d'un fichier dans le tableau, ses droits d'écriture, l'ouvre si nécessaire.
</span></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"> * @param string $nomFichier le nom du fichier dont on doit vérifier la présence
</span></span><span id="116" class="l"><a class="l" href="#116">116: </a><span class="php-comment"> * @return boolean true si le fichier est ouvert ou maintenant accessible, false sinon
</span></span><span id="117" class="l"><a class="l" href="#117">117: </a><span class="php-comment"> */</span>
</span><span id="118" class="l"><a class="l" href="#118">118: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_verifierOuvrirFichier" href="#_verifierOuvrirFichier">verifierOuvrirFichier</a>(<span class="php-var">$nomFichier</span>,<span class="php-var">$mode</span>) {
</span><span id="119" class="l"><a class="l" href="#119">119: </a> <span class="php-comment">// le fichier est il déjà ouvert ?</span>
</span><span id="120" class="l"><a class="l" href="#120">120: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">in_array</span>(<span class="php-var">$nomFichier</span>, self::<span class="php-var">$fichiersLog</span>)) {
</span><span id="121" class="l"><a class="l" href="#121">121: </a> <span class="php-comment">// si oui peut on y écrire ?</span>
</span><span id="122" class="l"><a class="l" href="#122">122: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">is_writable</span>(self::<span class="php-var">$cheminLogs</span>.<span class="php-var">$nomFichier</span>.self::<span class="php-var">$ext</span>)) {
</span><span id="123" class="l"><a class="l" href="#123">123: </a> <span class="php-comment">// si oui on renvoie le descripteur</span>
</span><span id="124" class="l"><a class="l" href="#124">124: </a> <span class="php-keyword1">return</span> <span class="php-keyword1">true</span>;
</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-keyword1">return</span> <span class="php-keyword1">false</span>;
</span><span id="127" class="l"><a class="l" href="#127">127: </a> } <span class="php-keyword1">else</span> {
</span><span id="128" class="l"><a class="l" href="#128">128: </a> <span class="php-comment">// sinon on l'ouvre</span>
</span><span id="129" class="l"><a class="l" href="#129">129: </a> <span class="php-var">$fp</span> = @<span class="php-keyword2">fopen</span>(self::<span class="php-var">$cheminLogs</span>.<span class="php-var">$nomFichier</span>.self::<span class="php-var">$ext</span>,<span class="php-var">$mode</span>);
</span><span id="130" class="l"><a class="l" href="#130">130: </a> <span class="php-comment">// si l'ouverture a réussi et si le fichier a les droits d'écriture</span>
</span><span id="131" class="l"><a class="l" href="#131">131: </a> <span class="php-keyword1">if</span> (<span class="php-var">$fp</span> &amp;&amp; <span class="php-keyword2">is_writable</span>(self::<span class="php-var">$cheminLogs</span>.<span class="php-var">$nomFichier</span>.self::<span class="php-var">$ext</span>)) {
</span><span id="132" class="l"><a class="l" href="#132">132: </a> <span class="php-comment">// si oui on renvoie le descripteur qu'on ajoute au tableau</span>
</span><span id="133" class="l"><a class="l" href="#133">133: </a> self::<span class="php-var">$fichiersLog</span>[<span class="php-var">$nomFichier</span>] = <span class="php-var">$fp</span>;
</span><span id="134" class="l"><a class="l" href="#134">134: </a> <span class="php-keyword1">return</span> <span class="php-keyword1">true</span>;
</span><span id="135" class="l"><a class="l" href="#135">135: </a> }
</span><span id="136" class="l"><a class="l" href="#136">136: </a> <span class="php-keyword1">return</span> <span class="php-keyword1">false</span>;
</span><span id="137" class="l"><a class="l" href="#137">137: </a> }
</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><span id="140" class="l"><a class="l" href="#140">140: </a> <span class="php-comment">/**
</span></span><span id="141" class="l"><a class="l" href="#141">141: </a><span class="php-comment"> * Vérifie la taille d'un fichier donné et si celle ci est trop importante
</span></span><span id="142" class="l"><a class="l" href="#142">142: </a><span class="php-comment"> * archive le fichier de log
</span></span><span id="143" class="l"><a class="l" href="#143">143: </a><span class="php-comment"> * @param string $nomFichier nom du fichier à vérifier
</span></span><span id="144" class="l"><a class="l" href="#144">144: </a><span class="php-comment"> */</span>
</span><span id="145" class="l"><a class="l" href="#145">145: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_verifierTailleFichierOuArchiver" href="#_verifierTailleFichierOuArchiver">verifierTailleFichierOuArchiver</a>(<span class="php-var">$nomFichier</span>) {
</span><span id="146" class="l"><a class="l" href="#146">146: </a> <span class="php-keyword1">if</span>(<span class="php-keyword2">filesize</span>(self::<span class="php-var">$cheminLogs</span>.<span class="php-var">$nomFichier</span>.self::<span class="php-var">$ext</span>) &gt; self::<span class="php-var">$tailleMax</span>) {
</span><span id="147" class="l"><a class="l" href="#147">147: </a> <span class="php-keyword2">rename</span>(self::<span class="php-var">$cheminLogs</span>.<span class="php-var">$nomFichier</span>.self::<span class="php-var">$ext</span>,self::<span class="php-var">$cheminLogs</span>.<span class="php-var">$nomFichier</span>.<span class="php-keyword2">date</span>(<span class="php-quote">'d_m_Y_H:i'</span>).self::<span class="php-var">$ext</span>);
</span><span id="148" class="l"><a class="l" href="#148">148: </a> self::ajouterEntree(<span class="php-var">$nomFichier</span>,<span class="php-quote">''</span>);
</span><span id="149" class="l"><a class="l" href="#149">149: </a> }
</span><span id="150" class="l"><a class="l" href="#150">150: </a> }
</span><span id="151" class="l"><a class="l" href="#151">151: </a>
</span><span id="152" class="l"><a class="l" href="#152">152: </a> <span class="php-comment">/**
</span></span><span id="153" class="l"><a class="l" href="#153">153: </a><span class="php-comment"> * Désactive l'écriture du log et envoie un message au gestionnaire d'erreurs
</span></span><span id="154" class="l"><a class="l" href="#154">154: </a><span class="php-comment"> * @param string $nomFichier le nom du fichier qui a causé l'erreur
</span></span><span id="155" class="l"><a class="l" href="#155">155: </a><span class="php-comment"> */</span>
</span><span id="156" class="l"><a class="l" href="#156">156: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_desactiverEcriture" href="#_desactiverEcriture">desactiverEcriture</a>(<span class="php-var">$nomFichier</span> = <span class="php-quote">''</span>) {
</span><span id="157" class="l"><a class="l" href="#157">157: </a> self::<span class="php-var">$droitLogger</span> = <span class="php-keyword1">false</span>;
</span><span id="158" class="l"><a class="l" href="#158">158: </a> <span class="php-keyword1">if</span> (<span class="php-var">$nomFichier</span> != <span class="php-quote">''</span>) {
</span><span id="159" class="l"><a class="l" href="#159">159: </a> <span class="php-var">$fichierDossier</span> = <span class="php-quote">'fichier '</span>.<span class="php-var">$nomFichier</span> ;
</span><span id="160" class="l"><a class="l" href="#160">160: </a> } <span class="php-keyword1">else</span> {
</span><span id="161" class="l"><a class="l" href="#161">161: </a> <span class="php-var">$fichierDossier</span> = <span class="php-quote">'dossier des logs'</span>;
</span><span id="162" class="l"><a class="l" href="#162">162: </a> }
</span><span id="163" class="l"><a class="l" href="#163">163: </a> <span class="php-var">$message</span> = <span class="php-quote">'Écriture impossible dans le '</span>.<span class="php-var">$fichierDossier</span>.<span class="php-quote">', Assurez-vous des droits du dossier et des fichiers'</span>;
</span><span id="164" class="l"><a class="l" href="#164">164: </a> <span class="php-var">$e</span> = <span class="php-keyword1">new</span> ErrorException(<span class="php-var">$message</span>, <span class="php-num">0</span>, E_USER_WARNING, __FILE__, __LINE__);
</span><span id="165" class="l"><a class="l" href="#165">165: </a> GestionnaireException::gererException(<span class="php-var">$e</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"> * destructeur de classe, ferme les descripteurs ouverts
</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 class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="___destruct" href="#___destruct">__destruct</a>() {
</span><span id="172" class="l"><a class="l" href="#172">172: </a> <span class="php-keyword1">foreach</span>(self::<span class="php-var">$fichiersLog</span> <span class="php-keyword1">as</span> <span class="php-var">$nomFichier</span> =&gt; <span class="php-var">$fp</span>) {
</span><span id="173" class="l"><a class="l" href="#173">173: </a> <span class="php-keyword2">fclose</span>(<span class="php-var">$fp</span>);
</span><span id="174" class="l"><a class="l" href="#174">174: </a> }
</span><span id="175" class="l"><a class="l" href="#175">175: </a> }
</span><span id="176" class="l"><a class="l" href="#176">176: </a>}
</span><span id="177" class="l"><a class="l" href="#177">177: </a><span class="xlang">?&gt;</span>
</span><span id="178" class="l"><a class="l" href="#178">178: </a></span></code></pre>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/class-Log.html
New file
0,0 → 1,399
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="generator" content="ApiGen 2.8.0">
 
<title>Class Log | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li class="active"><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li class="active"><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
 
 
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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="package-Framework.html" title="Summary of Framework"><span>Package</span></a>
</li>
<li class="active">
<span>Class</span> </li>
</ul>
<ul>
<li>
<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
</li>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<div id="content" class="class">
<h1>Class Log</h1>
 
 
<div class="description">
<p>Classe permettant de logger des messages dans les fichier situés dans le
dossier de log.</p>
 
</div>
 
 
 
 
 
 
 
 
 
<div class="info">
<b>Package:</b> <a href="package-Framework.html">Framework</a><br>
 
<b>Category:</b>
PHP 5.2<br>
<b>Copyright:</b>
2009 Tela-Botanica<br>
<b>License:</b>
<a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">Licence CECILL</a><br>
<b>Author:</b>
aurelien &lt;<a
href="mailto:aurelien&#64;tela-botanica.org">aurelien&#64;<!-- -->tela-botanica.org</a>&gt;<br>
<b>Version:</b>
SVN: $Id: Log.php 255 2010-12-23 10:37:30Z jpm $<br>
<b>Link:</b>
/doc/framework/<br>
<b>Located at</b> <a href="source-class-Log.html#4-176" title="Go to source code">Log.php</a><br>
</div>
 
 
 
<table class="summary" id="methods">
<caption>Methods summary</caption>
<tr data-order="initialiser" id="_initialiser">
 
<td class="attributes"><code>
public static
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_initialiser">#</a>
<code><a href="source-class-Log.html#57-69" title="Go to source code">initialiser</a>( )</code>
 
<div class="description short">
<p>Initialiser les logs par défaut, sans tenir comptes des paramêtres de
config.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Initialiser les logs par défaut, sans tenir comptes des paramêtres de
config.</p>
 
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="configurer" id="_configurer">
 
<td class="attributes"><code>
public static
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_configurer">#</a>
<code><a href="source-class-Log.html#71-81" title="Go to source code">configurer</a>( )</code>
 
<div class="description short">
<p>Configure le Log à partir des paramêtres de config.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Configure le Log à partir des paramêtres de config.</p>
 
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="ajouterEntree" id="_ajouterEntree">
 
<td class="attributes"><code>
public static
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_ajouterEntree">#</a>
<code><a href="source-class-Log.html#83-102" title="Go to source code">ajouterEntree</a>( <span>string <var>$nomFichier</var></span>, <span>mixed <var>$entree</var></span>, <span>mixed <var>$mode</var> = <span class="php-quote">'a+'</span></span> )</code>
 
<div class="description short">
<p>Ajoute une entrée au log spécifié par le paramètre $nomFichier</p>
 
</div>
 
<div class="description detailed hidden">
<p>Ajoute une entrée au log spécifié par le paramètre $nomFichier</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$nomFichier</var></dt>
<dd><code>string</code><br>$nomFichier le nom du fichier dans lequel écrire</dd>
<dt><var>$entree</var></dt>
<dd></dd>
<dt><var>$mode</var></dt>
<dd></dd>
</dl></div>
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="viderLog" id="_viderLog">
 
<td class="attributes"><code>
public static
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_viderLog">#</a>
<code><a href="source-class-Log.html#104-110" title="Go to source code">viderLog</a>( <span>string <var>$nomFichier</var></span> )</code>
 
<div class="description short">
<p>Vide un fichier log indiqué</p>
 
</div>
 
<div class="description detailed hidden">
<p>Vide un fichier log indiqué</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$nomFichier</var></dt>
<dd><code>string</code><br>$nomFichier le nom du fichier à vider</dd>
</dl></div>
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="verifierOuvrirFichier" id="_verifierOuvrirFichier">
 
<td class="attributes"><code>
public static
boolean
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_verifierOuvrirFichier">#</a>
<code><a href="source-class-Log.html#112-138" title="Go to source code">verifierOuvrirFichier</a>( <span>string <var>$nomFichier</var></span>, <span>mixed <var>$mode</var></span> )</code>
 
<div class="description short">
<p>Vérifie la présence d'un fichier dans le tableau, ses droits d'écriture,
l'ouvre si nécessaire.</p>
 
</div>
 
<div class="description detailed hidden">
<p>Vérifie la présence d'un fichier dans le tableau, ses droits d'écriture,
l'ouvre si nécessaire.</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$nomFichier</var></dt>
<dd><code>string</code><br>$nomFichier le nom du fichier dont on doit vérifier la présence</dd>
<dt><var>$mode</var></dt>
<dd></dd>
</dl></div>
 
<h4>Returns</h4>
<div class="list">
<code>boolean</code><br>true si le fichier est ouvert ou maintenant accessible, false sinon<br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="__destruct" id="___destruct">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#___destruct">#</a>
<code><a href="source-class-Log.html#168-175" title="Go to source code">__destruct</a>( )</code>
 
<div class="description short">
<p>destructeur de classe, ferme les descripteurs ouverts</p>
 
</div>
 
<div class="description detailed hidden">
<p>destructeur de classe, ferme les descripteurs ouverts</p>
 
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
</table>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
</div>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/source-class-Registre.html
New file
0,0 → 1,203
<!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 Registre.php | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li class="active"><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li class="active"><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
 
 
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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="package-Framework.html" title="Summary of Framework"><span>Package</span></a>
</li>
<li>
<a href="class-Registre.html" title="Summary of Registre"><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>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<pre><code><span id="1" class="l"><a class="l" href="#1"> 1: </a><span class="xlang">&lt;?php</span>
</span><span id="2" class="l"><a class="l" href="#2"> 2: </a><span class="php-comment">// declare(encoding='UTF-8');</span>
</span><span id="3" class="l"><a class="l" href="#3"> 3: </a><span class="php-comment">/**
</span></span><span id="4" class="l"><a class="l" href="#4"> 4: </a><span class="php-comment"> * Classe registre, qui permet un accès à différentes variables à travers les autres classes.
</span></span><span id="5" class="l"><a class="l" href="#5"> 5: </a><span class="php-comment"> * C'est un singleton
</span></span><span id="6" class="l"><a class="l" href="#6"> 6: </a><span class="php-comment"> *
</span></span><span id="7" class="l"><a class="l" href="#7"> 7: </a><span class="php-comment">* PHP Version 5
</span></span><span id="8" class="l"><a class="l" href="#8"> 8: </a><span class="php-comment">*
</span></span><span id="9" class="l"><a class="l" href="#9"> 9: </a><span class="php-comment">* @category Class
</span></span><span id="10" class="l"><a class="l" href="#10">10: </a><span class="php-comment">* @package Framework
</span></span><span id="11" class="l"><a class="l" href="#11">11: </a><span class="php-comment">* @author Jean-Pascal Milcent &lt;jmp@tela-botanica.org&gt;
</span></span><span id="12" class="l"><a class="l" href="#12">12: </a><span class="php-comment">* @copyright 2009 Tela-Botanica
</span></span><span id="13" class="l"><a class="l" href="#13">13: </a><span class="php-comment">* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
</span></span><span id="14" class="l"><a class="l" href="#14">14: </a><span class="php-comment">* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
</span></span><span id="15" class="l"><a class="l" href="#15">15: </a><span class="php-comment">* @version SVN: $$Id: Registre.php 120 2009-09-01 12:21:14Z aurelien $$
</span></span><span id="16" class="l"><a class="l" href="#16">16: </a><span class="php-comment">* @link /doc/framework/
</span></span><span id="17" class="l"><a class="l" href="#17">17: </a><span class="php-comment">*
</span></span><span id="18" class="l"><a class="l" href="#18">18: </a><span class="php-comment">*/</span>
</span><span id="19" class="l"><a class="l" href="#19">19: </a><span class="php-keyword1">class</span> <a id="Registre" href="#Registre">Registre</a> {
</span><span id="20" class="l"><a class="l" href="#20">20: </a>
</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"> * Tableau associatif stockant les variables
</span></span><span id="23" class="l"><a class="l" href="#23">23: </a><span class="php-comment"> */</span>
</span><span id="24" class="l"><a class="l" href="#24">24: </a> <span class="php-keyword1">private</span> <span class="php-var"><a id="$stockage" href="#$stockage">$stockage</a></span> = <span class="php-keyword1">array</span>();
</span><span id="25" class="l"><a class="l" href="#25">25: </a> <span class="php-comment">/**
</span></span><span id="26" class="l"><a class="l" href="#26">26: </a><span class="php-comment"> * La classe registre se contient elle-même, (pour le pattern singleton)
</span></span><span id="27" class="l"><a class="l" href="#27">27: </a><span class="php-comment"> */</span>
</span><span id="28" class="l"><a class="l" href="#28">28: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-var"><a id="$registre" href="#$registre">$registre</a></span>;
</span><span id="29" class="l"><a class="l" href="#29">29: </a>
</span><span id="30" class="l"><a class="l" href="#30">30: </a> <span class="php-comment">/**
</span></span><span id="31" class="l"><a class="l" href="#31">31: </a><span class="php-comment"> * Constructeur par défaut, privé, car on accède à la classe par le getInstance
</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">private</span> <span class="php-keyword1">function</span> <a id="___construct" href="#___construct">__construct</a>() {
</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><span id="36" class="l"><a class="l" href="#36">36: </a> <span class="php-comment">/**
</span></span><span id="37" class="l"><a class="l" href="#37">37: </a><span class="php-comment"> * Fonction qui renvoie l'instance de classe en assurant son unicité, c'est l'unique méthode qui doit être
</span></span><span id="38" class="l"><a class="l" href="#38">38: </a><span class="php-comment"> * utilisée pour récupérer l'objet Registre
</span></span><span id="39" class="l"><a class="l" href="#39">39: </a><span class="php-comment"> */</span>
</span><span id="40" class="l"><a class="l" href="#40">40: </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><span id="41" class="l"><a class="l" href="#41">41: </a> <span class="php-keyword1">if</span> (self::<span class="php-var">$registre</span> <span class="php-keyword1">instanceof</span> Registre) {
</span><span id="42" class="l"><a class="l" href="#42">42: </a> <span class="php-keyword1">return</span> self::<span class="php-var">$registre</span>;
</span><span id="43" class="l"><a class="l" href="#43">43: </a> }
</span><span id="44" class="l"><a class="l" href="#44">44: </a> self::<span class="php-var">$registre</span> = <span class="php-keyword1">new</span> Registre;
</span><span id="45" class="l"><a class="l" href="#45">45: </a> <span class="php-keyword1">return</span> self::<span class="php-var">$registre</span>;
</span><span id="46" class="l"><a class="l" href="#46">46: </a> }
</span><span id="47" class="l"><a class="l" href="#47">47: </a>
</span><span id="48" class="l"><a class="l" href="#48">48: </a> <span class="php-comment">/**
</span></span><span id="49" class="l"><a class="l" href="#49">49: </a><span class="php-comment"> * Ajoute un objet au tableau selon un intitulé donné
</span></span><span id="50" class="l"><a class="l" href="#50">50: </a><span class="php-comment"> * @param string l'intitulé sous lequel l'objet sera conservé
</span></span><span id="51" class="l"><a class="l" href="#51">51: </a><span class="php-comment"> * @param mixed l'objet à conserver
</span></span><span id="52" class="l"><a class="l" href="#52">52: </a><span class="php-comment"> */</span>
</span><span id="53" class="l"><a class="l" href="#53">53: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_set" href="#_set">set</a>(<span class="php-var">$intitule</span>, <span class="php-var">$objet</span>) {
</span><span id="54" class="l"><a class="l" href="#54">54: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">is_array</span>(<span class="php-var">$objet</span>) &amp;&amp; <span class="php-keyword1">isset</span>(<span class="php-var">$this</span>-&gt;stockage[<span class="php-var">$intitule</span>])) {
</span><span id="55" class="l"><a class="l" href="#55">55: </a> <span class="php-var">$this</span>-&gt;stockage[<span class="php-var">$intitule</span>] = <span class="php-keyword2">array_merge</span>((<span class="php-keyword1">array</span>) <span class="php-var">$this</span>-&gt;stockage[<span class="php-var">$intitule</span>], (<span class="php-keyword1">array</span>) <span class="php-var">$objet</span>);
</span><span id="56" class="l"><a class="l" href="#56">56: </a> <span class="php-var">$message</span> = <span class="php-quote">&quot;Le tableau </span><span class="php-var">$intitule</span><span class="php-quote"> présent dans le registre a été fusionné avec un nouveau tableau de même intitulé !&quot;</span>;
</span><span id="57" class="l"><a class="l" href="#57">57: </a> <span class="php-keyword2">trigger_error</span>(<span class="php-var">$message</span>, E_USER_WARNING);
</span><span id="58" class="l"><a class="l" href="#58">58: </a> } <span class="php-keyword1">else</span> {
</span><span id="59" class="l"><a class="l" href="#59">59: </a> <span class="php-var">$this</span>-&gt;stockage[<span class="php-var">$intitule</span>] = <span class="php-var">$objet</span>;
</span><span id="60" class="l"><a class="l" href="#60">60: </a> }
</span><span id="61" class="l"><a class="l" href="#61">61: </a> }
</span><span id="62" class="l"><a class="l" href="#62">62: </a>
</span><span id="63" class="l"><a class="l" href="#63">63: </a> <span class="php-comment">/**
</span></span><span id="64" class="l"><a class="l" href="#64">64: </a><span class="php-comment"> * Renvoie l'objet associé à l'intitulé donné en paramètre
</span></span><span id="65" class="l"><a class="l" href="#65">65: </a><span class="php-comment"> * @return mixed l'objet associé à l'intitulé ou null s'il n'est pas présent
</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">public</span> <span class="php-keyword1">function</span> <a id="_get" href="#_get">get</a>(<span class="php-var">$intitule</span>) {
</span><span id="68" class="l"><a class="l" href="#68">68: </a> <span class="php-keyword1">if</span> (<span class="php-keyword1">isset</span>(<span class="php-var">$this</span>-&gt;stockage[<span class="php-var">$intitule</span>])) {
</span><span id="69" class="l"><a class="l" href="#69">69: </a> <span class="php-keyword1">return</span> <span class="php-var">$this</span>-&gt;stockage[<span class="php-var">$intitule</span>];
</span><span id="70" class="l"><a class="l" href="#70">70: </a> }
</span><span id="71" class="l"><a class="l" href="#71">71: </a> <span class="php-keyword1">return</span> <span class="php-keyword1">null</span>;
</span><span id="72" class="l"><a class="l" href="#72">72: </a> }
</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"> * Détruit l'objet associé à l'intitulé, n'a pas d'effet si il n'y a pas d'objet associé
</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">public</span> <span class="php-keyword1">function</span> <a id="_detruire" href="#_detruire">detruire</a>(<span class="php-var">$intitule</span>) {
</span><span id="78" class="l"><a class="l" href="#78">78: </a> <span class="php-keyword1">if</span> (<span class="php-keyword1">isset</span>(<span class="php-var">$this</span>-&gt;stockage[<span class="php-var">$intitule</span>])) {
</span><span id="79" class="l"><a class="l" href="#79">79: </a> <span class="php-keyword1">unset</span>(<span class="php-var">$this</span>-&gt;stockage[<span class="php-var">$intitule</span>]);
</span><span id="80" class="l"><a class="l" href="#80">80: </a> }
</span><span id="81" class="l"><a class="l" href="#81">81: </a> }
</span><span id="82" class="l"><a class="l" href="#82">82: </a>
</span><span id="83" class="l"><a class="l" href="#83">83: </a> <span class="php-comment">/**
</span></span><span id="84" class="l"><a class="l" href="#84">84: </a><span class="php-comment"> * Teste si un objet est présent sous un intitulé donné
</span></span><span id="85" class="l"><a class="l" href="#85">85: </a><span class="php-comment"> * @return boolean true si un objet associé à cet intitulé est présent, false sinon
</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">public</span> <span class="php-keyword1">function</span> <a id="_existe" href="#_existe">existe</a>(<span class="php-var">$intitule</span>) {
</span><span id="88" class="l"><a class="l" href="#88">88: </a> <span class="php-keyword1">if</span>(<span class="php-keyword1">isset</span>(<span class="php-var">$this</span>-&gt;stockage[<span class="php-var">$intitule</span>])){
</span><span id="89" class="l"><a class="l" href="#89">89: </a> <span class="php-keyword1">return</span> <span class="php-keyword1">true</span>;
</span><span id="90" class="l"><a class="l" href="#90">90: </a> }
</span><span id="91" class="l"><a class="l" href="#91">91: </a> <span class="php-keyword1">return</span> <span class="php-keyword1">false</span>;
</span><span id="92" class="l"><a class="l" href="#92">92: </a> }
</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><span class="xlang">?&gt;</span></code></pre>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/source-function-autoloadFw.html
New file
0,0 → 1,172
<!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 autoload.inc.php | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li class="active"><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
 
 
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li class="active"><a href="function-autoloadFw.html">autoloadFw</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="package-Framework.html" title="Summary of Framework"><span>Package</span></a>
</li>
<li>
<a href="function-autoloadFw.html" title="Summary of autoloadFw"><span>Function</span></a>
</li>
</ul>
<ul>
<li>
<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
</li>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<pre><code><span id="1" class="l"><a class="l" href="#1"> 1: </a><span class="xlang">&lt;?php</span>
</span><span id="2" class="l"><a class="l" href="#2"> 2: </a><span class="php-comment">// declare(encoding='UTF-8');</span>
</span><span id="3" class="l"><a class="l" href="#3"> 3: </a><span class="php-comment">/**
</span></span><span id="4" class="l"><a class="l" href="#4"> 4: </a><span class="php-comment"> * Fichier contenant la fonction de chargement automatique de classes, il doit toujours rester à la racine
</span></span><span id="5" class="l"><a class="l" href="#5"> 5: </a><span class="php-comment"> * du framework car il initialise le chemin de l'application en se basant sur son propre emplacement.
</span></span><span id="6" class="l"><a class="l" href="#6"> 6: </a><span class="php-comment"> *
</span></span><span id="7" class="l"><a class="l" href="#7"> 7: </a><span class="php-comment"> * PHP Version 5.1.2
</span></span><span id="8" class="l"><a class="l" href="#8"> 8: </a><span class="php-comment"> *
</span></span><span id="9" class="l"><a class="l" href="#9"> 9: </a><span class="php-comment"> * @category Fichier_De_Fonctions
</span></span><span id="10" class="l"><a class="l" href="#10">10: </a><span class="php-comment"> * @package Framework
</span></span><span id="11" class="l"><a class="l" href="#11">11: </a><span class="php-comment"> // Auteur principal :
</span></span><span id="12" class="l"><a class="l" href="#12">12: </a><span class="php-comment"> * @author Aurelien PERONNET &lt;aurelien@tela-botanica.org&gt;
</span></span><span id="13" class="l"><a class="l" href="#13">13: </a><span class="php-comment"> // Autres auteurs :
</span></span><span id="14" class="l"><a class="l" href="#14">14: </a><span class="php-comment"> * @author Jean-Pascal MILCENT &lt;jpm@tela-botanica.org&gt;
</span></span><span id="15" class="l"><a class="l" href="#15">15: </a><span class="php-comment"> * @license GPL v3 &lt;http://www.gnu.org/licenses/gpl.txt&gt;
</span></span><span id="16" class="l"><a class="l" href="#16">16: </a><span class="php-comment"> * @license CECILL v2 &lt;http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt&gt;
</span></span><span id="17" class="l"><a class="l" href="#17">17: </a><span class="php-comment"> * @version $$Id: autoload.inc.php 188 2010-04-29 12:09:17Z jpm $$
</span></span><span id="18" class="l"><a class="l" href="#18">18: </a><span class="php-comment"> * @copyright 1999-2009 Tela Botanica (accueil@tela-botanica.org)
</span></span><span id="19" class="l"><a class="l" href="#19">19: </a><span class="php-comment"> */</span>
</span><span id="20" class="l"><a class="l" href="#20">20: </a>
</span><span id="21" class="l"><a class="l" href="#21">21: </a><span class="php-comment">// Redéfinition de la constante DIRECTORY_SEPARATOR</span>
</span><span id="22" class="l"><a class="l" href="#22">22: </a><span class="php-keyword1">if</span> (!<span class="php-keyword2">defined</span>(<span class="php-quote">'DS'</span>)) {
</span><span id="23" class="l"><a class="l" href="#23">23: </a> <span class="php-keyword2">define</span>(<span class="php-quote">'DS'</span>, DIRECTORY_SEPARATOR);
</span><span id="24" class="l"><a class="l" href="#24">24: </a>}
</span><span id="25" class="l"><a class="l" href="#25">25: </a><span class="php-comment">// Redéfinition de la constante PATH_SEPARATOR</span>
</span><span id="26" class="l"><a class="l" href="#26">26: </a><span class="php-keyword1">if</span> (!<span class="php-keyword2">defined</span>(<span class="php-quote">'PS'</span>)) {
</span><span id="27" class="l"><a class="l" href="#27">27: </a> <span class="php-keyword2">define</span>(<span class="php-quote">'PS'</span>, PATH_SEPARATOR);
</span><span id="28" class="l"><a class="l" href="#28">28: </a>}
</span><span id="29" class="l"><a class="l" href="#29">29: </a>
</span><span id="30" class="l"><a class="l" href="#30">30: </a><span class="php-comment">// Autoload pour le Framework</span>
</span><span id="31" class="l"><a class="l" href="#31">31: </a><span class="php-keyword1">function</span> <a id="_autoloadFw" href="#_autoloadFw">autoloadFw</a>(<span class="php-var">$nom_classe_fw</span>) {
</span><span id="32" class="l"><a class="l" href="#32">32: </a> <span class="php-var">$fichier_a_inclure</span> = <span class="php-keyword2">dirname</span>(__FILE__).DS.<span class="php-var">$nom_classe_fw</span>.<span class="php-quote">'.php'</span>;
</span><span id="33" class="l"><a class="l" href="#33">33: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">file_exists</span>(<span class="php-var">$fichier_a_inclure</span>)) {
</span><span id="34" class="l"><a class="l" href="#34">34: </a> <span class="php-keyword1">include_once</span> <span class="php-var">$fichier_a_inclure</span>;
</span><span id="35" class="l"><a class="l" href="#35">35: </a> <span class="php-keyword1">return</span> <span class="php-keyword1">null</span>;
</span><span id="36" class="l"><a class="l" href="#36">36: </a> }
</span><span id="37" class="l"><a class="l" href="#37">37: </a>}
</span><span id="38" class="l"><a class="l" href="#38">38: </a><span class="php-keyword2">spl_autoload_register</span>(<span class="php-quote">'autoloadFw'</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 class="php-comment">// Initialisation du gestionnaire d'erreur avant toute chose</span>
</span><span id="41" class="l"><a class="l" href="#41">41: </a>GestionnaireException::initialiser();
</span><span id="42" class="l"><a class="l" href="#42">42: </a>
</span><span id="43" class="l"><a class="l" href="#43">43: </a><span class="php-comment">// Autoload par défaut pour l'application</span>
</span><span id="44" class="l"><a class="l" href="#44">44: </a><span class="php-keyword1">function</span> <a id="_autoloadAppliDefaut" href="#_autoloadAppliDefaut">autoloadAppliDefaut</a>(<span class="php-var">$nom_classe</span>) {
</span><span id="45" class="l"><a class="l" href="#45">45: </a> <span class="php-var">$dossiers_classes</span> = <span class="php-keyword1">array</span>( Config::get(<span class="php-quote">'chemin_controleurs'</span>),
</span><span id="46" class="l"><a class="l" href="#46">46: </a> Config::get(<span class="php-quote">'chemin_modeles'</span>),
</span><span id="47" class="l"><a class="l" href="#47">47: </a> Config::get(<span class="php-quote">'chemin_bibliotheque'</span>));
</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-keyword1">foreach</span> (<span class="php-var">$dossiers_classes</span> <span class="php-keyword1">as</span> <span class="php-var">$chemin</span>) {
</span><span id="50" class="l"><a class="l" href="#50">50: </a> <span class="php-var">$fichier_a_tester</span> = <span class="php-var">$chemin</span>.<span class="php-var">$nom_classe</span>.<span class="php-quote">'.php'</span>;
</span><span id="51" class="l"><a class="l" href="#51">51: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">file_exists</span>(<span class="php-var">$fichier_a_tester</span>)) {
</span><span id="52" class="l"><a class="l" href="#52">52: </a> <span class="php-keyword1">include_once</span> <span class="php-var">$fichier_a_tester</span>;
</span><span id="53" class="l"><a class="l" href="#53">53: </a> <span class="php-keyword1">return</span> <span class="php-keyword1">null</span>;
</span><span id="54" class="l"><a class="l" href="#54">54: </a> }
</span><span id="55" class="l"><a class="l" href="#55">55: </a> }
</span><span id="56" class="l"><a class="l" href="#56">56: </a>}
</span><span id="57" class="l"><a class="l" href="#57">57: </a><span class="php-keyword2">spl_autoload_register</span>(<span class="php-quote">'autoloadAppliDefaut'</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">// Autoload défini par l'application</span>
</span><span id="60" class="l"><a class="l" href="#60">60: </a><span class="php-keyword1">if</span> (<span class="php-keyword2">function_exists</span>(<span class="php-quote">'__autoload'</span>)) {
</span><span id="61" class="l"><a class="l" href="#61">61: </a> <span class="php-keyword2">spl_autoload_register</span>(<span class="php-quote">'__autoload'</span>);
</span><span id="62" class="l"><a class="l" href="#62">62: </a>}
</span><span id="63" class="l"><a class="l" href="#63">63: </a></span><span class="xlang">?&gt;</span></code></pre>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/class-Registre.html
New file
0,0 → 1,360
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="generator" content="ApiGen 2.8.0">
 
<title>Class Registre | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li class="active"><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li class="active"><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
 
 
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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="package-Framework.html" title="Summary of Framework"><span>Package</span></a>
</li>
<li class="active">
<span>Class</span> </li>
</ul>
<ul>
<li>
<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
</li>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<div id="content" class="class">
<h1>Class Registre</h1>
 
 
<div class="description">
<p>Classe registre, qui permet un accès à différentes variables à travers
les autres classes. C'est un singleton</p>
 
<p>PHP Version 5</p>
 
</div>
 
 
 
 
 
 
 
 
 
<div class="info">
<b>Package:</b> <a href="package-Framework.html">Framework</a><br>
 
<b>Category:</b>
Class<br>
<b>Copyright:</b>
2009 Tela-Botanica<br>
<b>License:</b>
<a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">Licence CECILL</a><br>
<b>License:</b>
<a href="http://www.gnu.org/licenses/gpl.html">Licence GNU-GPL</a><br>
<b>Author:</b>
Jean-Pascal Milcent &lt;<a
href="mailto:jmp&#64;tela-botanica.org">jmp&#64;<!-- -->tela-botanica.org</a>&gt;<br>
<b>Version:</b>
SVN: $$Id: Registre.php 120 2009-09-01 12:21:14Z aurelien $$<br>
<b>Link:</b>
/doc/framework/<br>
<b>Located at</b> <a href="source-class-Registre.html#3-93" title="Go to source code">Registre.php</a><br>
</div>
 
 
 
<table class="summary" id="methods">
<caption>Methods summary</caption>
<tr data-order="getInstance" id="_getInstance">
 
<td class="attributes"><code>
public static
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getInstance">#</a>
<code><a href="source-class-Registre.html#36-46" title="Go to source code">getInstance</a>( )</code>
 
<div class="description short">
<p>Fonction qui renvoie l'instance de classe en assurant son unicité, c'est
l'unique méthode qui doit être utilisée pour récupérer l'objet Registre</p>
 
</div>
 
<div class="description detailed hidden">
<p>Fonction qui renvoie l'instance de classe en assurant son unicité, c'est
l'unique méthode qui doit être utilisée pour récupérer l'objet Registre</p>
 
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="set" id="_set">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_set">#</a>
<code><a href="source-class-Registre.html#48-61" title="Go to source code">set</a>( <span>string <var>$intitule</var></span>, <span>mixed <var>$objet</var></span> )</code>
 
<div class="description short">
<p>Ajoute un objet au tableau selon un intitulé donné</p>
 
</div>
 
<div class="description detailed hidden">
<p>Ajoute un objet au tableau selon un intitulé donné</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$intitule</var></dt>
<dd><code>string</code><br>l'intitulé sous lequel l'objet sera conservé</dd>
<dt><var>$objet</var></dt>
<dd><code>mixed</code><br>l'objet à conserver</dd>
</dl></div>
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="get" id="_get">
 
<td class="attributes"><code>
public
mixed
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_get">#</a>
<code><a href="source-class-Registre.html#63-72" title="Go to source code">get</a>( <span>mixed <var>$intitule</var></span> )</code>
 
<div class="description short">
<p>Renvoie l'objet associé à l'intitulé donné en paramètre</p>
 
</div>
 
<div class="description detailed hidden">
<p>Renvoie l'objet associé à l'intitulé donné en paramètre</p>
 
 
 
 
<h4>Returns</h4>
<div class="list">
<code>mixed</code><br>l'objet associé à l'intitulé ou null s'il n'est pas présent<br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="detruire" id="_detruire">
 
<td class="attributes"><code>
public
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_detruire">#</a>
<code><a href="source-class-Registre.html#74-81" title="Go to source code">detruire</a>( <span>mixed <var>$intitule</var></span> )</code>
 
<div class="description short">
<p>Détruit l'objet associé à l'intitulé, n'a pas d'effet si il n'y a pas
d'objet associé</p>
 
</div>
 
<div class="description detailed hidden">
<p>Détruit l'objet associé à l'intitulé, n'a pas d'effet si il n'y a pas
d'objet associé</p>
 
 
 
 
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="existe" id="_existe">
 
<td class="attributes"><code>
public
boolean
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_existe">#</a>
<code><a href="source-class-Registre.html#83-92" title="Go to source code">existe</a>( <span>mixed <var>$intitule</var></span> )</code>
 
<div class="description short">
<p>Teste si un objet est présent sous un intitulé donné</p>
 
</div>
 
<div class="description detailed hidden">
<p>Teste si un objet est présent sous un intitulé donné</p>
 
 
 
 
<h4>Returns</h4>
<div class="list">
<code>boolean</code><br>true si un objet associé à cet intitulé est présent, false sinon<br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
</table>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
</div>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/source-class-Debug.html
New file
0,0 → 1,232
<!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 Debug.php | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li class="active"><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li class="active"><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
 
 
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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="package-Framework.html" title="Summary of Framework"><span>Package</span></a>
</li>
<li>
<a href="class-Debug.html" title="Summary of Debug"><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>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<pre><code><span id="1" class="l"><a class="l" href="#1"> 1: </a><span class="xlang">&lt;?php</span>
</span><span id="2" class="l"><a class="l" href="#2"> 2: </a><span class="php-comment">// declare(encoding='UTF-8');</span>
</span><span id="3" class="l"><a class="l" href="#3"> 3: </a><span class="php-comment">/**
</span></span><span id="4" class="l"><a class="l" href="#4"> 4: </a><span class="php-comment"> * Classe fournissant des fonctions de débogage équivalante à var_dump et print_r.
</span></span><span id="5" class="l"><a class="l" href="#5"> 5: </a><span class="php-comment"> * L'affichage et l'utilisation de ces fonctions sont améliorés via cette classe.
</span></span><span id="6" class="l"><a class="l" href="#6"> 6: </a><span class="php-comment"> * Cette classe est inspirée de la classe Zend_Debug.
</span></span><span id="7" class="l"><a class="l" href="#7"> 7: </a><span class="php-comment"> *
</span></span><span id="8" class="l"><a class="l" href="#8"> 8: </a><span class="php-comment"> * PHP version 5
</span></span><span id="9" class="l"><a class="l" href="#9"> 9: </a><span class="php-comment"> *
</span></span><span id="10" class="l"><a class="l" href="#10"> 10: </a><span class="php-comment"> * @category Debogage
</span></span><span id="11" class="l"><a class="l" href="#11"> 11: </a><span class="php-comment"> * @package Framework
</span></span><span id="12" class="l"><a class="l" href="#12"> 12: </a><span class="php-comment"> // Auteur principal :
</span></span><span id="13" class="l"><a class="l" href="#13"> 13: </a><span class="php-comment"> * @author Jean-Pascal MILCENT &lt;jpm@tela-botanica.org&gt;
</span></span><span id="14" class="l"><a class="l" href="#14"> 14: </a><span class="php-comment"> // Autres auteurs :
</span></span><span id="15" class="l"><a class="l" href="#15"> 15: </a><span class="php-comment"> * @license GPL v3 &lt;http://www.gnu.org/licenses/gpl.txt&gt;
</span></span><span id="16" class="l"><a class="l" href="#16"> 16: </a><span class="php-comment"> * @license CECILL v2 &lt;http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt&gt;
</span></span><span id="17" class="l"><a class="l" href="#17"> 17: </a><span class="php-comment"> * @version $$Id: Debug.php 167 2010-03-19 17:12:08Z jpm $$
</span></span><span id="18" class="l"><a class="l" href="#18"> 18: </a><span class="php-comment"> * @copyright 1999-2009 Tela Botanica (accueil@tela-botanica.org)
</span></span><span id="19" class="l"><a class="l" href="#19"> 19: </a><span class="php-comment"> */</span>
</span><span id="20" class="l"><a class="l" href="#20"> 20: </a><span class="php-keyword1">class</span> <a id="Debug" href="#Debug">Debug</a> {
</span><span id="21" class="l"><a class="l" href="#21"> 21: </a>
</span><span id="22" class="l"><a class="l" href="#22"> 22: </a> <span class="php-comment">/**
</span></span><span id="23" class="l"><a class="l" href="#23"> 23: </a><span class="php-comment"> * mode de php (cli ou sapi)
</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-keyword1">protected</span> <span class="php-keyword1">static</span> <span class="php-var"><a id="$mode" href="#$mode">$mode</a></span> = <span class="php-keyword1">null</span>;
</span><span id="26" class="l"><a class="l" href="#26"> 26: </a>
</span><span id="27" class="l"><a class="l" href="#27"> 27: </a> <span class="php-comment">/**
</span></span><span id="28" class="l"><a class="l" href="#28"> 28: </a><span class="php-comment"> * Accesseur pour le mode
</span></span><span id="29" class="l"><a class="l" href="#29"> 29: </a><span class="php-comment"> * @return string le mode de php
</span></span><span id="30" class="l"><a class="l" href="#30"> 30: </a><span class="php-comment"> */</span>
</span><span id="31" class="l"><a class="l" href="#31"> 31: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_getMode" href="#_getMode">getMode</a>() {
</span><span id="32" class="l"><a class="l" href="#32"> 32: </a> <span class="php-keyword1">if</span> (self::<span class="php-var">$mode</span> === <span class="php-keyword1">null</span>) {
</span><span id="33" class="l"><a class="l" href="#33"> 33: </a> self::<span class="php-var">$mode</span> = PHP_SAPI;
</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-keyword1">return</span> self::<span class="php-var">$mode</span>;
</span><span id="36" class="l"><a class="l" href="#36"> 36: </a> }
</span><span id="37" class="l"><a class="l" href="#37"> 37: </a>
</span><span id="38" class="l"><a class="l" href="#38"> 38: </a> <span class="php-comment">/**
</span></span><span id="39" class="l"><a class="l" href="#39"> 39: </a><span class="php-comment"> * Equivalent de var_dump
</span></span><span id="40" class="l"><a class="l" href="#40"> 40: </a><span class="php-comment"> * @param mixed $variable la variable à dumper
</span></span><span id="41" class="l"><a class="l" href="#41"> 41: </a><span class="php-comment"> * @param string $mot_cle le mot cle à associer à la variable
</span></span><span id="42" class="l"><a class="l" href="#42"> 42: </a><span class="php-comment"> * @param boolean $echo si true on affiche le résultat, si false on ne renvoie que la chaine sans l'afficher
</span></span><span id="43" class="l"><a class="l" href="#43"> 43: </a><span class="php-comment"> * @return string la chaine à afficher representant le dump ou null si echo
</span></span><span id="44" class="l"><a class="l" href="#44"> 44: </a><span class="php-comment"> */</span>
</span><span id="45" class="l"><a class="l" href="#45"> 45: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_dump" href="#_dump">dump</a>(<span class="php-var">$variable</span>, <span class="php-var">$mot_cle</span> = <span class="php-keyword1">null</span>, <span class="php-var">$echo</span> = <span class="php-keyword1">true</span>) {
</span><span id="46" class="l"><a class="l" href="#46"> 46: </a> <span class="php-comment">// var_dump de la variable dans un buffer et récupération de la sortie</span>
</span><span id="47" class="l"><a class="l" href="#47"> 47: </a> <span class="php-keyword2">ob_start</span>();
</span><span id="48" class="l"><a class="l" href="#48"> 48: </a> <span class="php-keyword2">var_dump</span>(<span class="php-var">$variable</span>);
</span><span id="49" class="l"><a class="l" href="#49"> 49: </a> <span class="php-var">$sortie</span> = <span class="php-keyword2">ob_get_clean</span>();
</span><span id="50" class="l"><a class="l" href="#50"> 50: </a>
</span><span id="51" class="l"><a class="l" href="#51"> 51: </a> <span class="php-comment">// Pré-traitement de la sortie</span>
</span><span id="52" class="l"><a class="l" href="#52"> 52: </a> <span class="php-var">$sortie</span> = <span class="php-keyword2">preg_replace</span>(<span class="php-quote">&quot;/\]\=\&gt;\n(\s+)/m&quot;</span>, <span class="php-quote">&quot;] =&gt; &quot;</span>, <span class="php-var">$sortie</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">// Traitement général du débogage</span>
</span><span id="55" class="l"><a class="l" href="#55"> 55: </a> <span class="php-keyword1">return</span> self::traiterDebogage(<span class="php-var">$mot_cle</span>, <span class="php-var">$sortie</span>, <span class="php-var">$echo</span>);
</span><span id="56" class="l"><a class="l" href="#56"> 56: </a> }
</span><span id="57" class="l"><a class="l" href="#57"> 57: </a>
</span><span id="58" class="l"><a class="l" href="#58"> 58: </a> <span class="php-comment">/**
</span></span><span id="59" class="l"><a class="l" href="#59"> 59: </a><span class="php-comment"> * Equivalent de print_r
</span></span><span id="60" class="l"><a class="l" href="#60"> 60: </a><span class="php-comment"> * @param mixed $variable la variable à afficher
</span></span><span id="61" class="l"><a class="l" href="#61"> 61: </a><span class="php-comment"> * @param string $mot_cle le mot cle à associer
</span></span><span id="62" class="l"><a class="l" href="#62"> 62: </a><span class="php-comment"> * @param boolean $echo faire un echo ou non
</span></span><span id="63" class="l"><a class="l" href="#63"> 63: </a><span class="php-comment"> * @return string la chaine contenant la variable printée ou null si echo
</span></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-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_printr" href="#_printr">printr</a>(<span class="php-var">$variable</span>, <span class="php-var">$mot_cle</span> = <span class="php-keyword1">null</span>, <span class="php-var">$echo</span> = <span class="php-keyword1">true</span>) {
</span><span id="66" class="l"><a class="l" href="#66"> 66: </a> <span class="php-comment">// Récupération de la sortie</span>
</span><span id="67" class="l"><a class="l" href="#67"> 67: </a> <span class="php-var">$sortie</span> = <span class="php-keyword2">print_r</span>(<span class="php-var">$variable</span>, <span class="php-keyword1">true</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">// Traitement général du débogage</span>
</span><span id="70" class="l"><a class="l" href="#70"> 70: </a> <span class="php-keyword1">return</span> self::traiterDebogage(<span class="php-var">$mot_cle</span>, <span class="php-var">$sortie</span>, <span class="php-var">$echo</span>);
</span><span id="71" class="l"><a class="l" href="#71"> 71: </a> }
</span><span id="72" class="l"><a class="l" href="#72"> 72: </a>
</span><span id="73" class="l"><a class="l" href="#73"> 73: </a> <span class="php-comment">/**
</span></span><span id="74" class="l"><a class="l" href="#74"> 74: </a><span class="php-comment"> * Traite une chaine de débogage et les mots clés associés
</span></span><span id="75" class="l"><a class="l" href="#75"> 75: </a><span class="php-comment"> * @param string $mot_cle le mot à associer à la chaine
</span></span><span id="76" class="l"><a class="l" href="#76"> 76: </a><span class="php-comment"> * @param string $sortie le chaine de debogage
</span></span><span id="77" class="l"><a class="l" href="#77"> 77: </a><span class="php-comment"> * @param boolean $echo faire un echo du resultat ou non
</span></span><span id="78" class="l"><a class="l" href="#78"> 78: </a><span class="php-comment"> * @return string la chaine de debogage formatée ou bien null si echo
</span></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-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_traiterDebogage" href="#_traiterDebogage">traiterDebogage</a>(<span class="php-var">$mot_cle</span>, <span class="php-var">$sortie</span>, <span class="php-var">$echo</span>) {
</span><span id="81" class="l"><a class="l" href="#81"> 81: </a> <span class="php-comment">// Formate le mot-clé</span>
</span><span id="82" class="l"><a class="l" href="#82"> 82: </a> <span class="php-var">$mot_cle</span> = self::formaterMotCle(<span class="php-var">$mot_cle</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">// Traitement de la sortie</span>
</span><span id="85" class="l"><a class="l" href="#85"> 85: </a> <span class="php-var">$sortie</span> = self::traiterSortieSuivantMode(<span class="php-var">$mot_cle</span>, <span class="php-var">$sortie</span>);
</span><span id="86" class="l"><a class="l" href="#86"> 86: </a>
</span><span id="87" class="l"><a class="l" href="#87"> 87: </a> <span class="php-comment">// Affichage et/ou retour</span>
</span><span id="88" class="l"><a class="l" href="#88"> 88: </a> <span class="php-keyword1">if</span> (Config::get(<span class="php-quote">'fw_debogage'</span>) == <span class="php-keyword1">true</span>) {
</span><span id="89" class="l"><a class="l" href="#89"> 89: </a> <span class="php-keyword1">if</span> (<span class="php-var">$echo</span>) {
</span><span id="90" class="l"><a class="l" href="#90"> 90: </a> <span class="php-keyword1">echo</span> <span class="php-var">$sortie</span>;
</span><span id="91" class="l"><a class="l" href="#91"> 91: </a> <span class="php-keyword1">return</span> <span class="php-keyword1">null</span>;
</span><span id="92" class="l"><a class="l" href="#92"> 92: </a> } <span class="php-keyword1">else</span> {
</span><span id="93" class="l"><a class="l" href="#93"> 93: </a> <span class="php-keyword1">return</span> <span class="php-var">$sortie</span>;
</span><span id="94" class="l"><a class="l" href="#94"> 94: </a> }
</span><span id="95" class="l"><a class="l" href="#95"> 95: </a> }
</span><span id="96" class="l"><a class="l" href="#96"> 96: </a> }
</span><span id="97" class="l"><a class="l" href="#97"> 97: </a>
</span><span id="98" class="l"><a class="l" href="#98"> 98: </a> <span class="php-comment">/**
</span></span><span id="99" class="l"><a class="l" href="#99"> 99: </a><span class="php-comment"> * formate un mot clé donné
</span></span><span id="100" class="l"><a class="l" href="#100">100: </a><span class="php-comment"> * @param string $mot_cle le mot clé à formaté
</span></span><span id="101" class="l"><a class="l" href="#101">101: </a><span class="php-comment"> * @return string le mot clé formaté ou bien un chaine vide le mot clé est null ou vide
</span></span><span id="102" class="l"><a class="l" href="#102">102: </a><span class="php-comment"> */</span>
</span><span id="103" class="l"><a class="l" href="#103">103: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_formaterMotCle" href="#_formaterMotCle">formaterMotCle</a>(<span class="php-var">$mot_cle</span>) {
</span><span id="104" class="l"><a class="l" href="#104">104: </a> <span class="php-keyword1">return</span> (<span class="php-var">$mot_cle</span> === <span class="php-keyword1">null</span>) ? <span class="php-quote">''</span> : <span class="php-keyword2">rtrim</span>(<span class="php-var">$mot_cle</span>).<span class="php-quote">' '</span>;
</span><span id="105" class="l"><a class="l" href="#105">105: </a> }
</span><span id="106" class="l"><a class="l" href="#106">106: </a>
</span><span id="107" class="l"><a class="l" href="#107">107: </a> <span class="php-comment">/**
</span></span><span id="108" class="l"><a class="l" href="#108">108: </a><span class="php-comment"> * traite la sortie de la chaine de débogage suivant le mode de php
</span></span><span id="109" class="l"><a class="l" href="#109">109: </a><span class="php-comment"> * @param string $mot_cle le mot clé associé à la chaine
</span></span><span id="110" class="l"><a class="l" href="#110">110: </a><span class="php-comment"> * @param string $sortie la chaine de débogage
</span></span><span id="111" class="l"><a class="l" href="#111">111: </a><span class="php-comment"> * @return string la sortie formatée pour le mode en cours
</span></span><span id="112" class="l"><a class="l" href="#112">112: </a><span class="php-comment"> */</span>
</span><span id="113" class="l"><a class="l" href="#113">113: </a> <span class="php-keyword1">private</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> <a id="_traiterSortieSuivantMode" href="#_traiterSortieSuivantMode">traiterSortieSuivantMode</a>(<span class="php-var">$mot_cle</span>, <span class="php-var">$sortie</span>) {
</span><span id="114" class="l"><a class="l" href="#114">114: </a> <span class="php-var">$corps</span> = <span class="php-var">$mot_cle</span>.PHP_EOL.<span class="php-var">$sortie</span>;
</span><span id="115" class="l"><a class="l" href="#115">115: </a> <span class="php-keyword1">if</span> (self::getMode() == <span class="php-quote">'cli'</span>) {
</span><span id="116" class="l"><a class="l" href="#116">116: </a> <span class="php-var">$sortie</span> = PHP_EOL.<span class="php-var">$corps</span>.PHP_EOL;
</span><span id="117" class="l"><a class="l" href="#117">117: </a> } <span class="php-keyword1">else</span> {
</span><span id="118" class="l"><a class="l" href="#118">118: </a> <span class="php-var">$sortie</span> = <span class="php-quote">'&lt;pre&gt;'</span>.<span class="php-var">$corps</span>.<span class="php-quote">'&lt;/pre&gt;'</span>;
</span><span id="119" class="l"><a class="l" href="#119">119: </a> }
</span><span id="120" class="l"><a class="l" href="#120">120: </a> <span class="php-keyword1">return</span> <span class="php-var">$sortie</span>;
</span><span id="121" class="l"><a class="l" href="#121">121: </a> }
</span><span id="122" class="l"><a class="l" href="#122">122: </a>}
</span><span id="123" class="l"><a class="l" href="#123">123: </a></span><span class="xlang">?&gt;</span></code></pre>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/function-autoloadFw.html
New file
0,0 → 1,147
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="generator" content="ApiGen 2.8.0">
 
<title>Function autoloadFw | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li class="active"><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
 
 
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li class="active"><a href="function-autoloadFw.html">autoloadFw</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="package-Framework.html" title="Summary of Framework"><span>Package</span></a>
</li>
<li class="active">
<span>Function</span> </li>
</ul>
<ul>
<li>
<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
</li>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<div id="content" class="function">
<h1>Function autoloadFw</h1>
 
 
 
<div class="info">
<b>Package:</b> <a href="package-Framework.html">Framework</a><br>
<b>Copyright:</b>
1999-2009 Tela Botanica (<a
href="mailto:accueil&#64;tela-botanica.org">accueil&#64;<!-- -->tela-botanica.org</a>)<br>
<b>License:</b>
<a href="GPL">v3 &lt;http://www.gnu.org/licenses/gpl.txt&gt;</a><br>
<b>License:</b>
<a href="CECILL">v2 &lt;http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt&gt;</a><br>
<b>Author:</b>
Aurelien PERONNET &lt;<a
href="mailto:aurelien&#64;tela-botanica.org">aurelien&#64;<!-- -->tela-botanica.org</a>&gt;
// Autres auteurs :<br>
<b>Author:</b>
Jean-Pascal MILCENT &lt;<a
href="mailto:jpm&#64;tela-botanica.org">jpm&#64;<!-- -->tela-botanica.org</a>&gt;<br>
<b>Located at</b> <a href="source-function-autoloadFw.html#31-37" title="Go to source code">autoload.inc.php</a><br>
</div>
 
 
<table class="summary" id="parameters">
<caption>Parameters summary</caption>
<tr id="$nom_classe_fw">
<td class="name"><code>mixed</code></td>
<td class="value"><code><var>$nom_classe_fw</var></code></td>
<td>
</td>
</tr>
</table>
 
 
 
</div>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>
/branches/v0.2-buhl/doc/ApiGen/class-Debug.html
New file
0,0 → 1,337
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="generator" content="ApiGen 2.8.0">
 
<title>Class Debug | TBFramework - v0.2</title>
 
<script type="text/javascript" src="resources/combined.js?4205936287"></script>
<script type="text/javascript" src="elementlist.js?117657638"></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>Packages</h3>
<ul>
<li class="active"><a href="package-Framework.html">Framework</a>
</li>
<li><a href="package-PHP.html">PHP</a>
</li>
</ul>
</div>
 
<hr>
 
 
<div id="elements">
<h3>Classes</h3>
<ul>
<li><a href="class-Application.html">Application</a></li>
<li><a href="class-Chronometre.html">Chronometre</a></li>
<li><a href="class-Config.html">Config</a></li>
<li><a href="class-Controleur.html">Controleur</a></li>
<li class="active"><a href="class-Debug.html">Debug</a></li>
<li><a href="class-GestionnaireException.html">GestionnaireException</a></li>
<li><a href="class-Log.html">Log</a></li>
<li><a href="class-Modele.html">Modele</a></li>
<li><a href="class-Registre.html">Registre</a></li>
<li><a href="class-SquelettePhp.html">SquelettePhp</a></li>
<li><a href="class-Url.html">Url</a></li>
</ul>
 
 
 
 
 
<h3>Functions</h3>
<ul>
<li><a href="function-autoloadAppliDefaut.html">autoloadAppliDefaut</a></li>
<li><a href="function-autoloadFw.html">autoloadFw</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="package-Framework.html" title="Summary of Framework"><span>Package</span></a>
</li>
<li class="active">
<span>Class</span> </li>
</ul>
<ul>
<li>
<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
</li>
<li>
<a href="deprecated.html" title="List of deprecated elements"><span>Deprecated</span></a>
</li>
<li>
<a href="todo.html" title="Todo list"><span>Todo</span></a>
</li>
</ul>
<ul>
</ul>
</div>
 
<div id="content" class="class">
<h1>Class Debug</h1>
 
 
<div class="description">
<p>Classe fournissant des fonctions de débogage équivalante à var_dump et
print_r. L'affichage et l'utilisation de ces fonctions sont améliorés via
cette classe. Cette classe est inspirée de la classe Zend_Debug.</p>
 
<p>PHP version 5</p>
 
</div>
 
 
 
 
 
 
 
 
 
<div class="info">
<b>Package:</b> <a href="package-Framework.html">Framework</a><br>
 
<b>Category:</b>
Debogage<br>
<b>Copyright:</b>
1999-2009 Tela Botanica (<a
href="mailto:accueil&#64;tela-botanica.org">accueil&#64;<!-- -->tela-botanica.org</a>)<br>
<b>License:</b>
<a href="GPL">v3 &lt;http://www.gnu.org/licenses/gpl.txt&gt;</a><br>
<b>License:</b>
<a href="CECILL">v2 &lt;http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt&gt;</a><br>
<b>Author:</b>
Jean-Pascal MILCENT &lt;<a
href="mailto:jpm&#64;tela-botanica.org">jpm&#64;<!-- -->tela-botanica.org</a>&gt;
// Autres auteurs :<br>
<b>Version:</b>
$$Id: Debug.php 167 2010-03-19 17:12:08Z jpm $$<br>
<b>Located at</b> <a href="source-class-Debug.html#3-122" title="Go to source code">Debug.php</a><br>
</div>
 
 
 
<table class="summary" id="methods">
<caption>Methods summary</caption>
<tr data-order="getMode" id="_getMode">
 
<td class="attributes"><code>
public static
string
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_getMode">#</a>
<code><a href="source-class-Debug.html#27-36" title="Go to source code">getMode</a>( )</code>
 
<div class="description short">
<p>Accesseur pour le mode</p>
 
</div>
 
<div class="description detailed hidden">
<p>Accesseur pour le mode</p>
 
 
 
 
<h4>Returns</h4>
<div class="list">
<code>string</code><br>le mode de php<br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="dump" id="_dump">
 
<td class="attributes"><code>
public static
string
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_dump">#</a>
<code><a href="source-class-Debug.html#38-56" title="Go to source code">dump</a>( <span>mixed <var>$variable</var></span>, <span>string <var>$mot_cle</var> = <span class="php-keyword1">null</span></span>, <span>boolean <var>$echo</var> = <span class="php-keyword1">true</span></span> )</code>
 
<div class="description short">
<p>Equivalent de var_dump</p>
 
</div>
 
<div class="description detailed hidden">
<p>Equivalent de var_dump</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$variable</var></dt>
<dd><code>mixed</code><br>$variable la variable à dumper</dd>
<dt><var>$mot_cle</var></dt>
<dd><code>string</code><br>$mot_cle le mot cle à associer à la variable</dd>
<dt><var>$echo</var></dt>
<dd><code>boolean</code><br>$echo si true on affiche le résultat, si false on ne renvoie que la chaine sans
l'afficher</dd>
</dl></div>
 
<h4>Returns</h4>
<div class="list">
<code>string</code><br>la chaine à afficher representant le dump ou null si echo<br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
<tr data-order="printr" id="_printr">
 
<td class="attributes"><code>
public static
string
</code>
</td>
 
<td class="name"><div>
<a class="anchor" href="#_printr">#</a>
<code><a href="source-class-Debug.html#58-71" title="Go to source code">printr</a>( <span>mixed <var>$variable</var></span>, <span>string <var>$mot_cle</var> = <span class="php-keyword1">null</span></span>, <span>boolean <var>$echo</var> = <span class="php-keyword1">true</span></span> )</code>
 
<div class="description short">
<p>Equivalent de print_r</p>
 
</div>
 
<div class="description detailed hidden">
<p>Equivalent de print_r</p>
 
 
 
<h4>Parameters</h4>
<div class="list"><dl>
<dt><var>$variable</var></dt>
<dd><code>mixed</code><br>$variable la variable à afficher</dd>
<dt><var>$mot_cle</var></dt>
<dd><code>string</code><br>$mot_cle le mot cle à associer</dd>
<dt><var>$echo</var></dt>
<dd><code>boolean</code><br>$echo faire un echo ou non</dd>
</dl></div>
 
<h4>Returns</h4>
<div class="list">
<code>string</code><br>la chaine contenant la variable printée ou null si echo<br>
</div>
 
 
 
 
</div>
</div></td>
</tr>
</table>
 
 
 
 
 
 
 
 
 
 
 
 
<table class="summary" id="properties">
<caption>Properties summary</caption>
<tr data-order="mode" id="$mode">
<td class="attributes"><code>
protected static
mixed
</code></td>
 
<td class="name">
<a href="source-class-Debug.html#22-25" title="Go to source code"><var>$mode</var></a>
</td>
<td class="value"><code><span class="php-keyword1">null</span></code></td>
<td class="description"><div>
<a href="#$mode" class="anchor">#</a>
 
<div class="description short">
<p>mode de php (cli ou sapi)</p>
 
</div>
 
<div class="description detailed hidden">
<p>mode de php (cli ou sapi)</p>
 
 
</div>
</div></td>
</tr>
</table>
 
 
 
 
 
 
</div>
 
<div id="footer">
TBFramework - v0.2 API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
</div>
</div>
</div>
</body>
</html>