Subversion Repositories Applications.framework

Compare Revisions

No changes between revisions

Ignore whitespace Rev 463 → Rev 464

/trunk/doc/PhpDoc/phpdoc-cache-25/phpdoc-cache-file_3ddac208e0d32b1cede22ae66c3fe09e.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/phpdoc-cache-25/phpdoc-cache-file_3ddac208e0d32b1cede22ae66c3fe09e.dat
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/phpdoc-cache-45/phpdoc-cache-file_93ae2e97933b2bd1f1736cb409d8eace.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/phpdoc-cache-45/phpdoc-cache-file_93ae2e97933b2bd1f1736cb409d8eace.dat
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/images/icon-interface-13x13.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/trunk/doc/PhpDoc/images/icon-interface-13x13.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/trunk/doc/PhpDoc/images/icon-trait.svg
New file
0,0 → 1,73
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
 
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
version="1.1"
width="220"
height="220"
id="svg2">
<defs
id="defs4" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(7.0217361,8.0694962)"
id="layer1">
<path
d="M 60,10 C 32.3,10 10,32.3 10,60 l 0,100 c 0,27.7 22.3,50 50,50 l 100,0 c 27.7,0 50,-22.3 50,-50 L 210,60 C 210,32.3 187.7,10 160,10 L 60,10 z m 8.90625,17.78125 82.1875,0 c 22.7744,0 41.125,18.350601 41.125,41.125 l 0,82.1875 c 0,22.7744 -18.3506,41.125 -41.125,41.125 l -82.1875,0 c -22.774399,0 -41.125,-18.3506 -41.125,-41.125 l 0,-82.1875 c 0,-22.774399 18.350601,-41.125 41.125,-41.125 z"
transform="translate(-7.0217361,-8.0694962)"
id="rect4991"
style="fill:#333333;fill-opacity:1;stroke:none" />
</g>
<g
id="layer2"
style="display:none">
<g
id="text3761"
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#333333;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu">
<path
d="m 119.775,168.98893 c -8.84006,0 -16.77338,-1.36 -23.8,-4.08 -7.026702,-2.71999 -12.976696,-6.68665 -17.85,-11.9 -4.873353,-5.32664 -8.613349,-11.78664 -11.22,-19.38 -2.606677,-7.59329 -3.910009,-16.31995 -3.91,-26.18 -9e-6,-9.859927 1.473322,-18.586585 4.42,-26.179996 3.059983,-7.59324 7.196646,-13.996567 12.41,-19.21 5.213302,-5.326557 11.333296,-9.349886 18.36,-12.07 7.02662,-2.719881 14.56327,-4.079879 22.61,-4.08 4.87326,1.21e-4 9.29326,0.396787 13.26,1.19 3.96658,0.680119 7.42325,1.473452 10.37,2.38 2.94657,0.906783 5.38324,1.870115 7.31,2.89 1.92657,1.020113 3.28657,1.756779 4.08,2.21 l -6.29,17.51 c -2.72009,-1.699904 -6.63009,-3.286569 -11.73,-4.76 -4.98675,-1.586566 -10.42674,-2.379898 -16.32,-2.38 -5.10006,1.02e-4 -9.86006,0.906768 -14.28,2.72 -4.42005,1.700097 -8.273379,4.306761 -11.56,7.82 -3.173372,3.513421 -5.666703,7.933417 -7.48,13.26 -1.813366,5.326739 -2.720032,11.503396 -2.72,18.529996 -3.2e-5,6.23339 0.679967,11.95672 2.04,17.17 1.473298,5.21337 3.683296,9.7467 6.63,13.6 2.946623,3.74003 6.68662,6.68669 11.22,8.84 4.53328,2.04002 9.97327,3.06002 16.32,3.06 7.59326,2e-5 13.76992,-0.73665 18.53,-2.21 4.75991,-1.58664 8.44324,-3.05997 11.05,-4.42 l 5.78,17.51 c -1.3601,0.90668 -3.2301,1.81334 -5.61,2.72 -2.26676,0.90667 -4.98676,1.81334 -8.16,2.72 -3.17342,0.79334 -6.74342,1.41667 -10.71,1.87 -3.96674,0.56667 -8.21674,0.85 -12.75,0.85"
id="path5013"
style="font-size:170px;font-weight:500;fill:#333333;-inkscape-font-specification:Ubuntu Medium" />
</g>
</g>
<g
id="layer3"
style="display:none">
<g
id="text3761-9"
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#333333;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu">
<path
d="m 99.289993,48.628934 21.419997,0 0,117.809996 -21.419997,0 0,-117.809996"
id="path5086"
style="font-size:170px;font-weight:500;fill:#333333;-inkscape-font-specification:Ubuntu Medium" />
</g>
</g>
<g
id="layer4"
style="display:inline">
<g
id="text3761-7"
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#333333;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu">
<path
d="m 154.67148,48.628934 0,18.53 -36.21,0 0,99.279996 -21.589995,0 0,-99.279996 -36.21,0 0,-18.53 94.009995,0"
id="path5089"
style="font-size:170px;font-weight:500;fill:#333333;-inkscape-font-specification:Ubuntu Medium" />
</g>
</g>
</svg>
/trunk/doc/PhpDoc/images/icon-class.svg
New file
0,0 → 1,77
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
 
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
version="1.1"
width="220"
height="220"
id="svg2">
<defs
id="defs4" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(7.0217361,8.0694962)"
id="layer1">
<path
d="M 60,10 C 32.3,10 10,32.3 10,60 l 0,100 c 0,27.7 22.3,50 50,50 l 100,0 c 27.7,0 50,-22.3 50,-50 L 210,60 C 210,32.3 187.7,10 160,10 L 60,10 z m 8.90625,17.78125 82.1875,0 c 22.7744,0 41.125,18.350601 41.125,41.125 l 0,82.1875 c 0,22.7744 -18.3506,41.125 -41.125,41.125 l -82.1875,0 c -22.774399,0 -41.125,-18.3506 -41.125,-41.125 l 0,-82.1875 c 0,-22.774399 18.350601,-41.125 41.125,-41.125 z"
transform="translate(-7.0217361,-8.0694962)"
id="rect4991"
style="fill:#333333;fill-opacity:1;stroke:none" />
</g>
<g
id="layer2"
style="display:inline">
<g
id="text3761"
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#333333;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu">
<path
d="m 119.775,168.98893 c -8.84006,0 -16.77338,-1.36 -23.8,-4.08 -7.026702,-2.71999 -12.976696,-6.68665 -17.85,-11.9 -4.873353,-5.32664 -8.613349,-11.78664 -11.22,-19.38 -2.606677,-7.59329 -3.910009,-16.31995 -3.91,-26.18 -9e-6,-9.859927 1.473322,-18.586585 4.42,-26.179996 3.059983,-7.59324 7.196646,-13.996567 12.41,-19.21 5.213302,-5.326557 11.333296,-9.349886 18.36,-12.07 7.02662,-2.719881 14.56327,-4.079879 22.61,-4.08 4.87326,1.21e-4 9.29326,0.396787 13.26,1.19 3.96658,0.680119 7.42325,1.473452 10.37,2.38 2.94657,0.906783 5.38324,1.870115 7.31,2.89 1.92657,1.020113 3.28657,1.756779 4.08,2.21 l -6.29,17.51 c -2.72009,-1.699904 -6.63009,-3.286569 -11.73,-4.76 -4.98675,-1.586566 -10.42674,-2.379898 -16.32,-2.38 -5.10006,1.02e-4 -9.86006,0.906768 -14.28,2.72 -4.42005,1.700097 -8.273379,4.306761 -11.56,7.82 -3.173372,3.513421 -5.666703,7.933417 -7.48,13.26 -1.813366,5.326739 -2.720032,11.503396 -2.72,18.529996 -3.2e-5,6.23339 0.679967,11.95672 2.04,17.17 1.473298,5.21337 3.683296,9.7467 6.63,13.6 2.946623,3.74003 6.68662,6.68669 11.22,8.84 4.53328,2.04002 9.97327,3.06002 16.32,3.06 7.59326,2e-5 13.76992,-0.73665 18.53,-2.21 4.75991,-1.58664 8.44324,-3.05997 11.05,-4.42 l 5.78,17.51 c -1.3601,0.90668 -3.2301,1.81334 -5.61,2.72 -2.26676,0.90667 -4.98676,1.81334 -8.16,2.72 -3.17342,0.79334 -6.74342,1.41667 -10.71,1.87 -3.96674,0.56667 -8.21674,0.85 -12.75,0.85"
id="path5013"
style="font-size:170px;font-weight:500;fill:#333333;-inkscape-font-specification:Ubuntu Medium" />
</g>
</g>
<g
id="layer3"
style="display:none">
<text
x="110.08234"
y="166.43893"
id="text3761-9"
xml:space="preserve"
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#333333;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu"><tspan
x="110.08234"
y="166.43893"
id="tspan3763-5"
style="font-size:170px;font-weight:500;fill:#333333;-inkscape-font-specification:Ubuntu Medium">I</tspan></text>
</g>
<g
id="layer4"
style="display:none">
<text
x="107.59211"
y="166.43893"
id="text3761-7"
xml:space="preserve"
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#333333;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu"><tspan
x="107.59211"
y="166.43893"
id="tspan3763-8"
style="font-size:170px;font-weight:500;fill:#333333;-inkscape-font-specification:Ubuntu Medium">T</tspan></text>
</g>
</svg>
/trunk/doc/PhpDoc/images/icon-trait-13x13.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/trunk/doc/PhpDoc/images/icon-trait-13x13.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/trunk/doc/PhpDoc/images/apple-touch-icon.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/trunk/doc/PhpDoc/images/apple-touch-icon.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/trunk/doc/PhpDoc/images/iviewer/iviewer.zoom_zero.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/trunk/doc/PhpDoc/images/iviewer/iviewer.zoom_zero.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/trunk/doc/PhpDoc/images/iviewer/hand.cur
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/images/iviewer/hand.cur
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/images/iviewer/iviewer.zoom_fit.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/trunk/doc/PhpDoc/images/iviewer/iviewer.zoom_fit.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/trunk/doc/PhpDoc/images/iviewer/grab.cur
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/images/iviewer/grab.cur
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/images/iviewer/iviewer.rotate_left.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/trunk/doc/PhpDoc/images/iviewer/iviewer.rotate_left.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/trunk/doc/PhpDoc/images/iviewer/iviewer.zoom_in.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/trunk/doc/PhpDoc/images/iviewer/iviewer.zoom_in.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/trunk/doc/PhpDoc/images/iviewer/iviewer.rotate_right.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/trunk/doc/PhpDoc/images/iviewer/iviewer.rotate_right.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/trunk/doc/PhpDoc/images/iviewer/iviewer.zoom_out.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/trunk/doc/PhpDoc/images/iviewer/iviewer.zoom_out.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/trunk/doc/PhpDoc/images/apple-touch-icon-114x114.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/trunk/doc/PhpDoc/images/apple-touch-icon-114x114.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/trunk/doc/PhpDoc/images/icon-class-13x13.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/trunk/doc/PhpDoc/images/icon-class-13x13.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/trunk/doc/PhpDoc/images/hierarchy-item.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/trunk/doc/PhpDoc/images/hierarchy-item.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/trunk/doc/PhpDoc/images/favicon.ico
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/images/favicon.ico
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/images/apple-touch-icon-72x72.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/trunk/doc/PhpDoc/images/apple-touch-icon-72x72.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/trunk/doc/PhpDoc/images/custom-icons.svg
New file
0,0 → 1,116
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
 
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="220"
height="220"
id="svg2"
version="1.1"
inkscape:version="0.48.3.1 r9886"
sodipodi:docname="custom-icons.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="2.4181818"
inkscape:cx="60.37594"
inkscape:cy="110"
inkscape:document-units="px"
inkscape:current-layer="layer4"
showgrid="false"
inkscape:window-width="1366"
inkscape:window-height="718"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:showpageshadow="false"
fit-margin-top="10"
fit-margin-left="10"
fit-margin-right="10"
fit-margin-bottom="10" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Background"
inkscape:groupmode="layer"
id="layer1"
transform="translate(7.0217361,8.0694962)"
sodipodi:insensitive="true">
<path
style="fill:#333333;fill-opacity:1;stroke:none"
d="M 60,10 C 32.3,10 10,32.3 10,60 l 0,100 c 0,27.7 22.3,50 50,50 l 100,0 c 27.7,0 50,-22.3 50,-50 L 210,60 C 210,32.3 187.7,10 160,10 L 60,10 z m 8.90625,17.78125 82.1875,0 c 22.7744,0 41.125,18.350601 41.125,41.125 l 0,82.1875 c 0,22.7744 -18.3506,41.125 -41.125,41.125 l -82.1875,0 c -22.774399,0 -41.125,-18.3506 -41.125,-41.125 l 0,-82.1875 c 0,-22.774399 18.350601,-41.125 41.125,-41.125 z"
transform="translate(-7.0217361,-8.0694962)"
id="rect4991"
inkscape:connector-curvature="0" />
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Class"
style="display:none"
sodipodi:insensitive="true">
<g
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#333333;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu"
id="text3761">
<path
d="m 119.775,168.98893 c -8.84006,0 -16.77338,-1.36 -23.8,-4.08 -7.026702,-2.71999 -12.976696,-6.68665 -17.85,-11.9 -4.873353,-5.32664 -8.613349,-11.78664 -11.22,-19.38 -2.606677,-7.59329 -3.910009,-16.31995 -3.91,-26.18 -9e-6,-9.859927 1.473322,-18.586585 4.42,-26.179996 3.059983,-7.59324 7.196646,-13.996567 12.41,-19.21 5.213302,-5.326557 11.333296,-9.349886 18.36,-12.07 7.02662,-2.719881 14.56327,-4.079879 22.61,-4.08 4.87326,1.21e-4 9.29326,0.396787 13.26,1.19 3.96658,0.680119 7.42325,1.473452 10.37,2.38 2.94657,0.906783 5.38324,1.870115 7.31,2.89 1.92657,1.020113 3.28657,1.756779 4.08,2.21 l -6.29,17.51 c -2.72009,-1.699904 -6.63009,-3.286569 -11.73,-4.76 -4.98675,-1.586566 -10.42674,-2.379898 -16.32,-2.38 -5.10006,1.02e-4 -9.86006,0.906768 -14.28,2.72 -4.42005,1.700097 -8.273379,4.306761 -11.56,7.82 -3.173372,3.513421 -5.666703,7.933417 -7.48,13.26 -1.813366,5.326739 -2.720032,11.503396 -2.72,18.529996 -3.2e-5,6.23339 0.679967,11.95672 2.04,17.17 1.473298,5.21337 3.683296,9.7467 6.63,13.6 2.946623,3.74003 6.68662,6.68669 11.22,8.84 4.53328,2.04002 9.97327,3.06002 16.32,3.06 7.59326,2e-5 13.76992,-0.73665 18.53,-2.21 4.75991,-1.58664 8.44324,-3.05997 11.05,-4.42 l 5.78,17.51 c -1.3601,0.90668 -3.2301,1.81334 -5.61,2.72 -2.26676,0.90667 -4.98676,1.81334 -8.16,2.72 -3.17342,0.79334 -6.74342,1.41667 -10.71,1.87 -3.96674,0.56667 -8.21674,0.85 -12.75,0.85"
style="font-size:170px;font-weight:500;fill:#333333;-inkscape-font-specification:Ubuntu Medium"
id="path5013"
inkscape:connector-curvature="0" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Interface"
style="display:none"
sodipodi:insensitive="true">
<g
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#333333;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu"
id="text3761-9">
<path
d="m 99.289993,48.628934 21.419997,0 0,117.809996 -21.419997,0 0,-117.809996"
style="font-size:170px;font-weight:500;fill:#333333;-inkscape-font-specification:Ubuntu Medium"
id="path5086"
inkscape:connector-curvature="0" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="Trait"
style="display:inline"
sodipodi:insensitive="true">
<g
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#333333;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu"
id="text3761-7">
<path
d="m 154.67148,48.628934 0,18.53 -36.21,0 0,99.279996 -21.589995,0 0,-99.279996 -36.21,0 0,-18.53 94.009995,0"
style="font-size:170px;font-weight:500;fill:#333333;-inkscape-font-specification:Ubuntu Medium"
id="path5089"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>
/trunk/doc/PhpDoc/images/icon-interface.svg
New file
0,0 → 1,73
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
 
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
version="1.1"
width="220"
height="220"
id="svg2">
<defs
id="defs4" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(7.0217361,8.0694962)"
id="layer1">
<path
d="M 60,10 C 32.3,10 10,32.3 10,60 l 0,100 c 0,27.7 22.3,50 50,50 l 100,0 c 27.7,0 50,-22.3 50,-50 L 210,60 C 210,32.3 187.7,10 160,10 L 60,10 z m 8.90625,17.78125 82.1875,0 c 22.7744,0 41.125,18.350601 41.125,41.125 l 0,82.1875 c 0,22.7744 -18.3506,41.125 -41.125,41.125 l -82.1875,0 c -22.774399,0 -41.125,-18.3506 -41.125,-41.125 l 0,-82.1875 c 0,-22.774399 18.350601,-41.125 41.125,-41.125 z"
transform="translate(-7.0217361,-8.0694962)"
id="rect4991"
style="fill:#333333;fill-opacity:1;stroke:none" />
</g>
<g
id="layer2"
style="display:none">
<g
id="text3761"
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#333333;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu">
<path
d="m 119.775,168.98893 c -8.84006,0 -16.77338,-1.36 -23.8,-4.08 -7.026702,-2.71999 -12.976696,-6.68665 -17.85,-11.9 -4.873353,-5.32664 -8.613349,-11.78664 -11.22,-19.38 -2.606677,-7.59329 -3.910009,-16.31995 -3.91,-26.18 -9e-6,-9.859927 1.473322,-18.586585 4.42,-26.179996 3.059983,-7.59324 7.196646,-13.996567 12.41,-19.21 5.213302,-5.326557 11.333296,-9.349886 18.36,-12.07 7.02662,-2.719881 14.56327,-4.079879 22.61,-4.08 4.87326,1.21e-4 9.29326,0.396787 13.26,1.19 3.96658,0.680119 7.42325,1.473452 10.37,2.38 2.94657,0.906783 5.38324,1.870115 7.31,2.89 1.92657,1.020113 3.28657,1.756779 4.08,2.21 l -6.29,17.51 c -2.72009,-1.699904 -6.63009,-3.286569 -11.73,-4.76 -4.98675,-1.586566 -10.42674,-2.379898 -16.32,-2.38 -5.10006,1.02e-4 -9.86006,0.906768 -14.28,2.72 -4.42005,1.700097 -8.273379,4.306761 -11.56,7.82 -3.173372,3.513421 -5.666703,7.933417 -7.48,13.26 -1.813366,5.326739 -2.720032,11.503396 -2.72,18.529996 -3.2e-5,6.23339 0.679967,11.95672 2.04,17.17 1.473298,5.21337 3.683296,9.7467 6.63,13.6 2.946623,3.74003 6.68662,6.68669 11.22,8.84 4.53328,2.04002 9.97327,3.06002 16.32,3.06 7.59326,2e-5 13.76992,-0.73665 18.53,-2.21 4.75991,-1.58664 8.44324,-3.05997 11.05,-4.42 l 5.78,17.51 c -1.3601,0.90668 -3.2301,1.81334 -5.61,2.72 -2.26676,0.90667 -4.98676,1.81334 -8.16,2.72 -3.17342,0.79334 -6.74342,1.41667 -10.71,1.87 -3.96674,0.56667 -8.21674,0.85 -12.75,0.85"
id="path5013"
style="font-size:170px;font-weight:500;fill:#333333;-inkscape-font-specification:Ubuntu Medium" />
</g>
</g>
<g
id="layer3"
style="display:inline">
<g
id="text3761-9"
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#333333;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu">
<path
d="m 99.289993,48.628934 21.419997,0 0,117.809996 -21.419997,0 0,-117.809996"
id="path5086"
style="font-size:170px;font-weight:500;fill:#333333;-inkscape-font-specification:Ubuntu Medium" />
</g>
</g>
<g
id="layer4"
style="display:none">
<g
id="text3761-7"
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#333333;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu">
<path
d="m 154.67148,48.628934 0,18.53 -36.21,0 0,99.279996 -21.589995,0 0,-99.279996 -36.21,0 0,-18.53 94.009995,0"
id="path5089"
style="font-size:170px;font-weight:500;fill:#333333;-inkscape-font-specification:Ubuntu Medium" />
</g>
</g>
</svg>
/trunk/doc/PhpDoc/phpdoc-cache-67/phpdoc-cache-file_13a195b76a5d6e2af05535eef2a59606.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/phpdoc-cache-67/phpdoc-cache-file_13a195b76a5d6e2af05535eef2a59606.dat
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/phpdoc-cache-69/phpdoc-cache-file_6fa00f6ef4b386081d5af8788aeb273e.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/phpdoc-cache-69/phpdoc-cache-file_6fa00f6ef4b386081d5af8788aeb273e.dat
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/phpdoc-cache-a0/phpdoc-cache-file_fc563432a226bf5a590f5de8884da4af.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/phpdoc-cache-a0/phpdoc-cache-file_fc563432a226bf5a590f5de8884da4af.dat
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/phpdoc-cache-a0/phpdoc-cache-file_c23d622764f451eb27c248b6edeeb09c.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/phpdoc-cache-a0/phpdoc-cache-file_c23d622764f451eb27c248b6edeeb09c.dat
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/js/jquery.dotdotdot-1.5.9.js
New file
0,0 → 1,602
/*
* jQuery dotdotdot 1.5.9
*
* Copyright (c) 2013 Fred Heusschen
* www.frebsite.nl
*
* Plugin website:
* dotdotdot.frebsite.nl
*
* Dual licensed under the MIT and GPL licenses.
* http://en.wikipedia.org/wiki/MIT_License
* http://en.wikipedia.org/wiki/GNU_General_Public_License
*/
 
(function( $ )
{
if ( $.fn.dotdotdot )
{
return;
}
 
$.fn.dotdotdot = function( o )
{
if ( this.length == 0 )
{
if ( !o || o.debug !== false )
{
debug( true, 'No element found for "' + this.selector + '".' );
}
return this;
}
if ( this.length > 1 )
{
return this.each(
function()
{
$(this).dotdotdot( o );
}
);
}
 
 
var $dot = this;
 
if ( $dot.data( 'dotdotdot' ) )
{
$dot.trigger( 'destroy.dot' );
}
 
$dot.data( 'dotdotdot-style', $dot.attr( 'style' ) );
$dot.css( 'word-wrap', 'break-word' );
 
$dot.bind_events = function()
{
$dot.bind(
'update.dot',
function( e, c )
{
e.preventDefault();
e.stopPropagation();
 
opts.maxHeight = ( typeof opts.height == 'number' )
? opts.height
: getTrueInnerHeight( $dot );
 
opts.maxHeight += opts.tolerance;
 
if ( typeof c != 'undefined' )
{
if ( typeof c == 'string' || c instanceof HTMLElement )
{
c = $('<div />').append( c ).contents();
}
if ( c instanceof $ )
{
orgContent = c;
}
}
 
$inr = $dot.wrapInner( '<div class="dotdotdot" />' ).children();
$inr.empty()
.append( orgContent.clone( true ) )
.css({
'height' : 'auto',
'width' : 'auto',
'border' : 'none',
'padding' : 0,
'margin' : 0
});
 
var after = false,
trunc = false;
 
if ( conf.afterElement )
{
after = conf.afterElement.clone( true );
conf.afterElement.remove();
}
if ( test( $inr, opts ) )
{
if ( opts.wrap == 'children' )
{
trunc = children( $inr, opts, after );
}
else
{
trunc = ellipsis( $inr, $dot, $inr, opts, after );
}
}
$inr.replaceWith( $inr.contents() );
$inr = null;
if ( $.isFunction( opts.callback ) )
{
opts.callback.call( $dot[ 0 ], trunc, orgContent );
}
 
conf.isTruncated = trunc;
return trunc;
}
 
).bind(
'isTruncated.dot',
function( e, fn )
{
e.preventDefault();
e.stopPropagation();
 
if ( typeof fn == 'function' )
{
fn.call( $dot[ 0 ], conf.isTruncated );
}
return conf.isTruncated;
}
 
).bind(
'originalContent.dot',
function( e, fn )
{
e.preventDefault();
e.stopPropagation();
 
if ( typeof fn == 'function' )
{
fn.call( $dot[ 0 ], orgContent );
}
return orgContent;
}
 
).bind(
'destroy.dot',
function( e )
{
e.preventDefault();
e.stopPropagation();
 
$dot.unwatch()
.unbind_events()
.empty()
.append( orgContent )
.attr( 'style', $dot.data( 'dotdotdot-style' ) )
.data( 'dotdotdot', false );
}
);
return $dot;
}; // /bind_events
 
$dot.unbind_events = function()
{
$dot.unbind('.dot');
return $dot;
}; // /unbind_events
 
$dot.watch = function()
{
$dot.unwatch();
if ( opts.watch == 'window' )
{
var $window = $(window),
_wWidth = $window.width(),
_wHeight = $window.height();
 
$window.bind(
'resize.dot' + conf.dotId,
function()
{
if ( _wWidth != $window.width() || _wHeight != $window.height() || !opts.windowResizeFix )
{
_wWidth = $window.width();
_wHeight = $window.height();
if ( watchInt )
{
clearInterval( watchInt );
}
watchInt = setTimeout(
function()
{
$dot.trigger( 'update.dot' );
}, 10
);
}
}
);
}
else
{
watchOrg = getSizes( $dot );
watchInt = setInterval(
function()
{
var watchNew = getSizes( $dot );
if ( watchOrg.width != watchNew.width ||
watchOrg.height != watchNew.height )
{
$dot.trigger( 'update.dot' );
watchOrg = getSizes( $dot );
}
}, 100
);
}
return $dot;
};
$dot.unwatch = function()
{
$(window).unbind( 'resize.dot' + conf.dotId );
if ( watchInt )
{
clearInterval( watchInt );
}
return $dot;
};
 
var orgContent = $dot.contents(),
opts = $.extend( true, {}, $.fn.dotdotdot.defaults, o ),
conf = {},
watchOrg = {},
watchInt = null,
$inr = null;
 
conf.afterElement = getElement( opts.after, $dot );
conf.isTruncated = false;
conf.dotId = dotId++;
 
 
$dot.data( 'dotdotdot', true )
.bind_events()
.trigger( 'update.dot' );
 
if ( opts.watch )
{
$dot.watch();
}
 
return $dot;
};
 
 
// public
$.fn.dotdotdot.defaults = {
'ellipsis' : '... ',
'wrap' : 'word',
'lastCharacter': {
'remove' : [ ' ', ',', ';', '.', '!', '?' ],
'noEllipsis' : []
},
'tolerance' : 0,
'callback' : null,
'after' : null,
'height' : null,
'watch' : false,
'windowResizeFix': true,
'debug' : false
};
 
// private
var dotId = 1;
 
function children( $elem, o, after )
{
var $elements = $elem.children(),
isTruncated = false;
 
$elem.empty();
 
for ( var a = 0, l = $elements.length; a < l; a++ )
{
var $e = $elements.eq( a );
$elem.append( $e );
if ( after )
{
$elem.append( after );
}
if ( test( $elem, o ) )
{
$e.remove();
isTruncated = true;
break;
}
else
{
if ( after )
{
after.remove();
}
}
}
return isTruncated;
}
function ellipsis( $elem, $d, $i, o, after )
{
var $elements = $elem.contents(),
isTruncated = false;
 
$elem.empty();
 
var notx = 'table, thead, tbody, tfoot, tr, col, colgroup, object, embed, param, ol, ul, dl, select, optgroup, option, textarea, script, style';
for ( var a = 0, l = $elements.length; a < l; a++ )
{
 
if ( isTruncated )
{
break;
}
 
var e = $elements[ a ],
$e = $(e);
 
if ( typeof e == 'undefined' )
{
continue;
}
 
$elem.append( $e );
if ( after )
{
$elem[ ( $elem.is( notx ) ) ? 'after' : 'append' ]( after );
}
if ( e.nodeType == 3 )
{
if ( test( $i, o ) )
{
isTruncated = ellipsisElement( $e, $d, $i, o, after );
}
}
else
{
isTruncated = ellipsis( $e, $d, $i, o, after );
}
 
if ( !isTruncated )
{
if ( after )
{
after.remove();
}
}
}
return isTruncated;
}
function ellipsisElement( $e, $d, $i, o, after )
{
var isTruncated = false,
e = $e[ 0 ];
 
if ( typeof e == 'undefined' )
{
return false;
}
 
var seporator = ( o.wrap == 'letter' ) ? '' : ' ',
textArr = getTextContent( e ).split( seporator ),
position = -1,
midPos = -1,
startPos = 0,
endPos = textArr.length - 1;
 
while ( startPos <= endPos )
{
var m = Math.floor( ( startPos + endPos ) / 2 );
if ( m == midPos )
{
break;
}
midPos = m;
 
setTextContent( e, textArr.slice( 0, midPos + 1 ).join( seporator ) + o.ellipsis );
 
if ( !test( $i, o ) )
{
position = midPos;
startPos = midPos;
}
else
{
endPos = midPos;
}
}
if ( position != -1 && !( textArr.length == 1 && textArr[ 0 ].length == 0 ) )
{
var txt = addEllipsis( textArr.slice( 0, position + 1 ).join( seporator ), o );
isTruncated = true;
setTextContent( e, txt );
}
else
{
var $w = $e.parent();
$e.remove();
 
var afterLength = ( after ) ? after.length : 0 ;
 
if ( $w.contents().size() > afterLength )
{
var $n = $w.contents().eq( -1 - afterLength );
isTruncated = ellipsisElement( $n, $d, $i, o, after );
}
else
{
var $p = $w.prev()
var e = $p.contents().eq( -1 )[ 0 ];
 
if ( typeof e != 'undefined' )
{
var txt = addEllipsis( getTextContent( e ), o );
setTextContent( e, txt );
if ( after )
{
$p.append( after );
}
$w.remove();
isTruncated = true;
}
 
}
}
 
return isTruncated;
}
function test( $i, o )
{
return $i.innerHeight() > o.maxHeight;
}
function addEllipsis( txt, o )
{
while( $.inArray( txt.slice( -1 ), o.lastCharacter.remove ) > -1 )
{
txt = txt.slice( 0, -1 );
}
if ( $.inArray( txt.slice( -1 ), o.lastCharacter.noEllipsis ) < 0 )
{
txt += o.ellipsis;
}
return txt;
}
function getSizes( $d )
{
return {
'width' : $d.innerWidth(),
'height': $d.innerHeight()
};
}
function setTextContent( e, content )
{
if ( e.innerText )
{
e.innerText = content;
}
else if ( e.nodeValue )
{
e.nodeValue = content;
}
else if (e.textContent)
{
e.textContent = content;
}
 
}
function getTextContent( e )
{
if ( e.innerText )
{
return e.innerText;
}
else if ( e.nodeValue )
{
return e.nodeValue;
}
else if ( e.textContent )
{
return e.textContent;
}
else
{
return "";
}
}
function getElement( e, $i )
{
if ( typeof e == 'undefined' )
{
return false;
}
if ( !e )
{
return false;
}
if ( typeof e == 'string' )
{
e = $(e, $i);
return ( e.length )
? e
: false;
}
if ( typeof e == 'object' )
{
return ( typeof e.jquery == 'undefined' )
? false
: e;
}
return false;
}
function getTrueInnerHeight( $el )
{
var h = $el.innerHeight(),
a = [ 'paddingTop', 'paddingBottom' ];
 
for ( var z = 0, l = a.length; z < l; z++ ) {
var m = parseInt( $el.css( a[ z ] ), 10 );
if ( isNaN( m ) )
{
m = 0;
}
h -= m;
}
return h;
}
function debug( d, m )
{
if ( !d )
{
return false;
}
if ( typeof m == 'string' )
{
m = 'dotdotdot: ' + m;
}
else
{
m = [ 'dotdotdot:', m ];
}
 
if ( typeof window.console != 'undefined' )
{
if ( typeof window.console.log != 'undefined' )
{
window.console.log( m );
}
}
return false;
}
 
// override jQuery.html
var _orgHtml = $.fn.html;
$.fn.html = function( str ) {
if ( typeof str != 'undefined' )
{
if ( this.data( 'dotdotdot' ) )
{
if ( typeof str != 'function' )
{
return this.trigger( 'update', [ str ] );
}
}
return _orgHtml.call( this, str );
}
return _orgHtml.call( this );
};
 
 
// override jQuery.text
var _orgText = $.fn.text;
$.fn.text = function( str ) {
if ( typeof str != 'undefined' )
{
if ( this.data( 'dotdotdot' ) )
{
var temp = $( '<div />' );
temp.text( str );
str = temp.html();
temp.remove();
return this.trigger( 'update', [ str ] );
}
return _orgText.call( this, str );
}
return _orgText.call( this );
};
 
 
})( jQuery );
/trunk/doc/PhpDoc/js/jquery.iviewer.min.js
New file
0,0 → 1,47
/*
* iviewer Widget for jQuery UI
* https://github.com/can3p/iviewer
*
* Copyright (c) 2009 - 2012 Dmitry Petrov
* Dual licensed under the MIT and GPL licenses.
* - http://www.opensource.org/licenses/mit-license.php
* - http://www.gnu.org/copyleft/gpl.html
*
* Author: Dmitry Petrov
* Version: 0.7.7
*/
(function($,undefined){var mouseEvents={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup"},gesturesSupport="ongesturestart"in document.createElement("div");function makeMouseEvent(event){var touch=event.originalEvent.changedTouches[0];return $.extend(event,{type:mouseEvents[event.type],which:1,pageX:touch.pageX,pageY:touch.pageY,screenX:touch.screenX,screenY:touch.screenY,clientX:touch.clientX,clientY:touch.clientY,isTouchEvent:true})}var mouseProto=$.ui.mouse.prototype,_mouseInit=$.ui.mouse.prototype._mouseInit;
mouseProto._mouseInit=function(){var self=this;self._touchActive=false;this.element.bind("touchstart."+this.widgetName,function(event){if(gesturesSupport&&event.originalEvent.touches.length>1)return;self._touchActive=true;return self._mouseDown(makeMouseEvent(event))});var self=this;this._mouseMoveDelegate=function(event){if(gesturesSupport&&event.originalEvent.touches&&event.originalEvent.touches.length>1)return;if(self._touchActive)return self._mouseMove(makeMouseEvent(event))};this._mouseUpDelegate=
function(event){if(self._touchActive){self._touchActive=false;return self._mouseUp(makeMouseEvent(event))}};$(document).bind("touchmove."+this.widgetName,this._mouseMoveDelegate).bind("touchend."+this.widgetName,this._mouseUpDelegate);_mouseInit.apply(this)};var setter=function(setter,getter){return function(val){if(arguments.length===0)return getter.apply(this);else setter.apply(this,arguments)}};var ieTransforms={"0":{marginLeft:0,marginTop:0,filter:'progid:DXImageTransform.Microsoft.Matrix(M11=1, M12=0, M21=0, M22=1, SizingMethod="auto expand")'},
90:{marginLeft:-1,marginTop:1,filter:'progid:DXImageTransform.Microsoft.Matrix(M11=0, M12=-1, M21=1, M22=0, SizingMethod="auto expand")'},180:{marginLeft:0,marginTop:0,filter:'progid:DXImageTransform.Microsoft.Matrix(M11=-1, M12=0, M21=0, M22=-1, SizingMethod="auto expand")'},270:{marginLeft:-1,marginTop:1,filter:'progid:DXImageTransform.Microsoft.Matrix(M11=0, M12=1, M21=-1, M22=0, SizingMethod="auto expand")'}},useIeTransforms=function(){var el=document.createElement("div");el.style.cssText=["-ms-",
"",""].join("filter:blur(2px); ");return!!el.style.cssText&&document.documentMode<9}();$.widget("ui.iviewer",$.ui.mouse,{widgetEventPrefix:"iviewer",options:{zoom:"fit",zoom_base:100,zoom_max:800,zoom_min:25,zoom_delta:1.4,zoom_animation:true,ui_disabled:false,mousewheel:true,update_on_resize:true,onZoom:jQuery.noop,onAfterZoom:jQuery.noop,onStartDrag:jQuery.noop,onDrag:jQuery.noop,onStopDrag:jQuery.noop,onMouseMove:jQuery.noop,onClick:jQuery.noop,onStartLoad:null,onFinishLoad:null,onErrorLoad:null},
_create:function(){var me=this;this.dx=0;this.dy=0;this.img_object={};this.zoom_object={};this._angle=0;this.current_zoom=this.options.zoom;if(this.options.src===null)return;this.container=this.element;this._updateContainerInfo();this.container.css("overflow","hidden");if(this.options.update_on_resize==true)$(window).resize(function(){me.update()});this.img_object=new $.ui.iviewer.ImageObject(this.options.zoom_animation);if(this.options.mousewheel){this.container.bind("mousewheel.iviewer",function(ev,
delta){var zoom=delta>0?1:-1,container_offset=me.container.offset(),mouse_pos={x:ev.pageX-container_offset.left,y:ev.pageY-container_offset.top};me.zoom_by(zoom,mouse_pos);return false});if(gesturesSupport){var gestureThrottle=+new Date;var originalScale,originalCenter;this.img_object.object().bind("touchstart",function(ev){originalScale=me.current_zoom;var touches=ev.originalEvent.touches,container_offset;if(touches.length==2){container_offset=me.container.offset();originalCenter={x:(touches[0].pageX+
touches[1].pageX)/2-container_offset.left,y:(touches[0].pageY+touches[1].pageY)/2-container_offset.top}}else originalCenter=null}).bind("gesturechange",function(ev){var d=+new Date;if(d-gestureThrottle<50)return;gestureThrottle=d;var zoom=originalScale*ev.originalEvent.scale;me.set_zoom(zoom,originalCenter);ev.preventDefault()}).bind("gestureend",function(ev){originalCenter=null})}}this.img_object.object().click(function(e){return me._click(e)}).prependTo(this.container);this.container.bind("mousemove",
function(ev){me._handleMouseMove(ev)});this.loadImage(this.options.src);if(!this.options.ui_disabled)this.createui();this._mouseInit()},destroy:function(){$.Widget.prototype.destroy.call(this);this._mouseDestroy();this.img_object.object().remove();this.container.off(".iviewer");this.container.css("overflow","")},_updateContainerInfo:function(){this.options.height=this.container.height();this.options.width=this.container.width()},update:function(){this._updateContainerInfo();this.setCoords(this.img_object.x(),
this.img_object.y())},loadImage:function(src){this.current_zoom=this.options.zoom;var me=this;this._trigger("onStartLoad",0,src);this.container.addClass("iviewer_loading");this.img_object.load(src,function(){me._imageLoaded(src)},function(){me._trigger("onErrorLoad",0,src)})},_imageLoaded:function(src){this.container.removeClass("iviewer_loading");this.container.addClass("iviewer_cursor");if(this.options.zoom=="fit")this.fit(true);else this.set_zoom(this.options.zoom,true);this._trigger("onFinishLoad",
0,src)},fit:function(skip_animation){var aspect_ratio=this.img_object.orig_width()/this.img_object.orig_height();var window_ratio=this.options.width/this.options.height;var choose_left=aspect_ratio>window_ratio;var new_zoom=0;if(choose_left)new_zoom=this.options.width/this.img_object.orig_width()*100;else new_zoom=this.options.height/this.img_object.orig_height()*100;this.set_zoom(new_zoom,skip_animation)},center:function(){this.setCoords(-Math.round((this.img_object.display_width()-this.options.width)/
2),-Math.round((this.img_object.display_height()-this.options.height)/2))},moveTo:function(x,y){var dx=x-Math.round(this.options.width/2);var dy=y-Math.round(this.options.height/2);var new_x=this.img_object.x()-dx;var new_y=this.img_object.y()-dy;this.setCoords(new_x,new_y)},getContainerOffset:function(){return jQuery.extend({},this.container.offset())},setCoords:function(x,y){if(!this.img_object.loaded())return;var coords=this._correctCoords(x,y);this.img_object.x(coords.x);this.img_object.y(coords.y)},
_correctCoords:function(x,y){x=parseInt(x,10);y=parseInt(y,10);if(y>0)y=0;if(x>0)x=0;if(y+this.img_object.display_height()<this.options.height)y=this.options.height-this.img_object.display_height();if(x+this.img_object.display_width()<this.options.width)x=this.options.width-this.img_object.display_width();if(this.img_object.display_width()<=this.options.width)x=-(this.img_object.display_width()-this.options.width)/2;if(this.img_object.display_height()<=this.options.height)y=-(this.img_object.display_height()-
this.options.height)/2;return{x:x,y:y}},containerToImage:function(x,y){var coords={x:x-this.img_object.x(),y:y-this.img_object.y()};coords=this.img_object.toOriginalCoords(coords);return{x:util.descaleValue(coords.x,this.current_zoom),y:util.descaleValue(coords.y,this.current_zoom)}},imageToContainer:function(x,y){var coords={x:util.scaleValue(x,this.current_zoom),y:util.scaleValue(y,this.current_zoom)};return this.img_object.toRealCoords(coords)},_getMouseCoords:function(e){var containerOffset=this.container.offset();
coords=this.containerToImage(e.pageX-containerOffset.left,e.pageY-containerOffset.top);return coords},set_zoom:function(new_zoom,skip_animation,zoom_center){if(this._trigger("onZoom",0,new_zoom)==false)return;if(!this.img_object.loaded())return;zoom_center=zoom_center||{x:Math.round(this.options.width/2),y:Math.round(this.options.height/2)};if(new_zoom<this.options.zoom_min)new_zoom=this.options.zoom_min;else if(new_zoom>this.options.zoom_max)new_zoom=this.options.zoom_max;if(this.current_zoom=="fit"){var old_x=
zoom_center.x+Math.round(this.img_object.orig_width()/2);var old_y=zoom_center.y+Math.round(this.img_object.orig_height()/2);this.current_zoom=100}else{var old_x=-this.img_object.x()+zoom_center.x;var old_y=-this.img_object.y()+zoom_center.y}var new_width=util.scaleValue(this.img_object.orig_width(),new_zoom);var new_height=util.scaleValue(this.img_object.orig_height(),new_zoom);var new_x=util.scaleValue(util.descaleValue(old_x,this.current_zoom),new_zoom);var new_y=util.scaleValue(util.descaleValue(old_y,
this.current_zoom),new_zoom);new_x=zoom_center.x-new_x;new_y=zoom_center.y-new_y;new_width=Math.floor(new_width);new_height=Math.floor(new_height);new_x=Math.floor(new_x);new_y=Math.floor(new_y);this.img_object.display_width(new_width);this.img_object.display_height(new_height);var coords=this._correctCoords(new_x,new_y),self=this;this.img_object.setImageProps(new_width,new_height,coords.x,coords.y,skip_animation,function(){self._trigger("onAfterZoom",0,new_zoom)});this.current_zoom=new_zoom;this.update_status()},
zoom_by:function(delta,zoom_center){var closest_rate=this.find_closest_zoom_rate(this.current_zoom);var next_rate=closest_rate+delta;var next_zoom=this.options.zoom_base*Math.pow(this.options.zoom_delta,next_rate);if(delta>0&&next_zoom<this.current_zoom)next_zoom*=this.options.zoom_delta;if(delta<0&&next_zoom>this.current_zoom)next_zoom/=this.options.zoom_delta;this.set_zoom(next_zoom,undefined,zoom_center)},angle:function(deg,abs){if(arguments.length===0)return this.img_object.angle();if(deg<-270||
deg>270||deg%90!==0)return;if(!abs)deg+=this.img_object.angle();if(deg<0)deg+=360;if(deg>=360)deg-=360;if(deg===this.img_object.angle())return;this.img_object.angle(deg);this.center();this._trigger("angle",0,{angle:this.img_object.angle()})},find_closest_zoom_rate:function(value){if(value==this.options.zoom_base)return 0;function div(val1,val2){return val1/val2}function mul(val1,val2){return val1*val2}var func=value>this.options.zoom_base?mul:div;var sgn=value>this.options.zoom_base?1:-1;var mltplr=
this.options.zoom_delta;var rate=1;while(Math.abs(func(this.options.zoom_base,Math.pow(mltplr,rate))-value)>Math.abs(func(this.options.zoom_base,Math.pow(mltplr,rate+1))-value))rate++;return sgn*rate},update_status:function(){if(!this.options.ui_disabled){var percent=Math.round(100*this.img_object.display_height()/this.img_object.orig_height());if(percent)this.zoom_object.html(percent+"%")}},info:function(param,withoutRotation){if(!param)return;switch(param){case "orig_width":case "orig_height":if(withoutRotation)return this.img_object.angle()%
180===0?this.img_object[param]():param==="orig_width"?this.img_object.orig_height():this.img_object.orig_width();else return this.img_object[param]();case "display_width":case "display_height":case "angle":return this.img_object[param]();case "zoom":return this.current_zoom;case "src":return this.img_object.object().attr("src");case "coords":return{x:this.img_object.x(),y:this.img_object.y()}}},_mouseStart:function(e){$.ui.mouse.prototype._mouseStart.call(this,e);if(this._trigger("onStartDrag",0,
this._getMouseCoords(e))===false)return false;this.container.addClass("iviewer_drag_cursor");this._dragInitialized=!(e.originalEvent.changedTouches&&e.originalEvent.changedTouches.length==1);this.dx=e.pageX-this.img_object.x();this.dy=e.pageY-this.img_object.y();return true},_mouseCapture:function(e){return true},_handleMouseMove:function(e){this._trigger("onMouseMove",e,this._getMouseCoords(e))},_mouseDrag:function(e){$.ui.mouse.prototype._mouseDrag.call(this,e);if(!this._dragInitialized){this.dx=
e.pageX-this.img_object.x();this.dy=e.pageY-this.img_object.y();this._dragInitialized=true}var ltop=e.pageY-this.dy;var lleft=e.pageX-this.dx;this.setCoords(lleft,ltop);this._trigger("onDrag",e,this._getMouseCoords(e));return false},_mouseStop:function(e){$.ui.mouse.prototype._mouseStop.call(this,e);this.container.removeClass("iviewer_drag_cursor");this._trigger("onStopDrag",0,this._getMouseCoords(e))},_click:function(e){this._trigger("onClick",0,this._getMouseCoords(e))},createui:function(){var me=
this;$("<div>",{"class":"iviewer_zoom_in iviewer_common iviewer_button"}).bind("mousedown touchstart",function(){me.zoom_by(1);return false}).appendTo(this.container);$("<div>",{"class":"iviewer_zoom_out iviewer_common iviewer_button"}).bind("mousedown touchstart",function(){me.zoom_by(-1);return false}).appendTo(this.container);$("<div>",{"class":"iviewer_zoom_zero iviewer_common iviewer_button"}).bind("mousedown touchstart",function(){me.set_zoom(100);return false}).appendTo(this.container);$("<div>",
{"class":"iviewer_zoom_fit iviewer_common iviewer_button"}).bind("mousedown touchstart",function(){me.fit(this);return false}).appendTo(this.container);this.zoom_object=$("<div>").addClass("iviewer_zoom_status iviewer_common").appendTo(this.container);$("<div>",{"class":"iviewer_rotate_left iviewer_common iviewer_button"}).bind("mousedown touchstart",function(){me.angle(-90);return false}).appendTo(this.container);$("<div>",{"class":"iviewer_rotate_right iviewer_common iviewer_button"}).bind("mousedown touchstart",
function(){me.angle(90);return false}).appendTo(this.container);this.update_status()}});$.ui.iviewer.ImageObject=function(do_anim){this._img=$("<img>").css({position:"absolute",top:"0px",left:"0px"});this._loaded=false;this._swapDimensions=false;this._do_anim=do_anim||false;this.x(0,true);this.y(0,true);this.angle(0)};(function(){this._reset=function(w,h){this._angle=0;this._swapDimensions=false;this.x(0);this.y(0);this.orig_width(w);this.orig_height(h);this.display_width(w);this.display_height(h)};
this.loaded=function(){return this._loaded};this.load=function(src,loaded,error){var self=this;loaded=loaded||jQuery.noop;this._loaded=false;var img=new Image;img.onload=function(){self._loaded=true;self._reset(this.width,this.height);self._img.removeAttr("width").removeAttr("height").removeAttr("style").css({position:"absolute",top:"0px",left:"0px",maxWidth:"none"});self._img[0].src=src;loaded()};img.onerror=error;setTimeout(function(){img.src=src},0);this.angle(0)};this._dimension=function(prefix,
name){var horiz="_"+prefix+"_"+name,vert="_"+prefix+"_"+(name==="height"?"width":"height");return setter(function(val){this[this._swapDimensions?horiz:vert]=val},function(){return this[this._swapDimensions?horiz:vert]})};this.display_width=this._dimension("display","width"),this.display_height=this._dimension("display","height"),this.display_diff=function(){return Math.floor(this.display_width()-this.display_height())};this.orig_width=this._dimension("orig","width"),this.orig_height=this._dimension("orig",
"height"),this.x=setter(function(val,skipCss){this._x=val;if(!skipCss){this._finishAnimation();this._img.css("left",this._x+(this._swapDimensions?this.display_diff()/2:0)+"px")}},function(){return this._x});this.y=setter(function(val,skipCss){this._y=val;if(!skipCss){this._finishAnimation();this._img.css("top",this._y-(this._swapDimensions?this.display_diff()/2:0)+"px")}},function(){return this._y});this.angle=setter(function(deg){var prevSwap=this._swapDimensions;this._angle=deg;this._swapDimensions=
deg%180!==0;if(prevSwap!==this._swapDimensions){var verticalMod=this._swapDimensions?-1:1;this.x(this.x()-verticalMod*this.display_diff()/2,true);this.y(this.y()+verticalMod*this.display_diff()/2,true)}var cssVal="rotate("+deg+"deg)",img=this._img;jQuery.each(["","-webkit-","-moz-","-o-","-ms-"],function(i,prefix){img.css(prefix+"transform",cssVal)});if(useIeTransforms){jQuery.each(["-ms-",""],function(i,prefix){img.css(prefix+"filter",ieTransforms[deg].filter)});img.css({marginLeft:ieTransforms[deg].marginLeft*
this.display_diff()/2,marginTop:ieTransforms[deg].marginTop*this.display_diff()/2})}},function(){return this._angle});this.toOriginalCoords=function(point){switch(this.angle()){case 0:return{x:point.x,y:point.y};case 90:return{x:point.y,y:this.display_width()-point.x};case 180:return{x:this.display_width()-point.x,y:this.display_height()-point.y};case 270:return{x:this.display_height()-point.y,y:point.x}}};this.toRealCoords=function(point){switch(this.angle()){case 0:return{x:this.x()+point.x,y:this.y()+
point.y};case 90:return{x:this.x()+this.display_width()-point.y,y:this.y()+point.x};case 180:return{x:this.x()+this.display_width()-point.x,y:this.y()+this.display_height()-point.y};case 270:return{x:this.x()+point.y,y:this.y()+this.display_height()-point.x}}};this.object=setter(jQuery.noop,function(){return this._img});this.setImageProps=function(disp_w,disp_h,x,y,skip_animation,complete){complete=complete||jQuery.noop;this.display_width(disp_w);this.display_height(disp_h);this.x(x,true);this.y(y,
true);var w=this._swapDimensions?disp_h:disp_w;var h=this._swapDimensions?disp_w:disp_h;var params={width:w,height:h,top:y-(this._swapDimensions?this.display_diff()/2:0)+"px",left:x+(this._swapDimensions?this.display_diff()/2:0)+"px"};if(useIeTransforms)jQuery.extend(params,{marginLeft:ieTransforms[this.angle()].marginLeft*this.display_diff()/2,marginTop:ieTransforms[this.angle()].marginTop*this.display_diff()/2});var swapDims=this._swapDimensions,img=this._img;if(useIeTransforms&&swapDims){var ieh=
this._img.width(),iew=this._img.height(),iedh=params.height-ieh;iedw=params.width-iew;delete params.width;delete params.height}if(this._do_anim&&!skip_animation)this._img.stop(true).animate(params,{duration:200,complete:complete,step:function(now,fx){if(useIeTransforms&&swapDims&&fx.prop==="top"){var percent=(now-fx.start)/(fx.end-fx.start);img.height(ieh+iedh*percent);img.width(iew+iedw*percent);img.css("top",now)}}});else{this._img.css(params);setTimeout(complete,0)}};this._finishAnimation=function(){this._img.stop(true,
true)}}).apply($.ui.iviewer.ImageObject.prototype);var util={scaleValue:function(value,toZoom){return value*toZoom/100},descaleValue:function(value,fromZoom){return value*100/fromZoom}}})(jQuery,undefined);
/trunk/doc/PhpDoc/js/jquery.dotdotdot-1.5.9.min.js
New file
0,0 → 1,15
/*
* jQuery dotdotdot 1.5.9
*
* Copyright (c) 2013 Fred Heusschen
* www.frebsite.nl
*
* Plugin website:
* dotdotdot.frebsite.nl
*
* Dual licensed under the MIT and GPL licenses.
* http://en.wikipedia.org/wiki/MIT_License
* http://en.wikipedia.org/wiki/GNU_General_Public_License
*/
 
(function(a){function c(a,b,c){var d=a.children(),e=!1;a.empty();for(var g=0,h=d.length;h>g;g++){var i=d.eq(g);if(a.append(i),c&&a.append(c),f(a,b)){i.remove(),e=!0;break}c&&c.remove()}return e}function d(b,c,g,h,i){var j=b.contents(),k=!1;b.empty();for(var l="table, thead, tbody, tfoot, tr, col, colgroup, object, embed, param, ol, ul, dl, select, optgroup, option, textarea, script, style",m=0,n=j.length;n>m&&!k;m++){var o=j[m],p=a(o);void 0!==o&&(b.append(p),i&&b[b.is(l)?"after":"append"](i),3==o.nodeType?f(g,h)&&(k=e(p,c,g,h,i)):k=d(p,c,g,h,i),k||i&&i.remove())}return k}function e(a,b,c,d,h){var k=!1,l=a[0];if(l===void 0)return!1;for(var m="letter"==d.wrap?"":" ",n=j(l).split(m),o=-1,p=-1,q=0,r=n.length-1;r>=q;){var s=Math.floor((q+r)/2);if(s==p)break;p=s,i(l,n.slice(0,p+1).join(m)+d.ellipsis),f(c,d)?r=p:(o=p,q=p)}if(-1==o||1==n.length&&0==n[0].length){var u=a.parent();a.remove();var v=h?h.length:0;if(u.contents().size()>v){var w=u.contents().eq(-1-v);k=e(w,b,c,d,h)}else{var x=u.prev(),l=x.contents().eq(-1)[0];if(l!==void 0){var t=g(j(l),d);i(l,t),h&&x.append(h),u.remove(),k=!0}}}else{var t=g(n.slice(0,o+1).join(m),d);k=!0,i(l,t)}return k}function f(a,b){return a.innerHeight()>b.maxHeight}function g(b,c){for(;a.inArray(b.slice(-1),c.lastCharacter.remove)>-1;)b=b.slice(0,-1);return 0>a.inArray(b.slice(-1),c.lastCharacter.noEllipsis)&&(b+=c.ellipsis),b}function h(a){return{width:a.innerWidth(),height:a.innerHeight()}}function i(a,b){a.innerText?a.innerText=b:a.nodeValue?a.nodeValue=b:a.textContent&&(a.textContent=b)}function j(a){return a.innerText?a.innerText:a.nodeValue?a.nodeValue:a.textContent?a.textContent:""}function k(b,c){return b===void 0?!1:b?"string"==typeof b?(b=a(b,c),b.length?b:!1):"object"==typeof b?b.jquery===void 0?!1:b:!1:!1}function l(a){for(var b=a.innerHeight(),c=["paddingTop","paddingBottom"],d=0,e=c.length;e>d;d++){var f=parseInt(a.css(c[d]),10);isNaN(f)&&(f=0),b-=f}return b}function m(a,b){return a?(b="string"==typeof b?"dotdotdot: "+b:["dotdotdot:",b],window.console!==void 0&&window.console.log!==void 0&&window.console.log(b),!1):!1}if(!a.fn.dotdotdot){a.fn.dotdotdot=function(e){if(0==this.length)return e&&e.debug===!1||m(!0,'No element found for "'+this.selector+'".'),this;if(this.length>1)return this.each(function(){a(this).dotdotdot(e)});var g=this;g.data("dotdotdot")&&g.trigger("destroy.dot"),g.data("dotdotdot-style",g.attr("style")),g.css("word-wrap","break-word"),g.bind_events=function(){return g.bind("update.dot",function(b,e){b.preventDefault(),b.stopPropagation(),j.maxHeight="number"==typeof j.height?j.height:l(g),j.maxHeight+=j.tolerance,e!==void 0&&(("string"==typeof e||e instanceof HTMLElement)&&(e=a("<div />").append(e).contents()),e instanceof a&&(i=e)),q=g.wrapInner('<div class="dotdotdot" />').children(),q.empty().append(i.clone(!0)).css({height:"auto",width:"auto",border:"none",padding:0,margin:0});var h=!1,k=!1;return n.afterElement&&(h=n.afterElement.clone(!0),n.afterElement.remove()),f(q,j)&&(k="children"==j.wrap?c(q,j,h):d(q,g,q,j,h)),q.replaceWith(q.contents()),q=null,a.isFunction(j.callback)&&j.callback.call(g[0],k,i),n.isTruncated=k,k}).bind("isTruncated.dot",function(a,b){return a.preventDefault(),a.stopPropagation(),"function"==typeof b&&b.call(g[0],n.isTruncated),n.isTruncated}).bind("originalContent.dot",function(a,b){return a.preventDefault(),a.stopPropagation(),"function"==typeof b&&b.call(g[0],i),i}).bind("destroy.dot",function(a){a.preventDefault(),a.stopPropagation(),g.unwatch().unbind_events().empty().append(i).attr("style",g.data("dotdotdot-style")).data("dotdotdot",!1)}),g},g.unbind_events=function(){return g.unbind(".dot"),g},g.watch=function(){if(g.unwatch(),"window"==j.watch){var b=a(window),c=b.width(),d=b.height();b.bind("resize.dot"+n.dotId,function(){c==b.width()&&d==b.height()&&j.windowResizeFix||(c=b.width(),d=b.height(),p&&clearInterval(p),p=setTimeout(function(){g.trigger("update.dot")},10))})}else o=h(g),p=setInterval(function(){var a=h(g);(o.width!=a.width||o.height!=a.height)&&(g.trigger("update.dot"),o=h(g))},100);return g},g.unwatch=function(){return a(window).unbind("resize.dot"+n.dotId),p&&clearInterval(p),g};var i=g.contents(),j=a.extend(!0,{},a.fn.dotdotdot.defaults,e),n={},o={},p=null,q=null;return n.afterElement=k(j.after,g),n.isTruncated=!1,n.dotId=b++,g.data("dotdotdot",!0).bind_events().trigger("update.dot"),j.watch&&g.watch(),g},a.fn.dotdotdot.defaults={ellipsis:"... ",wrap:"word",lastCharacter:{remove:[" ",",",";",".","!","?"],noEllipsis:[]},tolerance:0,callback:null,after:null,height:null,watch:!1,windowResizeFix:!0,debug:!1};var b=1,n=a.fn.html;a.fn.html=function(a){return a!==void 0?this.data("dotdotdot")&&"function"!=typeof a?this.trigger("update",[a]):n.call(this,a):n.call(this)};var o=a.fn.text;a.fn.text=function(b){if(b!==void 0){if(this.data("dotdotdot")){var c=a("<div />");return c.text(b),b=c.html(),c.remove(),this.trigger("update",[b])}return o.call(this,b)}return o.call(this)}}})(jQuery);
/trunk/doc/PhpDoc/js/prism.min.js
New file
0,0 → 1,16
/**
* Prism: Lightweight, robust, elegant syntax highlighting
* MIT license http://www.opensource.org/licenses/mit-license.php/
* @author Lea Verou http://lea.verou.me
*/(function(){var e=/\blang(?:uage)?-(?!\*)(\w+)\b/i,t=self.Prism={util:{type:function(e){return Object.prototype.toString.call(e).match(/\[object (\w+)\]/)[1]},clone:function(e){var n=t.util.type(e);switch(n){case"Object":var r={};for(var i in e)e.hasOwnProperty(i)&&(r[i]=t.util.clone(e[i]));return r;case"Array":return e.slice()}return e}},languages:{extend:function(e,n){var r=t.util.clone(t.languages[e]);for(var i in n)r[i]=n[i];return r},insertBefore:function(e,n,r,i){i=i||t.languages;var s=i[e],o={};for(var u in s)if(s.hasOwnProperty(u)){if(u==n)for(var a in r)r.hasOwnProperty(a)&&(o[a]=r[a]);o[u]=s[u]}return i[e]=o},DFS:function(e,n){for(var r in e){n.call(e,r,e[r]);t.util.type(e)==="Object"&&t.languages.DFS(e[r],n)}}},highlightAll:function(e,n){var r=document.querySelectorAll('code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code');for(var i=0,s;s=r[i++];)t.highlightElement(s,e===!0,n)},highlightElement:function(r,i,s){var o,u,a=r;while(a&&!e.test(a.className))a=a.parentNode;if(a){o=(a.className.match(e)||[,""])[1];u=t.languages[o]}if(!u)return;r.className=r.className.replace(e,"").replace(/\s+/g," ")+" language-"+o;a=r.parentNode;/pre/i.test(a.nodeName)&&(a.className=a.className.replace(e,"").replace(/\s+/g," ")+" language-"+o);var f=r.textContent;if(!f)return;f=f.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ");var l={element:r,language:o,grammar:u,code:f};t.hooks.run("before-highlight",l);if(i&&self.Worker){var c=new Worker(t.filename);c.onmessage=function(e){l.highlightedCode=n.stringify(JSON.parse(e.data),o);t.hooks.run("before-insert",l);l.element.innerHTML=l.highlightedCode;s&&s.call(l.element);t.hooks.run("after-highlight",l)};c.postMessage(JSON.stringify({language:l.language,code:l.code}))}else{l.highlightedCode=t.highlight(l.code,l.grammar,l.language);t.hooks.run("before-insert",l);l.element.innerHTML=l.highlightedCode;s&&s.call(r);t.hooks.run("after-highlight",l)}},highlight:function(e,r,i){return n.stringify(t.tokenize(e,r),i)},tokenize:function(e,n,r){var i=t.Token,s=[e],o=n.rest;if(o){for(var u in o)n[u]=o[u];delete n.rest}e:for(var u in n){if(!n.hasOwnProperty(u)||!n[u])continue;var a=n[u],f=a.inside,l=!!a.lookbehind,c=0;a=a.pattern||a;for(var h=0;h<s.length;h++){var p=s[h];if(s.length>e.length)break e;if(p instanceof i)continue;a.lastIndex=0;var d=a.exec(p);if(d){l&&(c=d[1].length);var v=d.index-1+c,d=d[0].slice(c),m=d.length,g=v+m,y=p.slice(0,v+1),b=p.slice(g+1),w=[h,1];y&&w.push(y);var E=new i(u,f?t.tokenize(d,f):d);w.push(E);b&&w.push(b);Array.prototype.splice.apply(s,w)}}}return s},hooks:{all:{},add:function(e,n){var r=t.hooks.all;r[e]=r[e]||[];r[e].push(n)},run:function(e,n){var r=t.hooks.all[e];if(!r||!r.length)return;for(var i=0,s;s=r[i++];)s(n)}}},n=t.Token=function(e,t){this.type=e;this.content=t};n.stringify=function(e,r,i){if(typeof e=="string")return e;if(Object.prototype.toString.call(e)=="[object Array]")return e.map(function(t){return n.stringify(t,r,e)}).join("");var s={type:e.type,content:n.stringify(e.content,r,i),tag:"span",classes:["token",e.type],attributes:{},language:r,parent:i};s.type=="comment"&&(s.attributes.spellcheck="true");t.hooks.run("wrap",s);var o="";for(var u in s.attributes)o+=u+'="'+(s.attributes[u]||"")+'"';return"<"+s.tag+' class="'+s.classes.join(" ")+'" '+o+">"+s.content+"</"+s.tag+">"};if(!self.document){self.addEventListener("message",function(e){var n=JSON.parse(e.data),r=n.language,i=n.code;self.postMessage(JSON.stringify(t.tokenize(i,t.languages[r])));self.close()},!1);return}var r=document.getElementsByTagName("script");r=r[r.length-1];if(r){t.filename=r.src;document.addEventListener&&!r.hasAttribute("data-manual")&&document.addEventListener("DOMContentLoaded",t.highlightAll)}})();;
Prism.languages.markup={comment:/&lt;!--[\w\W]*?-->/g,prolog:/&lt;\?.+?\?>/,doctype:/&lt;!DOCTYPE.+?>/,cdata:/&lt;!\[CDATA\[[\w\W]*?]]>/i,tag:{pattern:/&lt;\/?[\w:-]+\s*(?:\s+[\w:-]+(?:=(?:("|')(\\?[\w\W])*?\1|\w+))?\s*)*\/?>/gi,inside:{tag:{pattern:/^&lt;\/?[\w:-]+/i,inside:{punctuation:/^&lt;\/?/,namespace:/^[\w-]+?:/}},"attr-value":{pattern:/=(?:('|")[\w\W]*?(\1)|[^\s>]+)/gi,inside:{punctuation:/=|>|"/g}},punctuation:/\/?>/g,"attr-name":{pattern:/[\w:-]+/g,inside:{namespace:/^[\w-]+?:/}}}},entity:/&amp;#?[\da-z]{1,8};/gi};Prism.hooks.add("wrap",function(e){e.type==="entity"&&(e.attributes.title=e.content.replace(/&amp;/,"&"))});;
Prism.languages.css={comment:/\/\*[\w\W]*?\*\//g,atrule:{pattern:/@[\w-]+?.*?(;|(?=\s*{))/gi,inside:{punctuation:/[;:]/g}},url:/url\((["']?).*?\1\)/gi,selector:/[^\{\}\s][^\{\};]*(?=\s*\{)/g,property:/(\b|\B)[\w-]+(?=\s*:)/ig,string:/("|')(\\?.)*?\1/g,important:/\B!important\b/gi,ignore:/&(lt|gt|amp);/gi,punctuation:/[\{\};:]/g};Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{style:{pattern:/(&lt;|<)style[\w\W]*?(>|&gt;)[\w\W]*?(&lt;|<)\/style(>|&gt;)/ig,inside:{tag:{pattern:/(&lt;|<)style[\w\W]*?(>|&gt;)|(&lt;|<)\/style(>|&gt;)/ig,inside:Prism.languages.markup.tag.inside},rest:Prism.languages.css}}});;
Prism.languages.css.selector={pattern:/[^\{\}\s][^\{\}]*(?=\s*\{)/g,inside:{"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/g,"pseudo-class":/:[-\w]+(?:\(.*\))?/g,"class":/\.[-:\.\w]+/g,id:/#[-:\.\w]+/g}};Prism.languages.insertBefore("css","ignore",{hexcode:/#[\da-f]{3,6}/gi,entity:/\\[\da-f]{1,8}/gi,number:/[\d%\.]+/g,"function":/(attr|calc|cross-fade|cycle|element|hsla?|image|lang|linear-gradient|matrix3d|matrix|perspective|radial-gradient|repeating-linear-gradient|repeating-radial-gradient|rgba?|rotatex|rotatey|rotatez|rotate3d|rotate|scalex|scaley|scalez|scale3d|scale|skewx|skewy|skew|steps|translatex|translatey|translatez|translate3d|translate|url|var)/ig});;
Prism.languages.clike={comment:{pattern:/(^|[^\\])(\/\*[\w\W]*?\*\/|(^|[^:])\/\/.*?(\r?\n|$))/g,lookbehind:!0},string:/("|')(\\?.)*?\1/g,"class-name":{pattern:/((?:(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/ig,lookbehind:!0,inside:{punctuation:/(\.|\\)/}},keyword:/\b(if|else|while|do|for|return|in|instanceof|function|new|try|catch|finally|null|break|continue)\b/g,"boolean":/\b(true|false)\b/g,"function":{pattern:/[a-z0-9_]+\(/ig,inside:{punctuation:/\(/}}, number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?)\b/g,operator:/[-+]{1,2}|!|&lt;=?|>=?|={1,3}|(&amp;){1,2}|\|?\||\?|\*|\/|\~|\^|\%/g,ignore:/&(lt|gt|amp);/gi,punctuation:/[{}[\];(),.:]/g};;
Prism.languages.javascript=Prism.languages.extend("clike",{keyword:/\b(var|let|if|else|while|do|for|return|in|instanceof|function|new|with|typeof|try|catch|finally|null|break|continue)\b/g,number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?|NaN|-?Infinity)\b/g});Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/g,lookbehind:!0}});Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{script:{pattern:/(&lt;|<)script[\w\W]*?(>|&gt;)[\w\W]*?(&lt;|<)\/script(>|&gt;)/ig,inside:{tag:{pattern:/(&lt;|<)script[\w\W]*?(>|&gt;)|(&lt;|<)\/script(>|&gt;)/ig,inside:Prism.languages.markup.tag.inside},rest:Prism.languages.javascript}}});;
Prism.languages.php=Prism.languages.extend("clike",{keyword:/\b(and|or|xor|array|as|break|case|cfunction|class|const|continue|declare|default|die|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|for|foreach|function|include|include_once|global|if|new|return|static|switch|use|require|require_once|var|while|abstract|interface|public|implements|extends|private|protected|parent|static|throw|null|echo|print|trait|namespace|use|final|yield|goto|instanceof|finally|try|catch)\b/ig, constant:/\b[A-Z0-9_]{2,}\b/g});Prism.languages.insertBefore("php","keyword",{delimiter:/(\?>|&lt;\?php|&lt;\?)/ig,variable:/(\$\w+)\b/ig,"package":{pattern:/(\\|namespace\s+|use\s+)[\w\\]+/g,lookbehind:!0,inside:{punctuation:/\\/}}});Prism.languages.insertBefore("php","operator",{property:{pattern:/(->)[\w]+/g,lookbehind:!0}}); Prism.languages.markup&&(Prism.hooks.add("before-highlight",function(a){"php"===a.language&&(a.tokenStack=[],a.code=a.code.replace(/(?:&lt;\?php|&lt;\?|<\?php|<\?)[\w\W]*?(?:\?&gt;|\?>)/ig,function(b){a.tokenStack.push(b);return"{{{PHP"+a.tokenStack.length+"}}}"}))}),Prism.hooks.add("after-highlight",function(a){if("php"===a.language){for(var b=0,c;c=a.tokenStack[b];b++)a.highlightedCode=a.highlightedCode.replace("{{{PHP"+(b+1)+"}}}",Prism.highlight(c,a.grammar,"php"));a.element.innerHTML=a.highlightedCode}}), Prism.hooks.add("wrap",function(a){"php"===a.language&&"markup"===a.type&&(a.content=a.content.replace(/(\{\{\{PHP[0-9]+\}\}\})/g,'<span class="token php">$1</span>'))}),Prism.languages.insertBefore("php","comment",{markup:{pattern:/(&lt;|<)[^?]\/?(.*?)(>|&gt;)/g,inside:Prism.languages.markup},php:/\{\{\{PHP[0-9]+\}\}\}/g}));;
Prism.languages.insertBefore("php","variable",{"this":/\$this/g,global:/\$_?(GLOBALS|SERVER|GET|POST|FILES|REQUEST|SESSION|ENV|COOKIE|HTTP_RAW_POST_DATA|argc|argv|php_errormsg|http_response_header)/g,scope:{pattern:/\b[\w\\]+::/g,inside:{keyword:/(static|self|parent)/,punctuation:/(::|\\)/}}});;
(function(){function e(e,t){return Array.prototype.slice.call((t||document).querySelectorAll(e))}function n(e,t,n){var r=t.replace(/\s+/g,"").split(","),i=+e.getAttribute("data-line-offset")||0,s=parseFloat(getComputedStyle(e).lineHeight);for(var o=0,u;u=r[o++];){u=u.split("-");var a=+u[0],f=+u[1]||a,l=document.createElement("div");l.textContent=Array(f-a+2).join(" \r\n");l.className=(n||"")+" line-highlight";l.setAttribute("data-start",a);f>a&&l.setAttribute("data-end",f);l.style.top=(a-i-1)*s+"px";(e.querySelector("code")||e).appendChild(l)}}function r(){var t=location.hash.slice(1);e(".temporary.line-highlight").forEach(function(e){e.parentNode.removeChild(e)});var r=(t.match(/\.([\d,-]+)$/)||[,""])[1];if(!r||document.getElementById(t))return;var i=t.slice(0,t.lastIndexOf(".")),s=document.getElementById(i);if(!s)return;s.hasAttribute("data-line")||s.setAttribute("data-line","");n(s,r,"temporary ");document.querySelector(".temporary.line-highlight").scrollIntoView()}if(!window.Prism)return;var t=crlf=/\r?\n|\r/g,i=0;Prism.hooks.add("after-highlight",function(t){var s=t.element.parentNode,o=s&&s.getAttribute("data-line");if(!s||!o||!/pre/i.test(s.nodeName))return;clearTimeout(i);e(".line-highlight",s).forEach(function(e){e.parentNode.removeChild(e)});n(s,o);i=setTimeout(r,1)});addEventListener("hashchange",r)})();;
Prism.hooks.add("after-highlight",function(e){var t=e.element.parentNode;if(!t||!/pre/i.test(t.nodeName)||t.className.indexOf("line-numbers")===-1){return}var n=1+e.code.split("\n").length;var r;lines=new Array(n);lines=lines.join("<span></span>");r=document.createElement("span");r.className="line-numbers-rows";r.innerHTML=lines;if(t.hasAttribute("data-start")){t.style.counterReset="linenumber "+(parseInt(t.getAttribute("data-start"),10)-1)}e.element.appendChild(r)})
;
(function(){if(!self.Prism||!self.document||!document.querySelector)return;var e={js:"javascript",html:"markup",svg:"markup"};Array.prototype.slice.call(document.querySelectorAll("pre[data-src]")).forEach(function(t){var n=t.getAttribute("data-src"),r=(n.match(/\.(\w+)$/)||[,""])[1],i=e[r]||r,s=document.createElement("code");s.className="language-"+i;t.textContent="";s.textContent="Loading…";t.appendChild(s);var o=new XMLHttpRequest;o.open("GET",n,!0);o.onreadystatechange=function(){if(o.readyState==4)if(o.status<400&&o.responseText){s.textContent=o.responseText;Prism.highlightElement(s)}else o.status>=400?s.textContent="✖ Error "+o.status+" while fetching file: "+o.statusText:s.textContent="✖ Error: File does not exist or is empty"};o.send(null)})})();;
/trunk/doc/PhpDoc/js/jquery.smooth-scroll.js
New file
0,0 → 1,32
$(document).ready(function() {
function filterPath(string) {
return string
.replace(/^\//,'')
.replace(/(index|default).[a-zA-Z]{3,4}$/,'')
.replace(/\/$/,'');
}
var locationPath = filterPath(location.pathname);
 
$('a[href*=#]').each(function() {
var thisPath = filterPath(this.pathname) || locationPath;
if ( locationPath == thisPath
&& (location.hostname == this.hostname || !this.hostname)
&& this.hash.replace(/#/,'') ) {
var $target = $(this.hash), target = this.hash;
if (target) {
$(this).click(function(event) {
if (!$(this.hash).offset()) {
return;
}
 
event.preventDefault();
position = $(this.hash).offset().top;
 
$('html,body').animate({scrollTop: position}, 400, function() {
location.hash = target;
});
});
}
}
});
});
/trunk/doc/PhpDoc/js/jquery.iviewer.js
New file
0,0 → 1,1169
/*
* iviewer Widget for jQuery UI
* https://github.com/can3p/iviewer
*
* Copyright (c) 2009 - 2012 Dmitry Petrov
* Dual licensed under the MIT and GPL licenses.
* - http://www.opensource.org/licenses/mit-license.php
* - http://www.gnu.org/copyleft/gpl.html
*
* Author: Dmitry Petrov
* Version: 0.7.7
*/
 
( function( $, undefined ) {
 
//this code was taken from the https://github.com/furf/jquery-ui-touch-punch
var mouseEvents = {
touchstart: 'mousedown',
touchmove: 'mousemove',
touchend: 'mouseup'
},
gesturesSupport = 'ongesturestart' in document.createElement('div');
 
 
/**
* Convert a touch event to a mouse-like
*/
function makeMouseEvent (event) {
var touch = event.originalEvent.changedTouches[0];
 
return $.extend(event, {
type: mouseEvents[event.type],
which: 1,
pageX: touch.pageX,
pageY: touch.pageY,
screenX: touch.screenX,
screenY: touch.screenY,
clientX: touch.clientX,
clientY: touch.clientY,
isTouchEvent: true
});
}
 
var mouseProto = $.ui.mouse.prototype,
_mouseInit = $.ui.mouse.prototype._mouseInit;
 
mouseProto._mouseInit = function() {
var self = this;
self._touchActive = false;
 
this.element.bind( 'touchstart.' + this.widgetName, function(event) {
if (gesturesSupport && event.originalEvent.touches.length > 1) { return; }
self._touchActive = true;
return self._mouseDown(makeMouseEvent(event));
})
 
var self = this;
// these delegates are required to keep context
this._mouseMoveDelegate = function(event) {
if (gesturesSupport && event.originalEvent.touches && event.originalEvent.touches.length > 1) { return; }
if (self._touchActive) {
return self._mouseMove(makeMouseEvent(event));
}
};
this._mouseUpDelegate = function(event) {
if (self._touchActive) {
self._touchActive = false;
return self._mouseUp(makeMouseEvent(event));
}
};
 
$(document)
.bind('touchmove.'+ this.widgetName, this._mouseMoveDelegate)
.bind('touchend.' + this.widgetName, this._mouseUpDelegate);
 
_mouseInit.apply(this);
}
 
/**
* Simple implementation of jQuery like getters/setters
* var val = something();
* something(val);
*/
var setter = function(setter, getter) {
return function(val) {
if (arguments.length === 0) {
return getter.apply(this);
} else {
setter.apply(this, arguments);
}
}
};
 
/**
* Internet explorer rotates image relative left top corner, so we should
* shift image when it's rotated.
*/
var ieTransforms = {
'0': {
marginLeft: 0,
marginTop: 0,
filter: 'progid:DXImageTransform.Microsoft.Matrix(M11=1, M12=0, M21=0, M22=1, SizingMethod="auto expand")'
},
 
'90': {
marginLeft: -1,
marginTop: 1,
filter: 'progid:DXImageTransform.Microsoft.Matrix(M11=0, M12=-1, M21=1, M22=0, SizingMethod="auto expand")'
},
 
'180': {
marginLeft: 0,
marginTop: 0,
filter: 'progid:DXImageTransform.Microsoft.Matrix(M11=-1, M12=0, M21=0, M22=-1, SizingMethod="auto expand")'
},
 
'270': {
marginLeft: -1,
marginTop: 1,
filter: 'progid:DXImageTransform.Microsoft.Matrix(M11=0, M12=1, M21=-1, M22=0, SizingMethod="auto expand")'
}
},
// this test is the inversion of the css filters test from the modernizr project
useIeTransforms = function() {
var modElem = document.createElement('modernizr'),
mStyle = modElem.style,
omPrefixes = 'Webkit Moz O ms',
domPrefixes = omPrefixes.toLowerCase().split(' '),
props = ("transform" + ' ' + domPrefixes.join("Transform ") + "Transform").split(' ');
for ( var i in props ) {
var prop = props[i];
if ( !$.contains(prop, "-") && mStyle[prop] !== undefined ) {
return false;
}
}
return true;
}();
 
$.widget( "ui.iviewer", $.ui.mouse, {
widgetEventPrefix: "iviewer",
options : {
/**
* start zoom value for image, not used now
* may be equal to "fit" to fit image into container or scale in %
**/
zoom: "fit",
/**
* base value to scale image
**/
zoom_base: 100,
/**
* maximum zoom
**/
zoom_max: 800,
/**
* minimum zoom
**/
zoom_min: 25,
/**
* base of rate multiplier.
* zoom is calculated by formula: zoom_base * zoom_delta^rate
**/
zoom_delta: 1.4,
/**
* whether the zoom should be animated.
*/
zoom_animation: true,
/**
* if true plugin doesn't add its own controls
**/
ui_disabled: false,
/**
* If false mousewheel will be disabled
*/
mousewheel: true,
/**
* if false, plugin doesn't bind resize event on window and this must
* be handled manually
**/
update_on_resize: true,
/**
* event is triggered when zoom value is changed
* @param int new zoom value
* @return boolean if false zoom action is aborted
**/
onZoom: jQuery.noop,
/**
* event is triggered when zoom value is changed after image is set to the new dimensions
* @param int new zoom value
* @return boolean if false zoom action is aborted
**/
onAfterZoom: jQuery.noop,
/**
* event is fired on drag begin
* @param object coords mouse coordinates on the image
* @return boolean if false is returned, drag action is aborted
**/
onStartDrag: jQuery.noop,
/**
* event is fired on drag action
* @param object coords mouse coordinates on the image
**/
onDrag: jQuery.noop,
/**
* event is fired on drag stop
* @param object coords mouse coordinates on the image
**/
onStopDrag: jQuery.noop,
/**
* event is fired when mouse moves over image
* @param object coords mouse coordinates on the image
**/
onMouseMove: jQuery.noop,
/**
* mouse click event
* @param object coords mouse coordinates on the image
**/
onClick: jQuery.noop,
/**
* event is fired when image starts to load
*/
onStartLoad: null,
/**
* event is fired, when image is loaded and initially positioned
*/
onFinishLoad: null,
/**
* event is fired when image load error occurs
*/
onErrorLoad: null
},
 
_create: function() {
var me = this;
 
//drag variables
this.dx = 0;
this.dy = 0;
 
/* object containing actual information about image
* @img_object.object - jquery img object
* @img_object.orig_{width|height} - original dimensions
* @img_object.display_{width|height} - actual dimensions
*/
this.img_object = {};
 
this.zoom_object = {}; //object to show zoom status
 
this._angle = 0;
 
this.current_zoom = this.options.zoom;
 
if(this.options.src === null){
return;
}
 
this.container = this.element;
 
this._updateContainerInfo();
 
//init container
this.container.css("overflow","hidden");
 
if (this.options.update_on_resize == true) {
$(window).resize(function() {
me.update();
});
}
 
this.img_object = new $.ui.iviewer.ImageObject(this.options.zoom_animation);
 
if (this.options.mousewheel) {
this.container.bind('mousewheel.iviewer', function(ev, delta)
{
//this event is there instead of containing div, because
//at opera it triggers many times on div
var zoom = (delta > 0)?1:-1,
container_offset = me.container.offset(),
mouse_pos = {
//jquery.mousewheel 3.1.0 uses strange MozMousePixelScroll event
//which is not being fixed by jQuery.Event
x: (ev.pageX || ev.originalEvent.pageX) - container_offset.left,
y: (ev.pageY || ev.originalEvent.pageX) - container_offset.top
};
 
me.zoom_by(zoom, mouse_pos);
return false;
});
 
if (gesturesSupport) {
var gestureThrottle = +new Date();
var originalScale, originalCenter;
this.img_object.object()
// .bind('gesturestart', function(ev) {
.bind('touchstart', function(ev) {
originalScale = me.current_zoom;
var touches = ev.originalEvent.touches,
container_offset;
if (touches.length == 2) {
container_offset = me.container.offset();
originalCenter = {
x: (touches[0].pageX + touches[1].pageX) / 2 - container_offset.left,
y: (touches[0].pageY + touches[1].pageY) / 2 - container_offset.top
};
} else {
originalCenter = null;
}
}).bind('gesturechange', function(ev) {
//do not want to import throttle function from underscore
var d = +new Date();
if ((d - gestureThrottle) < 50) { return; }
gestureThrottle = d;
var zoom = originalScale * ev.originalEvent.scale;
me.set_zoom(zoom, originalCenter);
ev.preventDefault();
}).bind('gestureend', function(ev) {
originalCenter = null;
});
}
}
 
//init object
this.img_object.object()
//bind mouse events
.click(function(e){return me._click(e)})
.prependTo(this.container);
 
this.container.bind('mousemove', function(ev) { me._handleMouseMove(ev); });
 
this.loadImage(this.options.src);
 
if(!this.options.ui_disabled)
{
this.createui();
}
 
this._mouseInit();
},
 
destroy: function() {
$.Widget.prototype.destroy.call( this );
this._mouseDestroy();
this.img_object.object().remove();
this.container.off('.iviewer');
this.container.css('overflow', ''); //cleanup styles on destroy
},
 
_updateContainerInfo: function()
{
this.options.height = this.container.height();
this.options.width = this.container.width();
},
 
update: function()
{
this._updateContainerInfo()
this.setCoords(this.img_object.x(), this.img_object.y());
},
 
loadImage: function( src )
{
this.current_zoom = this.options.zoom;
var me = this;
 
this._trigger('onStartLoad', 0, src);
 
this.container.addClass("iviewer_loading");
this.img_object.load(src, function() {
me._imageLoaded(src);
}, function() {
me._trigger("onErrorLoad", 0, src);
});
},
 
_imageLoaded: function(src) {
this.container.removeClass("iviewer_loading");
this.container.addClass("iviewer_cursor");
 
if(this.options.zoom == "fit"){
this.fit(true);
}
else {
this.set_zoom(this.options.zoom, true);
}
 
this._trigger('onFinishLoad', 0, src);
},
 
/**
* fits image in the container
*
* @param {boolean} skip_animation
**/
fit: function(skip_animation)
{
var aspect_ratio = this.img_object.orig_width() / this.img_object.orig_height();
var window_ratio = this.options.width / this.options.height;
var choose_left = (aspect_ratio > window_ratio);
var new_zoom = 0;
 
if(choose_left){
new_zoom = this.options.width / this.img_object.orig_width() * 100;
}
else {
new_zoom = this.options.height / this.img_object.orig_height() * 100;
}
 
this.set_zoom(new_zoom, skip_animation);
},
 
/**
* center image in container
**/
center: function()
{
this.setCoords(-Math.round((this.img_object.display_width() - this.options.width)/2),
-Math.round((this.img_object.display_height() - this.options.height)/2));
},
 
/**
* move a point in container to the center of display area
* @param x a point in container
* @param y a point in container
**/
moveTo: function(x, y)
{
var dx = x-Math.round(this.options.width/2);
var dy = y-Math.round(this.options.height/2);
 
var new_x = this.img_object.x() - dx;
var new_y = this.img_object.y() - dy;
 
this.setCoords(new_x, new_y);
},
 
/**
* Get container offset object.
*/
getContainerOffset: function() {
return jQuery.extend({}, this.container.offset());
},
 
/**
* set coordinates of upper left corner of image object
**/
setCoords: function(x,y)
{
//do nothing while image is being loaded
if(!this.img_object.loaded()) { return; }
 
var coords = this._correctCoords(x,y);
this.img_object.x(coords.x);
this.img_object.y(coords.y);
},
 
_correctCoords: function( x, y )
{
x = parseInt(x, 10);
y = parseInt(y, 10);
 
//check new coordinates to be correct (to be in rect)
if(y > 0){
y = 0;
}
if(x > 0){
x = 0;
}
if(y + this.img_object.display_height() < this.options.height){
y = this.options.height - this.img_object.display_height();
}
if(x + this.img_object.display_width() < this.options.width){
x = this.options.width - this.img_object.display_width();
}
if(this.img_object.display_width() <= this.options.width){
x = -(this.img_object.display_width() - this.options.width)/2;
}
if(this.img_object.display_height() <= this.options.height){
y = -(this.img_object.display_height() - this.options.height)/2;
}
 
return { x: x, y:y };
},
 
 
/**
* convert coordinates on the container to the coordinates on the image (in original size)
*
* @return object with fields x,y according to coordinates or false
* if initial coords are not inside image
**/
containerToImage : function (x,y)
{
var coords = { x : x - this.img_object.x(),
y : y - this.img_object.y()
};
 
coords = this.img_object.toOriginalCoords(coords);
 
return { x : util.descaleValue(coords.x, this.current_zoom),
y : util.descaleValue(coords.y, this.current_zoom)
};
},
 
/**
* convert coordinates on the image (in original size, and zero angle) to the coordinates on the container
*
* @return object with fields x,y according to coordinates
**/
imageToContainer : function (x,y)
{
var coords = {
x : util.scaleValue(x, this.current_zoom),
y : util.scaleValue(y, this.current_zoom)
};
 
return this.img_object.toRealCoords(coords);
},
 
/**
* get mouse coordinates on the image
* @param e - object containing pageX and pageY fields, e.g. mouse event object
*
* @return object with fields x,y according to coordinates or false
* if initial coords are not inside image
**/
_getMouseCoords : function(e)
{
var containerOffset = this.container.offset();
coords = this.containerToImage(e.pageX - containerOffset.left, e.pageY - containerOffset.top);
 
return coords;
},
 
/**
* set image scale to the new_zoom
*
* @param {number} new_zoom image scale in %
* @param {boolean} skip_animation
* @param {x: number, y: number} Coordinates of point the should not be moved on zoom. The default is the center of image.
**/
set_zoom: function(new_zoom, skip_animation, zoom_center)
{
if (this._trigger('onZoom', 0, new_zoom) == false) {
return;
}
 
//do nothing while image is being loaded
if(!this.img_object.loaded()) { return; }
 
zoom_center = zoom_center || {
x: Math.round(this.options.width/2),
y: Math.round(this.options.height/2)
}
 
if(new_zoom < this.options.zoom_min)
{
new_zoom = this.options.zoom_min;
}
else if(new_zoom > this.options.zoom_max)
{
new_zoom = this.options.zoom_max;
}
 
/* we fake these values to make fit zoom properly work */
if(this.current_zoom == "fit")
{
var old_x = zoom_center.x + Math.round(this.img_object.orig_width()/2);
var old_y = zoom_center.y + Math.round(this.img_object.orig_height()/2);
this.current_zoom = 100;
}
else {
var old_x = -this.img_object.x() + zoom_center.x;
var old_y = -this.img_object.y() + zoom_center.y
}
 
var new_width = util.scaleValue(this.img_object.orig_width(), new_zoom);
var new_height = util.scaleValue(this.img_object.orig_height(), new_zoom);
var new_x = util.scaleValue( util.descaleValue(old_x, this.current_zoom), new_zoom);
var new_y = util.scaleValue( util.descaleValue(old_y, this.current_zoom), new_zoom);
 
new_x = zoom_center.x - new_x;
new_y = zoom_center.y - new_y;
 
new_width = Math.floor(new_width);
new_height = Math.floor(new_height);
new_x = Math.floor(new_x);
new_y = Math.floor(new_y);
 
this.img_object.display_width(new_width);
this.img_object.display_height(new_height);
 
var coords = this._correctCoords( new_x, new_y ),
self = this;
 
this.img_object.setImageProps(new_width, new_height, coords.x, coords.y,
skip_animation, function() {
self._trigger('onAfterZoom', 0, new_zoom );
});
this.current_zoom = new_zoom;
 
this.update_status();
},
 
/**
* changes zoom scale by delta
* zoom is calculated by formula: zoom_base * zoom_delta^rate
* @param Integer delta number to add to the current multiplier rate number
* @param {x: number, y: number=} Coordinates of point the should not be moved on zoom.
**/
zoom_by: function(delta, zoom_center)
{
var closest_rate = this.find_closest_zoom_rate(this.current_zoom);
 
var next_rate = closest_rate + delta;
var next_zoom = this.options.zoom_base * Math.pow(this.options.zoom_delta, next_rate)
if(delta > 0 && next_zoom < this.current_zoom)
{
next_zoom *= this.options.zoom_delta;
}
 
if(delta < 0 && next_zoom > this.current_zoom)
{
next_zoom /= this.options.zoom_delta;
}
 
this.set_zoom(next_zoom, undefined, zoom_center);
},
 
/**
* Rotate image
* @param {num} deg Degrees amount to rotate. Positive values rotate image clockwise.
* Currently 0, 90, 180, 270 and -90, -180, -270 values are supported
*
* @param {boolean} abs If the flag is true if, the deg parameter will be considered as
* a absolute value and relative otherwise.
* @return {num|null} Method will return current image angle if called without any arguments.
**/
angle: function(deg, abs) {
if (arguments.length === 0) { return this.img_object.angle(); }
 
if (deg < -270 || deg > 270 || deg % 90 !== 0) { return; }
if (!abs) { deg += this.img_object.angle(); }
if (deg < 0) { deg += 360; }
if (deg >= 360) { deg -= 360; }
 
if (deg === this.img_object.angle()) { return; }
 
this.img_object.angle(deg);
//the rotate behavior is different in all editors. For now we just center the
//image. However, it will be better to try to keep the position.
this.center();
this._trigger('angle', 0, { angle: this.img_object.angle() });
},
 
/**
* finds closest multiplier rate for value
* basing on zoom_base and zoom_delta values from settings
* @param Number value zoom value to examine
**/
find_closest_zoom_rate: function(value)
{
if(value == this.options.zoom_base)
{
return 0;
}
 
function div(val1,val2) { return val1 / val2 };
function mul(val1,val2) { return val1 * val2 };
 
var func = (value > this.options.zoom_base)?mul:div;
var sgn = (value > this.options.zoom_base)?1:-1;
 
var mltplr = this.options.zoom_delta;
var rate = 1;
 
while(Math.abs(func(this.options.zoom_base, Math.pow(mltplr,rate)) - value) >
Math.abs(func(this.options.zoom_base, Math.pow(mltplr,rate+1)) - value))
{
rate++;
}
 
return sgn * rate;
},
 
/* update scale info in the container */
update_status: function()
{
if(!this.options.ui_disabled)
{
var percent = Math.round(100*this.img_object.display_height()/this.img_object.orig_height());
if(percent)
{
this.zoom_object.html(percent + "%");
}
}
},
 
/**
* Get some information about the image.
* Currently orig_(width|height), display_(width|height), angle, zoom and src params are supported.
*
* @param {string} parameter to check
* @param {boolean} withoutRotation if param is orig_width or orig_height and this flag is set to true,
* method will return original image width without considering rotation.
*
*/
info: function(param, withoutRotation) {
if (!param) { return; }
 
switch (param) {
case 'orig_width':
case 'orig_height':
if (withoutRotation) {
return (this.img_object.angle() % 180 === 0 ? this.img_object[param]() :
param === 'orig_width' ? this.img_object.orig_height() :
this.img_object.orig_width());
} else {
return this.img_object[param]();
}
case 'display_width':
case 'display_height':
case 'angle':
return this.img_object[param]();
case 'zoom':
return this.current_zoom;
case 'src':
return this.img_object.object().attr('src');
case 'coords':
return {
x: this.img_object.x(),
y: this.img_object.y()
};
}
},
 
/**
* callback for handling mousdown event to start dragging image
**/
_mouseStart: function( e )
{
$.ui.mouse.prototype._mouseStart.call(this, e);
if (this._trigger('onStartDrag', 0, this._getMouseCoords(e)) === false) {
return false;
}
 
/* start drag event*/
this.container.addClass("iviewer_drag_cursor");
 
//#10: fix movement quirks for ipad
this._dragInitialized = !(e.originalEvent.changedTouches && e.originalEvent.changedTouches.length==1);
 
this.dx = e.pageX - this.img_object.x();
this.dy = e.pageY - this.img_object.y();
return true;
},
 
_mouseCapture: function( e ) {
return true;
},
 
/**
* Handle mouse move if needed. User can avoid using this callback, because
* he can get the same information through public methods.
* @param {jQuery.Event} e
*/
_handleMouseMove: function(e) {
this._trigger('onMouseMove', e, this._getMouseCoords(e));
},
 
/**
* callback for handling mousemove event to drag image
**/
_mouseDrag: function(e)
{
$.ui.mouse.prototype._mouseDrag.call(this, e);
 
//#10: imitate mouseStart, because we can get here without it on iPad for some reason
if (!this._dragInitialized) {
this.dx = e.pageX - this.img_object.x();
this.dy = e.pageY - this.img_object.y();
this._dragInitialized = true;
}
 
var ltop = e.pageY - this.dy;
var lleft = e.pageX - this.dx;
 
this.setCoords(lleft, ltop);
this._trigger('onDrag', e, this._getMouseCoords(e));
return false;
},
 
/**
* callback for handling stop drag
**/
_mouseStop: function(e)
{
$.ui.mouse.prototype._mouseStop.call(this, e);
this.container.removeClass("iviewer_drag_cursor");
this._trigger('onStopDrag', 0, this._getMouseCoords(e));
},
 
_click: function(e)
{
this._trigger('onClick', 0, this._getMouseCoords(e));
},
 
/**
* create zoom buttons info box
**/
createui: function()
{
var me=this;
 
$("<div>", { 'class': "iviewer_zoom_in iviewer_common iviewer_button"})
.bind('mousedown touchstart',function(){me.zoom_by(1); return false;})
.appendTo(this.container);
 
$("<div>", { 'class': "iviewer_zoom_out iviewer_common iviewer_button"})
.bind('mousedown touchstart',function(){me.zoom_by(- 1); return false;})
.appendTo(this.container);
 
$("<div>", { 'class': "iviewer_zoom_zero iviewer_common iviewer_button"})
.bind('mousedown touchstart',function(){me.set_zoom(100); return false;})
.appendTo(this.container);
 
$("<div>", { 'class': "iviewer_zoom_fit iviewer_common iviewer_button"})
.bind('mousedown touchstart',function(){me.fit(this); return false;})
.appendTo(this.container);
 
this.zoom_object = $("<div>").addClass("iviewer_zoom_status iviewer_common")
.appendTo(this.container);
 
$("<div>", { 'class': "iviewer_rotate_left iviewer_common iviewer_button"})
.bind('mousedown touchstart',function(){me.angle(-90); return false;})
.appendTo(this.container);
 
$("<div>", { 'class': "iviewer_rotate_right iviewer_common iviewer_button" })
.bind('mousedown touchstart',function(){me.angle(90); return false;})
.appendTo(this.container);
 
this.update_status(); //initial status update
}
 
} );
 
/**
* @class $.ui.iviewer.ImageObject Class represents image and provides public api without
* extending image prototype.
* @constructor
* @param {boolean} do_anim Do we want to animate image on dimension changes?
*/
$.ui.iviewer.ImageObject = function(do_anim) {
this._img = $("<img>")
//this is needed, because chromium sets them auto otherwise
.css({ position: "absolute", top :"0px", left: "0px"});
 
this._loaded = false;
this._swapDimensions = false;
this._do_anim = do_anim || false;
this.x(0, true);
this.y(0, true);
this.angle(0);
};
 
 
/** @lends $.ui.iviewer.ImageObject.prototype */
(function() {
/**
* Restore initial object state.
*
* @param {number} w Image width.
* @param {number} h Image height.
*/
this._reset = function(w, h) {
this._angle = 0;
this._swapDimensions = false;
this.x(0);
this.y(0);
 
this.orig_width(w);
this.orig_height(h);
this.display_width(w);
this.display_height(h);
};
 
/**
* Check if image is loaded.
*
* @return {boolean}
*/
this.loaded = function() { return this._loaded; };
 
/**
* Load image.
*
* @param {string} src Image url.
* @param {Function=} loaded Function will be called on image load.
*/
this.load = function(src, loaded, error) {
var self = this;
 
loaded = loaded || jQuery.noop;
this._loaded = false;
 
//If we assign new image url to the this._img IE9 fires onload event and image width and
//height are set to zero. So, we create another image object and load image through it.
var img = new Image();
img.onload = function() {
self._loaded = true;
self._reset(this.width, this.height);
 
self._img
.removeAttr("width")
.removeAttr("height")
.removeAttr("style")
//max-width is reset, because plugin breaks in the twitter bootstrap otherwise
.css({ position: "absolute", top :"0px", left: "0px", maxWidth: "none"})
 
self._img[0].src = src;
loaded();
};
 
img.onerror = error;
 
//we need this because sometimes internet explorer 8 fires onload event
//right after assignment (synchronously)
setTimeout(function() {
img.src = src;
}, 0);
 
this.angle(0);
};
 
this._dimension = function(prefix, name) {
var horiz = '_' + prefix + '_' + name,
vert = '_' + prefix + '_' + (name === 'height' ? 'width' : 'height');
return setter(function(val) {
this[this._swapDimensions ? horiz: vert] = val;
},
function() {
return this[this._swapDimensions ? horiz: vert];
});
};
 
/**
* Getters and setter for common image dimensions.
* display_ means real image tag dimensions
* orig_ means physical image dimensions.
* Note, that dimensions are swapped if image is rotated. It necessary,
* because as little as possible code should know about rotation.
*/
this.display_width = this._dimension('display', 'width'),
this.display_height = this._dimension('display', 'height'),
this.display_diff = function() { return Math.floor( this.display_width() - this.display_height() ) };
this.orig_width = this._dimension('orig', 'width'),
this.orig_height = this._dimension('orig', 'height'),
 
/**
* Setter for X coordinate. If image is rotated we need to additionaly shift an
* image to map image coordinate to the visual position.
*
* @param {number} val Coordinate value.
* @param {boolean} skipCss If true, we only set the value and do not touch the dom.
*/
this.x = setter(function(val, skipCss) {
this._x = val;
if (!skipCss) {
this._finishAnimation();
this._img.css("left",this._x + (this._swapDimensions ? this.display_diff() / 2 : 0) + "px");
}
},
function() {
return this._x;
});
 
/**
* Setter for Y coordinate. If image is rotated we need to additionaly shift an
* image to map image coordinate to the visual position.
*
* @param {number} val Coordinate value.
* @param {boolean} skipCss If true, we only set the value and do not touch the dom.
*/
this.y = setter(function(val, skipCss) {
this._y = val;
if (!skipCss) {
this._finishAnimation();
this._img.css("top",this._y - (this._swapDimensions ? this.display_diff() / 2 : 0) + "px");
}
},
function() {
return this._y;
});
 
/**
* Perform image rotation.
*
* @param {number} deg Absolute image angle. The method will work with values 0, 90, 180, 270 degrees.
*/
this.angle = setter(function(deg) {
var prevSwap = this._swapDimensions;
 
this._angle = deg;
this._swapDimensions = deg % 180 !== 0;
 
if (prevSwap !== this._swapDimensions) {
var verticalMod = this._swapDimensions ? -1 : 1;
this.x(this.x() - verticalMod * this.display_diff() / 2, true);
this.y(this.y() + verticalMod * this.display_diff() / 2, true);
};
 
var cssVal = 'rotate(' + deg + 'deg)',
img = this._img;
 
jQuery.each(['', '-webkit-', '-moz-', '-o-', '-ms-'], function(i, prefix) {
img.css(prefix + 'transform', cssVal);
});
 
if (useIeTransforms) {
jQuery.each(['-ms-', ''], function(i, prefix) {
img.css(prefix + 'filter', ieTransforms[deg].filter);
});
 
img.css({
marginLeft: ieTransforms[deg].marginLeft * this.display_diff() / 2,
marginTop: ieTransforms[deg].marginTop * this.display_diff() / 2
});
}
},
function() { return this._angle; });
 
/**
* Map point in the container coordinates to the point in image coordinates.
* You will get coordinates of point on image with respect to rotation,
* but will be set as if image was not rotated.
* So, if image was rotated 90 degrees, it's (0,0) point will be on the
* top right corner.
*
* @param {{x: number, y: number}} point Point in container coordinates.
* @return {{x: number, y: number}}
*/
this.toOriginalCoords = function(point) {
switch (this.angle()) {
case 0: return { x: point.x, y: point.y }
case 90: return { x: point.y, y: this.display_width() - point.x }
case 180: return { x: this.display_width() - point.x, y: this.display_height() - point.y }
case 270: return { x: this.display_height() - point.y, y: point.x }
}
};
 
/**
* Map point in the image coordinates to the point in container coordinates.
* You will get coordinates of point on container with respect to rotation.
* Note, if image was rotated 90 degrees, it's (0,0) point will be on the
* top right corner.
*
* @param {{x: number, y: number}} point Point in container coordinates.
* @return {{x: number, y: number}}
*/
this.toRealCoords = function(point) {
switch (this.angle()) {
case 0: return { x: this.x() + point.x, y: this.y() + point.y }
case 90: return { x: this.x() + this.display_width() - point.y, y: this.y() + point.x}
case 180: return { x: this.x() + this.display_width() - point.x, y: this.y() + this.display_height() - point.y}
case 270: return { x: this.x() + point.y, y: this.y() + this.display_height() - point.x}
}
};
 
/**
* @return {jQuery} Return image node. this is needed to add event handlers.
*/
this.object = setter(jQuery.noop,
function() { return this._img; });
 
/**
* Change image properties.
*
* @param {number} disp_w Display width;
* @param {number} disp_h Display height;
* @param {number} x
* @param {number} y
* @param {boolean} skip_animation If true, the animation will be skiped despite the
* value set in constructor.
* @param {Function=} complete Call back will be fired when zoom will be complete.
*/
this.setImageProps = function(disp_w, disp_h, x, y, skip_animation, complete) {
complete = complete || jQuery.noop;
 
this.display_width(disp_w);
this.display_height(disp_h);
this.x(x, true);
this.y(y, true);
 
var w = this._swapDimensions ? disp_h : disp_w;
var h = this._swapDimensions ? disp_w : disp_h;
 
var params = {
width: w,
height: h,
top: y - (this._swapDimensions ? this.display_diff() / 2 : 0) + "px",
left: x + (this._swapDimensions ? this.display_diff() / 2 : 0) + "px"
};
 
if (useIeTransforms) {
jQuery.extend(params, {
marginLeft: ieTransforms[this.angle()].marginLeft * this.display_diff() / 2,
marginTop: ieTransforms[this.angle()].marginTop * this.display_diff() / 2
});
}
 
var swapDims = this._swapDimensions,
img = this._img;
 
//here we come: another IE oddness. If image is rotated 90 degrees with a filter, than
//width and height getters return real width and height of rotated image. The bad news
//is that to set height you need to set a width and vice versa. Fuck IE.
//So, in this case we have to animate width and height manually.
if(useIeTransforms && swapDims) {
var ieh = this._img.width(),
iew = this._img.height(),
iedh = params.height - ieh;
iedw = params.width - iew;
 
delete params.width;
delete params.height;
}
 
if (this._do_anim && !skip_animation) {
this._img.stop(true)
.animate(params, {
duration: 200,
complete: complete,
step: function(now, fx) {
if(useIeTransforms && swapDims && (fx.prop === 'top')) {
var percent = (now - fx.start) / (fx.end - fx.start);
 
img.height(ieh + iedh * percent);
img.width(iew + iedw * percent);
img.css('top', now);
}
}
});
} else {
this._img.css(params);
setTimeout(complete, 0); //both if branches should behave equally.
}
};
 
//if we set image coordinates we need to be sure that no animation is active atm
this._finishAnimation = function() {
this._img.stop(true, true);
}
 
}).apply($.ui.iviewer.ImageObject.prototype);
 
 
 
var util = {
scaleValue: function(value, toZoom)
{
return value * toZoom / 100;
},
 
descaleValue: function(value, fromZoom)
{
return value * 100 / fromZoom;
}
};
 
} )( jQuery, undefined );
/trunk/doc/PhpDoc/phpdoc-cache-a1/phpdoc-cache-file_d2acb2f58b7875e449bfc97005d1b5c1.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/phpdoc-cache-a1/phpdoc-cache-file_d2acb2f58b7875e449bfc97005d1b5c1.dat
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/namespaces/default.html
New file
0,0 → 1,433
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-2032823098"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-2032823098" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content namespace">
<nav>
</nav>
<h1><small></small>\</h1>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="../classes/Url.html">Url</a></td>
<td><em>Classe Url, gérant le découpage des paramètres, leurs modification etc.</em></td>
</tr>
<tr>
<td><a href="../classes/Debug.html">Debug</a></td>
<td><em>Classe fournissant des fonctions de débogage équivalante à var_dump et print_r.</em></td>
</tr>
<tr>
<td><a href="../classes/Chronometre.html">Chronometre</a></td>
<td><em>Chronometre permet de stocker et d&#039;afficher les temps d&#039;éxécution de script.</em></td>
</tr>
<tr>
<td><a href="../classes/RestServeur.html">RestServeur</a></td>
<td><em>Classe principale gérant les services web de type (@link(REST, http://fr.wikipedia.org/wiki/Rest).</em></td>
</tr>
<tr>
<td><a href="../classes/SquelettePhp.html">SquelettePhp</a></td>
<td><em>Classe SquelettePhp, traitant les squelette Php utilisant la syntaxe courte php ou pas.</em></td>
</tr>
<tr>
<td><a href="../classes/Controleur.html">Controleur</a></td>
<td><em>Classe Controleur, coeur d&#039;une application, c&#039;est normalement la seule classe d&#039;une application
qui devrait être appelée de l&#039;extérieur.</em></td>
</tr>
<tr>
<td><a href="../classes/Cache.html">Cache</a></td>
<td><em>Classe Cache permettant de mettre en cache des données.</em></td>
</tr>
<tr>
<td><a href="../classes/RestClient.html">RestClient</a></td>
<td><em>Classe client permettant d&#039;interroger des services web REST.</em></td>
</tr>
<tr>
<td><a href="../classes/GestionnaireException.html">GestionnaireException</a></td>
<td><em>Classe de gestion des exceptions.</em></td>
</tr>
<tr>
<td><a href="../classes/Script.html">Script</a></td>
<td><em>Script est une classe abstraite qui doit être implémenté par les classes éxecutant des scripts en ligne de commande.</em></td>
</tr>
<tr>
<td><a href="../classes/Registre.html">Registre</a></td>
<td><em>Classe Registre, qui permet un accès à différentes variables et paramètres à travers les autres classes.</em></td>
</tr>
<tr>
<td><a href="../classes/RestService.html">RestService</a></td>
<td><em>Classe principale gérant les services.</em></td>
</tr>
<tr>
<td><a href="../classes/Cli.html">Cli</a></td>
<td><em>CLI permet de récupérer les paramètres passés en ligne de commande pour instancier une classe héritant de la classe abstraite
Script.</em></td>
</tr>
<tr>
<td><a href="../classes/Encodage.html">Encodage</a></td>
<td><em>Classe fournissant des méthodes statiques concernant l&#039;encodage et le décodage des caractères de variable.</em></td>
</tr>
<tr>
<td><a href="../classes/Tableau.html">Tableau</a></td>
<td><em>Classe fournissant des méthodes statiques de manipulation des tableaux (Array).</em></td>
</tr>
<tr>
<td><a href="../classes/Pattern.html">Pattern</a></td>
<td><em>Classe fournissant des constantes correspondant à des expressions régulières de vérification très courrantes.</em></td>
</tr>
<tr>
<td><a href="../classes/Chaine.html">Chaine</a></td>
<td><em>Classe fournissant des méthodes statiques de manipulation des chaînes de caractères (String).</em></td>
</tr>
<tr>
<td><a href="../classes/Fichier.html">Fichier</a></td>
<td><em>Classe fournissant des méthodes statiques de manipulation des fichiers.</em></td>
</tr>
<tr>
<td><a href="../classes/I18n.html">I18n</a></td>
<td><em>I18n permet de traduire une application à partir de données stockées dans des fichiers ini.</em></td>
</tr>
<tr>
<td><a href="../classes/Config.html">Config</a></td>
<td><em>Config permet de charger automatiquement les fichiers ini du Framework et de l&#039;application.</em></td>
</tr>
<tr>
<td><a href="../classes/CacheSqlite.html">CacheSqlite</a></td>
<td><em></em></td>
</tr>
<tr>
<td><a href="../classes/Bdd.html">Bdd</a></td>
<td><em>Classe Bdd, d&#039;accés au base de données.</em></td>
</tr>
<tr>
<td><a href="../classes/Log.html">Log</a></td>
<td><em>Classe permettant de logger des messages dans les fichier situés dans le dossier de log.</em></td>
</tr>
<tr>
<td><a href="../classes/CacheFichier.html">CacheFichier</a></td>
<td><em></em></td>
</tr>
<tr>
<td><a href="../classes/Framework.html">Framework</a></td>
<td><em>Classe de base du Framework :
- fournissant des infos sur l&#039;application,
- paramétrant l&#039;environnement de l&#039;appli et du framework,
- réalisant des traitements sur les variables globales ($_GET, $_POST, $_COOKIE.</em></td>
</tr>
<tr>
<td><a href="../classes/CacheSimple.html">CacheSimple</a></td>
<td><em>Classe Cache permettant de mettre en cache des données de façon extremement simple.</em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
<dt>Namespace hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\</div>
</dd>
</dl>
</aside>
</div>
 
<div class="row-fluid">
<section class="span8 content namespace">
<h2>Constants</h2>
</section>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_DS" name="constant_DS" class="anchor"></a>
<article id="constant_DS" class="constant">
<h3 class="">DS</h3>
<pre class="signature">DS</pre>
<p><em>Redéfinition de la constante DIRECTORY_SEPARATOR en version abrégée DS</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
<dt>File</dt>
<dd><a href=""><div class="path-wrapper"></div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_PS" name="constant_PS" class="anchor"></a>
<article id="constant_PS" class="constant">
<h3 class="">PS</h3>
<pre class="signature">PS</pre>
<p><em>Redéfinition de la constante PATH_SEPARATOR en version abrégée PS</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
<dt>File</dt>
<dd><a href=""><div class="path-wrapper"></div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<section class="span8 content namespace">
<h2>Functions</h2>
</section>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_nettoyerSlashProfond" name="method_nettoyerSlashProfond" class="anchor"></a>
<article class="method">
<h3 class=" ">nettoyerSlashProfond()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">nettoyerSlashProfond( <span class="argument">$valeur</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$valeur</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
<dt>File</dt>
<dd><a href=""><div class="path-wrapper"></div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/phpdoc-cache-e0/phpdoc-cache-file_3c8af7beabeb6a60edbadada7524d7ed.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/phpdoc-cache-e0/phpdoc-cache-file_3c8af7beabeb6a60edbadada7524d7ed.dat
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/phpdoc-cache-3c/phpdoc-cache-file_0f8f35c8eae86e86fc8742d3a5134c15.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/phpdoc-cache-3c/phpdoc-cache-file_0f8f35c8eae86e86fc8742d3a5134c15.dat
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/phpdoc-cache-1f/phpdoc-cache-file_9f2bd6a7e9dcd3958d86cf14c94230b3.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/phpdoc-cache-1f/phpdoc-cache-file_9f2bd6a7e9dcd3958d86cf14c94230b3.dat
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/phpdoc-cache-e4/phpdoc-cache-file_5f5ad2f8f7f8dab5daffd639f8da7d02.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/phpdoc-cache-e4/phpdoc-cache-file_5f5ad2f8f7f8dab5daffd639f8da7d02.dat
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/phpdoc-cache-9a/phpdoc-cache-file_93fb3191e18da5e5dd0648f61d92959e.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/phpdoc-cache-9a/phpdoc-cache-file_93fb3191e18da5e5dd0648f61d92959e.dat
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/phpdoc-cache-10/phpdoc-cache-file_c0a000a74ba9d6fbb1338a30824c0cfe.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/phpdoc-cache-10/phpdoc-cache-file_c0a000a74ba9d6fbb1338a30824c0cfe.dat
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/reports/markers.html
New file
0,0 → 1,321
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title> &raquo; Markers
</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<ul class="side-nav nav nav-list">
<li class="nav-header">Navigation</li>
<li><a href="#RestServeur.php"><i class="icon-file"></i> RestServeur.php</a></li>
<li><a href="#Script.php"><i class="icon-file"></i> Script.php</a></li>
<li><a href="#utilitaires/Tableau.php"><i class="icon-file"></i> utilitaires/Tableau.php</a></li>
<li><a href="#CacheSqlite.php"><i class="icon-file"></i> CacheSqlite.php</a></li>
<li><a href="#CacheFichier.php"><i class="icon-file"></i> CacheFichier.php</a></li>
<li><a href="#CacheSimple.php"><i class="icon-file"></i> CacheSimple.php</a></li>
</ul>
</div>
 
<div class="span10 offset2">
 
<ul class="breadcrumb">
<li><a href="../"><i class="icon-map-marker"></i></a><span class="divider">\</span></li>
<li>Markers</li>
</ul>
 
<div id="marker-accordion">
<div class="package-contents">
<a name="RestServeur.php" id="RestServeur.php"></a>
<h3>
<i class="icon-file"></i>
RestServeur.php
<small style="float: right;padding-right: 10px;">1</small>
</h3>
<div>
<table class="table markers table-bordered">
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
<tr>
<td>TODO</td>
<td>41</td>
<td>: gerer les retours : dans ce controleur : code retour et envoi ...</td>
</tr>
</table>
</div>
</div>
<div class="package-contents">
<a name="Script.php" id="Script.php"></a>
<h3>
<i class="icon-file"></i>
Script.php
<small style="float: right;padding-right: 10px;">1</small>
</h3>
<div>
<table class="table markers table-bordered">
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
<tr>
<td>TODO</td>
<td>240</td>
<td>: lancer le log</td>
</tr>
</table>
</div>
</div>
<div class="package-contents">
<a name="utilitaires/Tableau.php" id="utilitaires/Tableau.php"></a>
<h3>
<i class="icon-file"></i>
utilitaires/Tableau.php
<small style="float: right;padding-right: 10px;">1</small>
</h3>
<div>
<table class="table markers table-bordered">
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
<tr>
<td>TODO</td>
<td>15</td>
<td>: réaliser une seule méthode pour trierMD et trierMDType</td>
</tr>
</table>
</div>
</div>
<div class="package-contents">
<a name="CacheSqlite.php" id="CacheSqlite.php"></a>
<h3>
<i class="icon-file"></i>
CacheSqlite.php
<small style="float: right;padding-right: 10px;">4</small>
</h3>
<div>
<table class="table markers table-bordered">
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
<tr>
<td>FIXME</td>
<td>143</td>
<td>: si l&#039;extension n&#039;est pas installée, le cache passe tout de même par cette fonction et s&#039;arrête à cet endroit.</td>
</tr>
<tr>
<td>TODO</td>
<td>152</td>
<td>: ajouter un log sauver() : impossible de stocker le cache d&#039;id &#039;$id&#039;</td>
</tr>
<tr>
<td>TODO</td>
<td>486</td>
<td>: ajouter un log -&gt; impossible d&#039;enregistrer le tag=$tag pour le cache id=$id&quot;);</td>
</tr>
<tr>
<td>TODO</td>
<td>527</td>
<td>: ajouter un log CacheSqlite::verifierBddStructureVersion() : vielle version de la structure de la base de données de cache détectée =&gt; le cache est entrain d&#039;être supprimé</td>
</tr>
</table>
</div>
</div>
<div class="package-contents">
<a name="CacheFichier.php" id="CacheFichier.php"></a>
<h3>
<i class="icon-file"></i>
CacheFichier.php
<small style="float: right;padding-right: 10px;">4</small>
</h3>
<div>
<table class="table markers table-bordered">
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
<tr>
<td>TODO</td>
<td>152</td>
<td>: loguer le pb de sécu</td>
</tr>
<tr>
<td>TODO</td>
<td>215</td>
<td>: ajouter un log</td>
</tr>
<tr>
<td>TODO</td>
<td>512</td>
<td>: ajouter un log</td>
</tr>
<tr>
<td>TODO</td>
<td>702</td>
<td>: ajoute un log</td>
</tr>
</table>
</div>
</div>
<div class="package-contents">
<a name="CacheSimple.php" id="CacheSimple.php"></a>
<h3>
<i class="icon-file"></i>
CacheSimple.php
<small style="float: right;padding-right: 10px;">1</small>
</h3>
<div>
<table class="table markers table-bordered">
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
<tr>
<td>TODO</td>
<td>22</td>
<td>: voir ce qui est le plus pratique : error_log ou le gestionnaire de bogue du framework</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</section>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/reports/errors.html
New file
0,0 → 1,2128
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title> &raquo; Compilation errors
</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
 
<ul class="side-nav nav nav-list">
<li class="nav-header">Navigation</li>
<li><a href="#Url.php"><i class="icon-file"></i> Url.php</a></li>
<li><a href="#Debug.php"><i class="icon-file"></i> Debug.php</a></li>
<li><a href="#Chronometre.php"><i class="icon-file"></i> Chronometre.php</a></li>
<li><a href="#RestServeur.php"><i class="icon-file"></i> RestServeur.php</a></li>
<li><a href="#SquelettePhp.php"><i class="icon-file"></i> SquelettePhp.php</a></li>
<li><a href="#Controleur.php"><i class="icon-file"></i> Controleur.php</a></li>
<li><a href="#Cache.php"><i class="icon-file"></i> Cache.php</a></li>
<li><a href="#RestClient.php"><i class="icon-file"></i> RestClient.php</a></li>
<li><a href="#GestionnaireException.php"><i class="icon-file"></i> GestionnaireException.php</a></li>
<li><a href="#Script.php"><i class="icon-file"></i> Script.php</a></li>
<li><a href="#Registre.php"><i class="icon-file"></i> Registre.php</a></li>
<li><a href="#RestService.php"><i class="icon-file"></i> RestService.php</a></li>
<li><a href="#Cli.php"><i class="icon-file"></i> Cli.php</a></li>
<li><a href="#utilitaires/Encodage.php"><i class="icon-file"></i> utilitaires/Encodage.php</a></li>
<li><a href="#utilitaires/Tableau.php"><i class="icon-file"></i> utilitaires/Tableau.php</a></li>
<li><a href="#utilitaires/Pattern.php"><i class="icon-file"></i> utilitaires/Pattern.php</a></li>
<li><a href="#utilitaires/Chaine.php"><i class="icon-file"></i> utilitaires/Chaine.php</a></li>
<li><a href="#utilitaires/Fichier.php"><i class="icon-file"></i> utilitaires/Fichier.php</a></li>
<li><a href="#I18n.php"><i class="icon-file"></i> I18n.php</a></li>
<li><a href="#Config.php"><i class="icon-file"></i> Config.php</a></li>
<li><a href="#CacheSqlite.php"><i class="icon-file"></i> CacheSqlite.php</a></li>
<li><a href="#Bdd.php"><i class="icon-file"></i> Bdd.php</a></li>
<li><a href="#Log.php"><i class="icon-file"></i> Log.php</a></li>
<li><a href="#CacheFichier.php"><i class="icon-file"></i> CacheFichier.php</a></li>
<li><a href="#Framework.php"><i class="icon-file"></i> Framework.php</a></li>
<li><a href="#CacheSimple.php"><i class="icon-file"></i> CacheSimple.php</a></li>
</ul>
</div>
 
<div class="span10 offset2">
<ul class="breadcrumb">
<li><a href="../"><i class="icon-remove-sign"></i></a><span class="divider">\</span></li>
<li>Compilation Errors</li>
</ul>
 
<div class="package-contents">
<a name="Url.php" id="Url.php"></a>
<h3>
<i class="icon-file"></i>
Url.php
<small style="float: right;padding-right: 10px;">10</small>
</h3>
<div>
<table class="table markers table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
<tr>
<td>error</td>
<td>62</td>
<td>No summary for property $schema</td>
</tr>
<tr>
<td>error</td>
<td>67</td>
<td>No summary for property $infoUtilisateur</td>
</tr>
<tr>
<td>error</td>
<td>72</td>
<td>No summary for property $hote</td>
</tr>
<tr>
<td>error</td>
<td>77</td>
<td>No summary for property $port</td>
</tr>
<tr>
<td>error</td>
<td>82</td>
<td>No summary for property $chemin</td>
</tr>
<tr>
<td>error</td>
<td>87</td>
<td>No summary for property $requete</td>
</tr>
<tr>
<td>error</td>
<td>92</td>
<td>No summary for property $fragment</td>
</tr>
<tr>
<td>error</td>
<td>101</td>
<td>No summary for method __construct()</td>
</tr>
<tr>
<td>error</td>
<td>196</td>
<td>No summary for method setAutorite()</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="package-contents">
<a name="Debug.php" id="Debug.php"></a>
<h3>
<i class="icon-file"></i>
Debug.php
<small style="float: right;padding-right: 10px;">1</small>
</h3>
<div>
<table class="table markers table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="package-contents">
<a name="Chronometre.php" id="Chronometre.php"></a>
<h3>
<i class="icon-file"></i>
Chronometre.php
<small style="float: right;padding-right: 10px;">8</small>
</h3>
<div>
<table class="table markers table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
<tr>
<td>error</td>
<td>19</td>
<td>No summary for property $pointArretNumero</td>
</tr>
<tr>
<td>error</td>
<td>20</td>
<td>No summary for property $temps</td>
</tr>
<tr>
<td>error</td>
<td>48</td>
<td>Argument $cle is missing from the Docblock of setTemps()</td>
</tr>
<tr>
<td>error</td>
<td>62</td>
<td>Argument $cle is missing from the Docblock of chrono()</td>
</tr>
<tr>
<td>error</td>
<td>86</td>
<td>Argument $cle is missing from the Docblock of afficherChrono()</td>
</tr>
<tr>
<td>error</td>
<td>133</td>
<td>Argument $utps is missing from the Docblock of getMicroTime()</td>
</tr>
<tr>
<td>error</td>
<td>133</td>
<td>No summary for method getMicroTime()</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="package-contents">
<a name="RestServeur.php" id="RestServeur.php"></a>
<h3>
<i class="icon-file"></i>
RestServeur.php
<small style="float: right;padding-right: 10px;">25</small>
</h3>
<div>
<table class="table markers table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
<tr>
<td>error</td>
<td>222</td>
<td>No summary for method initialiserMethode()</td>
</tr>
<tr>
<td>error</td>
<td>230</td>
<td>No summary for method initialiserRequeteDonnees()</td>
</tr>
<tr>
<td>error</td>
<td>241</td>
<td>No summary for method decouperUrlChemin()</td>
</tr>
<tr>
<td>error</td>
<td>267</td>
<td>Argument $apiVersion is missing from the Docblock of initialiserApiVersion()</td>
</tr>
<tr>
<td>error</td>
<td>267</td>
<td>No summary for method initialiserApiVersion()</td>
</tr>
<tr>
<td>error</td>
<td>282</td>
<td>Argument $apiVersion is missing from the Docblock of verifierApiVersion()</td>
</tr>
<tr>
<td>error</td>
<td>282</td>
<td>No summary for method verifierApiVersion()</td>
</tr>
<tr>
<td>error</td>
<td>290</td>
<td>Argument $serviceNom is missing from the Docblock of initialiserServiceNom()</td>
</tr>
<tr>
<td>error</td>
<td>290</td>
<td>No summary for method initialiserServiceNom()</td>
</tr>
<tr>
<td>error</td>
<td>303</td>
<td>Argument $serviceNom is missing from the Docblock of verifierServiceNom()</td>
</tr>
<tr>
<td>error</td>
<td>303</td>
<td>No summary for method verifierServiceNom()</td>
</tr>
<tr>
<td>error</td>
<td>311</td>
<td>Argument $serviceNom is missing from the Docblock of traiterNomService()</td>
</tr>
<tr>
<td>error</td>
<td>311</td>
<td>No summary for method traiterNomService()</td>
</tr>
<tr>
<td>error</td>
<td>315</td>
<td>Argument $urlParts is missing from the Docblock of initialiserRessource()</td>
</tr>
<tr>
<td>error</td>
<td>315</td>
<td>No summary for method initialiserRessource()</td>
</tr>
<tr>
<td>error</td>
<td>326</td>
<td>No summary for method initialiserParametres()</td>
</tr>
<tr>
<td>error</td>
<td>331</td>
<td>No summary for method recupererParametresGet()</td>
</tr>
<tr>
<td>error</td>
<td>336</td>
<td>No summary for method nettoyerParametres()</td>
</tr>
<tr>
<td>error</td>
<td>349</td>
<td>No summary for method recupererParametresBruts()</td>
</tr>
<tr>
<td>error</td>
<td>371</td>
<td>Argument $classe is missing from the Docblock of chargerClasse()</td>
</tr>
<tr>
<td>error</td>
<td>444</td>
<td>No summary for method post()</td>
</tr>
<tr>
<td>error</td>
<td>479</td>
<td>No summary for method put()</td>
</tr>
<tr>
<td>error</td>
<td>507</td>
<td>No summary for method delete()</td>
</tr>
<tr>
<td>error</td>
<td>584</td>
<td>Argument $retour is missing from the Docblock of cloreAccesServeur()</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="package-contents">
<a name="SquelettePhp.php" id="SquelettePhp.php"></a>
<h3>
<i class="icon-file"></i>
SquelettePhp.php
<small style="float: right;padding-right: 10px;">1</small>
</h3>
<div>
<table class="table markers table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="package-contents">
<a name="Controleur.php" id="Controleur.php"></a>
<h3>
<i class="icon-file"></i>
Controleur.php
<small style="float: right;padding-right: 10px;">1</small>
</h3>
<div>
<table class="table markers table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="package-contents">
<a name="Cache.php" id="Cache.php"></a>
<h3>
<i class="icon-file"></i>
Cache.php
<small style="float: right;padding-right: 10px;">26</small>
</h3>
<div>
<table class="table markers table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
<tr>
<td>error</td>
<td>96</td>
<td>No summary for property $stockage</td>
</tr>
<tr>
<td>error</td>
<td>98</td>
<td>Argument $options is missing from the Docblock of __construct()</td>
</tr>
<tr>
<td>error</td>
<td>98</td>
<td>Argument $options_stockage is missing from the Docblock of __construct()</td>
</tr>
<tr>
<td>error</td>
<td>98</td>
<td>No summary for method __construct()</td>
</tr>
<tr>
<td>error</td>
<td>112</td>
<td>No summary for method initialiserOptionsParConfig()</td>
</tr>
<tr>
<td>error</td>
<td>120</td>
<td>Argument $options is missing from the Docblock of setOptions()</td>
</tr>
<tr>
<td>error</td>
<td>120</td>
<td>No summary for method setOptions()</td>
</tr>
<tr>
<td>error</td>
<td>148</td>
<td>Argument $mode is missing from the Docblock of fabriquer()</td>
</tr>
<tr>
<td>error</td>
<td>148</td>
<td>Argument $options is missing from the Docblock of fabriquer()</td>
</tr>
<tr>
<td>error</td>
<td>148</td>
<td>No summary for method fabriquer()</td>
</tr>
<tr>
<td>error</td>
<td>365</td>
<td>Argument $supplement_duree_de_vie is missing from the Docblock of ajouterSupplementDureeDeVie()</td>
</tr>
<tr>
<td>error</td>
<td>387</td>
<td>Argument $methode is missing from the Docblock of executerMethodeStockage()</td>
</tr>
<tr>
<td>error</td>
<td>387</td>
<td>Argument $params is missing from the Docblock of executerMethodeStockage()</td>
</tr>
<tr>
<td>error</td>
<td>387</td>
<td>No summary for method executerMethodeStockage()</td>
</tr>
<tr>
<td>error</td>
<td>401</td>
<td>Argument $ids is missing from the Docblock of supprimerPrefixe()</td>
</tr>
<tr>
<td>error</td>
<td>401</td>
<td>No summary for method supprimerPrefixe()</td>
</tr>
<tr>
<td>error</td>
<td>415</td>
<td>Argument $id is missing from the Docblock of controlerEcriture()</td>
</tr>
<tr>
<td>error</td>
<td>415</td>
<td>Argument $donnees_avant_ecriture is missing from the Docblock of controlerEcriture()</td>
</tr>
<tr>
<td>error</td>
<td>415</td>
<td>No summary for method controlerEcriture()</td>
</tr>
<tr>
<td>error</td>
<td>427</td>
<td>Argument $donnees is missing from the Docblock of deserialiserAutomatiquement()</td>
</tr>
<tr>
<td>error</td>
<td>427</td>
<td>No summary for method deserialiserAutomatiquement()</td>
</tr>
<tr>
<td>error</td>
<td>435</td>
<td>Argument $donnees is missing from the Docblock of serialiserAutomatiquement()</td>
</tr>
<tr>
<td>error</td>
<td>435</td>
<td>No summary for method serialiserAutomatiquement()</td>
</tr>
<tr>
<td>error</td>
<td>447</td>
<td>No summary for method nettoyerAutomatiquement()</td>
</tr>
<tr>
<td>error</td>
<td>495</td>
<td>Argument $duree_de_vie is missing from the Docblock of getTimestampExpiration()</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="package-contents">
<a name="RestClient.php" id="RestClient.php"></a>
<h3>
<i class="icon-file"></i>
RestClient.php
<small style="float: right;padding-right: 10px;">36</small>
</h3>
<div>
<table class="table markers table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
<tr>
<td>error</td>
<td>17</td>
<td>No summary for property $http_methodes</td>
</tr>
<tr>
<td>error</td>
<td>18</td>
<td>No summary for property $parametres</td>
</tr>
<tr>
<td>error</td>
<td>19</td>
<td>No summary for property $url</td>
</tr>
<tr>
<td>error</td>
<td>20</td>
<td>No summary for property $reponse_entetes</td>
</tr>
<tr>
<td>error</td>
<td>25</td>
<td>No summary for method getReponseEntetes()</td>
</tr>
<tr>
<td>error</td>
<td>29</td>
<td>Argument $cle is missing from the Docblock of getParametre()</td>
</tr>
<tr>
<td>error</td>
<td>29</td>
<td>No summary for method getParametre()</td>
</tr>
<tr>
<td>error</td>
<td>34</td>
<td>Argument $cle is missing from the Docblock of ajouterParametre()</td>
</tr>
<tr>
<td>error</td>
<td>34</td>
<td>Argument $valeur is missing from the Docblock of ajouterParametre()</td>
</tr>
<tr>
<td>error</td>
<td>34</td>
<td>No summary for method ajouterParametre()</td>
</tr>
<tr>
<td>error</td>
<td>38</td>
<td>Argument $cle is missing from the Docblock of supprimerParametre()</td>
</tr>
<tr>
<td>error</td>
<td>38</td>
<td>No summary for method supprimerParametre()</td>
</tr>
<tr>
<td>error</td>
<td>42</td>
<td>No summary for method nettoyerParametres()</td>
</tr>
<tr>
<td>error</td>
<td>49</td>
<td>Argument $url is missing from the Docblock of consulter()</td>
</tr>
<tr>
<td>error</td>
<td>49</td>
<td>No summary for method consulter()</td>
</tr>
<tr>
<td>error</td>
<td>54</td>
<td>Argument $url is missing from the Docblock of ajouter()</td>
</tr>
<tr>
<td>error</td>
<td>54</td>
<td>No summary for method ajouter()</td>
</tr>
<tr>
<td>error</td>
<td>59</td>
<td>Argument $url is missing from the Docblock of modifier()</td>
</tr>
<tr>
<td>error</td>
<td>59</td>
<td>No summary for method modifier()</td>
</tr>
<tr>
<td>error</td>
<td>64</td>
<td>Argument $url is missing from the Docblock of supprimer()</td>
</tr>
<tr>
<td>error</td>
<td>64</td>
<td>No summary for method supprimer()</td>
</tr>
<tr>
<td>error</td>
<td>69</td>
<td>Argument $url is missing from the Docblock of envoyerCurlRequete()</td>
</tr>
<tr>
<td>error</td>
<td>69</td>
<td>Argument $mode is missing from the Docblock of envoyerCurlRequete()</td>
</tr>
<tr>
<td>error</td>
<td>69</td>
<td>No summary for method envoyerCurlRequete()</td>
</tr>
<tr>
<td>error</td>
<td>118</td>
<td>Argument $trace is missing from the Docblock of getCaller()</td>
</tr>
<tr>
<td>error</td>
<td>118</td>
<td>No summary for method getCaller()</td>
</tr>
<tr>
<td>error</td>
<td>123</td>
<td>Argument $url is missing from the Docblock of envoyerRequete()</td>
</tr>
<tr>
<td>error</td>
<td>123</td>
<td>Argument $mode is missing from the Docblock of envoyerRequete()</td>
</tr>
<tr>
<td>error</td>
<td>123</td>
<td>No summary for method envoyerRequete()</td>
</tr>
<tr>
<td>error</td>
<td>168</td>
<td>No summary for method traiterUrlParametres()</td>
</tr>
<tr>
<td>error</td>
<td>181</td>
<td>No summary for method traiterEntete()</td>
</tr>
<tr>
<td>error</td>
<td>186</td>
<td>No summary for method analyserEntete()</td>
</tr>
<tr>
<td>error</td>
<td>204</td>
<td>Argument $entetes_analyses is missing from the Docblock of traiterEnteteDebogage()</td>
</tr>
<tr>
<td>error</td>
<td>204</td>
<td>No summary for method traiterEnteteDebogage()</td>
</tr>
<tr>
<td>error</td>
<td>216</td>
<td>No summary for method reinitialiser()</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="package-contents">
<a name="GestionnaireException.php" id="GestionnaireException.php"></a>
<h3>
<i class="icon-file"></i>
GestionnaireException.php
<small style="float: right;padding-right: 10px;">2</small>
</h3>
<div>
<table class="table markers table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
<tr>
<td>error</td>
<td>82</td>
<td>Argument $contexte is missing from the Docblock of setContexte()</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="package-contents">
<a name="Script.php" id="Script.php"></a>
<h3>
<i class="icon-file"></i>
Script.php
<small style="float: right;padding-right: 10px;">28</small>
</h3>
<div>
<table class="table markers table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
<tr>
<td>error</td>
<td>96</td>
<td>Argument $script_nom is missing from the Docblock of __construct()</td>
</tr>
<tr>
<td>error</td>
<td>96</td>
<td>Argument $parametres_cli is missing from the Docblock of __construct()</td>
</tr>
<tr>
<td>error</td>
<td>96</td>
<td>No summary for method __construct()</td>
</tr>
<tr>
<td>error</td>
<td>109</td>
<td>Argument $niveau is missing from the Docblock of getMsgNiveauTxt()</td>
</tr>
<tr>
<td>error</td>
<td>109</td>
<td>No summary for method getMsgNiveauTxt()</td>
</tr>
<tr>
<td>error</td>
<td>113</td>
<td>No summary for method getScriptNom()</td>
</tr>
<tr>
<td>error</td>
<td>117</td>
<td>Argument $doit_exister is missing from the Docblock of getScriptChemin()</td>
</tr>
<tr>
<td>error</td>
<td>117</td>
<td>No summary for method getScriptChemin()</td>
</tr>
<tr>
<td>error</td>
<td>125</td>
<td>Argument $parametre is missing from the Docblock of getParametre()</td>
</tr>
<tr>
<td>error</td>
<td>125</td>
<td>No summary for method getParametre()</td>
</tr>
<tr>
<td>error</td>
<td>139</td>
<td>No summary for method executer()</td>
</tr>
<tr>
<td>error</td>
<td>141</td>
<td>No summary for method chargerParametresAutorises()</td>
</tr>
<tr>
<td>error</td>
<td>151</td>
<td>No summary for method chargerParametres()</td>
</tr>
<tr>
<td>error</td>
<td>197</td>
<td>Argument $message is missing from the Docblock of traiterErreur()</td>
</tr>
<tr>
<td>error</td>
<td>197</td>
<td>Argument $tab_arguments is missing from the Docblock of traiterErreur()</td>
</tr>
<tr>
<td>error</td>
<td>210</td>
<td>Argument $message is missing from the Docblock of traiterAvertissement()</td>
</tr>
<tr>
<td>error</td>
<td>210</td>
<td>Argument $tab_arguments is missing from the Docblock of traiterAvertissement()</td>
</tr>
<tr>
<td>error</td>
<td>223</td>
<td>Argument $message is missing from the Docblock of traiterInfo()</td>
</tr>
<tr>
<td>error</td>
<td>223</td>
<td>Argument $tab_arguments is missing from the Docblock of traiterInfo()</td>
</tr>
<tr>
<td>error</td>
<td>235</td>
<td>Argument $message is missing from the Docblock of traiterMessage()</td>
</tr>
<tr>
<td>error</td>
<td>235</td>
<td>Argument $tab_arguments is missing from the Docblock of traiterMessage()</td>
</tr>
<tr>
<td>error</td>
<td>235</td>
<td>Argument $niveau is missing from the Docblock of traiterMessage()</td>
</tr>
<tr>
<td>error</td>
<td>252</td>
<td>Argument $message is missing from the Docblock of formaterMsg()</td>
</tr>
<tr>
<td>error</td>
<td>252</td>
<td>Argument $tab_arguments is missing from the Docblock of formaterMsg()</td>
</tr>
<tr>
<td>error</td>
<td>252</td>
<td>Argument $niveau is missing from the Docblock of formaterMsg()</td>
</tr>
<tr>
<td>error</td>
<td>268</td>
<td>Argument $message is missing from the Docblock of afficherAvancement()</td>
</tr>
<tr>
<td>error</td>
<td>268</td>
<td>Argument $depart is missing from the Docblock of afficherAvancement()</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="package-contents">
<a name="Registre.php" id="Registre.php"></a>
<h3>
<i class="icon-file"></i>
Registre.php
<small style="float: right;padding-right: 10px;">6</small>
</h3>
<div>
<table class="table markers table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
<tr>
<td>error</td>
<td>29</td>
<td>Argument $intitule is missing from the Docblock of set()</td>
</tr>
<tr>
<td>error</td>
<td>29</td>
<td>Argument $objet is missing from the Docblock of set()</td>
</tr>
<tr>
<td>error</td>
<td>43</td>
<td>Argument $intitule is missing from the Docblock of get()</td>
</tr>
<tr>
<td>error</td>
<td>51</td>
<td>Argument $intitule is missing from the Docblock of detruire()</td>
</tr>
<tr>
<td>error</td>
<td>62</td>
<td>Argument $intitule is missing from the Docblock of existe()</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="package-contents">
<a name="RestService.php" id="RestService.php"></a>
<h3>
<i class="icon-file"></i>
RestService.php
<small style="float: right;padding-right: 10px;">11</small>
</h3>
<div>
<table class="table markers table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
<tr>
<td>error</td>
<td>34</td>
<td>Argument $config is missing from the Docblock of __construct()</td>
</tr>
<tr>
<td>error</td>
<td>34</td>
<td>No summary for method __construct()</td>
</tr>
<tr>
<td>error</td>
<td>39</td>
<td>No summary for method initialiser()</td>
</tr>
<tr>
<td>error</td>
<td>91</td>
<td>Argument $ressources is missing from the Docblock of consulter()</td>
</tr>
<tr>
<td>error</td>
<td>91</td>
<td>Argument $parametres is missing from the Docblock of consulter()</td>
</tr>
<tr>
<td>error</td>
<td>107</td>
<td>Argument $ressources is missing from the Docblock of modifier()</td>
</tr>
<tr>
<td>error</td>
<td>107</td>
<td>Argument $requeteDonnees is missing from the Docblock of modifier()</td>
</tr>
<tr>
<td>error</td>
<td>126</td>
<td>Argument $ressources is missing from the Docblock of ajouter()</td>
</tr>
<tr>
<td>error</td>
<td>126</td>
<td>Argument $requeteDonnees is missing from the Docblock of ajouter()</td>
</tr>
<tr>
<td>error</td>
<td>145</td>
<td>Argument $ressources is missing from the Docblock of supprimer()</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="package-contents">
<a name="Cli.php" id="Cli.php"></a>
<h3>
<i class="icon-file"></i>
Cli.php
<small style="float: right;padding-right: 10px;">8</small>
</h3>
<div>
<table class="table markers table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
<tr>
<td>error</td>
<td>59</td>
<td>Argument $script_nom is missing from the Docblock of charger()</td>
</tr>
<tr>
<td>error</td>
<td>59</td>
<td>Argument $parametres is missing from the Docblock of charger()</td>
</tr>
<tr>
<td>error</td>
<td>59</td>
<td>No summary for method charger()</td>
</tr>
<tr>
<td>error</td>
<td>87</td>
<td>Argument $script_nom is missing from the Docblock of obtenirNomClasse()</td>
</tr>
<tr>
<td>error</td>
<td>87</td>
<td>No summary for method obtenirNomClasse()</td>
</tr>
<tr>
<td>error</td>
<td>92</td>
<td>Argument $argv is missing from the Docblock of getParametres()</td>
</tr>
<tr>
<td>error</td>
<td>92</td>
<td>No summary for method getParametres()</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="package-contents">
<a name="utilitaires/Encodage.php" id="utilitaires/Encodage.php"></a>
<h3>
<i class="icon-file"></i>
utilitaires/Encodage.php
<small style="float: right;padding-right: 10px;">4</small>
</h3>
<div>
<table class="table markers table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
<tr>
<td>error</td>
<td>24</td>
<td>Argument $variable is missing from the Docblock of encoderEnUtf8()</td>
</tr>
<tr>
<td>error</td>
<td>24</td>
<td>Argument $encodage is missing from the Docblock of encoderEnUtf8()</td>
</tr>
<tr>
<td>error</td>
<td>49</td>
<td>Argument $chaine is missing from the Docblock of detecterUtf8()</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="package-contents">
<a name="utilitaires/Tableau.php" id="utilitaires/Tableau.php"></a>
<h3>
<i class="icon-file"></i>
utilitaires/Tableau.php
<small style="float: right;padding-right: 10px;">12</small>
</h3>
<div>
<table class="table markers table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
<tr>
<td>error</td>
<td>21</td>
<td>No summary for property $triMultiDimension</td>
</tr>
<tr>
<td>error</td>
<td>22</td>
<td>No summary for property $triType</td>
</tr>
<tr>
<td>error</td>
<td>55</td>
<td>Argument $array is missing from the Docblock of trierTableauMd()</td>
</tr>
<tr>
<td>error</td>
<td>55</td>
<td>Argument $cols is missing from the Docblock of trierTableauMd()</td>
</tr>
<tr>
<td>error</td>
<td>55</td>
<td>No summary for method trierTableauMd()</td>
</tr>
<tr>
<td>error</td>
<td>118</td>
<td>Argument $tableau is missing from the Docblock of trierMDType()</td>
</tr>
<tr>
<td>error</td>
<td>118</td>
<td>Argument $cols is missing from the Docblock of trierMDType()</td>
</tr>
<tr>
<td>error</td>
<td>118</td>
<td>Argument $type is missing from the Docblock of trierMDType()</td>
</tr>
<tr>
<td>error</td>
<td>125</td>
<td>Argument $a is missing from the Docblock of comparer()</td>
</tr>
<tr>
<td>error</td>
<td>125</td>
<td>Argument $b is missing from the Docblock of comparer()</td>
</tr>
<tr>
<td>error</td>
<td>125</td>
<td>No summary for method comparer()</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="package-contents">
<a name="utilitaires/Pattern.php" id="utilitaires/Pattern.php"></a>
<h3>
<i class="icon-file"></i>
utilitaires/Pattern.php
<small style="float: right;padding-right: 10px;">1</small>
</h3>
<div>
<table class="table markers table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="package-contents">
<a name="utilitaires/Chaine.php" id="utilitaires/Chaine.php"></a>
<h3>
<i class="icon-file"></i>
utilitaires/Chaine.php
<small style="float: right;padding-right: 10px;">3</small>
</h3>
<div>
<table class="table markers table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
<tr>
<td>error</td>
<td>17</td>
<td>No summary for property $caracteres_accentues</td>
</tr>
<tr>
<td>error</td>
<td>33</td>
<td>No summary for property $caracteres_normaux</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="package-contents">
<a name="utilitaires/Fichier.php" id="utilitaires/Fichier.php"></a>
<h3>
<i class="icon-file"></i>
utilitaires/Fichier.php
<small style="float: right;padding-right: 10px;">5</small>
</h3>
<div>
<table class="table markers table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
<tr>
<td>error</td>
<td>23</td>
<td>Argument $fichier is missing from the Docblock of creerFichier()</td>
</tr>
<tr>
<td>error</td>
<td>23</td>
<td>Argument $contenu is missing from the Docblock of creerFichier()</td>
</tr>
<tr>
<td>error</td>
<td>55</td>
<td>Argument $fichier is missing from the Docblock of creerFichierGzip()</td>
</tr>
<tr>
<td>error</td>
<td>55</td>
<td>Argument $contenu is missing from the Docblock of creerFichierGzip()</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="package-contents">
<a name="I18n.php" id="I18n.php"></a>
<h3>
<i class="icon-file"></i>
I18n.php
<small style="float: right;padding-right: 10px;">10</small>
</h3>
<div>
<table class="table markers table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
<tr>
<td>error</td>
<td>38</td>
<td>No summary for method __construct()</td>
</tr>
<tr>
<td>error</td>
<td>48</td>
<td>Argument $identifiant is missing from the Docblock of get()</td>
</tr>
<tr>
<td>error</td>
<td>48</td>
<td>Argument $langue is missing from the Docblock of get()</td>
</tr>
<tr>
<td>error</td>
<td>87</td>
<td>Argument $langue is missing from the Docblock of charger()</td>
</tr>
<tr>
<td>error</td>
<td>87</td>
<td>Argument $fichier is missing from the Docblock of charger()</td>
</tr>
<tr>
<td>error</td>
<td>87</td>
<td>Argument $format is missing from the Docblock of charger()</td>
</tr>
<tr>
<td>error</td>
<td>112</td>
<td>Argument $langue is missing from the Docblock of setLangue()</td>
</tr>
<tr>
<td>error</td>
<td>229</td>
<td>Argument $m is missing from the Docblock of ajouterErreur()</td>
</tr>
<tr>
<td>error</td>
<td>229</td>
<td>Argument $e is missing from the Docblock of ajouterErreur()</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="package-contents">
<a name="Config.php" id="Config.php"></a>
<h3>
<i class="icon-file"></i>
Config.php
<small style="float: right;padding-right: 10px;">3</small>
</h3>
<div>
<table class="table markers table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
<tr>
<td>error</td>
<td>27</td>
<td>No summary for method __construct()</td>
</tr>
<tr>
<td>error</td>
<td>143</td>
<td>Argument $config is missing from the Docblock of existeValeur()</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="package-contents">
<a name="CacheSqlite.php" id="CacheSqlite.php"></a>
<h3>
<i class="icon-file"></i>
CacheSqlite.php
<small style="float: right;padding-right: 10px;">12</small>
</h3>
<div>
<table class="table markers table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
<tr>
<td>error</td>
<td>2</td>
<td>No summary for class \CacheSqlite</td>
</tr>
<tr>
<td>error</td>
<td>39</td>
<td>No summary for property $Cache</td>
</tr>
<tr>
<td>error</td>
<td>59</td>
<td>No summary for method initialiserOptionsParConfig()</td>
</tr>
<tr>
<td>error</td>
<td>76</td>
<td>Argument $options is missing from the Docblock of setOptions()</td>
</tr>
<tr>
<td>error</td>
<td>76</td>
<td>No summary for method setOptions()</td>
</tr>
<tr>
<td>error</td>
<td>88</td>
<td>Argument $emplacement is missing from the Docblock of setEmplacement()</td>
</tr>
<tr>
<td>error</td>
<td>88</td>
<td>No summary for method setEmplacement()</td>
</tr>
<tr>
<td>error</td>
<td>104</td>
<td>Argument $ne_pas_tester_validiter_du_cache is missing from the Docblock of charger()</td>
</tr>
<tr>
<td>error</td>
<td>140</td>
<td>Argument $donnees is missing from the Docblock of sauver()</td>
</tr>
<tr>
<td>error</td>
<td>140</td>
<td>Argument $duree_vie_specifique is missing from the Docblock of sauver()</td>
</tr>
<tr>
<td>error</td>
<td>403</td>
<td>Argument $supplement_duree_de_vie is missing from the Docblock of ajouterSupplementDureeDeVie()</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="package-contents">
<a name="Bdd.php" id="Bdd.php"></a>
<h3>
<i class="icon-file"></i>
Bdd.php
<small style="float: right;padding-right: 10px;">18</small>
</h3>
<div>
<table class="table markers table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
<tr>
<td>error</td>
<td>205</td>
<td>Argument $requete is missing from the Docblock of requete()</td>
</tr>
<tr>
<td>error</td>
<td>205</td>
<td>No summary for method requete()</td>
</tr>
<tr>
<td>error</td>
<td>215</td>
<td>Argument $requete is missing from the Docblock of requeter()</td>
</tr>
<tr>
<td>error</td>
<td>244</td>
<td>Argument $requete is missing from the Docblock of requeteUn()</td>
</tr>
<tr>
<td>error</td>
<td>244</td>
<td>Argument $mode is missing from the Docblock of requeteUn()</td>
</tr>
<tr>
<td>error</td>
<td>244</td>
<td>No summary for method requeteUn()</td>
</tr>
<tr>
<td>error</td>
<td>256</td>
<td>Argument $requete is missing from the Docblock of recuperer()</td>
</tr>
<tr>
<td>error</td>
<td>256</td>
<td>Argument $mode is missing from the Docblock of recuperer()</td>
</tr>
<tr>
<td>error</td>
<td>290</td>
<td>Argument $requete is missing from the Docblock of requeteTous()</td>
</tr>
<tr>
<td>error</td>
<td>290</td>
<td>Argument $mode is missing from the Docblock of requeteTous()</td>
</tr>
<tr>
<td>error</td>
<td>290</td>
<td>No summary for method requeteTous()</td>
</tr>
<tr>
<td>error</td>
<td>304</td>
<td>Argument $requete is missing from the Docblock of recupererTous()</td>
</tr>
<tr>
<td>error</td>
<td>304</td>
<td>Argument $mode is missing from the Docblock of recupererTous()</td>
</tr>
<tr>
<td>error</td>
<td>356</td>
<td>Argument $donnees is missing from the Docblock of proteger()</td>
</tr>
<tr>
<td>error</td>
<td>371</td>
<td>Argument $chaine is missing from the Docblock of protegerChaine()</td>
</tr>
<tr>
<td>error</td>
<td>393</td>
<td>No summary for method protegerTableau()</td>
</tr>
<tr>
<td>error</td>
<td>415</td>
<td>Argument $parametres is missing from the Docblock of recupererIdDernierAjout()</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="package-contents">
<a name="Log.php" id="Log.php"></a>
<h3>
<i class="icon-file"></i>
Log.php
<small style="float: right;padding-right: 10px;">4</small>
</h3>
<div>
<table class="table markers table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
<tr>
<td>error</td>
<td>71</td>
<td>Argument $entree is missing from the Docblock of ajouterEntree()</td>
</tr>
<tr>
<td>error</td>
<td>71</td>
<td>Argument $mode is missing from the Docblock of ajouterEntree()</td>
</tr>
<tr>
<td>error</td>
<td>98</td>
<td>Argument $mode is missing from the Docblock of verifierOuvrirFichier()</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="package-contents">
<a name="CacheFichier.php" id="CacheFichier.php"></a>
<h3>
<i class="icon-file"></i>
CacheFichier.php
<small style="float: right;padding-right: 10px;">30</small>
</h3>
<div>
<table class="table markers table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
<tr>
<td>error</td>
<td>2</td>
<td>No summary for class \CacheFichier</td>
</tr>
<tr>
<td>error</td>
<td>71</td>
<td>No summary for property $Cache</td>
</tr>
<tr>
<td>error</td>
<td>103</td>
<td>No summary for method initialiserOptionsParConfig()</td>
</tr>
<tr>
<td>error</td>
<td>111</td>
<td>Argument $options is missing from the Docblock of setOptions()</td>
</tr>
<tr>
<td>error</td>
<td>111</td>
<td>No summary for method setOptions()</td>
</tr>
<tr>
<td>error</td>
<td>123</td>
<td>Argument $emplacement is missing from the Docblock of setEmplacement()</td>
</tr>
<tr>
<td>error</td>
<td>123</td>
<td>No summary for method setEmplacement()</td>
</tr>
<tr>
<td>error</td>
<td>141</td>
<td>Argument $ne_pas_tester_validiter_du_cache is missing from the Docblock of charger()</td>
</tr>
<tr>
<td>error</td>
<td>184</td>
<td>Argument $donnees is missing from the Docblock of sauver()</td>
</tr>
<tr>
<td>error</td>
<td>184</td>
<td>Argument $duree_vie_specifique is missing from the Docblock of sauver()</td>
</tr>
<tr>
<td>error</td>
<td>253</td>
<td>Argument $tags is missing from the Docblock of nettoyer()</td>
</tr>
<tr>
<td>error</td>
<td>366</td>
<td>Argument $supplement_duree_de_vie is missing from the Docblock of ajouterSupplementDureeDeVie()</td>
</tr>
<tr>
<td>error</td>
<td>410</td>
<td>Argument $metadonnees is missing from the Docblock of setMetadonnees()</td>
</tr>
<tr>
<td>error</td>
<td>410</td>
<td>Argument $sauvegarde is missing from the Docblock of setMetadonnees()</td>
</tr>
<tr>
<td>error</td>
<td>470</td>
<td>Argument $metadonnees is missing from the Docblock of sauverMetadonnees()</td>
</tr>
<tr>
<td>error</td>
<td>494</td>
<td>Argument $fichier_nom is missing from the Docblock of etreFichierMeta()</td>
</tr>
<tr>
<td>error</td>
<td>508</td>
<td>Argument $fichier is missing from the Docblock of supprimerFichier()</td>
</tr>
<tr>
<td>error</td>
<td>537</td>
<td>Argument $dossier is missing from the Docblock of nettoyerFichiers()</td>
</tr>
<tr>
<td>error</td>
<td>628</td>
<td>Argument $dossier is missing from the Docblock of analyserCache()</td>
</tr>
<tr>
<td>error</td>
<td>628</td>
<td>Argument $mode is missing from the Docblock of analyserCache()</td>
</tr>
<tr>
<td>error</td>
<td>628</td>
<td>Argument $tags is missing from the Docblock of analyserCache()</td>
</tr>
<tr>
<td>error</td>
<td>628</td>
<td>No summary for method analyserCache()</td>
</tr>
<tr>
<td>error</td>
<td>719</td>
<td>Argument $donnees is missing from the Docblock of genererCleSecu()</td>
</tr>
<tr>
<td>error</td>
<td>719</td>
<td>Argument $type_de_controle is missing from the Docblock of genererCleSecu()</td>
</tr>
<tr>
<td>error</td>
<td>806</td>
<td>Argument $ne_pas_tester_validiter_du_cache is missing from the Docblock of testerExistenceCache()</td>
</tr>
<tr>
<td>error</td>
<td>822</td>
<td>Argument $fichier is missing from the Docblock of getContenuFichier()</td>
</tr>
<tr>
<td>error</td>
<td>843</td>
<td>Argument $fichier is missing from the Docblock of setContenuFichier()</td>
</tr>
<tr>
<td>error</td>
<td>843</td>
<td>Argument $chaine is missing from the Docblock of setContenuFichier()</td>
</tr>
<tr>
<td>error</td>
<td>866</td>
<td>Argument $nom_de_fichier is missing from the Docblock of transformerNomFichierEnId()</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="package-contents">
<a name="Framework.php" id="Framework.php"></a>
<h3>
<i class="icon-file"></i>
Framework.php
<small style="float: right;padding-right: 10px;">8</small>
</h3>
<div>
<table class="table markers table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
<tr>
<td>error</td>
<td>222</td>
<td>Argument $valeur is missing from the Docblock of \nettoyerSlashProfond()</td>
</tr>
<tr>
<td>error</td>
<td>222</td>
<td>No summary for function \nettoyerSlashProfond()</td>
</tr>
<tr>
<td>error</td>
<td>74</td>
<td>Argument $chemin is missing from the Docblock of definirCheminAppli()</td>
</tr>
<tr>
<td>error</td>
<td>74</td>
<td>No summary for method definirCheminAppli()</td>
</tr>
<tr>
<td>error</td>
<td>84</td>
<td>No summary for method enregistrerMethodesAutoload()</td>
</tr>
<tr>
<td>error</td>
<td>104</td>
<td>Argument $nom_classe_fw is missing from the Docblock of autoloadFw()</td>
</tr>
<tr>
<td>error</td>
<td>121</td>
<td>Argument $nom_classe is missing from the Docblock of autoloadAppliDefaut()</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="package-contents">
<a name="CacheSimple.php" id="CacheSimple.php"></a>
<h3>
<i class="icon-file"></i>
CacheSimple.php
<small style="float: right;padding-right: 10px;">8</small>
</h3>
<div>
<table class="table markers table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
<tr>
<td>error</td>
<td>25</td>
<td>No summary for property $mise_en_cache</td>
</tr>
<tr>
<td>error</td>
<td>26</td>
<td>No summary for property $stockage_chemin</td>
</tr>
<tr>
<td>error</td>
<td>27</td>
<td>No summary for property $duree_de_vie</td>
</tr>
<tr>
<td>error</td>
<td>29</td>
<td>No summary for property $options</td>
</tr>
<tr>
<td>error</td>
<td>35</td>
<td>Argument $options is missing from the Docblock of __construct()</td>
</tr>
<tr>
<td>error</td>
<td>35</td>
<td>No summary for method __construct()</td>
</tr>
<tr>
<td>error</td>
<td>64</td>
<td>No summary for method initialiserOptionsParConfig()</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</section>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/reports/deprecated.html
New file
0,0 → 1,285
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title> &raquo; Deprecated elements
</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<div class="row-fluid">
 
<div class="span2 sidebar">
<ul class="side-nav nav nav-list">
<li class="nav-header">Navigation</li>
</ul>
</div>
 
<div class="span10 offset2">
<ul class="breadcrumb">
<li><a href="../"><i class="icon-stop"></i></a><span class="divider">\</span></li>
<li>Deprecated elements</li>
</ul>
 
<div id="marker-accordion">
<a name="" id=""></a>
<h3>
<i class="icon-file"></i>
<small style="float: right;padding-right: 10px;">1</small>
</h3>
<div>
<table class="table markers table-bordered">
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
<tr>
<td>deprecated</td>
<td></td>
<td></td>
</tr>
</table>
</div>
<a name="" id=""></a>
<h3>
<i class="icon-file"></i>
<small style="float: right;padding-right: 10px;">1</small>
</h3>
<div>
<table class="table markers table-bordered">
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
<tr>
<td>deprecated</td>
<td></td>
<td>Utiliser la methode getBdd().</td>
</tr>
</table>
</div>
<a name="" id=""></a>
<h3>
<i class="icon-file"></i>
<small style="float: right;padding-right: 10px;">1</small>
</h3>
<div>
<table class="table markers table-bordered">
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
<tr>
<td>deprecated</td>
<td></td>
<td>Utiliser la méthode trierMD()</td>
</tr>
</table>
</div>
<a name="" id=""></a>
<h3>
<i class="icon-file"></i>
<small style="float: right;padding-right: 10px;">1</small>
</h3>
<div>
<table class="table markers table-bordered">
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
<tr>
<td>deprecated</td>
<td></td>
<td>changement de nom. Disparaîtra dans la version 0.4. Utiliser à la place : @see requeter</td>
</tr>
</table>
</div>
<a name="" id=""></a>
<h3>
<i class="icon-file"></i>
<small style="float: right;padding-right: 10px;">1</small>
</h3>
<div>
<table class="table markers table-bordered">
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
<tr>
<td>deprecated</td>
<td></td>
<td>changement de nom. Disparaîtra dans la version 0.4. Utiliser à la place : @see recuperer</td>
</tr>
</table>
</div>
<a name="" id=""></a>
<h3>
<i class="icon-file"></i>
<small style="float: right;padding-right: 10px;">1</small>
</h3>
<div>
<table class="table markers table-bordered">
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
<tr>
<td>deprecated</td>
<td></td>
<td>changement de nom. Disparaîtra dans la version 0.4. Utiliser à la place : @see recupererTous</td>
</tr>
</table>
</div>
<a name="" id=""></a>
<h3>
<i class="icon-file"></i>
<small style="float: right;padding-right: 10px;">1</small>
</h3>
<div>
<table class="table markers table-bordered">
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
<tr>
<td>deprecated</td>
<td></td>
<td>changement de nom. Deviendra &quot;private&quot; dans la version 0.5. Utiliser à la place : @see proteger</td>
</tr>
</table>
</div>
</div>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/phpdoc-cache-15/phpdoc-cache-file_c0d04bf5c17e0471bc39927197ca5121.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/phpdoc-cache-15/phpdoc-cache-file_c0d04bf5c17e0471bc39927197ca5121.dat
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/files/Debug.php.html
New file
0,0 → 1,278
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-980238873"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-980238873" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content file">
<nav>
</nav>
 
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small></small>Debug.php</h1>
<p><em></em></p>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="../classes/Debug.html">Debug</a></td>
<td><em>Classe fournissant des fonctions de débogage équivalante à var_dump et print_r.</em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
 
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label"></h3>
</div>
<div class="modal-body">
<pre data-src="../files/Debug.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/files/Bdd.php.html
New file
0,0 → 1,278
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-128286903"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-128286903" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content file">
<nav>
</nav>
 
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small></small>Bdd.php</h1>
<p><em></em></p>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="../classes/Bdd.html">Bdd</a></td>
<td><em>Classe Bdd, d&#039;accés au base de données.</em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
 
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label"></h3>
</div>
<div class="modal-body">
<pre data-src="../files/Bdd.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/files/I18n.php.txt
New file
0,0 → 1,235
<?php
// declare(encoding='UTF-8');
/**
* I18n permet de traduire une application à partir de données stockées dans des fichiers ini.
* Si vous souhaitez utiliser le fonctionnement par défaut vous devrez :
* - déposer les fichiers ini dans le dossier définit par la variable de config "chemin_i18n".
* - nommer les fichiers selon la forme "locale.ini" (Ex.: fr.ini ou fr_CH.ini ).
*
* Elle offre l'accès en lecture seule aux paramètres des fichiers ini.
* C'est une Singleton. Une seule classe de traduction peut être instanciée par Application.
*
* @category PHP 5.2
* @package Framework
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @since 0.3
* @version $Id: I18n.php 331 2011-02-24 18:03:35Z jpm $
* @link /doc/framework/
*/
class I18n {
/** Format de traduction utilisant les fichier .ini */
const FORMAT_INI = '.ini';
/** Instance de la classe pointant sur elle même (pour le pattern singleton) */
private static $instance = null;
/** Fichiers de traduction disponibles. */
private static $traductions = array();
/** Langue courrante utilisée par l'application. */
private static $langue = null;
/** Tableau des noms des paramètres à définir dans le fichier de config car obligatoirement nécessaire à cette classe.*/
private static $parametres_obligatoires = array('chemin_i18n', 'i18n_url_parametre', 'i18n_langue_defaut', 'debogage');
private function __construct() {
Config::verifierPresenceParametres(self::$parametres_obligatoires);
self::trouverLangue();
}
/**
* Accesseur pour la valeur d'une traduction
* @param string $param le nom du paramètre
* @return string la valeur du paramètre
*/
public static function get($identifiant, $langue = null) {
self::verifierCreationInstance();
$texte = '';
// Récupération de la langue actuellement demandée
$langue_a_charger = self::$langue;
if (!is_null($langue)) {
$langue_a_charger = $langue;
}
if (!isset(self::$traductions[$langue_a_charger])) {
// Tentative de chargement du fichier de traduction
$chargement = self::charger($langue_a_charger);
if ($chargement === false) {
$m = "Le fichier d'i18n pour la langue '$langue_a_charger' demandée n'a pas été trouvé.";
self::ajouterErreur($m);
}
}
// Recherche de la langue dans le tableau des traductions
if (isset(self::$traductions[$langue_a_charger]) && self::$traductions[$langue_a_charger] !== false) {
// Recherche de la traduction demandée
$valeur = self::getValeur($identifiant, self::$traductions[$langue_a_charger]);
if ($valeur !== false) {
$texte = $valeur;
} else {
$m = "Le traduction n'existe pas pour l'identifiant '$identifiant' demandé.";
self::ajouterErreur($m);
}
}
return $texte;
}
/**
* Charge un fichier ini dans le tableau des paramètres de l'appli
* @param string $fichier_ini le nom du fichier à charger
* @return boolean true, si le fichier a été trouvé et correctement chargé, sinon false.
*/
public static function charger($langue, $fichier = null, $format = self::FORMAT_INI) {
self::verifierCreationInstance();
$ok = false;
// Création du chemin vers le fichier de traduction par défaut
if (is_null($fichier)) {
$fichier = Config::get('chemin_i18n').$langue.$format;
}
 
// Chargement
if ($format == self::FORMAT_INI) {
$ok = self::chargerFichierIni($fichier, $langue);
} else {
$m = "Le format '$format' de fichier de traduction n'est pas pris en compte par le Framework.";
self::ajouterErreur($m);
}
return $ok;
}
/**
* Définit la langue utiliser pour rechercher une traduction.
* @param string $fichier_ini le nom du fichier à charger
* @return array le fichier ini parsé
*/
public static function setLangue($langue) {
self::verifierCreationInstance();
self::$langue = $langue;
}
/**
* Renvoie la valeur demandé grâce une chaine de paramètres
* @param string $param la chaine identifiante
* @param array $i18n le tableau de traductions
* @return mixed la valeur correspondante à la chaine identifiante si elle est trouvée, sinon false.
*/
private static function getValeur($param, $i18n) {
if ($param === null) {
return false;
} else {
if (isset($i18n[$param])) {
return $i18n[$param];
} else if (strpos($param, '.') !== false) {
$pieces = explode('.', $param, 2);
if (strlen($pieces[0]) && strlen($pieces[1])) {
if (isset($i18n[$pieces[0]])) {
if (is_array($i18n[$pieces[0]])) {
return self::getValeur($pieces[1], $i18n[$pieces[0]]);
}
}
}
} else {
return false;
}
}
}
/**
* Parse le fichier ini donné en paramètre
* @param string $fichier_ini nom du fichier ini à parser
* @param string $langue la langue correspondant au fichier
* @return boolean true si le chargement c'est bien passé, sinon false.
*/
private static function chargerFichierIni($fichier_ini, $langue) {
self::$traductions[$langue] = false;
if (file_exists($fichier_ini)) {
$ini = parse_ini_file($fichier_ini, true);
$ini = self::analyserTableauIni($ini);
self::$traductions[$langue] = $ini;
}
return (self::$traductions[$langue] === false) ? false : true;
}
/**
* Analyse un tableau de traductions pour évaluer les clés.
* @param array $i18n le tableau de traductions
* @return array le tableau analysé et modifié si nécessaire.
*/
private static function analyserTableauIni($i18n = array()) {
//ATTENTION : il est important de passer la valeur par référence car nous la modifions dynamiquement dans la boucle
foreach ($i18n as $cle => &$valeur) {
if (is_array($valeur)) {
$i18n[$cle] = self::analyserTableauIni($valeur);
} else {
$i18n = self::evaluerCle($i18n, $cle, $valeur);
}
}
return $i18n;
}
/**
* Dans le cas des chaines de traduction à sous clé (ex.: cle.souscle), cette méthode
* évalue les valeurs correspondantes et créée les sous tableaux associés.
* @param array $i18n tableau de traductions (par référence)
* @param string $cle la cle dans le tableau
* @param string $valeur la valeur à affecter
*/
private static function evaluerCle($i18n, $cle, $valeur) {
if (strpos($cle, '.') !== false) {
unset($i18n[$cle]);
$pieces = explode('.', $cle, 2);
if (strlen($pieces[0]) && strlen($pieces[1])) {
if (isset($i18n[$pieces[0]]) && !is_array($i18n[$pieces[0]])) {
$m = "Ne peut pas créer de sous-clé pour '{$pieces[0]}' car la clé existe déjà";
trigger_error($m, E_USER_WARNING);
} else {
$i18n[$pieces[0]][$pieces[1]] = $valeur;
$i18n[$pieces[0]] = self::evaluerCle($i18n[$pieces[0]], $pieces[1], $valeur);
}
} else {
$m = "Clé invalide '$cle'";
trigger_error($m, E_USER_WARNING);
}
} else {
$i18n[$cle] = $valeur;
}
return $i18n;
}
/**
* Cherche l'information sur la langue demandée par l'application
*/
private static function trouverLangue() {
if (isset($_GET[Config::get('i18n_url_parametre')])) {
self::$langue = $_GET[Config::get('i18n_url_parametre')];
} else {
self::$langue = Config::get('i18n_langue_defaut');
}
}
/**
* Vérifie si l'instance de classe à été crée, si non la crée
*/
private static function verifierCreationInstance() {
if (empty(self::$instance)) {
self::$instance = new I18n();
}
}
/**
* Ajouter une message d'erreur
*/
private static function ajouterErreur($m, $e = E_USER_WARNING) {
if (Config::get('debogage') === true) {
trigger_error($m, $e);
}
}
}
?>
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/trunk/doc/PhpDoc/files/Controleur.php.html
New file
0,0 → 1,279
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1901478199"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1901478199" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content file">
<nav>
</nav>
 
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small></small>Controleur.php</h1>
<p><em></em></p>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="../classes/Controleur.html">Controleur</a></td>
<td><em>Classe Controleur, coeur d&#039;une application, c&#039;est normalement la seule classe d&#039;une application
qui devrait être appelée de l&#039;extérieur.</em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
 
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label"></h3>
</div>
<div class="modal-body">
<pre data-src="../files/Controleur.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/files/Log.php.txt
New file
0,0 → 1,149
<?php
//declare(encoding='UTF-8');
/**
* Classe permettant de logger des messages dans les fichier situés dans le dossier de log.
*
* @category PHP 5.2
* @package Framework
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id: Log.php 274 2010-12-28 15:37:22Z jpm $
* @link /doc/framework/
*/
class Log {
 
/** Boolean indiquant si l'on doit utiliser les logs ou pas. */
private static $logger = false;
 
/** Tableau associatif stockant les descripteurs de fichiers. */
private static $fichiersLog = array();
 
/** Chemin de base du dossier log de l'application. */
private static $cheminLogs = '';
 
/** Booleen indiquant si l'on peut correctement écrire dans les fichiers de logs. */
private static $droitLogger = true;
 
/** Zone horaire (pour éviter des avertissements dans les dates). */
private static $timeZone = 'Europe/Paris';
 
/** Taille maximum d'un fichier de log avant que celui ne soit archivé (en octets). */
private static $tailleMax = 10000;
 
/** séparateur de dossier dans un chemin. */
private static $sd = DIRECTORY_SEPARATOR;
 
/** Extension des fichiers de log. */
private static $ext = '.log';
/** Tableau des noms des paramètres à définir dans le fichier de config car obligatoirement nécessaire à cette classe.*/
private static $parametres_obligatoires = array('chemin_logs', 'i18n_timezone', 'log_taille_max', 'log_debogage');
 
/** Initialiser les logs par défaut, sans tenir comptes des paramêtres de config. */
public static function initialiser() {
// gestion de la timezone pour éviter des erreurs
if (function_exists('date_default_timezone_set') && function_exists('date_default_timezone_get')) {
date_default_timezone_set(self::$timeZone);
}
 
if (self::$logger && (!is_dir(self::$cheminLogs) || !is_writable(self::$cheminLogs))) {
self::desactiverEcriture();
}
}
/** Configure le Log à partir des paramêtres de config. */
public static function configurer() {
Config::verifierPresenceParametres(self::$parametres_obligatoires);
self::$cheminLogs = Config::get('chemin_logs');
self::$timeZone = (Config::get('i18n_timezone') != '') ? Config::get('i18n_timezone') : self::$timeZone;
self::$tailleMax = (Config::get('log_taille_max') != '') ? Config::get('log_taille_max') : self::$tailleMax;
self::$logger = (Config::get('log_debogage') != '') ? Config::get('log_debogage') : self::$logger;
self::initialiser();
}
 
/**
* Ajoute une entrée au log spécifié par le paramètre $nomFichier
* @param string $nomFichier le nom du fichier dans lequel écrire
*/
public static function ajouterEntree($nomFichier, $entree, $mode = 'a+') {
if (self::$droitLogger) {
$date = "\n\n".date('d m Y H:i')."\n" ;
 
if (self::verifierOuvrirFichier($nomFichier, $mode)) {
fwrite(self::$fichiersLog[$nomFichier], $date.$entree);
self::verifierTailleFichierOuArchiver($nomFichier);
} else {
self::desactiverEcriture($nomFichier);
}
}
}
 
/**
* Vide un fichier log indiqué
* @param string $nomFichier le nom du fichier à vider
*/
public static function viderLog($nomFichier) {
self::ajouterEntree($nomFichier, '', 'w');
}
 
/**
* Vérifie la présence d'un fichier dans le tableau, ses droits d'écriture, l'ouvre si nécessaire.
*
* @param string $nomFichier le nom du fichier dont on doit vérifier la présence
* @return boolean true si le fichier est ouvert ou maintenant accessible, false sinon
*/
public static function verifierOuvrirFichier($nomFichier,$mode) {
if (in_array($nomFichier, self::$fichiersLog)) {
if (is_writable(self::$cheminLogs.$nomFichier.self::$ext)) {
return true;
}
return false;
} else {
$fp = @fopen(self::$cheminLogs.$nomFichier.self::$ext,$mode);
if ($fp && is_writable(self::$cheminLogs.$nomFichier.self::$ext)) {
self::$fichiersLog[$nomFichier] = $fp;
return true;
}
return false;
}
}
 
/**
* Vérifie la taille d'un fichier donné et si celle ci est trop importante
* archive le fichier de log
* @param string $nomFichier nom du fichier à vérifier
*/
private static function verifierTailleFichierOuArchiver($nomFichier) {
if(filesize(self::$cheminLogs.$nomFichier.self::$ext) > self::$tailleMax) {
rename(self::$cheminLogs.$nomFichier.self::$ext,self::$cheminLogs.$nomFichier.date('d_m_Y_H:i').self::$ext);
self::ajouterEntree($nomFichier,'');
}
}
 
/**
* Désactive l'écriture du log et envoie un message au gestionnaire d'erreurs
* @param string $nomFichier le nom du fichier qui a causé l'erreur
*/
private static function desactiverEcriture($nomFichier = '') {
self::$droitLogger = false;
if ($nomFichier != '') {
$fichierDossier = 'fichier '.$nomFichier ;
} else {
$fichierDossier = 'dossier des logs';
}
$message = 'Écriture impossible dans le '.$fichierDossier.', Assurez-vous des droits du dossier et des fichiers';
$e = new ErrorException($message, 0, E_USER_WARNING, __FILE__, __LINE__);
GestionnaireException::gererException($e);
}
 
/** Destructeur de classe, ferme les descripteurs ouverts. */
public function __destruct() {
foreach(self::$fichiersLog as $nomFichier => $fp) {
fclose($fp);
}
}
}
?>
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/trunk/doc/PhpDoc/files/SquelettePhp.php.txt
New file
0,0 → 1,75
<?php
// declare(encoding='UTF-8');
/**
* Classe SquelettePhp, traitant les squelette Php utilisant la syntaxe courte php ou pas.
* Ces méthodes sont statiques.
*
* @category php5
* @package Framework
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id: SquelettePhp.php 446 2013-10-28 14:21:50Z raphael $
* @link /doc/framework/
*/
class SquelettePhp {
 
/**
* 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.
*
* @param String $fichier le chemin du fichier du squelette
* @param Array $donnees un tableau associatif contenant les variables a injecter dans le squelette.
* @return boolean false si la vue n'existe pas, sinon la chaine résultat.
*/
public static function analyser($fichier, Array &$donnees = array()) {
$sortie = false;
if (file_exists($fichier)) {
// Extraction des variables du tableau de données
extract($donnees);
 
// Démarage de la bufferisation de sortie
ob_start();
// Si les tags courts sont activés
if ((bool) @ini_get('short_open_tag') === true) {
// Simple inclusion du squelette
include $fichier;
} else {
// Sinon, remplacement des tags courts par la syntaxe classique avec echo
$html_et_code_php = self::traiterTagsCourts($fichier);
// Pour évaluer du php mélangé dans du html il est nécessaire de fermer la balise php ouverte par eval
$html_et_code_php = '?>'.$html_et_code_php;
// Interprétation du html et du php dans le buffer
echo eval($html_et_code_php);
}
// Récupèration du contenu du buffer
$sortie = ob_get_contents();
// Suppression du buffer
@ob_end_clean();
} else {
trigger_error("Le fichier du squelette '$fichier' n'existe pas." . print_r(debug_backtrace(), TRUE) . "</pre>",
E_USER_WARNING);
}
// Retourne le contenu
return $sortie;
}
 
/**
* Fonction chargeant le contenu du squelette et remplaçant les tags court php (<?= ...) par un tag long avec echo.
*
* @param String $chemin_squelette le chemin du fichier du squelette
* @return string le contenu du fichier du squelette php avec les tags courts remplacés.
*/
private static function traiterTagsCourts($chemin_squelette) {
$contenu = file_get_contents($chemin_squelette);
// Remplacement de tags courts par un tag long avec echo
$contenu = str_replace('<?=', '<?php echo ', $contenu);
$contenu = str_replace('<? ', '<?php ', $contenu);
$contenu = str_replace('<?if ', '<?php if ', $contenu);
// Ajout systématique d'un point virgule avant la fermeture php
$contenu = preg_replace("/;*\s*\?>/", "; ?>", $contenu);
return $contenu;
}
}
?>
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/trunk/doc/PhpDoc/files/Registre.php.txt
New file
0,0 → 1,66
<?php
// declare(encoding='UTF-8');
/**
* Classe Registre, qui permet un accès à différentes variables et paramètres à travers les autres classes.
* C'est un remplaçant à la variable magique $_GLOBALS de Php.
* C'est un singleton.
* Si vous voulez paramètré votre application via un fichier de configuration, utilisez plutôt la classe @see Config.
*
* @category php 5.2
* @package Framework
* @author Jean-Pascal MILCENT <jmp@tela-botanica.org>
* @copyright Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id: Registre.php 443 2013-10-22 15:09:30Z raphael $
* @link /doc/framework/
*
*/
class Registre {
 
/** Tableau associatif stockant les variables. */
private static $stockage = array();
/**
* Ajoute un objet au tableau selon un intitulé donné.
* @param string l'intitulé sous lequel l'objet sera conservé
* @param mixed l'objet à conserver
*/
public static function set($intitule, $objet) {
if (is_array($objet) && isset(self::$stockage[$intitule])) {
self::$stockage[$intitule] = array_merge((array) self::$stockage[$intitule], (array) $objet);
$message = "Le tableau \"$intitule\" présent dans le registre a été fusionné avec un nouveau tableau de même intitulé !";
trigger_error($message, E_USER_WARNING);
} else {
self::$stockage[$intitule] = $objet;
}
}
 
/**
* Renvoie le contenu associé à l'intitulé donné en paramètre.
* @return mixed l'objet associé à l'intitulé ou null s'il n'est pas présent
*/
public static function get($intitule) {
return isset(self::$stockage[$intitule]) ? self::$stockage[$intitule] : null;
}
 
/**
* Détruit l'objet associé à l'intitulé, n'a pas d'effet si il n'y a pas d'objet associé.
* @param string l'intitulé de l'entrée du registre à détruire.
*/
public static function detruire($intitule) {
if (isset(self::$stockage[$intitule])) {
unset(self::$stockage[$intitule]);
}
}
 
/**
* Teste si le registre contient une donnée pour un intitulé d'entrée donné.
* @param string l'intitulé de l'entrée du registre à tester.
* @return boolean true si un objet associé à cet intitulé est présent, false sinon
*/
public static function existe($intitule) {
return array_key_exists($intitule, self::$stockage);
}
}
?>
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/trunk/doc/PhpDoc/files/CacheSqlite.php.txt
New file
0,0 → 1,617
<?php
class CacheSqlite {
/**
* Options disponibles :
*
* ====> (string) stockage_chemin :
* Chemin vers le fichier contenant la base SQLite.
*
*
* ====> (int) defragmentation_auto :
* - Désactive / Régler le processus de défragmentation automatique
* - Le processus de défragmentation automatiques réduit la taille du fichier contenant la base de données
* quand un ajout ou une suppression de cache est réalisée :
* 0 => pas de défragmentation automatique
* 1 => défragmentation automatique systématique
* x (integer) > 1 => défragmentation automatique toutes les 1 fois (au hasard) sur x ajout ou suppression de cache
*
* @var array options disponibles
*/
protected $options = array(
'stockage_chemin' => null,
'defragmentation_auto' => 10
);
/**
* DB ressource
*
* @var mixed $db
*/
private $bdd = null;
 
/**
* Boolean to store if the structure has benn checked or not
*
* @var boolean $structure_ok
*/
private $structure_ok = false;
 
private $Cache = null;
/**
* Constructor
*
* @param array $options Associative array of options
* @throws Zend_cache_Exception
* @return void
*/
public function __construct(array $options = array(), Cache $cache) {
$this->Cache = $cache;
if (extension_loaded('sqlite')) {
$this->initialiserOptionsParConfig();
$this->setOptions($options);
} else {
$e = "Impossible d'utiliser le cache SQLITE car l'extenssion 'sqlite' n'est pas chargée dans l'environnement PHP courrant.";
trigger_error($e, E_USER_ERROR);
}
}
private function initialiserOptionsParConfig() {
while (list($nom, $valeur) = each($this->options)) {
if (Config::existe($nom)) {
$this->options[$nom] = Config::get($nom);
}
}
}
/**
* Destructor
*
* @return void
*/
public function __destruct() {
@sqlite_close($this->getConnexion());
}
private function setOptions($options) {
while (list($nom, $valeur) = each($options)) {
if (!is_string($nom)) {
trigger_error("Nom d'option incorecte : $nom", E_USER_WARNING);
}
$nom = strtolower($nom);
if (array_key_exists($nom, $this->options)) {
$this->options[$nom] = $valeur;
}
}
}
public function setEmplacement($emplacement) {
if (extension_loaded('sqlite')) {
$this->options['stockage_chemin'] = $emplacement;
} else {
trigger_error("Impossible d'utiliser le mode de sotckage SQLite car l'extenssion 'sqlite' n'est pas chargé dans ".
"l'environnement PHP courrant.", E_USER_ERROR);
}
}
 
/**
* Test if a cache is available for the given id and (if yes) return it (false else)
*
* @param string $id Cache id
* @param boolean $doNotTestCacheValidity If set to true, the cache validity won't be tested
* @return string|false Cached datas
*/
public function charger($id, $ne_pas_tester_validiter_du_cache = false) {
$this->verifierEtCreerStructureBdd();
$requete = "SELECT content FROM cache WHERE id = '$id'".
(($ne_pas_tester_validiter_du_cache) ? '' : ' AND (expire = 0 OR expire > '.time().')');
$resultat = $this->requeter($requete);
$ligne = @sqlite_fetch_array($resultat);
return ($ligne) ? $ligne['content'] : false;
}
 
/**
* Test if a cache is available or not (for the given id)
*
* @param string $id Cache id
* @return mixed|false (a cache is not available) or "last modified" timestamp (int) of the available cache record
*/
public function tester($id) {
$this->verifierEtCreerStructureBdd();
$requete = "SELECT lastModified FROM cache WHERE id = '$id' AND (expire = 0 OR expire > ".time().')';
$resultat = $this->requeter($requete);
$ligne = @sqlite_fetch_array($resultat);
return ($ligne) ? ((int) $ligne['lastModified']) : false;
}
 
/**
* Save some string datas into a cache record
*
* Note : $data is always "string" (serialization is done by the
* core not by the backend)
*
* @param string $data Datas to cache
* @param string $id Cache id
* @param array $tags Array of strings, the cache record will be tagged by each string entry
* @param int $specificLifetime If != false, set a specific lifetime for this cache record (null => infinite lifetime)
* @throws Zend_Cache_Exception
* @return boolean True if no problem
*/
public function sauver($donnees, $id, $tags = array(), $duree_vie_specifique = false) {
$this->verifierEtCreerStructureBdd();
//FIXME : si l'extension n'est pas installée, le cache passe tout de même par cette fonction et s'arrête à cet endroit.
$donnees = @sqlite_escape_string($donnees);
$timestamp_courrant = time();
$expiration = $this->Cache->getTimestampExpiration($duree_vie_specifique);
 
$this->requeter("DELETE FROM cache WHERE id = '$id'");
$sql = "INSERT INTO cache (id, content, lastModified, expire) VALUES ('$id', '$donnees', $timestamp_courrant, $expiration)";
$resultat = $this->requeter($sql);
if (!$resultat) {
// TODO : ajouter un log sauver() : impossible de stocker le cache d'id '$id'
Debug::printr("sauver() : impossible de stocker le cache d'id '$id'");
$resultat = false;
} else {
$resultat = true;
foreach ($tags as $tag) {
$resultat = $this->enregisterTag($id, $tag) && $resultat;
}
}
return $resultat;
}
 
/**
* Remove a cache record
*
* @param string $id Cache id
* @return boolean True if no problem
*/
public function supprimer($id) {
$this->verifierEtCreerStructureBdd();
$resultat = $this->requeter("SELECT COUNT(*) AS nbr FROM cache WHERE id = '$id'");
$resultat_nbre = @sqlite_fetch_single($resultat);
$suppression_cache = $this->requeter("DELETE FROM cache WHERE id = '$id'");
$suppression_tags = $this->requeter("DELETE FROM tag WHERE id = '$id'");
$this->defragmenterAutomatiquement();
return ($resultat_nbre && $suppression_cache && $suppression_tags);
}
 
/**
* Clean some cache records
*
* Available modes are :
* Zend_Cache::CLEANING_MODE_ALL (default) => remove all cache entries ($tags is not used)
* Zend_Cache::CLEANING_MODE_OLD => remove too old cache entries ($tags is not used)
* Zend_Cache::CLEANING_MODE_MATCHING_TAG => remove cache entries matching all given tags
* ($tags can be an array of strings or a single string)
* Zend_Cache::CLEANING_MODE_NOT_MATCHING_TAG => remove cache entries not {matching one of the given tags}
* ($tags can be an array of strings or a single string)
* Zend_Cache::CLEANING_MODE_MATCHING_ANY_TAG => remove cache entries matching any given tags
* ($tags can be an array of strings or a single string)
*
* @param string $mode Clean mode
* @param array $tags Array of tags
* @return boolean True if no problem
*/
public function nettoyer($mode = Cache::NETTOYAGE_MODE_TOUS, $tags = array()) {
$this->verifierEtCreerStructureBdd();
$retour = $this->nettoyerSqlite($mode, $tags);
$this->defragmenterAutomatiquement();
return $retour;
}
 
/**
* Return an array of stored cache ids
*
* @return array array of stored cache ids (string)
*/
public function getIds() {
$this->verifierEtCreerStructureBdd();
$resultat = $this->requeter('SELECT id FROM cache WHERE (expire = 0 OR expire > '.time().')');
$retour = array();
while ($id = @sqlite_fetch_single($resultat)) {
$retour[] = $id;
}
return $retour;
}
 
/**
* Return an array of stored tags
*
* @return array array of stored tags (string)
*/
public function getTags() {
$this->verifierEtCreerStructureBdd();
$resultat = $this->requeter('SELECT DISTINCT(name) AS name FROM tag');
$retour = array();
while ($id = @sqlite_fetch_single($resultat)) {
$retour[] = $id;
}
return $retour;
}
 
/**
* Return an array of stored cache ids which match given tags
*
* In case of multiple tags, a logical AND is made between tags
*
* @param array $tags array of tags
* @return array array of matching cache ids (string)
*/
public function getIdsAvecLesTags($tags = array()) {
$this->verifierEtCreerStructureBdd();
$premier = true;
$ids = array();
foreach ($tags as $tag) {
$resultat = $this->requeter("SELECT DISTINCT(id) AS id FROM tag WHERE name='$tag'");
if ($resultat) {
$lignes = @sqlite_fetch_all($resultat, SQLITE_ASSOC);
$ids_tmp = array();
foreach ($lignes as $ligne) {
$ids_tmp[] = $ligne['id'];
}
if ($premier) {
$ids = $ids_tmp;
$premier = false;
} else {
$ids = array_intersect($ids, $ids_tmp);
}
}
}
$retour = array();
if (count($ids) > 0) {
foreach ($ids as $id) {
$retour[] = $id;
}
}
return $retour;
}
 
/**
* Return an array of stored cache ids which don't match given tags
*
* In case of multiple tags, a logical OR is made between tags
*
* @param array $tags array of tags
* @return array array of not matching cache ids (string)
*/
public function getIdsSansLesTags($tags = array()) {
$this->verifierEtCreerStructureBdd();
$resultat = $this->requeter('SELECT id FROM cache');
$lignes = @sqlite_fetch_all($resultat, SQLITE_ASSOC);
$retour = array();
foreach ($lignes as $ligne) {
$id = $ligne['id'];
$correspondance = false;
foreach ($tags as $tag) {
$resultat = $this->requeter("SELECT COUNT(*) AS nbr FROM tag WHERE name = '$tag' AND id = '$id'");
if ($resultat) {
$nbre = (int) @sqlite_fetch_single($resultat);
if ($nbre > 0) {
$correspondance = true;
}
}
}
if (!$correspondance) {
$retour[] = $id;
}
}
return $retour;
}
 
/**
* Return an array of stored cache ids which match any given tags
*
* In case of multiple tags, a logical AND is made between tags
*
* @param array $tags array of tags
* @return array array of any matching cache ids (string)
*/
public function getIdsAvecUnTag($tags = array()) {
$this->verifierEtCreerStructureBdd();
$premier = true;
$ids = array();
foreach ($tags as $tag) {
$resultat = $this->requeter("SELECT DISTINCT(id) AS id FROM tag WHERE name = '$tag'");
if ($resultat) {
$lignes = @sqlite_fetch_all($resultat, SQLITE_ASSOC);
$ids_tmp = array();
foreach ($lignes as $ligne) {
$ids_tmp[] = $ligne['id'];
}
if ($premier) {
$ids = $ids_tmp;
$premier = false;
} else {
$ids = array_merge($ids, $ids_tmp);
}
}
}
$retour = array();
if (count($ids) > 0) {
foreach ($ids as $id) {
$retour[] = $id;
}
}
return $retour;
}
 
/**
* Return the filling percentage of the backend storage
*
* @throws Zend_Cache_Exception
* @return int integer between 0 and 100
*/
public function getPourcentageRemplissage() {
$dossier = dirname($this->options['stockage_chemin']);
$libre = disk_free_space($dossier);
$total = disk_total_space($dossier);
$pourcentage = 0;
if ($total == 0) {
trigger_error("Impossible d'utiliser la fonction disk_total_space", E_USER_WARNING);
} else {
$pourcentage = ($libre >= $total) ? 100 : ((int) (100. * ($total - $libre) / $total));
}
return $pourcentage;
}
 
/**
* Return an array of metadatas for the given cache id
*
* The array must include these keys :
* - expire : the expire timestamp
* - tags : a string array of tags
* - mtime : timestamp of last modification time
*
* @param string $id cache id
* @return array array of metadatas (false if the cache id is not found)
*/
public function getMetadonnees($id) {
$this->verifierEtCreerStructureBdd();
$tags = array();
$resultat = $this->requeter("SELECT name FROM tag WHERE id = '$id'");
if ($resultat) {
$lignes = @sqlite_fetch_all($resultat, SQLITE_ASSOC);
foreach ($lignes as $ligne) {
$tags[] = $ligne['name'];
}
}
$resultat = $this->requeter("SELECT lastModified, expire FROM cache WHERE id = '$id'");
if ($resultat) {
$ligne = @sqlite_fetch_array($resultat, SQLITE_ASSOC);
$resultat = array(
'tags' => $tags,
'mtime' => $ligne['lastModified'],
'expiration' => $ligne['expire']);
} else {
$resultat = false;
}
return $resultat;
}
 
/**
* Give (if possible) an extra lifetime to the given cache id
*
* @param string $id cache id
* @param int $extraLifetime
* @return boolean true if ok
*/
public function ajouterSupplementDureeDeVie($id, $supplement_duree_de_vie) {
$this->verifierEtCreerStructureBdd();
$augmentation = false;
$requete = "SELECT expire FROM cache WHERE id = '$id' AND (expire = 0 OR expire > ".time().')';
$resultat = $this->requeter($requete);
if ($resultat) {
$expiration = @sqlite_fetch_single($resultat);
$nouvelle_expiration = $expiration + $supplement_duree_de_vie;
$resultat = $this->requeter('UPDATE cache SET lastModified = '.time().", expire = $nouvelle_expiration WHERE id = '$id'");
$augmentation = ($resultat) ? true : false;
}
return $augmentation;
}
 
/**
* Return the connection resource
*
* If we are not connected, the connection is made
*
* @throws Zend_Cache_Exception
* @return resource Connection resource
*/
private function getConnexion() {
if (!is_resource($this->bdd)) {
if ($this->options['stockage_chemin'] === null) {
$e = "L'emplacement du chemin vers le fichier de la base de données SQLite n'a pas été défini";
trigger_error($e, E_USER_ERROR);
} else {
$this->bdd = sqlite_open($this->options['stockage_chemin']);
if (!(is_resource($this->bdd))) {
$e = "Impossible d'ouvrir le fichier '".$this->options['stockage_chemin']."' de la base de données SQLite.";
trigger_error($e, E_USER_ERROR);
$this->bdd = null;
}
}
}
return $this->bdd;
}
 
/**
* Execute une requête SQL sans afficher de messages d'erreur.
*
* @param string $requete requête SQL
* @return mixed|false resultats de la requête
*/
private function requeter($requete) {
$bdd = $this->getConnexion();
//Debug::printr($requete);
$resultat = (is_resource($bdd)) ? @sqlite_query($bdd, $requete, SQLITE_ASSOC, $e_sqlite) : false;
if (is_resource($bdd) && ! $resultat) {
Debug::printr("Erreur SQLITE :\n$e_sqlite\nPour la requête :\n$requete\nRessource : $bdd");
}
return $resultat;
}
 
/**
* Deal with the automatic vacuum process
*
* @return void
*/
private function defragmenterAutomatiquement() {
if ($this->options['defragmentation_auto'] > 0) {
$rand = rand(1, $this->options['defragmentation_auto']);
if ($rand == 1) {
$this->requeter('VACUUM');
@sqlite_close($this->getConnexion());
}
}
}
 
/**
* Register a cache id with the given tag
*
* @param string $id Cache id
* @param string $tag Tag
* @return boolean True if no problem
*/
private function enregisterTag($id, $tag) {
$requete_suppression = "DELETE FROM tag WHERE name = '$tag' AND id = '$id'";
$resultat = $this->requeter($requete_suppression);
$requete_insertion = "INSERT INTO tag(name,id) VALUES ('$tag','$id')";
$resultat = $this->requeter($requete_insertion);
if (!$resultat) {
// TODO : ajouter un log -> impossible d'enregistrer le tag=$tag pour le cache id=$id");
Debug::printr("Impossible d'enregistrer le tag=$tag pour le cache id=$id");
}
return ($resultat) ? true : false;
}
 
/**
* Build the database structure
*
* @return false
*/
private function creerStructure() {
$this->requeter('DROP INDEX IF EXISTS tag_id_index');
$this->requeter('DROP INDEX IF EXISTS tag_name_index');
$this->requeter('DROP INDEX IF EXISTS cache_id_expire_index');
$this->requeter('DROP TABLE IF EXISTS version');
$this->requeter('DROP TABLE IF EXISTS cache');
$this->requeter('DROP TABLE IF EXISTS tag');
$this->requeter('CREATE TABLE version (num INTEGER PRIMARY KEY)');
$this->requeter('CREATE TABLE cache(id TEXT PRIMARY KEY, content BLOB, lastModified INTEGER, expire INTEGER)');
$this->requeter('CREATE TABLE tag (name TEXT, id TEXT)');
$this->requeter('CREATE INDEX tag_id_index ON tag(id)');
$this->requeter('CREATE INDEX tag_name_index ON tag(name)');
$this->requeter('CREATE INDEX cache_id_expire_index ON cache(id, expire)');
$this->requeter('INSERT INTO version (num) VALUES (1)');
}
 
/**
* Check if the database structure is ok (with the good version)
*
* @return boolean True if ok
*/
private function verifierBddStructureVersion() {
$version_ok = false;
$resultat = $this->requeter('SELECT num FROM version');
if ($resultat) {
$ligne = @sqlite_fetch_array($resultat);
if ($ligne) {
if (((int) $ligne['num']) == 1) {
$version_ok = true;
} else {
// TODO : ajouter un log CacheSqlite::verifierBddStructureVersion() : vielle version de la structure de la base de données de cache détectée => le cache est entrain d'être supprimé
}
}
}
return $version_ok;
}
 
/**
* Clean some cache records
*
* Available modes are :
* Zend_Cache::CLEANING_MODE_ALL (default) => remove all cache entries ($tags is not used)
* Zend_Cache::CLEANING_MODE_OLD => remove too old cache entries ($tags is not used)
* Zend_Cache::CLEANING_MODE_MATCHING_TAG => remove cache entries matching all given tags
* ($tags can be an array of strings or a single string)
* Zend_Cache::CLEANING_MODE_NOT_MATCHING_TAG => remove cache entries not {matching one of the given tags}
* ($tags can be an array of strings or a single string)
* Zend_Cache::CLEANING_MODE_MATCHING_ANY_TAG => remove cache entries matching any given tags
* ($tags can be an array of strings or a single string)
*
* @param string $mode Clean mode
* @param array $tags Array of tags
* @return boolean True if no problem
*/
private function nettoyerSqlite($mode = Cache::NETTOYAGE_MODE_TOUS, $tags = array()) {
$nettoyage_ok = false;
switch ($mode) {
case Cache::NETTOYAGE_MODE_TOUS:
$suppression_cache = $this->requeter('DELETE FROM cache');
$suppression_tag = $this->requeter('DELETE FROM tag');
$nettoyage_ok = $suppression_cache && $suppression_tag;
break;
case Cache::NETTOYAGE_MODE_EXPIRATION:
$mktime = time();
$suppression_tag = $this->requeter("DELETE FROM tag WHERE id IN (SELECT id FROM cache WHERE expire > 0 AND expire <= $mktime)");
$suppression_cache = $this->requeter("DELETE FROM cache WHERE expire > 0 AND expire <= $mktime");
return $suppression_tag && $suppression_cache;
break;
case Cache::NETTOYAGE_MODE_AVEC_LES_TAGS:
$ids = $this->getIdsAvecLesTags($tags);
$resultat = true;
foreach ($ids as $id) {
$resultat = $this->supprimer($id) && $resultat;
}
return $resultat;
break;
case Cache::NETTOYAGE_MODE_SANS_LES_TAGS:
$ids = $this->getIdsSansLesTags($tags);
$resultat = true;
foreach ($ids as $id) {
$resultat = $this->supprimer($id) && $resultat;
}
return $resultat;
break;
case Cache::NETTOYAGE_MODE_AVEC_UN_TAG:
$ids = $this->getIdsAvecUnTag($tags);
$resultat = true;
foreach ($ids as $id) {
$resultat = $this->supprimer($id) && $resultat;
}
return $resultat;
break;
default:
break;
}
return $nettoyage_ok;
}
 
/**
* Check if the database structure is ok (with the good version), if no : build it
*
* @throws Zend_Cache_Exception
* @return boolean True if ok
*/
private function verifierEtCreerStructureBdd() {
if (! $this->structure_ok) {
if (! $this->verifierBddStructureVersion()) {
$this->creerStructure();
if (! $this->verifierBddStructureVersion()) {
$e = "Impossible de construire la base de données de cache dans ".$this->options['stockage_chemin'];
trigger_error($e, E_USER_WARNING);
$this->structure_ok = false;
}
}
$this->structure_ok = true;
}
return $this->structure_ok;
}
 
}
?>
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/trunk/doc/PhpDoc/files/utilitaires.Encodage.php.html
New file
0,0 → 1,278
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-312771637"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-312771637" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content file">
<nav>
</nav>
 
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small>utilitaires</small>Encodage.php</h1>
<p><em></em></p>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="../classes/Encodage.html">Encodage</a></td>
<td><em>Classe fournissant des méthodes statiques concernant l&#039;encodage et le décodage des caractères de variable.</em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
 
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label"></h3>
</div>
<div class="modal-body">
<pre data-src="../files/utilitaires/Encodage.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/files/Url.php.html
New file
0,0 → 1,278
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1216049860"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1216049860" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content file">
<nav>
</nav>
 
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small></small>Url.php</h1>
<p><em></em></p>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="../classes/Url.html">Url</a></td>
<td><em>Classe Url, gérant le découpage des paramètres, leurs modification etc.</em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
 
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label"></h3>
</div>
<div class="modal-body">
<pre data-src="../files/Url.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/files/Bdd.php.txt
New file
0,0 → 1,460
<?php
// declare(encoding='UTF-8');
/**
* Classe Bdd, d'accés au base de données.
* Elle fait office d'abstraction légère de base de données en utilisant diverses possibilités d'accès aux
* bases de données (PDO, mysql, mysqli, SQLite3).
* Les valeurs pour le paramètre 'bdd_abstraction' du fichier config.ini sont : pdo, mysql, mysqli, sqlite3
* Vous pouvez aussi utiliser : "php:Bdd::ABSTRACTION_PDO","php:Bdd::ABSTRACTION_MYSQL", "php:Bdd::ABSTRACTION_MYSQLI",
* "php:Bdd::ABSTRACTION_SQLITE3".
* Elle peut être étendue, pour ajouter le support d'autres bases de données où prendre en compte des méthodes spécifique à
* un type d'abstraction.
*
* @category php 5.2
* @package Framework
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id: Bdd.php 461 2014-03-05 16:13:16Z jpm $
* @link /doc/framework/
*/
class Bdd {
/** Constante stockant le squelette du message en cas d'erreur de requête sql. */
const ERREUR_REQUETE_TPL = 'Requête echec.\nFichier : %s.\nLigne : %s.\nMessage : %s.\nRequête : %s';
 
/** Constante stockant le squelette du message en cas d'erreur de connexion à la base de données. */
const ERREUR_CONNEXION_TPL = 'Erreur de connexion à la base de données, vérifiez les paramètres du fichier de configuration.\nMessage : %S.';
 
/** Constante stockant le squelette du message en cas d'erreur de sélection de la base de données. */
const ERREUR_SELECTION_BDD_TPL = 'Erreur de sélection de la base de données, vérifiez les paramètres du fichier de configuration.\nMessage : %S.';
 
/** Constante stockant le code pour l'abstraction de PDO. */
const ABSTRACTION_PDO = 'pdo';
 
/** Constante stockant le code pour l'abstraction de mysql. */
const ABSTRACTION_MYSQL = 'mysql';
 
/** Constante stockant le code pour l'abstraction de mysqli. */
const ABSTRACTION_MYSQLI = 'mysqli';
 
/** Constante stockant le code pour l'abstraction de SQLite3. */
const ABSTRACTION_SQLITE3 = 'sqlite3';
 
/** Constante stockant le code pour le mode tableau associatif des résultats des requêtes. */
const MODE_ASSOC = 'ASSOC';
 
/** Constante stockant le code pour le mode objet des résultats des requêtes. */
const MODE_OBJET = 'OBJECT';
 
/** Mode de fetch associatif */
protected $ASSOC = '';
 
/** Mode de fetch objet */
protected $OBJECT = '';
 
/** abstraction de base de données utilisée */
protected $abstraction;
 
/** DSN pour accéder à la base de données */
protected $dsn;
 
/** Type de base de données (mysql, mysqli, etc ...) */
protected $type;
 
/** Hote herbergeant la base de données */
protected $hote;
 
/** Nom de la base de données à laquelle le modèle doit se connecter */
protected $bdd_nom;
 
/** Nom d'utilisateur */
protected $utilisateur;
 
/** Mot de passe */
protected $pass;
 
/** Encodage de la base de données */
protected $encodage = null;
 
/** Connexion à la base de données */
protected $connexion = null;
 
/** Tableau des noms des paramètres à définir dans le fichier de config car obligatoirement nécessaire à cette classe.*/
protected $parametres_obligatoires = array('bdd_abstraction', 'bdd_protocole', 'bdd_serveur', 'bdd_nom',
'bdd_utilisateur', 'bdd_mot_de_passe', 'bdd_encodage');
 
/** Constructeur par défaut, appelé à l'initialisation. */
public function __construct() {
Config::verifierPresenceParametres($this->parametres_obligatoires);
$this->abstraction = strtolower(Config::get('bdd_abstraction'));
$this->type = Config::get('bdd_protocole');
$this->hote = Config::get('bdd_serveur');
$this->bdd_nom = Config::get('bdd_nom');
$this->utilisateur = Config::get('bdd_utilisateur');
$this->pass = Config::get('bdd_mot_de_passe');
 
$this->encodage = Config::get('bdd_encodage');
 
if ($this->type == 'sqlite' || $this->type == 'sqlite2') {
$this->dsn = $this->type.':'.$this->hote;
} else {
$this->dsn = $this->type.':dbname='.$this->bdd_nom.';host='.$this->hote;
}
$this->initialiserProtocole();
}
 
/** Initialise les constantes de classe à leur bonne valeur et déclenche une erreur si le protocole n'est pas bien défini. */
protected function initialiserProtocole() {
switch ($this->abstraction) {
case self::ABSTRACTION_PDO :
$this->ASSOC = PDO::FETCH_ASSOC;
$this->OBJECT = PDO::FETCH_OBJ;
break;
case self::ABSTRACTION_MYSQL :
$this->ASSOC = 'mysql_fetch_assoc';
$this->OBJECT = 'mysql_fetch_object';
break;
case self::ABSTRACTION_MYSQLI :
$this->ASSOC = 'fetch_assoc';
$this->OBJECT = 'fetch_object';
break;
case self::ABSTRACTION_SQLITE3 :
$this->ASSOC = 'SQLITE3_ASSOC';
$this->OBJECT = 'SQLITE3_OBJECT';
break;
default:
$m = "Erreur : l'abstraction '{$this->abstraction}' n'est pas prise en charge";
trigger_error($m, E_USER_WARNING);
}
}
 
/**
* Connection à la base de données en utilisant les informations fournies par
* le fichier de configuration.
* Cette méthode est private et final car elle n'a pas vocation a être appelée par l'utilisateur.
* TODO : il est peut être nécessaire pour MYSQL, MYSQLi et SQLITE3 afin d'éviter les boucles infinis
* d'erreur quand la bdd n'est pas configuré d'utiliser : $this->connexion->query (comme pour PDO)
*/
protected function connecter() {
if ($this->connexion == null) {
switch ($this->abstraction) {
case self::ABSTRACTION_PDO :
try {
$this->connexion = new PDO($this->dsn, $this->utilisateur, $this->pass);
$this->connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
$e = sprintf(self::ERREUR_CONNEXION_TPL, $e->getMessage());
trigger_error($e, E_USER_WARNING);
}
if ($this->encodage != null && $this->type == 'mysql') {
$this->connexion->query("SET names '".$this->encodage."'");
} else if ($this->type == 'sqlite') {
$this->connexion->query("PRAGMA case_sensitive_like = false");
}
break;
case self::ABSTRACTION_MYSQL :
$this->connexion = mysql_connect($this->hote, $this->utilisateur, $this->pass);
if ($this->connexion !== false) {
$selection = mysql_select_db($this->bdd_nom, $this->connexion);
if ($selection === false) {
$e = sprintf(self::ERREUR_SELECTION_BDD_TPL, mysql_error());
trigger_error($e, E_USER_WARNING);
}
} else {
$e = sprintf(self::ERREUR_CONNEXION_TPL, mysql_error());
trigger_error($e, E_USER_WARNING);
}
if ($this->encodage != null) {
$this->requeter("SET names '".$this->encodage."'");
}
break;
case self::ABSTRACTION_MYSQLI :
$this->connexion = @new mysqli($this->hote, $this->utilisateur, $this->pass, $this->bdd_nom);
if ($this->connexion->connect_errno) {
$e = sprintf(self::ERREUR_CONNEXION_TPL, $this->connexion->connect_error);
trigger_error($e, E_USER_WARNING);
}
if ($this->encodage != null) {
$this->requeter("SET names '".$this->encodage."'");
}
break;
case self::ABSTRACTION_SQLITE3 :
// cas particulier de sqllite, on considère que le nom de la base de données correspond au fichier à ouvrir
$this->connexion = new SQLite3($this->bdd_nom);
if (!$this->connexion) {
$e = sprintf(self::ERREUR_CONNEXION_TPL, '');
trigger_error($e, E_USER_WARNING);
}
$this->requeter("PRAGMA case_sensitive_like = false");
break;
default:
$this->connexion = null;
}
 
if ($this->encodage != null) {
$this->requete("SET names '".$this->encodage."'");
}
}
}
 
/**
* @deprecated changement de nom. Disparaîtra dans la version 0.4. Utiliser à la place : @see requeter
*/
final protected function requete($requete) {
return $this->requeter($requete);
}
 
/**
* Execute une requête et retourne le résultat tel que renvoyé par l'abstraction courante.
*
* @param string la requête à effectuer
* @return mixed un objet contenant le résultat de la requête
*/
public function requeter($requete) {
$this->connecter();
 
$retour = null;
switch ($this->abstraction) {
case self::ABSTRACTION_PDO :
try {
$retour = $this->connexion->query($requete);
} catch (PDOException $e) {
$m = sprintf(self::ERREUR_REQUETE_TPL, $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
trigger_error($m, E_USER_WARNING);
}
break;
case self::ABSTRACTION_MYSQL :
$retour = mysql_query($requete, $this->connexion);
break;
case self::ABSTRACTION_MYSQLI :
$retour = $this->connexion->query($requete);
break;
case self::ABSTRACTION_SQLITE3 :
$retour = $this->connexion->exec($requete);
break;
}
return $retour;
}
 
/**
* @deprecated changement de nom. Disparaîtra dans la version 0.4. Utiliser à la place : @see recuperer
*/
final protected function requeteUn($requete, $mode = self::MODE_ASSOC) {
return $this->recuperer($requete, $mode);
}
 
/**
* Execute une requête et retourne le premier résultat sous forme de tableau (par défaut) ou d'objet.
* Les noms des champs de la base de données correspondent aux noms des clés du tableau ou aux noms des attributs de l'objet.
*
* @param string la requête à effectuer
* @param string le mode de retour ASSOC (Bdd::MODE_ASSOC) pour un tableau ou OBJECT (Bdd::MODE_OBJET) pour un objet.
* @return mixed un objet ou un tableau contenant le résultat de la requête
*/
public function recuperer($requete, $mode = self::MODE_ASSOC) {
$this->connecter();
 
$retour = null;
switch ($this->abstraction) {
case self::ABSTRACTION_PDO :
try {
$resultat = $this->connexion->query($requete);
$retour = ($resultat !== false) ? $resultat->fetch($this->$mode) : $resultat;
} catch (PDOException $e) {
$m = sprintf(self::ERREUR_REQUETE_TPL, $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
trigger_error($m, E_USER_WARNING);
}
break;
case self::ABSTRACTION_MYSQL :
$res = mysql_query($requete, $this->connexion);
$fonction_fetch = $this->$mode;
$retour = $fonction_fetch($res);
break;
case self::ABSTRACTION_MYSQLI :
$res = $this->connexion->query($requete);
$fonction_fetch = $this->$mode;
$retour = $res->$fonction_fetch();
break;
case self::ABSTRACTION_SQLITE3 :
$retour = $this->connexion->querySingle($requete);
break;
}
return $retour;
}
 
/**
* @deprecated changement de nom. Disparaîtra dans la version 0.4. Utiliser à la place : @see recupererTous
*/
final protected function requeteTous($requete, $mode = self::MODE_ASSOC) {
return $this->recupererTous($requete, $mode);
}
 
/**
* Execute une requête et retourne un tableau de résultats. Un résultat peut être présentés sous forme
* de tableau (par défaut) ou d'objet.
* Les noms des champs de la base de données correspondent aux noms des clés du tableau résultat ou
* aux noms des attributs de l'objet résultat.
*
* @param string la requête à effectuer
* @param string le mode de retour des résultats : ASSOC (Bdd::MODE_ASSOC) pour un tableau ou OBJECT (Bdd::MODE_OBJET) pour un objet.
* @return array un tableau contenant les résultats sous forme d'objets ou de tableau (par défaut).
*/
public function recupererTous($requete, $mode = self::MODE_ASSOC) {
$this->connecter();
 
$retour = null;
switch ($this->abstraction) {
case self::ABSTRACTION_PDO :
try {
$resultat = $this->connexion->query($requete);
$retour = ($resultat !== false) ? $resultat->fetchAll($this->$mode) : $resultat;
} catch (PDOException $e) {
$m = sprintf(self::ERREUR_REQUETE_TPL, $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
trigger_error($m, E_USER_WARNING);
}
break;
case self::ABSTRACTION_MYSQL :
$resultat = mysql_query($requete, $this->connexion);
$fonction_fetch = $this->$mode;
while ($ligne = $fonction_fetch($resultat)) {
$retour[] = $ligne;
}
break;
case self::ABSTRACTION_MYSQLI :
$resultat = $this->connexion->query($requete);
$function_fetch = $this->$mode;
while ($ligne = $resultat->$function_fetch()) {
$retour[] = $ligne;
}
break;
case self::ABSTRACTION_SQLITE3 :
$resultat = $this->connexion->query($requete);
while ($ligne = $resultat->fetch_array($this->ASSOC)) {
if ($mode == self::MODE_OBJET) {
// Cas particulier de sqllite qui n'a pas de fonction fetch_object
$ligneObjet = new stdClass();
foreach ($ligne as $colonne => $valeur) {
$ligneObjet->$colonne = $valeur;
}
$ligne = $ligneObjet;
}
$retour[] = $ligne;
}
break;
}
return $retour;
}
 
/**
* Protège une chaine de caractères ou le contenu d'un tablea avant l'insertion dans la base de données
* (ajout de quotes ou guillemets).
* @param Mixed une chaine ou un tableau à protéger
* @return mixed la chaine ou le tableau à protégé
*/
public function proteger($donnees) {
$this->connecter();
if (is_array($donnees)) {
$retour = $this->protegerTableau($donnees);
} else {
$retour = $this->protegerChaine($donnees);
}
return $retour;
}
 
/**
* Protège une chaine de caractères avant l'insertion dans la base de données (ajout de quotes ou guillemets).
* @param string la chaine à protéger
* @return string la chaine protégée
*/
private function protegerChaine($chaine) {
$retour = $chaine;
switch ($this->abstraction) {
case self::ABSTRACTION_PDO :
$retour = $this->connexion->quote($chaine);
break;
case self::ABSTRACTION_MYSQL :
$retour = '"'.mysql_real_escape_string($chaine, $this->connexion).'"';
break;
case self::ABSTRACTION_MYSQLI :
$retour = '"'.$this->connexion->real_escape_string($chaine).'"';
break;
case self::ABSTRACTION_SQLITE3 :
$retour = $this->connexion->escapeString($chaine);
break;
}
return $retour;
}
 
/**
* @deprecated changement de nom. Deviendra "private" dans la version 0.5. Utiliser à la place : @see proteger
*/
public function protegerTableau(Array $tableau) {
foreach ($tableau as $id => $val) {
if (is_array($val)) {
$tableau[$id] = $this->protegerTableau($val);
} else {
$tableau[$id] = $this->protegerChaine($val);
}
}
return $tableau;
}
 
/**
* Retourne l'identifiant de la dernière ligne insérée, ou la dernière valeur d'une séquence d'objets, dépendamment, dans
* le cas de PDO, du driver utilisé. Les méthodes utilisées pour retourner l'identifiant peuvent avoir des comportements
* différent. Consulter la documentation PHP correspondant à l'abstraction choisie avant de l'utiliser :
* @link(http://fr.php.net/manual/fr/pdo.lastinsertid.php, PDO::lastInsertId([ string $name = NULL ]))
* @link(http://php.net/manual/en/mysqli.insert-id.php, mysqli->insert_id())
* @link(http://fr.php.net/manual/fr/function.mysql-insert-id.php, mysql_insert_id())
* @link(http://fr.php.net/manual/fr/sqlite3.lastinsertrowid.php, SQLite3::lastInsertRowID())
* @param mixed un paramètre éventuel à transmettre (en fonction de l'abstraction de BDD utilisée).
* @return mixed le dernier identifiant de clé primaire ajouté dans la base de données (string ou int).
*/
public function recupererIdDernierAjout($parametres = null) {
$this->connecter();
 
$retour = null;
switch ($this->abstraction) {
case self::ABSTRACTION_PDO :
$retour = $this->connexion->lastInsertId($parametres);
break;
case self::ABSTRACTION_MYSQL :
$retour = mysql_insert_id($this->connexion);
break;
case self::ABSTRACTION_MYSQLI :
$retour = $this->connexion->insert_id();
break;
case self::ABSTRACTION_SQLITE3 :
$retour = $this->connexion->lastInsertRowID();
break;
}
return $retour;
}
 
/**
* Destructeur de classe, se contente de fermer explicitement la connexion à la base de donnée.
*/
public function __destruct() {
if (isset($this->connexion)) {
switch ($this->abstraction) {
case self::ABSTRACTION_PDO :
$this->connexion = null;
break;
case self::ABSTRACTION_MYSQL :
if (isset($this->connexion)) {
return mysql_close($this->connexion);
}
break;
case self::ABSTRACTION_MYSQLI :
$this->connexion->close();
break;
case self::ABSTRACTION_SQLITE3 :
$this->connexion->close();
break;
}
}
}
}
?>
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/trunk/doc/PhpDoc/files/Config.php.html
New file
0,0 → 1,278
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-745695541"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-745695541" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content file">
<nav>
</nav>
 
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small></small>Config.php</h1>
<p><em></em></p>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="../classes/Config.html">Config</a></td>
<td><em>Config permet de charger automatiquement les fichiers ini du Framework et de l&#039;application.</em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
 
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label"></h3>
</div>
<div class="modal-body">
<pre data-src="../files/Config.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/files/Cli.php.html
New file
0,0 → 1,279
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1506940251"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1506940251" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content file">
<nav>
</nav>
 
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small></small>Cli.php</h1>
<p><em></em></p>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="../classes/Cli.html">Cli</a></td>
<td><em>CLI permet de récupérer les paramètres passés en ligne de commande pour instancier une classe héritant de la classe abstraite
Script.</em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
 
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label"></h3>
</div>
<div class="modal-body">
<pre data-src="../files/Cli.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/files/RestService.php.txt
New file
0,0 → 1,151
<?php
/**
* Classe principale gérant les services.
* Paramètres liés dans config.ini :
* - serveur.baseURL
*
* Encodage en entrée : utf8
* Encodage en sortie : utf8
*
* @category Php 5.2
* @package Framework
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
* @since 0.3
* @version $Id: RestService.php 417 2012-05-15 09:24:12Z jpm $
* @link /doc/framework/
*/
abstract class RestService {
/** Objet de connection à la base de données.
* @deprecated Utiliser la methode getBdd().
* @see getBdd()
*/
protected $bdd = null;
/** Objet Rest Client. */
private $RestClient = null;
/** Indique si oui (true) ou non (false), on veut utiliser les paramètres brutes. */
protected $utilisationParametresBruts = false;
public function __construct($config) {
$this->config = $config;
$this->bdd = new Bdd();
}
public function initialiser() {
}
/**
* Méthode de connection à la base de données sur demande.
* Tous les services web n'ont pas besoin de s'y connecter.
*/
protected function getBdd() {
if (! isset($this->bdd)) {
$this->bdd = new Bdd();
}
return $this->bdd;
}
/**
* Méthode permettant de faire appel à un client REST en fonction des besoins du service.
*/
protected function getRestClient() {
if (! isset($this->RestClient)) {
$this->RestClient = new RestClient();
}
return $this->RestClient;
}
/**
* Méthode permettant de savoir si le service veut utiliser des paramètres bruts (issu de la QueryString)
* ou pas (issu de $_GET).
*/
public function utiliserParametresBruts() {
return $this->utilisationParametresBruts;
}
/**
* Permet d'ajouter un message d'erreur ou d'avertissement qui sera envoyé au client.
* Le message doit être au format texte et en UTF-8.
* @param string $message le message à envoyer.
*/
protected function ajouterMessage($message) {
RestServeur::ajouterMessage($message);
}
/**
* Méthode appelée lors d'une requête HTTP de type GET.
*
* Si la consultation est un succès, le code statut HTTP retourné sera 200. Dans tous les autres cas,
* la méthode devra retourner le code statut HTTP adéquate.
*
* @param array Morceaux de l'url servant à préciser la ressource concerné pour le service demandé.
* @param array Partie de l'url situé après le '?' servant à paramétrer le service demandé.
* @return string une chaine indiquant le succès de l'opération et les données demandées.
*/
public function consulter($ressources, $parametres) {
RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_METHODE_NON_AUTORISE);
RestServeur::ajouterMessage("Le service '".get_class($this)."' n'autorise pas la consultation.");
}
/**
* Méthode appelée lors d'une requête HTTP de type POST.
*
* La ressource à modifier est indiquée via l'url. Les données devant servir à la mise à jours sont passées dans le corps
* de la requête.
* Si la modification est un succès, la méthode devra retourner "true" et le code statut HTTP retourné sera 201.
*
* @param array Morceaux de l'url servant à préciser la ressource concerné pour le service demandé.
* @param array les données transférées dans le corps de la requête devant servir à la modification.
* @return mixed une chaine indiquant le succès de l'opération ou rien.
*/
public function modifier($ressources, $requeteDonnees) {
RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_METHODE_NON_AUTORISE);
RestServeur::ajouterMessage("Le service '".get_class($this)."' n'autorise pas la modification.");
return false;
}
/**
* Méthode appelée lors d'une requête HTTP de type PUT.
*
* L'identifiant de la ressource à ajouter est indiqué via l'url si on le connait par avance. Sinon, il doit être créé par
* le service. Dans ce dernier cas, le nouvel identifiant devrait être renvoyé dans le corps de la réponse.
* Si l'ajout est un succès, la méthode devra retourner "true" ou l'identifiant.
* Le code statut HTTP retourné sera 201 en cas de succès.
* Dans le cas contraire, la méthode devra retourner false.
*
* @param array Morceaux de l'url servant à préciser la ressource concerné pour le service demandé.
* @param array les données transférées dans le corps de la requête devant servir à l'ajout.
* @return string l'identifiant créé.
*/
public function ajouter($ressources, $requeteDonnees) {
RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_METHODE_NON_AUTORISE);
RestServeur::ajouterMessage("Le service '".get_class($this)."' n'autorise pas la création.");
return false;
}
/**
* Méthode appelée lors d'une requête HTTP de type DELETE (ou POST avec action=DELETE dans le corps de la requete).
*
* Si la suppression est un succès, la méthode devra retourner "true" et le code statut HTTP retourné par
* RestServeur sera 204.
* Si la ressource à supprimer est introuvable, la méthode devra retourner "false" et le code statut HTTP
* retourné par RestServeur sera 404.
* Dans les autres cas de figure ou si vous souhaitez gérer vos propres codes de retour erreur, retourner
* la valeur null ou rien.
*
* @param array Morceaux de l'url servant à préciser la ressource concerné pour le service demandé.
* @return mixed une chaine indiquant le succès de l'opération ou rien.
*/
public function supprimer($ressources) {
RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_METHODE_NON_AUTORISE);
RestServeur::ajouterMessage("Le service '".get_class($this)."' n'autorise pas la suppression.");
return null;
}
}
?>
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/trunk/doc/PhpDoc/files/CacheSimple.php.html
New file
0,0 → 1,278
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-193688951"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-193688951" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content file">
<nav>
</nav>
 
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small></small>CacheSimple.php</h1>
<p><em></em></p>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="../classes/CacheSimple.html">CacheSimple</a></td>
<td><em>Classe Cache permettant de mettre en cache des données de façon extremement simple.</em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
 
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label"></h3>
</div>
<div class="modal-body">
<pre data-src="../files/CacheSimple.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/files/Script.php.txt
New file
0,0 → 1,289
<?php
// declare(encoding='UTF-8');
/**
* Script est une classe abstraite qui doit être implémenté par les classes éxecutant des scripts en ligne de commande.
*
* @category PHP 5.2
* @package Framework
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Delphine CAUQUIL <delphine@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @since 0.3
* @version $Id: Script.php 299 2011-01-18 14:03:46Z jpm $
* @link /doc/framework/
*/
 
abstract class Script {
/** Niveau de message de type LOG */
const MSG_LOG = 0;
/** Niveau de message de type ERREUR */
const MSG_ERREUR = 1;
/** Niveau de message de type AVERTISSEMENT */
const MSG_AVERTISSEMENT = 2;
/** Niveau de message de type INFORMATION */
const MSG_INFO = 3;
 
/** Inititulé des différents types de message. */
private static $msg_niveaux_txt = array('LOG', 'ERREUR','AVERTISSEMENT', 'INFO');
/**
* Le nom du script tel que passé dans la ligne de commande.
* @var string
*/
private $script_nom = null;
/**
* Paramêtres par défaut disponibles pour la ligne de commande
* le tableau se construit de la forme suivante :
* - clé = nom du paramêtre '-foo'
* - value = contient un nouveau tableau composé de cette façon :
* - booléen: true si le paramêtre est obligatoire
* - booléen ou var : true si le paramêtre nécessite un valeur à sa suite ou la valeur par défaut
* - string: description du contenu du paramêtre
* Les paramêtres optionels devraient être déclaré à la fin du tableau.
* Le dernier parametre du tableau peut avoir la valeur '...',
* il contiendra alors l'ensemble des paramêtres suivant trouvés sur la ligne de commande.
* @var array
*/
private $parametres_autorises_defaut = array(
'-a' => array(true, true, 'Action à réaliser'),
'-v' => array(false, '1', 'Mode verbeux : 1 ou 2'));
/**
* Paramêtres autorisés par le script.
* le tableau est de la forme suivante :
* - clé = nom du paramêtre '-foo'
* - value = contient un nouveau tableau composé de cette façon :
* - booléen: true si le paramêtre est obligatoire
* - booléen ou var : true si le paramêtre nécessite un valeur à sa suite ou la valeur par défaut
* - string: description du contenu du paramêtre
* Les paramêtres optionels devraient être déclaré à la fin du tableau.
* Le dernier parametre du tableau peut avoir la valeur '...',
* il contiendra alors l'ensemble des paramêtres suivant trouvés sur la ligne de commande.
* @var array
*/
protected $parametres_autorises = null;
/**
* Contient les valeurs des paramêtres récupérés de la ligne de commande :
* le tableau se construit de la forme suivnate :
* - clé = nom du paramêtre '-foo'
* - valeur = la valeur récupérée sur la ligne de commande
* @var array
*/
private $parametres_cli = null;
/**
* Contient le tableau des paramètres disponible après vérification :
* le tableau est de la forme suivante :
* - clé = nom du paramêtre '-foo'
* - valeur = la valeur récupérée sur la ligne de commande
* @var array
*/
protected $parametres = null;
/** Tableau associatif permettant de stocker l'avancement dans une boucle.
* La clé est un md5 du message à afficher au démarrage de la boucle.
* @var array
*/
private static $avancement = array();
/** Tableau des noms des paramètres à définir dans le fichier de config car obligatoirement nécessaire à cette classe.*/
private static $parametres_obligatoires = array('chemin_modules', 'log_script');
public function __construct($script_nom, $parametres_cli) {
$this->script_nom = $script_nom;
$this->parametres_cli = $parametres_cli;
Config::verifierPresenceParametres(self::$parametres_obligatoires);
$fichier_ini_script = $this->getScriptChemin().'config.ini';
Config::charger($fichier_ini_script);
$this->chargerParametresAutorises();
$this->chargerParametres();
}
private static function getMsgNiveauTxt($niveau) {
return self::$msg_niveaux_txt[$niveau];
}
protected function getScriptNom() {
return $this->script_nom;
}
protected function getScriptChemin($doit_exister = true) {
$chemin = Config::get('chemin_modules').$this->getScriptNom().DS;
if (!file_exists($chemin) && $doit_exister) {
trigger_error("Erreur: le module '".$this->getScriptNom()."' n'existe pas ($chemin)\n", E_USER_ERROR);
}
return $chemin;
}
protected function getParametre($parametre) {
$retour = false;
if (!is_null($parametre)) {
$parametre = ltrim($parametre, '-');
if (isset($this->parametres[$parametre])) {
$retour = $this->parametres[$parametre];
} else {
trigger_error("Erreur: la ligne de commande ne contenait pas le paramêtre '$parametre'\n", E_USER_WARNING);
}
}
return $retour;
}
abstract public function executer();
private function chargerParametresAutorises() {
foreach ($this->parametres_autorises_defaut as $c => $v) {
if (isset($this->parametres_autorises[$c])) {
trigger_error("Erreur: le script '".$this->getScriptNom()."' ne peut définir le paramêtre '$c' car il existe déjà\n", E_USER_ERROR);
} else {
$this->parametres_autorises[$c] = $v;
}
}
}
private function chargerParametres() {
$parametres_cli = $this->parametres_cli;
 
// Récupération des paramêtresgetMsgNiveauTxt
foreach ($this->parametres_autorises as $p_nom => $p_val) {
if (count($parametres_cli) == 0) {
if ($p_val[0]) {
trigger_error("Erreur: paramêtre manquant '".$p_nom."' \n", E_USER_WARNING);
}
}
if ($p_nom == '...') {
$this->parametres['...'] = array();
foreach ($parametres_cli as $arg) {
$this->parametres['...'][] = $arg;
}
$parametres_cli = array();
break;
} else {
if (isset($parametres_cli[$p_nom])) {
// Attribution de la valeur issue de la ligne de commande
$this->parametres[ltrim($p_nom, '-')] = $parametres_cli[$p_nom];
unset($parametres_cli[$p_nom]);
} else {
// Attribution de la valeur par défaut
if ($p_val[1] !== true) {
$this->parametres[ltrim($p_nom, '-')] = $p_val[1];
unset($parametres_cli[$p_nom]);
}
}
}
}
// Gestion de l'excédant de paramêtres
if (count($parametres_cli)) {
trigger_error("Erreur: trop de paramêtres\n", E_USER_ERROR);
}
}
/**
* Affiche un message d'erreur formaté.
* Si le paramétre de verbosité (-v) vaut 1 ou plus, le message est écrit dans le fichier de log et afficher dans la console.
*
* @param string le message d'erreur avec des %s.
* @param array le tableau des paramêtres à insérer dans le message d'erreur.
* @return void.
*/
protected function traiterErreur($message, $tab_arguments = array()) {
$this->traiterMessage($message, $tab_arguments, self::MSG_ERREUR);
}
/**
* Affiche un message d'avertissement formaté.
* Si le paramétre de verbosité (-v) vaut 1, le message est écrit dans le fichier de log.
* Si le paramétre de verbosité (-v) vaut 2 ou plus, le message est écrit dans le fichier de log et afficher dans la console.
*
* @param string le message d'erreur avec des %s.
* @param array le tableau des paramêtres à insérer dans le message d'erreur.
* @return void.
*/
protected function traiterAvertissement($message, $tab_arguments = array()) {
$this->traiterMessage($message, $tab_arguments, self::MSG_AVERTISSEMENT);
}
/**
* Retourne un message d'information formaté.
* Si le paramétre de verbosité (-v) vaut 1 ou 2 , le message est écrit dans le fichier de log.
* Si le paramétre de verbosité (-v) vaut 3 ou plus, le message est écrit dans le fichier de log et afficher dans la console.
*
* @param string le message d'information avec des %s.
* @param array le tableau des paramêtres à insérer dans le message d'erreur.
* @return void.
*/
protected function traiterInfo($message, $tab_arguments = array()) {
$this->traiterMessage($message, $tab_arguments, self::MSG_INFO);
}
/**
* Retourne un message formaté en le stockant dans un fichier de log si nécessaire.
*
* @param string le message d'erreur avec des %s.
* @param array le tableau des paramêtres à insérer dans le message d'erreur.
* @param int le niveau de verbosité à dépasser pour afficher les messages.
* @return void.
*/
private function traiterMessage($message, $tab_arguments, $niveau = self::MSG_LOG) {
$log = $this->formaterMsg($message, $tab_arguments, $niveau);
if ($this->getParametre('v') > ($niveau - 1)) {
echo $log;
if (Config::get('log_script')) {
// TODO : lancer le log
}
}
}
/**
* Retourne un message d'information formaté.
*
* @param string le message d'information avec des %s.
* @param array le tableau des paramêtres à insérer dans le message d'erreur.
* @return string le message d'erreur formaté.
*/
protected function formaterMsg($message, $tab_arguments = array(), $niveau = null) {
$texte = vsprintf($message, $tab_arguments);
$prefixe = date('Y-m-j_H:i:s', time());
$prefixe .= is_null($niveau) ? ' : ' : ' - '.self::getMsgNiveauTxt($niveau).' : ';
$log = $prefixe.$texte."\n";
return $log;
}
/**
* Utiliser cette méthode dans une boucle pour afficher un message suivi du nombre de tour de boucle effectué.
* Vous devrez vous même gérer le retour à la ligne à la sortie de la boucle.
*
* @param string le message d'information.
* @param int le nombre de départ à afficher.
* @return void le message est affiché dans la console.
*/
protected function afficherAvancement($message, $depart = 0) {
if (! isset(self::$avancement[$message])) {
self::$avancement[$message] = $depart;
echo "$message : ";
$actuel =& self::$avancement[$message];
echo $actuel++;
} else {
$actuel =& self::$avancement[$message];
// Cas du passage de 99 (= 2 caractères) à 100 (= 3 caractères)
$passage = 0;
if (strlen((string) ($actuel - 1)) < strlen((string) ($actuel))) {
$passage = 1;
}
echo str_repeat(chr(8), (strlen((string) $actuel) - $passage));
echo $actuel++;
}
}
}
?>
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/trunk/doc/PhpDoc/files/Config.php.txt
New file
0,0 → 1,283
<?php
// declare(encoding='UTF-8');
/**
* 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.
* Si vous avez besoin de modifier dynamiquement des paramètres de configuration, utiliser le @see Registe, il est fait pour ça.
*
* @category PHP 5.2
* @package Framework
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id: Config.php 447 2013-12-19 10:52:37Z jpm $
* @link /doc/framework/
*/
 
class Config {
 
/** Instance de la classe pointant sur elle même (pour le pattern singleton). */
private static $instance = null;
 
/** Paramètres de configuration. */
private static $parametres = array();
 
private function __construct() {
// Définition de paramètres avant chargement du config.ini
self::$parametres = array(
'fichier_config' => 'config%s.ini',
'chemin_framework' => dirname(__FILE__).DS
);
 
// Chargement du fichier config.ini du Framework
$existe = self::parserFichierIni(self::$parametres['chemin_framework'].sprintf(self::$parametres['fichier_config'], ''));
if ($existe === false) {
trigger_error("Veuillez configurer le Framework en renommant le fichier config.defaut.ini en config.ini.", E_USER_ERROR);
}
 
// Chargement du fichier config.ini par défaut de l'application
$chemin_config_defaut_appli = self::$parametres['chemin_configurations'].sprintf(self::$parametres['fichier_config'], '');
self::parserFichierIni($chemin_config_defaut_appli);
 
// Chargement des fichiers config.ini contextuels
if (PHP_SAPI == 'cli') {// mode console
foreach ($_SERVER['argv'] as $cle => $valeur) {
if ($valeur == '-contexte') {
self::chargerFichierContexte($_SERVER['argv'][($cle+1)]);
break;
}
}
} else {// mode web
// Pour Papyrus
if (defined('PAP_VERSION')) {
self::chargerFichierContexte('papyrus');
}
// Via le fichie .ini par défaut de l'appli
if (Config::existeValeur('info.contexte', self::$parametres)) {
self::chargerFichierContexte(Config::get('info.contexte'));
}
 
// Chargement du contexte présent dans le GET
if (isset($_GET['contexte'])) {
$_GET['contexte'] = strip_tags($_GET['contexte']);
self::chargerFichierContexte($_GET['contexte']);
}
 
// Chargement du contexte présent dans le POST
if (isset($_POST['contexte'])) {
$_POST['contexte'] = strip_tags($_POST['contexte']);
self::chargerFichierContexte($_POST['contexte']);
}
}
}
 
/**
* Charge le fichier de config correspondant au contexte
* @param string $contexte le contexte
*/
private static function chargerFichierContexte($contexte) {
$chemin_config_appli_contextuel = self::$parametres['chemin_configurations'];
$chemin_config_appli_contextuel .= sprintf(self::$parametres['fichier_config'], '_'.$contexte);
self::parserFichierIni($chemin_config_appli_contextuel);
}
 
/**
* Parse le fichier ini donné en paramètre
* @param string $fichier_ini nom du fichier ini à parser
* @return array tableau contenant les paramètres du fichier ini
*/
private static function parserFichierIni($fichier_ini) {
$retour = false;
if (file_exists($fichier_ini)) {
$ini = parse_ini_file($fichier_ini, true);
$ini = self::analyserTableauIni($ini);
$retour = true;
} else {
error_log("Fichier de configuration introuvable : $fichier_ini");
}
return $retour;
}
 
/**
* Fusionne un tableau de paramètres avec le tableau de paramètres global
* @param array $ini le tableau à fusionner
*/
private static function fusionner(array $ini) {
self::$parametres = array_merge(self::$parametres, $ini);
}
 
/**
* Renvoie la valeur demandée grâce une chaîne de paramètres
* @param string $param la chaine de paramètres
* @param array $config le tableau de paramètre
* @return string la valeur de la chaine demandée
*/
private static function getValeur($param, $config) {
if ($param === null) {
return null;
} else {
if (isset($config[$param])) {
return $config[$param];
} else if (strpos($param, '.') !== false) {
$pieces = explode('.', $param, 2);
if (strlen($pieces[0]) && strlen($pieces[1])) {
if (isset($config[$pieces[0]])) {
if (is_array($config[$pieces[0]])) {
return self::getValeur($pieces[1], $config[$pieces[0]]);
}
}
}
} else {
return null;
}
}
}
 
/**
* Teste si param existe dans le tableau config
* @param string $param nom du paramètre
* @param array tableau de configuration
*/
private static function existeValeur($param, $config) {
$retour = false;
if (self::getValeur($param, $config) !== null) {
$retour = true;
}
return $retour;
}
 
/**
* Vérifie si l'instance de classe à été crée, si non la crée
*/
private static function verifierCreationInstance() {
if (empty(self::$instance)) {
self::$instance = new Config();
}
}
 
/**
* Analyse un tableau de paramètres.
* @param array $config le tableau de paramètres
* @return array le tableau analysé
*/
private static function analyserTableauIni($config = array()) {
foreach ($config as $cle => &$valeur) {
if (is_array($valeur)) {
$config[$cle] = self::analyserTableauIni($valeur);
} else {
self::evaluerReferences($config, $cle);
self::evaluerPhp($config, $cle);
self::evaluerCle($config, $cle, $config[$cle]);
}
self::fusionner($config);
}
return $config;
}
 
/**
* Dans le cas des chaine de configuration à sous clé (ex.: cle.souscle)
* évalue les valeurs correspondantes et crée les sous tableaux associés.
* @param array $config tableau de configuration (par référence)
* @param string $cle la cle dans le tableau
* @param string $valeur la valeur à affecter
*/
private static function evaluerCle(&$config, $cle, $valeur) {
if (strpos($cle, '.') !== false) {
unset($config[$cle]);
$pieces = explode('.', $cle, 2);
if (strlen($pieces[0]) && strlen($pieces[1])) {
if (isset($config[$pieces[0]]) && !is_array($config[$pieces[0]])) {
$m = "Ne peut pas créer de sous-clé pour '{$pieces[0]}' car la clé existe déjà";
trigger_error($m, E_USER_WARNING);
} else {
$config[$pieces[0]][$pieces[1]] = $valeur;
$config[$pieces[0]] = self::evaluerCle($config[$pieces[0]], $pieces[1], $valeur);
}
} else {
$m = "Clé invalide '$cle'";
trigger_error($m, E_USER_WARNING);
}
} else {
$config[$cle] = $valeur;
}
return $config;
}
 
/**
* Évalue les valeurs de références à une clé dans le tableau config (cas du ref:cle).
* @param array $config tableau de configuration
* @param string $cle la clé dont il faut évaluer les références
*/
private static function evaluerReferences(&$config, $cle) {
if (preg_match_all('/{ref:([A-Za-z0-9_.-]+)}/', $config[$cle], $correspondances, PREG_SET_ORDER)) {
foreach ($correspondances as $ref) {
$config[$cle] = str_replace($ref[0], self::getValeur($ref[1], self::$parametres), $config[$cle]);
}
}
}
 
/**
* Évalue le code php contenu dans un clé tu tableau config.
* @param array $config tableau de configuration (par référence)
* @param string $cle le clé du tableau dont il faut évaluer la valeur
*/
private static function evaluerPhp(&$config, $cle) {
if (preg_match('/^php:(.+)$/', $config[$cle], $correspondances)) {
eval('$config["'.$cle.'"] = '.$correspondances[1].';');
}
}
 
/**
* Charge un fichier ini dans le tableau des paramètres de l'appli.
* @param string $fichier_ini le nom du fichier à charger
* @return array le fichier ini parsé
*/
public static function charger($fichier_ini) {
self::verifierCreationInstance();
return self::parserFichierIni($fichier_ini);
}
 
/**
* Accesseur pour la valeur d'un paramètre.
* @param string $param le nom du paramètre
* @return string la valeur du paramètre
*/
public static function get($param = null) {
self::verifierCreationInstance();
return self::getValeur($param, self::$parametres);
}
 
/**
* Vérifie si la valeur d'un paramètre existe.
* @param string $param le nom du paramètre
* @return boolean vrai si le paramètre existe, false sinon
*/
public static function existe($param) {
self::verifierCreationInstance();
return self::existeValeur($param, self::$parametres);
}
 
/**
* Vérifie que tous les paramêtres de config nécessaires au fonctionnement d'une classe existe dans les fichiers
* de configurations.
* L'utilisation de cette méthode depuis la classe Config évite de faire appel à une classe supplémentaire.
*
* @param array $parametres tableau des noms des paramètres de la config à verifier.
* @return boolean true si tous les paramétres sont présents sinon false.
*/
public static function verifierPresenceParametres(Array $parametres) {
$ok = true;
foreach ($parametres as $param) {
if (is_null(self::get($param))) {
$classe = get_class();
$m = "L'utilisation de la classe $classe nécessite de définir '$param' dans un fichier de configuration.";
trigger_error($m, E_USER_ERROR);
$ok = false;
}
}
return $ok;
}
}
?>
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/trunk/doc/PhpDoc/files/GestionnaireException.php.txt
New file
0,0 → 1,250
<?php
// declare(encoding='UTF-8');
/**
* Classe de gestion des exceptions.
* C'est un Singleton.
*
* @category PHP 5.2
* @package Framework
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
* @author Jean-Pascal MILCENT <jmp@tela-botanica.org>
* @copyright Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id: GestionnaireException.php 369 2011-10-03 12:47:17Z jpm $$
* @link /doc/framework/
*
*/
class GestionnaireException {
const MODE_CLI = 'cli';
/** Liste des exceptions enregistrées */
private static $exceptions = array();
 
/** Détermine si l'on affiche ou non le contexte */
private static $contexte = false;
 
/** Détermine si l'on loggue ou non les erreurs */
private static $logger = false;
 
/** Détermine si l'affichage des erreurs est forcé (true) ou pas (false) à la destruction de la classe */
private static $afficher = false;
 
/** Definit si php est lancé en ligne de commande ou en mode serveur */
private static $mode = null ;
 
/** Tableau des noms des paramètres à définir dans le fichier de config car obligatoirement nécessaire à cette classe.*/
private static $parametres_obligatoires = array('debogage', 'debogage_contexte', 'log_debogage');
/** Initialise le Gestionnaire d'exceptions et d'erreur sans tenir comptes des paramêtres de config. */
public static function initialiser() {
self::$mode = php_sapi_name();
// Désactivation des balises HTML dans les messages d'erreur de PHP en mode ligne de commande
if (self::$mode == self::MODE_CLI) {
ini_set('html_errors', 0);
}
set_exception_handler(array(get_class(),'gererException'));
set_error_handler(array(get_class(),'gererErreur'));
}
/** Configure le Gestionnaire d'exceptions et d'erreur à partir des paramêtres de config. */
public static function configurer() {
Config::verifierPresenceParametres(self::$parametres_obligatoires);
self::$contexte = Config::get('debogage_contexte');
self::$logger = Config::get('log_debogage');
self::$afficher = Config::get('debogage');
}
/**
* Renvoie le nombre d'exceptions et d'erreurs levées.
* @see getExceptions() pour obtenir les exceptions formatées.
* @since 0.3
* @return int le nombre d'exception actuellement levées
*/
public static function getExceptionsNbre() {
return count(self::$exceptions);
}
/**
* Renvoie le booleen définissant si l'on affiche le contexte ou non
* @return bool true si on affiche le contexte sinon false.
*/
public static function getContexte() {
return self::$contexte;
}
 
/**
* Definit si l'on veut afficher le contexte ou non
* @param bool true si on veut afficher le contexte, false sinon, par défaut vaut false
*/
public static function setContexte($contexte) {
self::$contexte = $contexte;
}
 
/**
* 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.
* @param Exception $e l'exception à traiter
*/
public static function gererException(Exception $e) {
$cle = hash('md5', $e->getMessage().'-'.$e->getFile().'-'.$e->getLine());
if (!isset(self::$exceptions[$cle])) {
self::$exceptions[$cle] = $e;
self::loggerException($e);
}
}
 
/**
* Gère les erreurs en les convertissant en exceptions (remplace la fonction gestion d'erreurs native de php)
* @param int $niveau le niveau de l'erreur
* @param string $message le message associé à l'erreur
* @param string $fichier le nom du fichier où l'erreur s'est produite
* @param int $ligne la ligne où l'erreur s'est produite
* @param string $contexte le contexte associé à l'erreur
*/
public static function gererErreur($niveau, $message, $fichier, $ligne, $contexte){
// Si un rapport d'erreur existe, création d'une exception
if (error_reporting() != 0) {
$e = new ErrorException($message, 0, $niveau, $fichier, $ligne);
self::gererException($e);
}
return null;
}
 
/**
* Renvoie les exceptions au format (X)HTML ou bien au format texte suivant le mode d'utilisation de PHP.
* @since 0.3
* @deprecated
* @see getExceptionsFormatees()
* @return string les exceptions formatées en texte ou (X)HTML.
*/
public static function getExceptions() {
return self::getExceptionsFormatees();
}
/**
* Renvoie les exceptions au format (X)HTML ou bien au format texte suivant le mode d'utilisation de PHP.
* @since 0.3
* @return string les exceptions formatées en texte ou (X)HTML.
*/
public static function getExceptionsFormatees() {
$retour = '';
if (self::getExceptionsNbre() > 0) {
foreach (self::$exceptions as $cle => $e) {
switch (self::$mode) {
case self::MODE_CLI :
$retour .= self::formaterExceptionTxt($e);
break;
default:
$retour .= self::formaterExceptionXhtml($e);
}
// Nous vidons le tableau des exceptions au fur et à mesure pour éviter le réaffichage avec le destructeur.
unset(self::$exceptions[$cle]);
}
}
return $retour;
}
/**
* 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.
* @since 0.3
* @return array le tableau trié d'objet Exception.
*/
public static function getExceptionsTriees() {
$retour = array();
if (self::getExceptionsNbre() > 0) {
foreach (self::$exceptions as $cle => $e) {
$retour[$e->getSeverity()][] = $e;
// Nous vidons le tableau des exceptions au fur et à mesure pour éviter le réaffichage avec le destructeur.
unset(self::$exceptions[$cle]);
}
ksort($retour);
}
return $retour;
}
 
/**
* Logue une exception donnée sous une forme lisible si self::logger vaut true.
* @param Exception $e l'exception à logger
*/
private static function loggerException(Exception $e) {
if (self::$logger) {
$message = self::formaterExceptionTxt($e);
Log::ajouterEntree('erreurs', $message);
}
}
/**
* Formate une exception de type Notice générée par la classe Debug.
* Seul le message est gardé car les autres infos font référence à la classe Debug et non à l'endroit où
* le débug est lancée.
* TODO : faire en sorte d'afficher le fichier et la ligne où le débug est lancé.
* @since 0.3
* @param Exception l'exception à formater.
*/
public static function formaterExceptionDebug(Exception $e) {
$txt = '';
if ($e->getSeverity() == E_USER_NOTICE) {
$txt = $e->getMessage();
} else {
$txt = self::formaterExceptionTxt($e);
}
return $txt;
}
/**
* Formate en texte une exception passée en paramètre.
* @since 0.3
* @param Exception l'exception à formater.
*/
public static function formaterExceptionTxt(Exception $e) {
$message = '';
$message .= $e->getMessage()."\n";
$message .= 'Fichier : '.$e->getFile()."\n";
$message .= 'Ligne : '.$e->getLine()."\n";
if (self::getContexte()) {
$message .= 'Contexte : '."\n".print_r($e->getTraceAsString(), true)."\n";
}
$message .= "\n";
return $message;
}
/**
* Formate en (X)HTML une exception passée en paramètre.
* @since 0.3
* @param Exception l'exception à formater.
*/
public static function formaterExceptionXhtml(Exception $e) {
$message = '';
$message .= '<div class="debogage">'."\n";
$message .= $e->getMessage()."\n";
$message .= '<span class="debogage_fichier">'.'Fichier : '.$e->getFile().'</span>'."\n";
$message .= '<span class="debogage_ligne">'.'Ligne : '.$e->getLine().'</span>'."\n";
if (self::getContexte()) {
$message .= '<pre>'."\n";
$message .= '<strong>Contexte : </strong>'."\n".print_r($e->getTraceAsString(), true)."\n";
$message .= '</pre>'."\n";
}
$message .= '</div>'."\n";
return $message;
}
/**
* 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.
*/
public function __destruct() {
// Si des erreurs n'ont pas été affichée nous forçons leur affichage
if (self::$afficher && self::getExceptionsNbre() > 0) {
echo self::getExceptionsFormatees();
}
}
 
}
?>
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/trunk/doc/PhpDoc/files/Cli.php.txt
New file
0,0 → 1,108
<?php
// declare(encoding='UTF-8');
/**
* CLI permet de récupérer les paramètres passés en ligne de commande pour instancier une classe héritant de la classe abstraite
* Script.
* Elle va déclencher l'éxecution du script via l'appel de la méthode executer().
* C'est une Singleton.
*
* @category PHP 5.2
* @package Framework
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Delphine CAUQUIL <delphine@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @since 0.3
* @version $Id: Cli.php 387 2011-10-28 15:57:40Z jpm $
* @link /doc/framework/
*/
 
class Cli {
 
/** Tableau des noms des paramètres à définir dans le fichier de config car obligatoirement nécessaire à cette classe.*/
private static $parametres_obligatoires = array('chemin_modules');
 
 
/**
* Execute la ligne de commande en récupérant le nom du script à lancer et ses paramètres.
* Instancie la classe du script à lancer et appelle la méthode executer().
* @return void
*/
public static function executer() {
if ($_SERVER['argc'] < 2){
trigger_error("Erreur: vous n'avez pas indiqué le nom du script. Voir '".$_SERVER['argv'][0]." help'.\n", E_USER_ERROR);
}
 
// Récupération de la ligne de commande
$argv = $_SERVER['argv'];
// Nous dépilons le nom du fichier qui initialise le framework et appele cette méthode.
array_shift($argv);
// Nous dépilons le nom du script à lancer
$script = array_shift($argv);
// Récupération des paramètres d'execution du script
$parametres = self::getParametres($argv);
 
// Chargement du script à lancer
$Script = Cli::charger($script, $parametres);
if (!is_null($Script)) {
$Script->executer();
}
 
// Affichage des exceptions et erreurs générées par le script
echo GestionnaireException::getExceptions();
 
// Fin d'execution
exit(0);
}
 
private static function charger($script_nom, $parametres) {
$Script = null;
Config::verifierPresenceParametres(self::$parametres_obligatoires);
 
if (strpos($script_nom, DS)) {
$decompoScriptNom = explode(DS, $script_nom);
$script_nom = array_pop($decompoScriptNom);
$dossier_nom = implode(DS, $decompoScriptNom);
} else {
$dossier_nom = strtolower($script_nom);
}
 
$classe_nom = self::obtenirNomClasse($script_nom);
$fichier_script = Config::get('chemin_modules').$dossier_nom.DS.$classe_nom.'.php';
 
if (!file_exists($fichier_script)){
trigger_error("Erreur : script '$fichier_script' inconnu!\n", E_USER_ERROR);
} else {
require_once $fichier_script;
if (!class_exists( $classe_nom)) {
trigger_error("Erreur: impossible de trouver la classe de la commande : $classe_nom\n", E_USER_ERROR);
} else {
$Script = new $classe_nom($script_nom, $parametres);
}
}
return $Script;
}
 
private static function obtenirNomClasse($script_nom) {
$nom_classe = implode('', array_map('ucfirst', explode('_', strtolower($script_nom))));
return $nom_classe;
}
 
private static function getParametres($argv) {
$parametres = array();
// Récupération des options
while (count($argv)) {
if (isset($argv[1]) && $argv[1]{0} != '-') {
$param = array_shift($argv);
$parametres[$param] = array_shift($argv);
} elseif (!isset($argv[1]) || $argv[1]{0} == '-') {
$parametres[array_shift($argv)] = null;
} else {
trigger_error("Erreur: valeur manquante pour le paramêtre '".$argv[0]."' \n", E_USER_ERROR);
}
}
return $parametres;
}
}
?>
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/trunk/doc/PhpDoc/files/Registre.php.html
New file
0,0 → 1,278
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-800288976"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-800288976" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content file">
<nav>
</nav>
 
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small></small>Registre.php</h1>
<p><em></em></p>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="../classes/Registre.html">Registre</a></td>
<td><em>Classe Registre, qui permet un accès à différentes variables et paramètres à travers les autres classes.</em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
 
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label"></h3>
</div>
<div class="modal-body">
<pre data-src="../files/Registre.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/files/utilitaires.Chaine.php.html
New file
0,0 → 1,278
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1894297329"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1894297329" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content file">
<nav>
</nav>
 
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small>utilitaires</small>Chaine.php</h1>
<p><em></em></p>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="../classes/Chaine.html">Chaine</a></td>
<td><em>Classe fournissant des méthodes statiques de manipulation des chaînes de caractères (String).</em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
 
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label"></h3>
</div>
<div class="modal-body">
<pre data-src="../files/utilitaires/Chaine.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/files/Chronometre.php.html
New file
0,0 → 1,278
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-826913377"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-826913377" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content file">
<nav>
</nav>
 
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small></small>Chronometre.php</h1>
<p><em></em></p>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="../classes/Chronometre.html">Chronometre</a></td>
<td><em>Chronometre permet de stocker et d&#039;afficher les temps d&#039;éxécution de script.</em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
 
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label"></h3>
</div>
<div class="modal-body">
<pre data-src="../files/Chronometre.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/files/RestClient.php.txt
New file
0,0 → 1,219
<?php
// declare(encoding='UTF-8');
/**
* Classe client permettant d'interroger des services web REST.
*
* @category php 5.2
* @package Framework
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id: RestClient.php 439 2013-10-14 15:48:41Z raphael $
*/
class RestClient {
const HTTP_URL_REQUETE_SEPARATEUR = '&';
const HTTP_URL_REQUETE_CLE_VALEUR_SEPARATEUR = '=';
private $http_methodes = array('GET', 'POST', 'PUT', 'DELETE', 'HEAD', 'OPTIONS', 'CONNECT', 'TRACE');
protected $parametres = null;
private $url = null;
private $reponse_entetes = null;
//+----------------------------------------------------------------------------------------------------------------+
// ACCESSEURS
public function getReponseEntetes() {
return $this->reponse_entetes;
}
public function getParametre($cle) {
$valeur = (isset($this->parametres[$cle])) ? $this->parametres[$cle] : null;
return $valeur;
}
public function ajouterParametre($cle, $valeur) {
$this->parametres[$cle] = $valeur;
}
public function supprimerParametre($cle) {
unset($this->parametres[$cle]);
}
public function nettoyerParametres() {
$this->parametres = null;
}
//+----------------------------------------------------------------------------------------------------------------+
// MÉTHODES
public function consulter($url) {
$retour = $this->envoyerRequete($url, 'GET');
return $retour;
}
public function ajouter($url, Array $donnees) {
$retour = $this->envoyerRequete($url, 'PUT', $donnees);
return $retour;
}
public function modifier($url, Array $donnees) {
$retour = $this->envoyerRequete($url, 'POST', $donnees);
return $retour;
}
public function supprimer($url) {
$retour = $this->envoyerRequete($url, 'DELETE');
return $retour;
}
public function envoyerCurlRequete($url, $mode, Array $donnees = array()) {
$this->url = $url;
$contenu = false;
if (! in_array($mode, $this->http_methodes)) {
$e = "Le mode de requête '$mode' n'est pas accepté!";
trigger_error($e, E_USER_WARNING);
} else {
if ($mode == 'GET') {
$this->traiterUrlParametres();
}
 
$ch = curl_init($this->url);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
 
if($mode == 'POST') curl_setopt($ch, CURLOPT_POST, TRUE);
elseif($mode == 'PUT') curl_setopt($ch, CURLOPT_PUT, TRUE);
elseif($mode == 'DELETE') curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
 
if($donnees) curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($donnees, null, self::HTTP_URL_REQUETE_SEPARATEUR));
 
/* if(isset($_COOKIES["XDEBUG_PROFILE"])) curl_setopt($ch, CURLOPT_COOKIE, "XDEBUG_PROFILE");
$caller = self::getCaller(debug_backtrace());
@curl_setopt($ch, CURLOPT_REFERER, sprintf("%s[%s:%d:%s]", $_SERVER['REQUEST_URI'], $caller['file'], $caller['line'], $caller['function'])); // $_SERVER['QUERY_STRING']; // debug */
$flux = curl_exec($ch);
curl_close($ch);
 
if (!$flux) {
$this->reponse_entetes = $http_response_header;
trigger_error(sprintf("fail: %s \"%s\" (%s)", strtoupper($mode), $this->url, http_build_query($donnees, null, self::HTTP_URL_REQUETE_SEPARATEUR)),
E_USER_WARNING);
} else {
// attention, CURLOPT_FOLLOWLOCATION amène le stream à contenir plusieurs section d'header HTTP successives
$t = explode("\r\n\r\n", $flux);
$contenu = array_splice($t, -1);
$dernier_entete = array_splice($t, -1);
$contenu = $contenu[0];
$dernier_entete = $dernier_entete[0];
 
// XXX: mimic stream_get_meta_data() (ce qui n'est pas très propre, le code appelant ferait mieux de se mettre à jour)
$this->reponse_entetes = array('wrapper_data' => explode("\r\n", $dernier_entete));
}
$this->traiterEntete();
}
$this->reinitialiser();
return $contenu;
}
 
static function getCaller($trace) {
foreach($trace as $v) if(strpos($v['file'], '/modules/') !== false) return $v;
return NULL;
}
 
public function envoyerRequete($url, $mode, Array $donnees = array()) {
// error_log("framework/envoyerRequete: $mode $url");
 
// nous n'activons le wrapper que pour GET pour l'instant
// car l'utilisation de curl pour les autres modes pourrait
// vraisemblablement induire des comportements différents. (test-suite needed)
if(FALSE && function_exists('curl_init') && $mode == 'GET') {
return $this->envoyerCurlRequete($url, $mode, $donnees);
}
 
$this->url = $url;
$contenu = false;
if (! in_array($mode, $this->http_methodes)) {
$e = "Le mode de requête '$mode' n'est pas accepté!";
trigger_error($e, E_USER_WARNING);
} else {
if ($mode == 'GET') {
$this->traiterUrlParametres();
}
$contexte = stream_context_create(array(
'http' => array(
'method' => $mode,
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'content' => http_build_query($donnees, null, self::HTTP_URL_REQUETE_SEPARATEUR))));
$flux = @fopen($this->url, 'r', false, $contexte);
if (!$flux) {
$this->reponse_entetes = $http_response_header;
trigger_error(sprintf("fail: %s \"%s\" (%s)", strtoupper($mode), $this->url, http_build_query($donnees, null, self::HTTP_URL_REQUETE_SEPARATEUR)),
E_USER_WARNING);
 
} else {
// Informations sur les en-têtes et métadonnées du flux
$this->reponse_entetes = stream_get_meta_data($flux);
// Contenu actuel de $url
$contenu = stream_get_contents($flux);
fclose($flux);
}
$this->traiterEntete();
}
$this->reinitialiser();
return $contenu;
}
private function traiterUrlParametres() {
$parametres = array();
if (count($this->parametres) > 0) {
foreach ($this->parametres as $cle => $valeur) {
$cle = rawurlencode($cle);
$valeur = rawurlencode($valeur);
$parametres[] = $cle.self::HTTP_URL_REQUETE_CLE_VALEUR_SEPARATEUR.$valeur;
}
$url_parametres = implode(self::HTTP_URL_REQUETE_SEPARATEUR, $parametres);
$this->url = $this->url.'?'.$url_parametres;
}
}
private function traiterEntete() {
$infos = $this->analyserEntete();
$this->traiterEnteteDebogage($infos);
}
private function analyserEntete() {
$entetes = $this->reponse_entetes;
$infos = array('date' => null, 'uri' => $this->url, 'debogages' => null);
if (isset($entetes['wrapper_data'])) {
$entetes = $entetes['wrapper_data'];
}
foreach ($entetes as $entete) {
if (preg_match('/^X_REST_DEBOGAGE_MESSAGES: (.+)$/', $entete, $match)) {
$infos['debogages'] = json_decode($match[1]);
}
if (preg_match('/^Date: .+ ([012][0-9]:[012345][0-9]:[012345][0-9]) .*$/', $entete, $match)) {
$infos['date'] = $match[1];
}
}
return $infos;
}
private function traiterEnteteDebogage($entetes_analyses) {
if (isset($entetes['debogages'])) {
$date = $entetes['date'];
$uri = $entetes['uri'];
$debogages = $entetes['debogages'];
foreach ($debogages as $debogage) {
$e = "DEBOGAGE : $date - $uri :\n$debogage";
trigger_error($e, E_USER_NOTICE);
}
}
}
private function reinitialiser() {
$this->nettoyerParametres();
}
}
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/trunk/doc/PhpDoc/files/CacheSimple.php.txt
New file
0,0 → 1,127
<?php
// declare(encoding='UTF-8');
/**
* Classe Cache permettant de mettre en cache des données de façon extremement simple.
* Le cache est stocker dans des fichiers textes.
* Le contrôle de la durée de vie du cache se fait avec la fonction PHP filemtime.
* Si la durée de vie du cache est modifiée dans le constructeur ou le fichier de config, alors la durée de vie de l'ensemble
* des fichiers de cache est modifiée en conséquence.
* Les clés pour le tableau des options et les valeurs par défaut sont indiquées dans l'attribut options de la classe.
*
* @category php 5.2
* @package Framework
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license http://framework.zend.com/license/new-bsd Licence New BSD
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id: CacheSimple.php 445 2013-10-24 17:08:14Z raphael $
* @link /doc/framework/
*/
// TODO : voir ce qui est le plus pratique : error_log ou le gestionnaire de bogue du framework
class CacheSimple {
 
private $mise_en_cache = null;
private $stockage_chemin = null;
private $duree_de_vie = null;
 
private $options = array(
'mise_en_cache' => 'true',
'stockage_chemin' => 'Fichier::getDossierTmp()',
'duree_de_vie' => '3600*24'
);
 
public function __construct($options = array()) {
extract($options);
$this->mise_en_cache = is_bool($mise_en_cache) ? $mise_en_cache : $mise_en_cache == '' ? false : true;
 
if ($this->mise_en_cache) {
$this->stockage_chemin = isset($stockage_chemin) ? realpath($stockage_chemin) : Fichier::getDossierTmp();
if (!realpath($stockage_chemin)) {
error_log(sprintf("%s: Attention, %s invalide: creation [%s]",
__FILE__,
$stockage_chemin,
@$_SERVER['REQUEST_URI']));
mkdir($stockage_chemin, 0755, TRUE);
}
if (!realpath($stockage_chemin)) {
error_log(sprintf("%s: Attention, realpath(%s) invalide [%s]",
__FILE__,
$stockage_chemin,
@$_SERVER['REQUEST_URI']));
} else if(!is_writable(realpath($stockage_chemin))) {
error_log(sprintf("%s: Attention, realpath(%s) non-inscriptible [%s]",
__FILE__,
realpath($stockage_chemin),
@$_SERVER['REQUEST_URI']));
} else {
$this->duree_de_vie = isset($duree_de_vie) ? $duree_de_vie : 3600*24;
}
}
}
 
private function initialiserOptionsParConfig() {
while (list($nom, $valeur) = each($this->options)) {
if (Config::existe($nom)) {
$this->$nom = Config::get($nom);
}
}
}
 
/**
* Teste si le cache est disponible pour l'id donné et (si oui) le retourne (sinon renvoie false)
*
* @param string $id l'identifiant du Cache.
* @return string|false les données en cache.
*/
public function charger($id) {
$contenu = false;
if ($this->mise_en_cache) {
$chemin_fichier_cache = $this->stockage_chemin.DS.$id.'.txt';
if (file_exists($chemin_fichier_cache ) && (time() - @filemtime($chemin_fichier_cache) < $this->duree_de_vie)) {
$contenu = file_get_contents($chemin_fichier_cache);
}
}
return $contenu;
}
 
/**
* Sauvegarde la chaine de données dans un fichier texte.
*
* Note : $contenu est toujours de type "string". C'est à vous de gérer la sérialisation.
*
* @param string $contenu les données à mettre en cache.
* @param string $id l'identifiant du Cache.
* @return boolean true si aucun problème
*/
public function sauver($contenu, $id) {
if (! $this->mise_en_cache) return FALSE;
 
$ok = false;
$chemin_fichier_cache = $this->stockage_chemin.DS.$id.'.txt';
if (!file_exists($chemin_fichier_cache) || (time() - @filemtime($chemin_fichier_cache) > $this->duree_de_vie)) {
$dossier_fichier_cache = dirname($chemin_fichier_cache);
if (!is_dir($dossier_fichier_cache))
{
mkdir($dossier_fichier_cache, 0755, true);
}
 
$fh = fopen($chemin_fichier_cache,'w+');
if ($fh) {
if (fwrite($fh, $contenu)) {
if (fclose($fh)) {
error_log(sprintf("%s: caching \"%s\" [%s]", __FILE__, $chemin_fichier_cache, @$_SERVER['REQUEST_URI']));
 
$ok = true;
}
}
// Voir #ZF-4422 pour la raison de l'utilisation de octdec()
@chmod($chemin_fichier_cache, octdec('0777'));
}
}
if(!$ok) error_log(sprintf("%s: ERROR trying to cache \"%s\" [%s]", __FILE__, $chemin_fichier_cache, @$_SERVER['REQUEST_URI']));
return $ok;
}
}
 
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/trunk/doc/PhpDoc/files/RestServeur.php.html
New file
0,0 → 1,278
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-155113547"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-155113547" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content file">
<nav>
</nav>
 
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small></small>RestServeur.php</h1>
<p><em></em></p>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="../classes/RestServeur.html">RestServeur</a></td>
<td><em>Classe principale gérant les services web de type (@link(REST, http://fr.wikipedia.org/wiki/Rest).</em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
 
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label"></h3>
</div>
<div class="modal-body">
<pre data-src="../files/RestServeur.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/files/Framework.php.html
New file
0,0 → 1,394
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-408387512"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-408387512" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content file">
<nav>
</nav>
 
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small></small>Framework.php</h1>
<p><em></em></p>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="../classes/Framework.html">Framework</a></td>
<td><em>Classe de base du Framework :
- fournissant des infos sur l&#039;application,
- paramétrant l&#039;environnement de l&#039;appli et du framework,
- réalisant des traitements sur les variables globales ($_GET, $_POST, $_COOKIE.</em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
 
</aside>
</div>
 
<div class="row-fluid">
<section class="span8 content file">
<h2>Constants</h2>
</section>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_DS" name="constant_DS" class="anchor"></a>
<article id="constant_DS" class="constant">
<h3 class="">DS</h3>
<pre class="signature">DS</pre>
<p><em>Redéfinition de la constante DIRECTORY_SEPARATOR en version abrégée DS</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
<dt>File</dt>
<dd><a href=""><div class="path-wrapper">Framework.php</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_PS" name="constant_PS" class="anchor"></a>
<article id="constant_PS" class="constant">
<h3 class="">PS</h3>
<pre class="signature">PS</pre>
<p><em>Redéfinition de la constante PATH_SEPARATOR en version abrégée PS</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
<dt>File</dt>
<dd><a href=""><div class="path-wrapper">Framework.php</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<section class="span8 content file">
<h2>Functions</h2>
</section>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_nettoyerSlashProfond" name="method_nettoyerSlashProfond" class="anchor"></a>
<article class="method">
<h3 class=" ">nettoyerSlashProfond()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">nettoyerSlashProfond( <span class="argument">$valeur</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$valeur</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
<dt>File</dt>
<dd><a href=""><div class="path-wrapper">Framework.php</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label"></h3>
</div>
<div class="modal-body">
<pre data-src="../files/Framework.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/files/CacheFichier.php.html
New file
0,0 → 1,278
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-73171611"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-73171611" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content file">
<nav>
</nav>
 
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small></small>CacheFichier.php</h1>
<p><em></em></p>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="../classes/CacheFichier.html">CacheFichier</a></td>
<td><em></em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
 
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label"></h3>
</div>
<div class="modal-body">
<pre data-src="../files/CacheFichier.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/files/RestService.php.html
New file
0,0 → 1,278
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-391317991"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-391317991" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content file">
<nav>
</nav>
 
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small></small>RestService.php</h1>
<p><em></em></p>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="../classes/RestService.html">RestService</a></td>
<td><em>Classe principale gérant les services.</em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
 
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label"></h3>
</div>
<div class="modal-body">
<pre data-src="../files/RestService.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/files/Chronometre.php.txt
New file
0,0 → 1,138
<?php
// declare(encoding='UTF-8');
/** Chronometre permet de stocker et d'afficher les temps d'éxécution de script.
*
* 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.
*
* @category PHP 5.2
* @package Framework
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id: Chronometre.php 327 2011-02-08 17:54:34Z jpm $
* @link /doc/framework/
*/
class Chronometre {
/*** Attributs : ***/
private static $pointArretNumero = 1;
private static $temps = array();
 
/** Accesseurs :
*
* @param string $cle la cle associée à un chronomètre particulier
*
* @return int le temps écoulé
*/
private static function getTemps($cle = null) {
if (is_null($cle)) {
$temps = self::$temps;
} else {
foreach (self::$temps as $temps_enrg) {
if (isset($temps_enrg[$cle])) {
$temps = $temps_enrg;
break;
}
}
}
return $temps;
}
 
/** Setteur pour la variable temps
*
* @param array() $moment ajoute des points de chronométrage au tableau _temps
*
* @return null
*/
private static function setTemps($cle, $moment) {
array_push(self::$temps, array($cle => $moment));
}
 
/*** Méthodes : ***/
/**
* Effectue un chronometrage.
* Vous pouvez indiquer le nom du point de chronométrage.
* Si vous n'indiquez rien, un nombre sera généré en débutant à 1.
*
* @param string le nom du point de chronométrage
* @return null
*/
public static function chrono($cle = null) {
if ($cle == null) {
$cle = (count(self::$temps) == 0) ? 'Début' : self::$pointArretNumero++;
}
$moment = microtime();
self::setTemps($cle, $moment);
}
/**
* Permet d'afficher les temps d'éxécution de différentes parties d'un script.
*
* 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.
*
* @author Loic d'Anterroches
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @param string l'eventuel nom du point de chronométrage de fin.
* @return string la chaine XHTML de mesure des temps.
*/
public static function afficherChrono($cle = null) {
if (count(self::$temps) == 0) {
$sortie = "Aucun chronométrage à l'aide de Chronometre::chrono() n'a été réalisé.";
} else {
// Création du chrono de fin
self::chrono('Fin');
$total_tps_ecoule = 0;
$tps_debut = null;
$tbody = '';
foreach (self::getTemps() as $temps) {
foreach ($temps as $cle => $valeur) {
// Récupération de la premiére mesure
if (is_null($tps_debut)) {
$tps_debut = self::getMicroTime($valeur);
}
// Récupération de la mesure courrante
$tps_fin = self::getMicroTime($valeur);
$tps_ecoule = abs($tps_fin - $tps_debut);
$total_tps_ecoule += $tps_ecoule;
$tps_debut = $tps_fin;
// Gestion affichage
$total_tps_ecoule_fmt = number_format($total_tps_ecoule, 3, ',', ' ');
$tps_ecoule_fmt = number_format($tps_ecoule, 3, ',', ' ');
$tbody .= '<tr><th>'.$cle.'</th><td>'.$tps_ecoule_fmt.'</td><td>'.$total_tps_ecoule_fmt.'</td></tr>'."\n";
}
}
$total_tps_ecoule_final_fmt = number_format($total_tps_ecoule, 3, ',', ' ');
// Début création de l'affichage
$sortie = '<table id="chrono" lang="fr" summary="Résultat duchronométrage du programme affichant la page actuelle.">'."\n".
'<caption>Chronométrage</caption>'."\n".
'<thead>'."\n".
' <tr><th>Action</th><th title="Temps écoulé vis à vis de l\'action précédente">Temps écoulé (en s.)</th><th>Cumul du temps écoulé (en s.)</th></tr>'."\n".
'</thead>'."\n".
'<tbody>'."\n".
$tbody.
'</tbody>'."\n".
'<tfoot>'."\n".
' <tr><th>Total du temps écoulé (en s.)</th><td colspan="2">'.$total_tps_ecoule_final_fmt.'</td></tr>'."\n".
'</tfoot>'."\n".
'</table>'."\n";
}
return $sortie;
}
private static function getMicroTime($utps) {
list($usec, $sec) = explode(' ', $utps);
return ((float)$usec + (float)$sec);
}
}
?>
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/trunk/doc/PhpDoc/files/Debug.php.txt
New file
0,0 → 1,192
<?php
// declare(encoding='UTF-8');
/**
* 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.
*
* @category PHP 5.2
* @package Framework
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id: Debug.php 365 2011-09-30 08:19:57Z jpm $
* @link /doc/framework/
*/
class Debug {
/** Paramètrer le fichier de config avec "php:Debug::MODE_ECHO" : les messages sont affichés en utilisant echo au moment
* où ils sont déclenchés dans le code.*/
const MODE_ECHO = 'echo';
/** Paramètrer le fichier de config avec "php:Debug::MODE_NOTICE" : les message sont stockés par le gestionnaire
* d'exception sous forme d'erreur de type E_USER_NOTICE et sont renvoyés sur la sortie standard à la fin de l'execution
* du programme (via echo).*/
const MODE_NOTICE = 'e_user_notice';
/** Paramètrer le fichier de config avec "php:Debug::MODE_ENTETE_HTTP" : les message sont stockés par le gestionnaire
* d'exception sous forme d'erreur de type E_USER_NOTICE et sont renvoyés dans un entête HTTP (X_REST_DEBOGAGE_MESSAGES)
* à la fin de l'execution du programme.
* Surtout utile pour le Serveur REST. */
const MODE_ENTETE_HTTP = 'entete_http';
/** Mode de php (cli ou sapi) */
protected static $mode = null;
/** Tableau des noms des paramètres à définir dans le fichier de config car obligatoirement nécessaire à cette classe.*/
private static $parametres_obligatoires = array('debogage', 'debogage_mode');
/**
* Accesseur pour le mode
* @return string le mode de php
*/
public static function getMode() {
if (self::$mode === null) {
self::$mode = PHP_SAPI;
}
return self::$mode;
}
 
/**
* Equivalent de var_dump
* @param mixed $variable la variable à dumper
* @param string $mot_cle le mot cle à associer à la variable
* @param boolean $echo si true on affiche le résultat, si false on ne renvoie que la chaine sans l'afficher
* @return string la chaine à afficher representant le dump ou null si echo
*/
public static function dump($variable, $mot_cle = null, $echo = false) {
// var_dump de la variable dans un buffer et récupération de la sortie
ob_start();
var_dump($variable);
$sortie = ob_get_clean();
 
// Pré-traitement de la sortie
$sortie = preg_replace("/\]\=\>\n(\s+)/m", "] => ", $sortie);
 
// Traitement général du débogage
return self::traiterDebogage($mot_cle, $sortie, $echo);
}
 
/**
* Equivalent de print_r.
* @param mixed $variable la variable à afficher
* @param string $mot_cle le mot cle à associer
* @param boolean $echo faire un echo ou non
* @return string la chaine contenant la variable printée ou null si echo
*/
public static function printr($variable, $mot_cle = null, $echo = false) {
// Récupération de la sortie
$sortie = print_r($variable, true);
 
// Traitement général du débogage
return self::traiterDebogage($mot_cle, $sortie, $echo);
}
/**
* Affichage d'informations sur l'espace mémoire occupé par une variable
*
* @link http://forum.webmaster-rank.info/developpement-site/code-taille-memoire-d-une-variable-en-php-t1344.html
* @since 0.3
*
* @param mixed $var la variable dont on veut connaître l'empreinte mémoire.
* @param string $mot_cle le mot cle à associer
* @param boolean $echo faire un echo ou non
*
* @return string la chaine d'information sur l'espace mémoire occupé ou bien null si echo
*/
public static function tailleMemoireVar($var, $mot_cle = null, $echo = false) {
$memoire_depart = memory_get_usage();
$temp = unserialize(serialize($var));
$taille = memory_get_usage() - $memoire_depart;
$sortie = Fichier::convertirTaille($taille);
return self::traiterDebogage($mot_cle, $sortie, $echo);
}
 
/**
* Affichage d'informations sur l'espace mémoire occupé par le script PHP
*
* @link http://forum.webmaster-rank.info/developpement-site/code-taille-memoire-d-une-variable-en-php-t1344.html
* @since 0.3
*
* @param string $mot_cle le mot cle à associer
* @param boolean $echo faire un echo ou non
*
* @return string la chaine d'information sur l'espace mémoire occupé ou bien null si echo
*/
public static function tailleMemoireScript($mot_cle = null, $echo = false) {
$sortie = 'Mémoire -- Utilisé : '.Fichier::convertirTaille(memory_get_usage(false)).
' || Alloué : '.
Fichier::convertirTaille(memory_get_usage(true)) .
' || MAX Utilisé : '.
Fichier::convertirTaille(memory_get_peak_usage(false)).
' || MAX Alloué : '.
Fichier::convertirTaille(memory_get_peak_usage(true)).
' || MAX autorisé : '.
ini_get('memory_limit');
// Traitement général du débogage
return self::traiterDebogage($mot_cle, $sortie, $echo);
}
/**
* Traite une chaine de débogage et les mots clés associés
* @param string $mot_cle le mot à associer à la chaine
* @param string $sortie le chaine de debogage
* @param boolean $echo faire un echo du resultat ou non
* @return string la chaine de debogage formatée ou bien null si echo
*/
private static function traiterDebogage($mot_cle, $sortie, $echo) {
Config::verifierPresenceParametres(self::$parametres_obligatoires);
$debogage = Config::get('debogage');
$mode = Config::get('debogage_mode');
$mot_cle = self::formaterMotCle($mot_cle);
$sortie = self::traiterSortieSuivantMode($mot_cle, $sortie);
 
// Affichage et/ou retour
if ($debogage == true) {
if ($echo === true || $mode == self::MODE_ECHO) {
echo $sortie;
return null;
} else if ($mode == self::MODE_NOTICE || $mode == self::MODE_ENTETE_HTTP) {
trigger_error($sortie, E_USER_NOTICE);
return null;
} else {
return $sortie;
}
}
}
 
/**
* formate un mot clé donné
* @param string $mot_cle le mot clé à formaté
* @return string le mot clé formaté ou bien un chaine vide le mot clé est null ou vide
*/
private static function formaterMotCle($mot_cle) {
return ($mot_cle === null) ? '' : rtrim($mot_cle).' ';
}
 
/**
* traite la sortie de la chaine de débogage suivant le mode de php
* @param string $mot_cle le mot clé associé à la chaine
* @param string $sortie la chaine de débogage
* @return string la sortie formatée pour le mode en cours
*/
private static function traiterSortieSuivantMode($mot_cle, $sortie) {
$mode_actuel = Config::get('debogage_mode');
if ($mode_actuel == self::MODE_ENTETE_HTTP) {
$cle = (empty($mot_cle)) ? 'message' : $mot_cle;
$sortie = "$cle:$sortie";
} else {
$corps = $mot_cle.PHP_EOL.$sortie;
if (self::getMode() == 'cli') {
$sortie = PHP_EOL.$corps.PHP_EOL;
} else {
$sortie = '<pre>'.$corps.'</pre>';
}
}
return $sortie;
}
}
?>
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/trunk/doc/PhpDoc/files/Cache.php.html
New file
0,0 → 1,278
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-582658970"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-582658970" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content file">
<nav>
</nav>
 
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small></small>Cache.php</h1>
<p><em></em></p>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="../classes/Cache.html">Cache</a></td>
<td><em>Classe Cache permettant de mettre en cache des données.</em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
 
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label"></h3>
</div>
<div class="modal-body">
<pre data-src="../files/Cache.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/files/RestServeur.php.txt
New file
0,0 → 1,667
<?php
// declare(encoding='UTF-8');
/**
* Classe principale gérant les services web de type (@link(REST, http://fr.wikipedia.org/wiki/Rest).
*
* Elle contient :
* - les constantes indiquant les différentes (@link(méthode HTTP, http://fr.wikipedia.org/wiki/Http) prises en compte.
* - les @link(codes HTTP des réponses, http://fr.wikipedia.org/wiki/Liste_des_codes_HTTP)
*
* Ce serveur REST accepte 4 types de méthodes HTTP : GET, PUT, POST, DELETE.
* GET et POST ne pose généralement pas de problème pour les clients HTTP mais ce n'est pas forcément le cas pour PUT et DELETE.
* Vous pouvez donc pour réaliser :
* - DELETE : utiliser la méthode POST avec action=DELETE dans le corps de la requête.
* - PUT : utiliser la méthode POST avec une url ne contenant aucune indication de ressource.
* Une autre solution consiste à utiliser n'importe quelle méthode et à ajouter l'entête "X_HTTP_METHOD_OVERRIDE" avec pour
* valeur le nom de la méthode que vous souhaitez utiliser. Exemple d'entête : "X_HTTP_METHOD_OVERRIDE: PUT".
* Exemple : <code>curl -v -v -H "X_HTTP_METHOD_OVERRIDE: DELETE" "http://www.mondomaine.org/services/apiVersion/[mon-service]/"</code>
* Cela fonctionne avec Apache.
*
* Les classes des services web doivent avoir un nom au format ChatMot "MonService" et être appelée dans l'url par le même nom
* en minuscule où les mots sont séparés par des tirets "mon-service".
*
* Paramètres liés dans config.ini :
* - serveur.baseURL : morceau de l'url pour appeler le serveur relative au domaine. Exemple : pour http://www.tela-botanica.org/mon_serveur/
* mettre : "/mon_serveur/"
* - serveur.baseAlternativeURL : sur le même principe que ci-dessus permet d'affecter une deuxième url (pour gérer des raccourci via htaccess)
*
* Encodage en entrée : utf8
* Encodage en sortie : utf8
*
* @category Php 5.2
* @package Framework
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
* @since 0.3
* @version $Id: RestServeur.php 421 2013-04-11 14:43:49Z jpm $
* @link /doc/framework/
*/
// TODO : gerer les retours : dans ce controleur : code retour et envoi ...
class RestServeur {
 
/** Nom de la méthode appelée dans un service pour éxécuter une requête de type GET. */
const METHODE_GET = 'consulter';
 
/** Nom de la méthode appelée dans un service pour éxécuter une requête de type POST. */
const METHODE_POST = 'modifier';
 
/** Nom de la méthode appelée dans un service pour éxécuter une requête de type DELETE. */
const METHODE_DELETE = 'supprimer';
 
/** Nom de la méthode appelée dans un service pour éxécuter une requête de type PUT. */
const METHODE_PUT = 'ajouter';
 
/** Code HTTP 200 indiquant le succès de l'accès à un service web par la méthode GET.
* L'utiliser lors d'une requète de type GET (consulter) pour indiquer le succès de l'opération.
* Sera renvoyée par défaut par PHP. */
const HTTP_CODE_OK = '200';
 
/** Code HTTP 201 indiquant que l'accès à un service web est un succès et que la ressource a été créée ou modifié.
* L'utiliser lors d'une requète de type PUT (ajouter) ou POST (modifier) pour indiquer le succès de l'opération. */
const HTTP_CODE_CREATION_OK = '201';
 
/** Code HTTP 204 indique que l'accès à un service web est un succès et qu'il n'y a pas de contenu à renvoyer.
* L'utiliser lors d'une requète de type DELETE (supprimer) pour indiquer le succès de l'opération si aucun
* contenu (status) ne doit être renvoyé, sinon utiliser 200 OK. */
const HTTP_CODE_SUPPRESSION_OK = '204';
 
/** Code HTTP 400 indique que les paramètres envoyés au service contiennent des erreurs.
* L'utiliser pour indiquer l'échec de l'accès au service. La réponse pourra contenir un message expliquant la source
* de l'erreur. */
const HTTP_CODE_MAUVAISE_REQUETE = '400';
 
/** Code HTTP 401 indiquant que l'accès à un service web est refusé car l'authentification (obligatoire) a échoué pour
* accéder à la ressource. */
const HTTP_CODE_ACCES_NON_AUTORISE = '401';
 
/** Code HTTP 404 indiquant que la ressource indiquée par l'url est introuvable. */
const HTTP_CODE_RESSOURCE_INTROUVABLE = '404';
 
/** Code HTTP 405 indiquant soit :
* - que le service web ne possède pas d'accès la ressource correspondant à la méthode HTTP employée.
* - que la méthode HTTP enployée n'est pas en accord avec la ressource indiquée par l'url. */
const HTTP_CODE_METHODE_NON_AUTORISE = '405';
 
/** Code d'erreur HTTP 409 indiquant qu'un conflit est survenu vis à vis de la ressource.
* Par exemple, essayer de créer deux fois la même ressource ou bien tenter de modifier une ressource qui a été modifiée par
* ailleurs. */
const HTTP_CODE_CONFLIT = '409';
 
/** Code HTTP 411 indiquant que des paramètres passés dans le contenu de la requête sont nécessaires au service. */
const HTTP_CODE_CONTENU_REQUIS = '411';
 
/** Code d'erreur HTTP 500 Internal Server Error.
* L'utiliser quand le serveur ou un service soulève une erreur ou une exception. */
const HTTP_CODE_ERREUR = '500';
 
/** Motif de l'epression régulière vérfiant la version de l'API. */
const MOTIF_API_VERSION = '/^[0-9]+(?:[.][0-9]+)*$/';
 
/** Motif de l'epression régulière vérfiant le nom du service. */
const MOTIF_SERVICE_NOM = '/^[a-z0-9]+(?:[-][a-z0-9]+)*$/';
 
/** Mettre à true pour activer l'affichage des messages d'erreurs et de débogage.
* @var boolean */
private static $debogageActivation = false;
 
/** Indiquer le mode de débogage à utiliser (@see Debug).
* @var string */
private static $debogageMode = '';
 
/** La méthode de la requête HTTP utilisée.
* @var string */
private $methode = 'GET';
 
/** Le contenu brut du corps de la requête HTTP (s'il y en a).
* @var array */
private $requeteDonnees = null;
 
/** Le contenu sous forme de tableau de paires clés-valeurs du corps de la requête HTTP (s'il y en a).
* @var array */
private $requeteDonneesParsees = null;
 
/** Version de l'API demandée.
* Ex. http://www.mondomaine.org/services/[apiVersion]/mon-service/
* @var mixed Généralement deux nombres séparés par un point. Ex. : 1.0
*/
private $apiVersion = null;
 
/** Nom du service demandé.
* Ex. http://www.mondomaine.org/services/apiVersion/[mon-service]/
* @var string par défaut vaut null.
*/
private $service = null;
 
/** Morceaux de l'url servant à préciser la ressource concerné pour le service demandé.
* Ex. http://www.mondomaine.org/services/apiVersion/mon-service/[maRessource/maSousResource...]
* @var array
*/
private $ressources = array();
 
/** Partie de l'url situé après le '?' servant à paramétrer le service demandé.
* Les données proviennent de $_GET où les caractères suivant ont été transformé en '_' undescrore dans les clés :
* - chr(32) ( ) (space)
* - chr(46) (.) (dot)
* - chr(91) ([) (open square bracket)
* - chr(128) - chr(159) (various)
* En outre nous appliquons la méthode nettoyerGet() qui effectue d'autres remplacement dans les valeurs.
* Ex. http://www.mondomaine.org/services/apiVersion/mon-service?monParametre1=maValeur1&monParametre2=maValeur2
* @see parametresBruts
* @var array
*/
private $parametres = array();
 
/** Partie de l'url situé après le '?' servant à paramétrer le service demandé.
* Les données proviennent de $_SERVER['QUERY_STRING'] et n'ont subies aucune transformation au niveau des clés.
* Cependant nous appliquons la méthode nettoyerGet() qui effectue d'autres remplacement dans les valeurs.
* Ex. http://www.mondomaine.org/services/apiVersion/mon-service?monParametre1=maValeur1&monParametre2=maValeur2
* @see parametres
* @var array
*/
private $parametresBruts = array();
 
/** Tableau contenant les paramètres de configuration du serveur.
* @var array
*/
private static $config = array();
 
/** Tableau contenant les messages d'erreur et/ou d'avertissement du Serveur.
* @var array
* */
private static $messages = array();
 
/** Codes HTTP. */
private static $http10 = array(
self::HTTP_CODE_OK => 'OK',
self::HTTP_CODE_CREATION_OK => 'Created',
self::HTTP_CODE_SUPPRESSION_OK => 'No Content',
self::HTTP_CODE_MAUVAISE_REQUETE => 'Bad Request',
self::HTTP_CODE_ACCES_NON_AUTORISE => 'Unauthorized',
self::HTTP_CODE_RESSOURCE_INTROUVABLE => 'Not Found',
self::HTTP_CODE_METHODE_NON_AUTORISE => 'Method Not Allowed',
self::HTTP_CODE_CONFLIT => 'Conflict',
self::HTTP_CODE_CONTENU_REQUIS => 'Length Required',
self::HTTP_CODE_ERREUR => 'Internal Server Error'
);
 
/** Tableau des noms des paramètres à définir dans le fichier de config car obligatoirement nécessaire à cette classe.*/
private $parametres_obligatoires = array('debogage', 'debogage_mode', 'serveur.baseURL', 'chemin_modules');
 
/**
* Analyse les données envoyées au serveur, enregistre la méthode HTTP utilisée pour appeler le serveur et parse
* l'url appelée pour trouver le service demandé.
*/
public function __construct() {
Config::verifierPresenceParametres($this->parametres_obligatoires);
 
self::$debogageActivation = Config::get('debogage');
self::$debogageMode = Config::get('debogage_mode');
 
if (isset($_SERVER['REQUEST_URI']) && isset($_SERVER['REQUEST_METHOD']) && isset($_SERVER['QUERY_STRING'])) {
$this->initialiserMethode();
$this->initialiserRequeteDonnees();
 
$urlParts = $this->decouperUrlChemin();
 
$this->initialiserApiVersion(array_shift($urlParts));
$this->initialiserServiceNom(array_shift($urlParts));
$this->initialiserRessource($urlParts);
 
$this->initialiserParametres();
// Enregistrement en première position des autoload de la méthode gérant les classes des services
spl_autoload_register(array(get_class(), 'chargerClasse'));
} else {
self::envoyerEnteteStatutHttp(self::HTTP_CODE_ERREUR);
$e = "La classe Serveur du TBFRamework nécessite, pour fonctionner, l'accès aux variables serveurs REQUEST_URI, REQUEST_METHOD et QUERY_STRING.";
self::ajouterMessage($e);
}
}
 
private function initialiserMethode() {
if (isset($_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE']) && count(trim($_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'])) > 0) {
$this->methode = trim($_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE']);
} else {
$this->methode = $_SERVER['REQUEST_METHOD'];
}
}
 
private function initialiserRequeteDonnees() {
if (isset($_SERVER['CONTENT_LENGTH']) && $_SERVER['CONTENT_LENGTH'] > 0) {
$this->requeteDonnees = '';
$httpContent = fopen('php://input', 'r');
while ($data = fread($httpContent, 1024)) {
$this->requeteDonnees .= $data;
}
fclose($httpContent);
}
}
 
private function decouperUrlChemin() {
if (isset($_SERVER['REDIRECT_URL']) && $_SERVER['REDIRECT_URL'] != '') {
if (isset($_SERVER['REDIRECT_QUERY_STRING']) && !empty($_SERVER['REDIRECT_QUERY_STRING'])) {
$url = $_SERVER['REDIRECT_URL'].'?'.$_SERVER['REDIRECT_QUERY_STRING'];
} else {
$url = $_SERVER['REDIRECT_URL'];
}
} else {
$url = $_SERVER['REQUEST_URI'];
}
 
if (strlen($_SERVER['QUERY_STRING']) == 0) {
$tailleURL = strlen($url);
} else {
$tailleURL = -(strlen($_SERVER['QUERY_STRING']) + 1);
}
 
$urlChaine = '';
if (strpos($url, Config::get('serveur.baseURL')) !== false) {
$urlChaine = substr($url, strlen(Config::get('serveur.baseURL')), $tailleURL);
} else if (strpos($url, Config::get('serveur.baseAlternativeURL')) !== false) {
$urlChaine = substr($url, strlen(Config::get('serveur.baseAlternativeURL')), $tailleURL);
}
return explode('/', $urlChaine);
}
 
private function initialiserApiVersion($apiVersion) {
if ($this->verifierApiVersion($apiVersion)) {
$this->apiVersion = $apiVersion;
self::$config['chemins']['api'] = Config::get('chemin_modules').$this->apiVersion.DS;
self::$config['chemins']['api_bibliotheque'] = self::$config['chemins']['api'].Config::get('dossier_bibliotheque').DS;
} else {
self::envoyerEnteteStatutHttp(self::HTTP_CODE_MAUVAISE_REQUETE);
$e = "Aucune version d'API n'a été spécifiée.\n".
"La version doit respecter l'expression régulière suivante : ".self::MOTIF_API_VERSION.".\n".
"L'url doit avoir la forme suivante : http://www.mondomaine.org/services/apiVersion/monService/";
self::ajouterMessage($e);
self::cloreAccesServeur();
}
}
 
private function verifierApiVersion($apiVersion) {
$apiOk = false;
if (isset($apiVersion) && !empty($apiVersion) && preg_match(self::MOTIF_API_VERSION, $apiVersion)) {
$apiOk = true;
}
return $apiOk;
}
 
private function initialiserServiceNom($serviceNom) {
if ($this->verifierServiceNom($serviceNom)) {
$this->service = $this->traiterNomService($serviceNom);
} else {
self::envoyerEnteteStatutHttp(self::HTTP_CODE_MAUVAISE_REQUETE);
$e = "Aucune nom de service n'a été spécifié.\n".
"La nom du service doit respecter l'expression régulière suivante : ".self::MOTIF_SERVICE_NOM.".\n".
"L'url doit avoir la forme suivante : http://www.mondomaine.org/services/apiVersion/monService/";
self::ajouterMessage($e);
self::cloreAccesServeur();
}
}
 
private function verifierServiceNom($serviceNom) {
$serviceNomOk = false;
if (isset($serviceNom) && !empty($serviceNom) && preg_match(self::MOTIF_SERVICE_NOM, $serviceNom)) {
$serviceNomOk = true;
}
return $serviceNomOk;
}
 
private function traiterNomService($serviceNom) {
return str_replace(' ', '', ucwords(str_replace('-', ' ', strtolower($serviceNom))));
}
 
private function initialiserRessource($urlParts) {
if (is_array($urlParts) && count($urlParts) > 0) {
foreach ($urlParts as $ressource) {
// Ne pas utiliser empty() car valeur 0 acceptée
if ($ressource != '') {
$this->ressources[] = urldecode($ressource);
}
}
}
}
 
private function initialiserParametres() {
$this->parametres = $this->recupererParametresGet();
$this->parametresBruts = $this->recupererParametresBruts();
}
 
private function recupererParametresGet() {
$_GET = $this->nettoyerParametres($_GET);
return $_GET;
}
 
private function nettoyerParametres(Array $parametres) {
// Pas besoin d'utiliser urldecode car déjà fait par php pour les clés et valeur de $_GET
if (isset($parametres) && count($parametres) > 0) {
foreach ($parametres as $cle => $valeur) {
// les quotes, guillements et points-virgules ont été retirés des caractères à vérifier car
//ça n'a plus lieu d'être maintenant que l'on utilise protéger à peu près partout
$verifier = array('NULL', "\\", "\x00", "\x1a");
$parametres[$cle] = strip_tags(str_replace($verifier, '', $valeur));
}
}
return $parametres;
}
 
private function recupererParametresBruts() {
$parametres_bruts = array();
if (!empty($_SERVER['QUERY_STRING'])) {
$paires = explode('&', $_SERVER['QUERY_STRING']);
foreach ($paires as $paire) {
$nv = explode('=', $paire);
$nom = urldecode($nv[0]);
$valeur = urldecode($nv[1]);
$parametres_bruts[$nom] = $valeur;
}
$parametres_bruts = $this->nettoyerParametres($parametres_bruts);
}
return $parametres_bruts;
}
 
/**
* La méthode __autoload() charge dynamiquement les classes trouvées dans le code.
* Cette fonction est appelée par php5 quand il trouve une instanciation de classe dans le code.
*
*@param string le nom de la classe appelée.
*@return void le fichier contenant la classe doit être inclu par la fonction.
*/
public static function chargerClasse($classe) {
if (class_exists($classe)) {
return null;
}
$chemins = array('', self::$config['chemins']['api'], self::$config['chemins']['api_bibliotheque']);
foreach ($chemins as $chemin) {
$chemin = $chemin.$classe.'.php';
if (file_exists($chemin)) {
require_once $chemin;
}
}
}
 
/**
* Execute la requête.
*/
public function executer() {
$retour = '';
switch ($this->methode) {
case 'GET':
$retour = $this->get();
break;
case 'POST':
$retour = $this->post();// Retour pour l'alternative PUT
break;
case 'DELETE':
$retour = $this->delete();
break;
case 'PUT':
$retour = $this->put();
break;
// Autorise l'accès depuis des serveurs tiers
case 'OPTIONS':
/*header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Headers:origin, content-type');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Content-Type: application/json');
header('Access-Control-Max-Age: 3628800');
header('Access-Control-Allow-Credentials: false');*/
break;
default :
self::envoyerEnteteStatutHttp(self::HTTP_CODE_METHODE_NON_AUTORISE);
header('Allow: GET, POST, DELETE, PUT');
$e = "La méthode HTTP '{$this->methode}' n'est pas prise en compte par ce serveur REST.\n".
"Consulter l'entête Allow pour connaître les méthodes autorisées.";
self::ajouterMessage($e);
}
$this->cloreAccesServeur($retour);
}
 
/**
* Execute a GET request. A GET request fetches a list of resource when no resource name is given, a list of element
* when a resource name is given, or a resource element when a resource and resource unique identifier are given. It does not change the
* database contents.
*/
private function get() {
$retour = '';
if ($this->service != null) {
$Service = new $this->service(self::$config);
if (method_exists($Service, self::METHODE_GET)) {
$methodeGet = self::METHODE_GET;
$parametres = $Service->utiliserParametresBruts() ? $this->parametresBruts : $this->parametres;
$retour = $Service->$methodeGet($this->ressources, $parametres);
} else {
self::envoyerEnteteStatutHttp(self::HTTP_CODE_RESSOURCE_INTROUVABLE);
$e = "Le service '{$this->service}' ne contient pas la méthode '".self::METHODE_GET."' nécessaire ".
"lors de l'appel du service via la méthode HTTP GET.";
self::ajouterMessage($e);
}
}
return $retour;
}
 
private function post() {
$retour = '';
$paires = $this->parserDonneesRequete();
if (count($paires) != 0) {
if (isset($paires['action']) && $paires['action'] == 'DELETE') {// Alternative à l'utilisation de DELETE
$retour = $this->delete();
} else if (count($this->ressources) == 0) {// Alternative à l'utilisation de PUT
$retour = $this->put();
} else {
if ($this->service != null) {
$Service = new $this->service(self::$config);
if (method_exists($Service, self::METHODE_POST)) {
$methodePost = self::METHODE_POST;
$info = $Service->$methodePost($this->ressources, $paires);
if ($info !== false) {
$this->envoyerEnteteStatutHttp(self::HTTP_CODE_CREATION_OK);
$retour = $info;
}
} else {
self::envoyerEnteteStatutHttp(self::HTTP_CODE_RESSOURCE_INTROUVABLE);
$e = "Le service '{$this->service}' ne contient pas la méthode '".self::METHODE_POST."' nécessaire ".
"lors de l'appel du service via la méthode HTTP GET.";
self::ajouterMessage($e);
}
}
}
} else {
$this->envoyerEnteteStatutHttp(self::HTTP_CODE_CONTENU_REQUIS);
$e = "Le service '{$this->service}' requiert de fournir le contenu à modifier dans le corps ".
"de la requête avec la méthode HTTP POST.";
self::ajouterMessage($e);
}
return $retour;
}
 
private function put() {
$retour = '';
$paires = $this->parserDonneesRequete();
if (count($paires) != 0) {
if ($this->service != null) {
$Service = new $this->service(self::$config);
if (method_exists($Service, self::METHODE_PUT)) {
$methodePut = self::METHODE_PUT;
$info = $Service->$methodePut($this->ressources, $paires);
if ($info !== false) {
$this->envoyerEnteteStatutHttp(self::HTTP_CODE_CREATION_OK);
$retour = $info;
}
} else {
self::envoyerEnteteStatutHttp(self::HTTP_CODE_RESSOURCE_INTROUVABLE);
$e = "Le service '{$this->service}' ne contient pas la méthode '".self::METHODE_PUT."' nécessaire ".
"lors de l'appel du service via la méthode HTTP GET.";
self::ajouterMessage($e);
}
}
} else {
$this->envoyerEnteteStatutHttp(self::HTTP_CODE_CONTENU_REQUIS);
$e = "Il est nécessaire de fournir du contenu dans le corps de la requête pour créer une nouvelle ressource.";
self::ajouterMessage($e);
}
return $retour;
}
 
private function delete() {
$retour = '';
if (count($this->ressources) != 0) {
$paires = $this->parserDonneesRequete();
if ($this->service != null) {
$Service = new $this->service(self::$config);
if (method_exists($Service, self::METHODE_DELETE)) {
$methodeDelete = self::METHODE_DELETE;
$info = $Service->$methodeDelete($this->ressources, $paires);
if ($info === true) {
$this->envoyerEnteteStatutHttp(self::HTTP_CODE_SUPPRESSION_OK);
} else if ($info === false) {
$this->envoyerEnteteStatutHttp(self::HTTP_CODE_RESSOURCE_INTROUVABLE);
$e = "La ressource à supprimer est introuvable. Il se peut qu'elle ait été préalablement supprimé.";
self::ajouterMessage($e);
} else {
$this->envoyerEnteteStatutHttp(self::HTTP_CODE_OK);
$retour = $info;
}
} else {
self::envoyerEnteteStatutHttp(self::HTTP_CODE_RESSOURCE_INTROUVABLE);
$e = "Le service '{$this->service}' ne contient pas la méthode '".self::METHODE_DELETE."' nécessaire ".
"lors de l'appel du service via la méthode HTTP GET.";
self::ajouterMessage($e);
}
}
} else {
$this->envoyerEnteteStatutHttp(self::HTTP_CODE_MAUVAISE_REQUETE);
$e = "Il est nécessaire d'indiquer dans l'url la ressource à supprimer.";
self::ajouterMessage($e);
}
return $retour;
}
 
/**
* Parse les données contenu dans le corps de la requête HTTP (= POST) en :
* - décodant les clés et valeurs.
* - supprimant les espaces en début et fin des clés et des valeurs.
*
* @return array Tableau de paires clé et valeur.
*/
private function parserDonneesRequete() {
$donnees = array();
if ($this->requeteDonneesParsees != null) {
$donnees = $this->requeteDonneesParsees;
} else if ($this->requeteDonnees != null) {
if (preg_match('/application\/json/', $_SERVER['CONTENT_TYPE'])) {
$donnees = json_decode($this->requeteDonnees, true);
} else {
$paires = explode('&', $this->requeteDonnees);
foreach ($paires as $paire) {
list($cle, $valeur) = explode('=', $paire);
$cle = (isset($cle)) ? trim(urldecode($cle)) : '';
$valeur = (isset($valeur)) ? trim(urldecode($valeur)) : '';
$donnees[$cle] = $valeur;
}
}
$this->requeteDonneesParsees = $donnees;
}
return $donnees;
}
 
/**
* Envoyer un entête HTTP (version 1.0) de statut.
* Il remplacera systématiquement tout entête HTTP de statut précédement envoyé.
* @param int $code entier indiquant le code du statut de l'entête HTTP à envoyer.
*/
public static function envoyerEnteteStatutHttp($code) {
if (isset(self::$http10[$code])) {
$txt = self::$http10[$code];
header("HTTP/1.0 $code $txt", true);
}
}
 
/**
* Termine l'accès au serveur après envoir envoyer les messages.
*/
private static function cloreAccesServeur($retour = '') {
// Gestion des exceptions et erreurs générées par les services
$retour .= self::gererErreurs();
 
// Envoie des messages d'erreur et d'avertissement du serveur
$retour .= self::envoyerMessages();
 
// Autorise l'accès depuis des serveurs tiers
//header('Access-Control-Allow-Origin: *');
 
// Envoie sur la sortie standard le contenu de la réponse HTTP
print $retour;
 
// Nous terminons le script
exit(0);
}
 
/**
* Si des exceptions ou des erreurs sont soulevées par le serveur ou les services, elles sont gérées par cette méthode.
* Si nous avec des erreurs d'un type différent d'E_USER_NOTICE (réservé au débogage), elle sont renvoyées sur la sortie
* standard (via echo).
* Si seulement des erreurs de type E_USER_NOTICE, sont présentes, elle sont envoyées en fonction du contenu du paramètre de
* config "debogage_mode" :
* - Debug::MODE_ECHO : les messages sont affichés en utilisant echo au moment où ils sont déclenchés dans le code.
* - Debug::MODE_NOTICE : les message sont stockés par le gestionnaire d'exception sous forme d'erreur de type
* E_USER_NOTICE et sont renvoyés sur la sortie standard à la fin de l'execution du programme (via echo).
* - Debug::MODE_ENTETE_HTTP : les message sont stockés par le gestionnaire d'exception sous forme d'erreur de type
* E_USER_NOTICE et sont renvoyés dans un entête HTTP (X_REST_DEBOGAGE_MESSAGES) à la fin de l'execution du programme.
* - Autre valeur : les messages sont formatés puis retournés par la fonction de débogage (à vous de les afficher).
*/
public static function gererErreurs() {
$retour = '';
if (self::$debogageActivation && GestionnaireException::getExceptionsNbre() > 0) {
 
$exceptionsTriees = GestionnaireException::getExceptionsTriees();
reset($exceptionsTriees);
$debogageSeulement = true;
if (array_key_exists(E_USER_ERROR, $exceptionsTriees)) {
self::envoyerEnteteStatutHttp(self::HTTP_CODE_ERREUR);
$debogageSeulement = false;
}
 
$exceptionsFormatees = array();
foreach ($exceptionsTriees as $exceptions) {
foreach ($exceptions as $e) {
if ($debogageSeulement && self::$debogageMode == Debug::MODE_ENTETE_HTTP) {
$exceptionsFormatees[] = GestionnaireException::formaterExceptionDebug($e);
} else {
$retour = GestionnaireException::formaterExceptionXhtml($e);
}
}
}
 
if ($debogageSeulement && self::$debogageMode == Debug::MODE_ENTETE_HTTP) {
header('X_REST_DEBOGAGE_MESSAGES: '.json_encode($exceptionsFormatees));
}
}
return $retour;
}
 
 
/**
* Permet d'ajouter un message d'erreur ou d'avertissement qui sera envoyé au client.
* Le message doit être au format texte et en UTF-8.
* @param string $message le message à envoyer.
*/
public static function ajouterMessage($message) {
if (isset($message) && !empty($message)) {
self::$messages[] = $message;
}
}
 
/**
* Envoie au client les éventuels messages d'erreur et d'avertissement du Serveur.
* Le format d'envoie est text/plain encodé en UTF-8.
*/
private static function envoyerMessages() {
if (count(self::$messages) > 0) {
header("Content-Type: text/plain; charset=utf-8");
return implode("\n", self::$messages);
}
}
}
?>
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/trunk/doc/PhpDoc/files/Script.php.html
New file
0,0 → 1,278
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-482623877"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-482623877" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content file">
<nav>
</nav>
 
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small></small>Script.php</h1>
<p><em></em></p>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="../classes/Script.html">Script</a></td>
<td><em>Script est une classe abstraite qui doit être implémenté par les classes éxecutant des scripts en ligne de commande.</em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
 
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label"></h3>
</div>
<div class="modal-body">
<pre data-src="../files/Script.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/files/utilitaires/Pattern.php.txt
New file
0,0 → 1,24
<?php
// declare(encoding='UTF-8');
/**
* Classe fournissant des constantes correspondant à des expressions régulières de vérification très courrantes.
*
* @category PHP 5.2
* @package Utilitaire
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id: Pattern.php 299 2011-01-18 14:03:46Z jpm $
* @link /doc/framework/
*/
class Pattern {
const PRENOM = "[\p{L}-]+";// Pattern prénom
const NOM = "[\p{Lu}]+";// Pattern nom
const COURRIEL = "[a-z0-9!#$%&'*+=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?";// Pattern courriel
const URL = "^(?:(?:ht|f)tp(?:s?)\\:\\/\\/|~/|/)?(?:\\w+:\\w+@)?(?:(?:[-\\w]+\\.)+(?:com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum|travel|[a-z]{2}))(?::[\\d]{1,5})?(?:(?:(?:/(?:[-\\w~!$+|.,=]|%[a-f\\d]{2})+)+|/)+|\\?|#)?(?:(?:\\?(?:[-\\w~!$+|.,*:]|%[a-f\\d{2}])+=(?:[-\\w~!$+|.,*:=]|%[a-f\\d]{2})*)(?:&(?:[-\\w~!$+|.,*:]|%[a-f\\d{2}])+=(?:[-\\w~!$+|.,*:=]|%[a-f\\d]{2})*)*)*(?:#(?:[-\\w~!$+|.,*:=]|%[a-f\\d]{2})*)?$";
const HEURE_MINUTE = "^(?:[0-1][0-9]|2[0-4]):(?:[0-5][0-9]|60)$";// Heure au format 24h avec séparateur d'heure et minute ':'
const LATITUDE = "^-?([0-8]?[0-9]([.,][0-9]*)?|90)$"; // Nombre décimal positif ou négatif allant de 0 à 89 ou nombre entier valant 90 avec pour séparateur des décimales "." ou ","
const LONGITUDE = "^-?((1[0-7][0-9]|[1-9]?[0-9])([.,][0-9]*)?|180)$"; // Nombre décimal positif ou négatif allant de 0 à 179 ou nombre entier valant 180 avec pour séparateur des décimales "." ou ","
}
?>
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/trunk/doc/PhpDoc/files/utilitaires/Tableau.php.txt
New file
0,0 → 1,151
<?php
// declare(encoding='UTF-8');
/**
* Classe fournissant des méthodes statiques de manipulation des tableaux (Array).
*
* @category PHP 5.2
* @package Utilitaire
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id: Tableau.php 400 2011-11-25 16:26:26Z jpm $
* @link /doc/framework/
*/
// TODO : réaliser une seule méthode pour trierMD et trierMDType
class Tableau {
const TRI_NATUREL = 'nat';
const TRI_CASSE_SENSIBLE = 'ci';
const TRI_CASSE_INSENSIBLE = 'ci';
 
private static $triMultiDimension = null;
private static $triType = null;
 
/**
* Etend le tableau à étendre avec les données du tableau à copier. Si des clés sont identiques entre les deux tableaux
* une erreur est déclenchée et la valeur du tableau à étendre est gardée. Si les deux tableaux ont des clés numériques
* leurs valeurs sont gardées (à la différence de array_merge).
* Les tableaux sont passés par références et le tableau à copier est progressivement détruit pour éviter la consomation
* de mémoire.
*
* @param array $tableau_a_etendre
* @param array $tableau_a_copier
* @return void
*/
public static function etendre(Array &$tableau_a_etendre, Array &$tableau_a_copier) {
$cles_existantes = null;
foreach($tableau_a_copier as $cle => $val) {
if (!isset($tableau_a_etendre[$cle])) {
$tableau_a_etendre[$cle] = $val;
unset($tableau_a_copier[$cle]);
} else {
$cles_existantes[] = $cle;
}
}
if (is_array($cles_existantes)) {
$e = "Le tableau a étendre contenait déjà les clés suivantes : ".implode(', ', $cles_existantes);
trigger_error($e, E_USER_WARNING);
}
}
 
/**
* @deprecated Utiliser la méthode trierMD()
* @see trierMD()
*/
public static function trierTableauMd($array, $cols) {
return self::trierMD($array, $cols);
}
 
/**
* Permet de trier un tableau multi-dimenssionnel en gardant l'ordre des clés.
*
* @param Array $array le tableau à trier
* @param Array $cols tableau indiquant en clé la colonne à trier et en valeur l'ordre avec SORT_ASC ou SORT_DESC
* @return Array le tableau trié.
* @author cagret at gmail dot com
* @see http://fr.php.net/manual/fr/function.array-multisort.php Post du 21-Jun-2009 12:38
*/
public static function trierMD($array, $cols) {
$colarr = array();
foreach ($cols as $col => $order) {
$colarr[$col] = array();
foreach ($array as $k => $row) {
$colarr[$col]['_'.$k] = strtolower($row[$col]);
}
}
$params = array();
foreach ($cols as $col => $order) {
$params[] =& $colarr[$col];
$orders = (array) $order;
foreach($orders as $orderElement) {
$params[] =& $orderElement;
}
}
call_user_func_array('array_multisort', $params);
$ret = array();
$keys = array();
$first = true;
foreach ($colarr as $col => $arr) {
foreach ($arr as $k => $v) {
if ($first) {
$keys[$k] = substr($k, 1);
}
$k = $keys[$k];
if (!isset($ret[$k])) {
$ret[$k] = $array[$k];
}
$ret[$k][$col] = $array[$k][$col];
}
$first = false;
}
return $ret;
}
 
/**
* Méthode réalisant un tri d'un tableau multidimension. Attention les clés du tableau ne sont pas modifiées.
* A utiliser de cette façon:
* EfloreTriage::trieMultiple( $tableau_multidimension, array('ma_cle1' => SORT_ASC, 'ma_cle2' => SORT_DESC), $type_de_tri);
* Utiliser les constantes php SORT_DESC ou SORT_ASC pour l'odre de tri.
* Pour le type de tri : utiliser :
* - Tableau::TRI_NATUREL pour un trie naturel,
* - Tableau::TRI_CASSE_SENSIBLE pour un tri sensible à la casse,
* - Tableau::TRI_CASSE_INSENSIBLE pour un tri insensible à la casse.
* @param array le tableau à trier
* @param array le talbeau des colonnes à trier constituer de nom de clé en clé et d'ordres de tri en valeur.
* @param string le type de tri à appliquer.
* @return array le tableau trié.
*/
public static function trierMDType(&$tableau, $cols, $type = self::TRI_CASSE_INSENSIBLE) {
self::$triMultiDimension = $cols;
self::$triType = $type;
uasort($tableau, array('self', 'comparer'));
return $tableau;
}
 
private static function comparer($a, $b) {
$resultat = 0;
foreach (self::$triMultiDimension as $champ => $ordre) {
if ($resultat == 0) {
$mot_01 = Chaine::supprimerAccents($b[$champ]);
$mot_02 = Chaine::supprimerAccents($a[$champ]);
switch (self::$triType) {
case self::TRI_NATUREL :
$resultat = ($ordre == SORT_DESC) ? strnatcmp($mot_01, $mot_02) : strnatcmp($mot_02, $mot_01);
break;
case self::TRI_CASSE_SENSIBLE :
$resultat = ($ordre == SORT_DESC) ? strcmp($mot_01, $mot_02) : strcmp($mot_02, $mot_01);
break;
case self::TRI_CASSE_INSENSIBLE :
$resultat = ($ordre == SORT_DESC) ? strcasecmp($mot_01, $mot_02) : strcasecmp($mot_02, $mot_01);
break;
default:
$resultat = ($ordre == SORT_DESC) ? strcasecmp($mot_01, $mot_02) : strcasecmp($mot_02, $mot_01);
break;
}
 
}
}
return $resultat;
}
}
?>
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/trunk/doc/PhpDoc/files/utilitaires/Encodage.php.txt
New file
0,0 → 1,57
<?php
// declare(encoding='UTF-8');
/**
* Classe fournissant des méthodes statiques concernant l'encodage et le décodage des caractères de variable.
*
* @category PHP 5.2
* @package Utilitaire
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id: Encodage.php 299 2011-01-18 14:03:46Z jpm $
* @link /doc/framework/
*/
class Encodage {
/**
* Méthode permettant d'encoder par défaut de ISO-8859-15 vers UTF-8 une variable ou un tableau de variables.
*
* @param mixed la chaine ou le tableau à encoder en UTF-8 depuis ISO-8859-15.
* @param string l'encodage d'origine si ce n'est pas ISO-8859-15.
* @return mixed la chaine ou le tableau encodé en UTF-8.
* @access protected
*/
public static function encoderEnUtf8(&$variable, $encodage = 'ISO-8859-15') {
//echo print_r($variable, true)."\n";
if (is_array($variable)) {
foreach ($variable as $c => $v) {
$variable[$c] = self::encoderEnUtf8($v);
}
} else {
// Nous vérifions si nous avons un bon encodage UTF-8
if (!is_numeric($variable) && !empty($variable) && !self::detecterUtf8($variable)) {
// Les nombres, les valeurs vides et ce qui est déjà en UTF-8 ne sont pas encodés.
$variable = mb_convert_encoding($variable, 'UTF-8', $encodage);
}
}
return $variable;
}
/**
* Méthode permettant de détecter réellement l'encodage UTF-8.
* mb_detect_encoding plante si la chaine de caractère se termine par un caractère accentué.
* Provient de PHPDIG.
*
* @param string la chaine à vérifier.
* @return bool true si c'est de UTF-8, sinon false.
* @access private
*/
public static function detecterUtf8($chaine) {
if ($chaine === mb_convert_encoding(mb_convert_encoding($chaine, 'UTF-32', 'UTF-8'), 'UTF-8', 'UTF-32')) {
return true;
} else {
return false;
}
}
}
?>
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/trunk/doc/PhpDoc/files/utilitaires/Chaine.php.txt
New file
0,0 → 1,68
<?php
// declare(encoding='UTF-8');
/**
* Classe fournissant des méthodes statiques de manipulation des chaînes de caractères (String).
*
* @category PHP 5.2
* @package Utilitaire
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id: Chaine.php 343 2011-06-09 14:59:36Z jpm $
* @link /doc/framework/
*/
class Chaine {
 
private static $caracteres_accentues = array(
'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î',
'Ï', 'Ð', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ø', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'ß',
'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î',
'ï', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', 'ø', 'ù', 'ú', 'û', 'ü', 'ý', 'ÿ', 'Ā',
'ā', 'Ă', 'ă', 'Ą', 'ą', 'Ć', 'ć', 'Ĉ', 'ĉ', 'Ċ', 'ċ', 'Č', 'č', 'Ď', 'ď',
'Đ', 'đ', 'Ē', 'ē', 'Ĕ', 'ĕ', 'Ė', 'ė', 'Ę', 'ę', 'Ě', 'ě', 'Ĝ', 'ĝ', 'Ğ',
'ğ', 'Ġ', 'ġ', 'Ģ', 'ģ', 'Ĥ', 'ĥ', 'Ħ', 'ħ', 'Ĩ', 'ĩ', 'Ī', 'ī', 'Ĭ', 'ĭ',
'Į', 'į', 'İ', 'ı', 'IJ', 'ij', 'Ĵ', 'ĵ', 'Ķ', 'ķ', 'Ĺ', 'ĺ', 'Ļ', 'ļ', 'Ľ',
'ľ', 'Ŀ', 'ŀ', 'Ł', 'ł', 'Ń', 'ń', 'Ņ', 'ņ', 'Ň', 'ň', 'ʼn', 'Ō', 'ō', 'Ŏ',
'ŏ', 'Ő', 'ő', 'Œ', 'œ', 'Ŕ', 'ŕ', 'Ŗ', 'ŗ', 'Ř', 'ř', 'Ś', 'ś', 'Ŝ', 'ŝ',
'Ş', 'ş', 'Š', 'š', 'Ţ', 'ţ', 'Ť', 'ť', 'Ŧ', 'ŧ', 'Ũ', 'ũ', 'Ū', 'ū', 'Ŭ',
'ŭ', 'Ů', 'ů', 'Ű', 'ű', 'Ų', 'ų', 'Ŵ', 'ŵ', 'Ŷ', 'ŷ', 'Ÿ', 'Ź', 'ź', 'Ż',
'ż', 'Ž', 'ž', 'ſ', 'ƒ', 'Ơ', 'ơ', 'Ư', 'ư', 'Ǎ', 'ǎ', 'Ǐ', 'ǐ', 'Ǒ', 'ǒ',
'Ǔ', 'ǔ', 'Ǖ', 'ǖ', 'Ǘ', 'ǘ', 'Ǚ', 'ǚ', 'Ǜ', 'ǜ', 'Ǻ', 'ǻ', 'Ǽ', 'ǽ', 'Ǿ', 'ǿ');
 
private static $caracteres_normaux = array(
'A', 'A', 'A', 'A', 'A', 'A', 'AE', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'I',
'I', 'D', 'N', 'O', 'O', 'O', 'O', 'O', 'O', 'U', 'U', 'U', 'U', 'Y', 's',
'a', 'a', 'a', 'a', 'a', 'a', 'ae', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i',
'i', 'n', 'o', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', 'y', 'y', 'A', 'a',
'A', 'a', 'A', 'a', 'C', 'c', 'C', 'c', 'C', 'c', 'C', 'c', 'D', 'd', 'D', 'd',
'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'G', 'g', 'G', 'g', 'G', 'g',
'G', 'g', 'H', 'h', 'H', 'h', 'I', 'i', 'I', 'i', 'I', 'i', 'I', 'i', 'I', 'i',
'IJ', 'ij', 'J', 'j', 'K', 'k', 'L', 'l', 'L', 'l', 'L', 'l', 'L', 'l', 'l', 'l',
'N', 'n', 'N', 'n', 'N', 'n', 'n', 'O', 'o', 'O', 'o', 'O', 'o', 'OE', 'oe', 'R',
'r', 'R', 'r', 'R', 'r', 'S', 's', 'S', 's', 'S', 's', 'S', 's', 'T', 't', 'T', 't',
'T', 't', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'W', 'w', 'Y',
'y', 'Y', 'Z', 'z', 'Z', 'z', 'Z', 'z', 's', 'f', 'O', 'o', 'U', 'u', 'A', 'a', 'I',
'i', 'O', 'o', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'A', 'a', 'AE', 'ae', 'O', 'o');
/**
* Supprime ou remplace les accents d'une chaine en PHP.
* La solution retenu, provenant du site
* {@link http://www.lecoindunet.com/zone_php/scripts_utiles/remplacer-les-caracteres-accentues-dune-chaine-en-php-72 lecoindunet.com},
* consiste en deux tableaux (caractères avec et sans accents) car cela permetra éventuellement
* de fournir des méthodes pour récupérer ces tableaux pour d'autres traitements.
* Une autre solution aurait été d'utiliser les entités HTML comme proposé par le site
* {@link http://www.weirdog.com/blog/php/supprimer-les-accents-des-caracteres-accentues.html weirdog.com}.
*
* @param String $chaine la chaine de caractères dans laquelle supprimer les accents.
* @param String $encodage le code d'encodage de la chaine si ce n'est pas de l'UTF-8.
* @return la chaine de caractères sans accent.
*/
public static function supprimerAccents($chaine, $encodage = 'UTF-8') {
if ($encodage != 'UTF-8') {
mb_convert_variables($encodage, 'UTF-8', self::$caracteres_accentues, self::$caracteres_normaux);
}
return str_replace(self::$caracteres_accentues, self::$caracteres_normaux, $chaine);
}
}
?>
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/trunk/doc/PhpDoc/files/utilitaires/Fichier.php.txt
New file
0,0 → 1,202
<?php
// declare(encoding='UTF-8');
/**
* Classe fournissant des méthodes statiques de manipulation des fichiers.
*
* @category PHP 5.2
* @package Utilitaire
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id: Fichier.php 352 2011-07-21 10:25:56Z jpm $
* @link /doc/framework/
*/
class Fichier {
/**
* Créer et stocke du contenu dans un fichier.
*
* @param string le chemin et le nom du fichier.
* @param string le contenu à stocker dans le fichier.
* @return string true en cas de succès sinon false.
*/
public static function creerFichier($fichier, $contenu) {
$erreur = null;
// Début de l'écriture du fichier
if ($resource = fopen($fichier, 'w')) {
if (!fwrite($resource, $contenu)) {
if (!fclose($resource)) {
$erreur = "Le fichier '$fichier' n'a pas pu être fermé.";
}
} else {
$erreur = "Le contenu texte n'a pas pu être écrit dans le fichier '$fichier'.";
}
} else {
$erreur = "Le fichier '$fichier' n'a pas pu être ouvert.";
}
 
// Gestion des erreurs et du retour
if (is_null($erreur)) {
return true;
} else {
trigger_error($erreur, E_USER_WARNING);
return false;
}
}
/**
* Créer et stocke du contenu dans un fichier compressé en Gzip.
*
* @param string le chemin et le nom du fichier.
* @param string le contenu à stocker dans le fichier.
* @return string true en cas de succès sinon false.
*/
public static function creerFichierGzip($fichier, $contenu) {
$erreur = null;
// Ajout de l'extension gz
if (substr($fichier, -3) != '.gz') {
$fichier = $fichier.'.gz';
}
// Début de l'écriture du fichier compressé
if ($resource = gzopen($fichier, 'w9')) {
if (gzwrite($resource, $contenu)) {
if (!gzclose($resource)) {
$erreur = "Le fichier compressé '$fichier' n'a pas pu être fermé.";
}
} else {
$erreur = "Le contenu texte n'a pas pu être écrit dans le fichier compressé '$fichier'.";
}
} else {
$erreur = "Le fichier compressé '$fichier' n'a pas pu être ouvert.";
}
// Gestion des erreurs et du retour
if (is_null($erreur)) {
return true;
} else {
trigger_error($erreur, E_USER_WARNING);
return false;
}
}
/**
* Supprime récursivement un dossier et tout son contenu.
*
* @param string $dossier le chemin vers le dossier à supprimer.
* @return void
*/
public static function supprimerDossier($dossier) {
if (is_dir($dossier)) {
$objets = scandir($dossier);
foreach ($objets as $objet) {
if ($objet != '.' && $objet != '..') {
$chemin = $dossier.'/'.$objet;
if (filetype($chemin) == 'dir') {
$this->supprimerDossier($chemin);
} else {
unlink($chemin);
}
}
}
reset($objets);
rmdir($dossier);
}
}
/**
* Convertion d'un nombre d'octet en kB, MB, GB.
* @link http://forum.webmaster-rank.info/developpement-site/code-taille-memoire-d-une-variable-en-php-t1344.html
* @param integer $taille la taille en octet à convertir
*
* @return string la chaine représentant la taille en octets.
*/
public static function convertirTaille($taille) {
$unite = array('B', 'kB', 'MB', 'GB');
return @round($taille / pow(1024, ($i = floor(log($taille,1024)))), 2).' '.$unite[$i];
}
/**
* Détermine le dossier système temporaire et détecte si nous y avons accès en lecture et écriture.
*
* Inspiré de Zend_File_Transfer_Adapter_Abstract & Zend_Cache
*
* @return string|false le chemine vers le dossier temporaire ou false en cas d'échec.
*/
public static function getDossierTmp() {
$dossier_tmp = false;
foreach (array($_ENV, $_SERVER) as $environnement) {
foreach (array('TMPDIR', 'TEMP', 'TMP', 'windir', 'SystemRoot') as $cle) {
if (isset($environnement[$cle])) {
if (($cle == 'windir') or ($cle == 'SystemRoot')) {
$dossier = realpath($environnement[$cle] . '\\temp');
} else {
$dossier = realpath($environnement[$cle]);
}
if (self::etreAccessibleEnLectureEtEcriture($dossier)) {
$dossier_tmp = $dossier;
break 2;
}
}
}
}
if ( ! $dossier_tmp) {
$dossier_televersement_tmp = ini_get('upload_tmp_dir');
if ($dossier_televersement_tmp) {
$dossier = realpath($dossier_televersement_tmp);
if (self::etreAccessibleEnLectureEtEcriture($dossier)) {
$dossier_tmp = $dossier;
}
}
}
if ( ! $dossier_tmp) {
if (function_exists('sys_get_temp_dir')) {
$dossier = sys_get_temp_dir();
if (self::etreAccessibleEnLectureEtEcriture($dossier)) {
$dossier_tmp = $dossier;
}
}
}
if ( ! $dossier_tmp) {
// Tentative de création d'un fichier temporaire dans le dossier courrant
$fichier_tmp = @tempnam(md5(uniqid(rand(), TRUE)), '');
if ($fichier_tmp) {
$dossier = @realpath(dirname($fichier_tmp));
@unlink($fichier_tmp);
if (self::etreAccessibleEnLectureEtEcriture($dossier)) {
$dossier_tmp = $dossier;
}
}
}
if ( ! $dossier_tmp && self::etreAccessibleEnLectureEtEcriture('/tmp')) {
$dossier_tmp = '/tmp';
}
if ( ! $dossier_tmp && self::etreAccessibleEnLectureEtEcriture('\\temp')) {
$dossier_tmp = '\\temp';
}
return $dossier_tmp;
}
/**
* Vérifie si le fichier ou dossier est accessible en lecture et écriture.
*
* @param $ressource chemin vers le dossier ou fichier à tester
* @return boolean true si la ressource est accessible en lecture et écriture.
*/
protected static function etreAccessibleEnLectureEtEcriture($ressource){
$accessible = false;
if (is_readable($ressource) && is_writable($ressource)) {
$accessible = true;
}
return $accessible;
}
}
?>
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/trunk/doc/PhpDoc/files/GestionnaireException.php.html
New file
0,0 → 1,278
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1573358507"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1573358507" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content file">
<nav>
</nav>
 
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small></small>GestionnaireException.php</h1>
<p><em></em></p>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="../classes/GestionnaireException.html">GestionnaireException</a></td>
<td><em>Classe de gestion des exceptions.</em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
 
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label"></h3>
</div>
<div class="modal-body">
<pre data-src="../files/GestionnaireException.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/files/utilitaires.Fichier.php.html
New file
0,0 → 1,278
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1925976391"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1925976391" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content file">
<nav>
</nav>
 
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small>utilitaires</small>Fichier.php</h1>
<p><em></em></p>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="../classes/Fichier.html">Fichier</a></td>
<td><em>Classe fournissant des méthodes statiques de manipulation des fichiers.</em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
 
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label"></h3>
</div>
<div class="modal-body">
<pre data-src="../files/utilitaires/Fichier.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/files/Controleur.php.txt
New file
0,0 → 1,155
<?php
// declare(encoding='UTF-8');
/**
* 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.
*
* @category php 5.2
* @package Framework
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id: Controleur.php 415 2012-04-04 09:05:55Z jpm $
* @link /doc/framework/
*
*/
abstract class Controleur {
/** Variable statique indiquant que les tableaux _GET et _POST ont déjà été encodé au format de l'appli. */
private static $encodage = false;
 
/** Chemin de base vers les classes métiers de la partie Modèle de l'application. */
private $base_chemin_modele = null;
 
/** Chemin de base vers les fichiers squelette de la partie Vue de l'application. */
private $base_chemin_squelette = null;
 
/** Chemin de base vers les classes controleurs de la partie Controleur de l'application. */
private $base_chemin_controleur = null;
 
/** Objet URL contant l'url de la base de l'application. */
private $base_url_applicaton = null;
 
/** Tableau des noms des paramètres à définir dans le fichier de config car obligatoirement nécessaire à cette classe.*/
protected $parametres_obligatoires = array('chemin_modeles', 'chemin_squelettes', 'chemin_controleurs', 'base_url_application');
 
/**
* Constructeur par défaut
*/
public function __construct() {
Config::verifierPresenceParametres($this->parametres_obligatoires);
 
$this->base_chemin_modele = Config::get('chemin_modeles');
if (Registre::existe('tbf.chemin_modeles')) {
$this->base_chemin_modele = Registre::get('tbf.chemin_modeles');
}
 
$this->base_chemin_squelette = Config::get('chemin_squelettes');
if (Registre::existe('tbf.chemin_squelettes')) {
$this->base_chemin_squelette = Registre::get('tbf.chemin_squelettes');
}
 
$this->base_chemin_controleur = Config::get('chemin_controleurs');
if (Registre::existe('tbf.chemin_controleurs')) {
$this->base_chemin_squelette = Registre::get('tbf.chemin_controleurs');
}
 
$this->base_url_application = new Url(Config::get('base_url_application'));
}
 
/**
* Permet de récupérer le chemin vers les squelettes.
*
* @return String $chemin chemin vers les squelettes
*/
protected function getCheminSquelette() {
return $this->base_chemin_squelette;
}
 
/**
* Permet de définir dynamiquement le chemin vers les squelettes.
*
* @param String $chemin chemin vers les squelettes
*/
protected function setCheminSquelette($chemin) {
$this->base_chemin_squelette = $chemin;
}
 
/**
* Charge un modele donné et le rend disponible sous la forme $this->nom_modele
*
* @param string $nom_modele le nom du modèle à  charger
*
* @return boolean false si le chargement a échoué, sinon true.
*/
public function chargerModele($nom_modele) {
$sortie = true;
if (!isset($this->$nom_modele)) {
$modele = $this->getModele($nom_modele);
if ($modele !== false) {
$this->$nom_modele = new $nom_modele;
} else {
$sortie = false;
}
}
return $sortie;
}
 
/**
* Retourne un modele donné
*
* @param string $nom_modele le nom du fichier modèle à charger sans son extension
* @param String $ext l'extension du fichier du modèle (par défaut : ".php")
*
* @return mixed false si le chargement a échoué, sinon l'objet du modèle demandé.
*/
protected function getModele($nom_modele, $ext = '.php') {
$sortie = false;
 
$chemin_modele = $this->registre->get('base_chemin_modele').$nom_modele.$ext;
if (file_exists($chemin_modele)) {
include_once $chemin_modele;
if (class_exists($nom_modele)) {
$sortie = new $nom_modele;
}
}
return $sortie;
}
 
/**
* 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.
*
* @param String $nom_squelette le nom du squelette sans son extension si elle vaut ".tpl.html"
* @param Array $donnees un tableau associatif contenant les variables a injecter dans la vue
* @since 0.4 suppression du paramètre 'ext' => le mettre directement dans le nom du squelette
*
* @return boolean false si la vue n'existe pas, sinon la chaine résultat.
*/
protected function getVue($nom_squelette, $donnees = array()) {
$donnees = $this->preTraiterDonnees($donnees);
$chemin_squelette = $this->base_chemin_squelette.$nom_squelette.'.tpl.html';
if (file_exists($chemin_squelette) === false) {
$chemin_squelette = $this->base_chemin_squelette.$nom_squelette;
}
$sortie = SquelettePhp::analyser($chemin_squelette, $donnees);
 
return $sortie;
}
 
/**
* 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.
*
* @param Array $donnees Le tableau de données à traiter
*
* @return Array $donnees Le tableau de données traité
*/
protected function preTraiterDonnees(&$donnees) {
return $donnees;
}
}
?>
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/trunk/doc/PhpDoc/files/Framework.php.txt
New file
0,0 → 1,253
<?php
// declare(encoding='UTF-8');
/**
* Classe de base du Framework :
* - fournissant des infos sur l'application,
* - paramétrant l'environnement de l'appli et du framework,
* - réalisant des traitements sur les variables globales ($_GET, $_POST, $_COOKIE...)
*
* Cette classe contient la fonction de chargement automatique de classes.
* Ce fichier doit toujours rester à la racine du framework car il initialise le chemin
* de l'application en se basant sur son propre emplacement.
*
* @category PHP 5.2
* @package Framework
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
* @version $Id: Framework.php 393 2011-11-10 13:36:48Z jpm $
* @since 0.3
* @link /doc/framework/
*/
class Framework {
 
/** Variable statique indiquant que les tableaux _GET et _POST ont déjà été encodé au format de l'appli. */
private static $encodage = false;
 
/** Tableau d'informations sur l'application */
private static $info = null;
 
/** Chemin de base de l'application */
private static $chemin = null;
 
/** Tableau des noms des paramètres à définir dans le fichier de config car obligatoirement nécessaire à cette classe.*/
private static $parametres_obligatoires = array('chemin_controleurs', 'chemin_modeles', 'chemin_bibliotheque',
'url_arg_separateur_entree', 'url_arg_separateur_sortie',
'encodage_sortie', 'encodage_appli');
 
/**
* Initialise l'environnement nécessaire au Framework : constantes globales, méthodeles autoload, séparateur d'arguments
* d'url.
* Cette méthode est appelée automatiquement suite à la définition du chemin de l'application via Application::setChemin().
*/
private static function initialiserEnvironnement() {
self::enregistrerMethodesAutoload();
self::initialiserUrl();
}
 
/**
* Initialise différentes classes du Framework nécessaires pour le fonctionnement de l'application.
* Ces classes sont ensuites controlées via les fichiers de config.ini.
* Elle est appelée automatiquement suite à la définition du chemin de l'application via Application::setChemin().
*/
private static function initialiserFramework() {
GestionnaireException::configurer();
//Log::configurer();
self::verifierEtReencoderTableauRequete();
}
 
/**
* Redéfinit des constantes globales utiles pour le Framework et les applis.
*/
private static function definirConstantesGlobales() {
if (!defined('DS')) {
/** Redéfinition de la constante DIRECTORY_SEPARATOR en version abrégée DS */
define('DS', DIRECTORY_SEPARATOR);
}
if (!defined('PS')) {
/** Redéfinition de la constante PATH_SEPARATOR en version abrégée PS */
define('PS', PATH_SEPARATOR);
}
}
 
private static function definirCheminAppli($chemin) {
if (is_file($chemin)) {
self::$chemin = dirname($chemin).DS;
} else if (is_dir($chemin)) {
self::$chemin = $chemin;
} else {
throw new Exception("Le chemin indiqué '$chemin' n'est ni un fichier ni un dossier.");
}
}
 
private static function enregistrerMethodesAutoload() {
spl_autoload_register(array(get_class(), 'autoloadFw'));
 
// Vérification des paramètres de configuration obligatoire pour assurer le fonctionnement du Framework
Config::verifierPresenceParametres(self::$parametres_obligatoires);
 
// Initialisation du gestionnaire d'erreur avant toute chose
GestionnaireException::initialiser();
 
spl_autoload_register(array(get_class(), 'autoloadAppliDefaut'));
 
// Autoload défini par l'application
if (function_exists('__autoload')) {
spl_autoload_register('__autoload');
}
}
 
/**
* Autoload pour le Framework.
*/
private static function autoloadFw($nom_classe_fw) {
$racine_fw = dirname(__FILE__).DS;
$dossiers_classes = array( $racine_fw,
$racine_fw.'utilitaires'.DS,
$racine_fw.'brouillons'.DS);
foreach ($dossiers_classes as $chemin) {
$fichier_a_tester = $chemin.$nom_classe_fw.'.php';
if (file_exists($fichier_a_tester)) {
include_once $fichier_a_tester;
return null;
}
}
}
 
/**
* Autoload par défaut pour l'application
*/
private static function autoloadAppliDefaut($nom_classe) {
$dossiers_classes = array( Config::get('chemin_controleurs'),
Config::get('chemin_modeles'),
Config::get('chemin_bibliotheque'));
 
foreach ($dossiers_classes as $chemin) {
$fichier_a_tester = $chemin.$nom_classe.'.php';
if (file_exists($fichier_a_tester)) {
include_once $fichier_a_tester;
return null;
}
}
}
 
/**
* Initialise le format des urls.
*/
private static function initialiserUrl() {
ini_set('arg_separator.input', Config::get('furl_arg_separateur_entree'));
ini_set('arg_separator.output', Config::get('url_arg_separateur_sortie'));
}
 
/**
* 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.
* @param string $chemin_fichier_principal chemin de base
*/
public static function setCheminAppli($chemin_fichier_principal) {
if (self::$chemin === null) {
if (!file_exists($chemin_fichier_principal)) {
trigger_error("Le fichier indiqué n'existe pas. Utilisez __FILE__ dans la méthode setCheminAppli().", E_USER_ERROR);
} else {
self::definirConstantesGlobales();
self::definirCheminAppli($chemin_fichier_principal);
self::initialiserEnvironnement();
self::initialiserFramework();
}
} else {
trigger_error("Le chemin de l'application a déjà été enregistré auprès du Framework", E_USER_WARNING);
}
}
 
/**
* accesseur pour le chemin
* @return string le chemin
*/
public static function getCheminAppli() {
return self::$chemin;
}
 
/** Le tableau des informations sur l'application possède les clés suivantes :
* - nom : nom de l'application
* - abr : abréviation de l'application
* - encodage : encodage de l'application (ISO-8859-15, UTF-8...)
*
* @param array $info tableau fournissant des informations sur l'application
* @return void
*/
public static function setInfoAppli($info) {
if (self::$info === null) {
self::$info = $info;
} else {
trigger_error("Le informations de l'application ont déjà été enregistrées auprès du Framework", E_USER_WARNING);
}
}
 
/**
* Accesseur pour le tableau d'infos sur l'application.
* @param string $cle la clé à laquelle on veut accéder
*/
public static function getInfoAppli($cle = null) {
if ($cle !== null) {
if (isset(self::$info[$cle])) {
return self::$info[$cle];
}
} else {
return self::$info;
}
}
 
/**
* Procédure vérifiant l'encodage des tableaux $_GET et $_POST et les transcodant dans l'encodage de l'application
*/
protected static function verifierEtReencoderTableauRequete() {
if (self::$encodage == false && Config::get('encodage_sortie') != Config::get('encodage_appli')) {
$_POST = self::encoderTableau($_POST, Config::get('encodage_appli'), Config::get('encodage_sortie'));
$_GET = self::encoderTableau($_GET, Config::get('encodage_appli'), Config::get('encodage_sortie'));
 
// Traitement des magic quotes
self::verifierEtTraiterSlashTableauRequete();
 
self::$encodage = true;
}
}
 
/**
* Procédure vérifiant l'activation des magic quotes et remplacant les slash dans les tableaux de requete
*/
private static function verifierEtTraiterSlashTableauRequete() {
if (get_magic_quotes_gpc()) {
if (!function_exists('nettoyerSlashProfond')) {
function nettoyerSlashProfond($valeur) {
return ( is_array($valeur) ) ? array_map('nettoyerSlashProfond', $valeur) : stripslashes($valeur);
}
}
$_GET = array_map('nettoyerSlashProfond', $_GET);
$_POST = array_map('nettoyerSlashProfond', $_POST);
$_COOKIE = array_map('nettoyerSlashProfond', $_COOKIE);
}
}
 
/**
* Fonction récursive transcodant toutes les valeurs d'un tableau de leur encodage d'entrée vers un encodage de sortie donné
* @param $tableau Array Un tableau de données à encoder
* @param $encodage_sortie String l'encodage vers lequel on doit transcoder
* @param $encodage_entree String l'encodage original des chaines du tableau (optionnel)
* @return Array Le tableau encodé dans l'encodage de sortie
*
*/
final static protected function encoderTableau($tableau, $encodage_sortie, $encodage_entree = null) {
if (is_array($tableau)) {
foreach ($tableau as $cle => $valeur) {
if (is_array($valeur)) {
$tableau[$cle] = self::encoderTableau($valeur, $encodage_sortie, $encodage_entree);
} else {
$tableau[$cle] = mb_convert_encoding($valeur, $encodage_sortie, $encodage_entree);
}
}
}
return $tableau;
}
}
?>
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/trunk/doc/PhpDoc/files/CacheFichier.php.txt
New file
0,0 → 1,871
<?php
class CacheFichier {
/**
* Options disponibles
*
* ====> (string) stockage_chemin :
* Chemin vers le dossier devant contenir l'arborescence du cache.
*
* =====> (boolean) fichier_verrou :
* - Active / Désactive le verrouillage des fichiers
* - Peut éviter la corruption du cache dans de mauvaises circonstances, mais cela ne fonctionne pas sur des serveur
* multithread et sur les systèmes de fichiers NFS par exemple.
*
* =====> (boolean) controle_lecture :
* - Activer / désactiver le contrôle de lecture
* - S'il est activé, une clé de contrôle est ajoutée dans le fichier de cache et cette clé est comparée avec celle calculée
* après la lecture.
*
* =====> (string) controle_lecture_type :
* Type de contrôle de lecture (seulement si le contrôle de lecture est activé).
* Les valeurs disponibles sont:
* - «md5» pour un contrôle md5 (le meilleur mais le plus lent)
* - «crc32» pour un contrôle de hachage crc32 (un peu moins sécurisé, mais plus rapide, un meilleur choix)
* - «adler32» pour un contrôle de hachage adler32 (excellent choix aussi, plus rapide que crc32)
* - «strlen» pour un test de longueur uniquement (le plus rapide)
*
* =====> (int) dossier_niveau :
* - Permet de réglez le nombre de niveau de sous-dossier que contiendra l'arborescence des dossiers du cache.
* 0 signifie "pas de sous-dossier pour le cache",
* 1 signifie "un niveau de sous-dossier",
* 2 signifie "deux niveaux" ...
* Cette option peut accélérer le cache seulement lorsque vous avez plusieurs centaines de fichiers de cache.
* Seuls des tests spécifiques peuvent vous aider à choisir la meilleure valeur possible pour vous.
* 1 ou 2 peut être est un bon début.
*
* =====> (int) dossier_umask :
* - Umask pour les sous-dossiers de l'arborescence du cache.
*
* =====> (string) fichier_prefixe :
* - préfixe pour les fichiers du cache
* - ATTENTION : faite vraiment attention avec cette option, car une valeur trop générique dans le dossier cache du système
* (comme /tmp) peut provoquer des catastrophes lors du nettoyage du cache.
*
* =====> (int) fichier_umask :
* - Umask pour les fichiers de cache
*
* =====> (int) metadonnees_max_taille :
* - taille maximum pour le tableau de métadonnées du cache (ne changer pas cette valeur sauf si vous savez ce que vous faite)
*
* @var array options disponibles
*/
protected $options = array(
'stockage_chemin' => null,
'fichier_verrou' => true,
'controle_lecture' => true,
'controle_lecture_type' => 'crc32',
'dossier_niveau' => 0,
'dossier_umask' => 0700,
'fichier_prefixe' => 'tbf',
'fichier_umask' => 0600,
'metadonnees_max_taille' => 100
);
 
/**
* Array of metadatas (each item is an associative array)
*
* @var array
*/
protected $metadonnees = array();
 
private $Cache = null;
/**
* Constructor
*
* @param array $options associative array of options
* @throws Zend_Cache_Exception
* @return void
*/
public function __construct(array $options = array(), Cache $cache) {
$this->Cache = $cache;
$this->initialiserOptionsParConfig();
$this->setOptions($options);
 
if (isset($this->options['prefixe_fichier'])) {
if (!preg_match('~^[a-zA-Z0-9_]+$~D', $this->options['prefixe_fichier'])) {
trigger_error("Préfixe de nom de fichier invalide : doit contenir seulement [a-zA-Z0-9_]", E_USER_WARNING);
}
}
if ($this->options['metadonnees_max_taille'] < 10) {
trigger_error("Taille du tableau des méta-données invalide, elle doit être > 10", E_USER_WARNING);
}
if (isset($options['dossier_umask']) && is_string($options['dossier_umask'])) {
// See #ZF-4422
$this->options['dossier_umask'] = octdec($this->options['dossier_umask']);
}
if (isset($options['fichier_umask']) && is_string($options['fichier_umask'])) {
// See #ZF-4422
$this->options['fichier_umask'] = octdec($this->options['fichier_umask']);
}
}
private function initialiserOptionsParConfig() {
while (list($nom, $valeur) = each($this->options)) {
if (Config::existe($nom)) {
$this->options[$nom] = Config::get($nom);
}
}
}
private function setOptions($options) {
while (list($nom, $valeur) = each($options)) {
if (!is_string($nom)) {
trigger_error("Nom d'option incorecte : $nom", E_USER_WARNING);
}
$nom = strtolower($nom);
if (array_key_exists($nom, $this->options)) {
$this->options[$nom] = $valeur;
}
}
}
 
public function setEmplacement($emplacement) {
if (!is_dir($emplacement)) {
trigger_error("L'emplacement doit être un dossier.", E_USER_WARNING);
}
if (!is_writable($emplacement)) {
trigger_error("Le dossier de stockage du cache n'est pas accessible en écriture", E_USER_WARNING);
}
$emplacement = rtrim(realpath($emplacement), '\\/').DS;
$this->options['stockage_chemin'] = $emplacement;
}
 
/**
* Test if a cache is available for the given id and (if yes) return it (false else)
*
* @param string $id cache id
* @param boolean $doNotTestCacheValidity if set to true, the cache validity won't be tested
* @return string|false cached datas
*/
public function charger($id, $ne_pas_tester_validiter_du_cache = false) {
$donnees = false;
if ($this->tester($id, $ne_pas_tester_validiter_du_cache)) {
$metadonnees = $this->getMetadonneesFichier($id);
$fichier = $this->getFichierNom($id);
$donnees = $this->getContenuFichier($fichier);
if ($this->options['controle_lecture']) {
$cle_secu_donnees = $this->genererCleSecu($donnees, $this->options['controle_lecture_type']);
$cle_secu_controle = $metadonnees['hash'];
if ($cle_secu_donnees != $cle_secu_controle) {
// Probléme détecté par le contrôle de lecture !
// TODO : loguer le pb de sécu
$this->supprimer($id);
$donnees = false;
}
}
}
return $donnees;
}
 
/**
* Teste si un enregistrement en cache est disponible ou pas (pour l'id passé en paramètre).
*
* @param string $id identifiant de cache.
* @return mixed false (le cache n'est pas disponible) ou timestamp (int) "de dernière modification" de l'enregistrement en cache
*/
public function tester($id) {
clearstatcache();
return $this->testerExistenceCache($id, false);
}
 
/**
* Save some string datas into a cache record
*
* Note : $data is always "string" (serialization is done by the
* core not by the backend)
*
* @param string $data Datas to cache
* @param string $id Cache id
* @param array $tags Array of strings, the cache record will be tagged by each string entry
* @param int $specificLifetime If != false, set a specific lifetime for this cache record (null => infinite lifetime)
* @return boolean true if no problem
*/
public function sauver($donnees, $id, $tags = array(), $duree_vie_specifique = false) {
clearstatcache();
$fichier = $this->getFichierNom($id);
$chemin = $this->getChemin($id);
$resultat = true;
if ($this->options['dossier_niveau'] > 0) {
if (!is_writable($chemin)) {
// maybe, we just have to build the directory structure
$this->lancerMkdirEtChmodRecursif($id);
}
if (!is_writable($chemin)) {
$resultat = false;
}
}
if ($resultat === true) {
if ($this->options['controle_lecture']) {
$cle_secu = $this->genererCleSecu($donnees, $this->options['controle_lecture_type']);
} else {
$cle_secu = '';
}
$metadonnees = array(
'hash' => $cle_secu,
'mtime' => time(),
'expiration' => $this->Cache->getTimestampExpiration($duree_vie_specifique),
'tags' => $tags
);
 
if (! $resultat = $this->setMetadonnees($id, $metadonnees)) {
// TODO : ajouter un log
} else {
$resultat = $this->setContenuFichier($fichier, $donnees);
}
}
return $resultat;
}
 
/**
* Remove a cache record
*
* @param string $id cache id
* @return boolean true if no problem
*/
public function supprimer($id) {
$fichier = $this->getFichierNom($id);
$suppression_fichier = $this->supprimerFichier($fichier);
$suppression_metadonnees = $this->supprimerMetadonnees($id);
return $suppression_metadonnees && $suppression_fichier;
}
 
/**
* Clean some cache records
*
* Available modes are :
* 'all' (default) => remove all cache entries ($tags is not used)
* 'old' => remove too old cache entries ($tags is not used)
* 'matchingTag' => remove cache entries matching all given tags
* ($tags can be an array of strings or a single string)
* 'notMatchingTag' => remove cache entries not matching one of the given tags
* ($tags can be an array of strings or a single string)
* 'matchingAnyTag' => remove cache entries matching any given tags
* ($tags can be an array of strings or a single string)
*
* @param string $mode clean mode
* @param tags array $tags array of tags
* @return boolean true if no problem
*/
public function nettoyer($mode = Cache::NETTOYAGE_MODE_TOUS, $tags = array()) {
// We use this protected method to hide the recursive stuff
clearstatcache();
return $this->nettoyerFichiers($this->options['stockage_chemin'], $mode, $tags);
}
 
/**
* Return an array of stored cache ids
*
* @return array array of stored cache ids (string)
*/
public function getIds() {
return $this->analyserCache($this->options['stockage_chemin'], 'ids', array());
}
 
/**
* Return an array of stored tags
*
* @return array array of stored tags (string)
*/
public function getTags() {
return $this->analyserCache($this->options['stockage_chemin'], 'tags', array());
}
 
/**
* Return an array of stored cache ids which match given tags
*
* In case of multiple tags, a logical AND is made between tags
*
* @param array $tags array of tags
* @return array array of matching cache ids (string)
*/
public function getIdsAvecLesTags($tags = array()) {
return $this->analyserCache($this->options['stockage_chemin'], 'matching', $tags);
}
 
/**
* Return an array of stored cache ids which don't match given tags
*
* In case of multiple tags, a logical OR is made between tags
*
* @param array $tags array of tags
* @return array array of not matching cache ids (string)
*/
public function getIdsSansLesTags($tags = array()) {
return $this->analyserCache($this->options['stockage_chemin'], 'notMatching', $tags);
}
 
/**
* Return an array of stored cache ids which match any given tags
*
* In case of multiple tags, a logical AND is made between tags
*
* @param array $tags array of tags
* @return array array of any matching cache ids (string)
*/
public function getIdsAvecUnTag($tags = array()) {
return $this->analyserCache($this->options['stockage_chemin'], 'matchingAny', $tags);
}
 
/**
* Return the filling percentage of the backend storage
*
* @throws Zend_Cache_Exception
* @return int integer between 0 and 100
*/
public function getPourcentageRemplissage() {
$libre = disk_free_space($this->options['stockage_chemin']);
$total = disk_total_space($this->options['stockage_chemin']);
$pourcentage = 0;
if ($total == 0) {
trigger_error("Impossible d'utiliser la fonction disk_total_space", E_USER_WARNING);
} else {
$pourcentage = ($libre >= $total) ? 100 : ((int) (100. * ($total - $libre) / $total));
}
return $pourcentage;
}
 
/**
* Return an array of metadatas for the given cache id
*
* The array must include these keys :
* - expire : the expire timestamp
* - tags : a string array of tags
* - mtime : timestamp of last modification time
*
* @param string $id cache id
* @return array array of metadatas (false if the cache id is not found)
*/
public function getMetadonnees($id) {
if ($metadonnees = $this->getMetadonneesFichier($id)) {
if (time() > $metadonnees['expiration']) {
$metadonnees = false;
} else {
$metadonnees = array(
'expiration' => $metadonnees['expiration'],
'tags' => $metadonnees['tags'],
'mtime' => $metadonnees['mtime']
);
}
}
return $metadonnees;
}
 
/**
* Give (if possible) an extra lifetime to the given cache id
*
* @param string $id cache id
* @param int $extraLifetime
* @return boolean true if ok
*/
public function ajouterSupplementDureeDeVie($id, $supplement_duree_de_vie) {
$augmentation = true;
if ($metadonnees = $this->getMetadonneesFichier($id)) {
if (time() > $metadonnees['expiration']) {
$augmentation = false;
} else {
$metadonnees_nouvelle = array(
'hash' => $metadonnees['hash'],
'mtime' => time(),
'expiration' => $metadonnees['expiration'] + $supplement_duree_de_vie,
'tags' => $metadonnees['tags']
);
$augmentation = $this->setMetadonnees($id, $metadonnees_nouvelle);
}
}
return $augmentation;
}
 
/**
* Get a metadatas record
*
* @param string $id Cache id
* @return array|false Associative array of metadatas
*/
protected function getMetadonneesFichier($id) {
$metadonnees = false;
if (isset($this->metadonnees[$id])) {
$metadonnees = $this->metadonnees[$id];
} else {
if ($metadonnees = $this->chargerMetadonnees($id)) {
$this->setMetadonnees($id, $metadonnees, false);
}
}
return $metadonnees;
}
 
/**
* Set a metadatas record
*
* @param string $id Cache id
* @param array $metadatas Associative array of metadatas
* @param boolean $save optional pass false to disable saving to file
* @return boolean True if no problem
*/
protected function setMetadonnees($id, $metadonnees, $sauvegarde = true) {
if (count($this->metadonnees) >= $this->options['metadonnees_max_taille']) {
$n = (int) ($this->options['metadonnees_max_taille'] / 10);
$this->metadonnees = array_slice($this->metadonnees, $n);
}
$resultat = true;
if ($sauvegarde) {
$resultat = $this->sauverMetadonnees($id, $metadonnees);
}
if ($resultat == true) {
$this->metadonnees[$id] = $metadonnees;
}
return $resultat;
}
 
/**
* Drop a metadata record
*
* @param string $id Cache id
* @return boolean True if no problem
*/
protected function supprimerMetadonnees($id) {
if (isset($this->metadonnees[$id])) {
unset($this->metadonnees[$id]);
}
$fichier_meta = $this->getNomFichierMeta($id);
return $this->supprimerFichier($fichier_meta);
}
 
/**
* Clear the metadatas array
*
* @return void
*/
protected function nettoyerMetadonnees() {
$this->metadonnees = array();
}
 
/**
* Load metadatas from disk
*
* @param string $id Cache id
* @return array|false Metadatas associative array
*/
protected function chargerMetadonnees($id) {
$fichier = $this->getNomFichierMeta($id);
if ($resultat = $this->getContenuFichier($fichier)) {
$resultat = @unserialize($resultat);
}
return $resultat;
}
 
/**
* Save metadatas to disk
*
* @param string $id Cache id
* @param array $metadatas Associative array
* @return boolean True if no problem
*/
protected function sauverMetadonnees($id, $metadonnees) {
$fichier = $this->getNomFichierMeta($id);
$resultat = $this->setContenuFichier($fichier, serialize($metadonnees));
return $resultat;
}
 
/**
* Make and return a file name (with path) for metadatas
*
* @param string $id Cache id
* @return string Metadatas file name (with path)
*/
protected function getNomFichierMeta($id) {
$chemin = $this->getChemin($id);
$fichier_nom = $this->transformaterIdEnNomFichier('interne-meta---'.$id);
return $chemin.$fichier_nom;
}
 
/**
* Check if the given filename is a metadatas one
*
* @param string $fileName File name
* @return boolean True if it's a metadatas one
*/
protected function etreFichierMeta($fichier_nom) {
$id = $this->transformerNomFichierEnId($fichier_nom);
return (substr($id, 0, 21) == 'interne-meta---') ? true : false;
}
 
/**
* Remove a file
*
* If we can't remove the file (because of locks or any problem), we will touch
* the file to invalidate it
*
* @param string $file Complete file path
* @return boolean True if ok
*/
protected function supprimerFichier($fichier) {
$resultat = false;
if (is_file($fichier)) {
if ($resultat = @unlink($fichier)) {
// TODO : ajouter un log
}
}
return $resultat;
}
 
/**
* Clean some cache records (protected method used for recursive stuff)
*
* Available modes are :
* Zend_Cache::CLEANING_MODE_ALL (default) => remove all cache entries ($tags is not used)
* Zend_Cache::CLEANING_MODE_OLD => remove too old cache entries ($tags is not used)
* Zend_Cache::CLEANING_MODE_MATCHING_TAG => remove cache entries matching all given tags
* ($tags can be an array of strings or a single string)
* Zend_Cache::CLEANING_MODE_NOT_MATCHING_TAG => remove cache entries not {matching one of the given tags}
* ($tags can be an array of strings or a single string)
* Zend_Cache::CLEANING_MODE_MATCHING_ANY_TAG => remove cache entries matching any given tags
* ($tags can be an array of strings or a single string)
*
* @param string $dir Directory to clean
* @param string $mode Clean mode
* @param array $tags Array of tags
* @throws Zend_Cache_Exception
* @return boolean True if no problem
*/
protected function nettoyerFichiers($dossier, $mode = Cache::NETTOYAGE_MODE_TOUS, $tags = array()) {
if (!is_dir($dossier)) {
return false;
}
$resultat = true;
$prefixe = $this->options['fichier_prefixe'];
$glob = @glob($dossier.$prefixe.'--*');
if ($glob === false) {
// On some systems it is impossible to distinguish between empty match and an error.
return true;
}
foreach ($glob as $fichier) {
if (is_file($fichier)) {
$fichier_nom = basename($fichier);
if ($this->etreFichierMeta($fichier_nom)) {
// Pour le mode Cache::NETTOYAGE_MODE_TOUS, nous essayons de tous supprimer même les vieux fichiers méta
if ($mode != Cache::NETTOYAGE_MODE_TOUS) {
continue;
}
}
$id = $this->transformerNomFichierEnId($fichier_nom);
$metadonnees = $this->getMetadonneesFichier($id);
if ($metadonnees === FALSE) {
$metadonnees = array('expiration' => 1, 'tags' => array());
}
switch ($mode) {
case Cache::NETTOYAGE_MODE_TOUS :
if ($resultat_suppression = $this->supprimer($id)) {
// Dans ce cas seulement, nous acception qu'il y ait un problème avec la suppresssion du fichier meta
$resultat_suppression = $this->supprimerFichier($fichier);
}
$resultat = $resultat && $resultat_suppression;
break;
case Cache::NETTOYAGE_MODE_EXPIRATION :
if (time() > $metadonnees['expiration']) {
$resultat = $this->supprimer($id) && $resultat;
}
break;
case Cache::NETTOYAGE_MODE_AVEC_LES_TAGS :
$correspondance = true;
foreach ($tags as $tag) {
if (!in_array($tag, $metadonnees['tags'])) {
$correspondance = false;
break;
}
}
if ($correspondance) {
$resultat = $this->supprimer($id) && $resultat;
}
break;
case Cache::NETTOYAGE_MODE_SANS_LES_TAGS :
$correspondance = false;
foreach ($tags as $tag) {
if (in_array($tag, $metadonnees['tags'])) {
$correspondance = true;
break;
}
}
if (!$correspondance) {
$resultat = $this->supprimer($id) && $resultat;
}
break;
case Cache::NETTOYAGE_MODE_AVEC_UN_TAG :
$correspondance = false;
foreach ($tags as $tag) {
if (in_array($tag, $metadonnees['tags'])) {
$correspondance = true;
break;
}
}
if ($correspondance) {
$resultat = $this->supprimer($id) && $resultat;
}
break;
default:
trigger_error("Mode de nettoyage invalide pour la méthode nettoyer()", E_USER_WARNING);
break;
}
}
if ((is_dir($fichier)) and ($this->options['dossier_niveau'] > 0)) {
// Appel récursif
$resultat = $this->nettoyerFichiers($fichier.DS, $mode, $tags) && $resultat;
if ($mode == Cache::NETTOYAGE_MODE_TOUS) {
// Si mode == Cache::NETTOYAGE_MODE_TOUS, nous essayons de supprimer la structure aussi
@rmdir($fichier);
}
}
}
return $resultat;
}
 
protected function analyserCache($dossier, $mode, $tags = array()) {
if (!is_dir($dossier)) {
return false;
}
$resultat = array();
$prefixe = $this->options['fichier_prefixe'];
$glob = @glob($dossier.$prefixe.'--*');
if ($glob === false) {
// On some systems it is impossible to distinguish between empty match and an error.
return array();
}
foreach ($glob as $fichier) {
if (is_file($fichier)) {
$nom_fichier = basename($fichier);
$id = $this->transformerNomFichierEnId($nom_fichier);
$metadonnees = $this->getMetadonneesFichier($id);
if ($metadonnees === FALSE) {
continue;
}
if (time() > $metadonnees['expiration']) {
continue;
}
switch ($mode) {
case 'ids':
$resultat[] = $id;
break;
case 'tags':
$resultat = array_unique(array_merge($resultat, $metadonnees['tags']));
break;
case 'matching':
$correspondance = true;
foreach ($tags as $tag) {
if (!in_array($tag, $metadonnees['tags'])) {
$correspondance = false;
break;
}
}
if ($correspondance) {
$resultat[] = $id;
}
break;
case 'notMatching':
$correspondance = false;
foreach ($tags as $tag) {
if (in_array($tag, $metadonnees['tags'])) {
$correspondance = true;
break;
}
}
if (!$correspondance) {
$resultat[] = $id;
}
break;
case 'matchingAny':
$correspondance = false;
foreach ($tags as $tag) {
if (in_array($tag, $metadonnees['tags'])) {
$correspondance = true;
break;
}
}
if ($correspondance) {
$resultat[] = $id;
}
break;
default:
trigger_error("Mode invalide pour la méthode analyserCache()", E_USER_WARNING);
break;
}
}
if ((is_dir($fichier)) and ($this->options['dossier_niveau'] > 0)) {
// Appel récursif
$resultat_analyse_recursive = $this->analyserCache($fichier.DS, $mode, $tags);
if ($resultat_analyse_recursive === false) {
// TODO : ajoute un log
} else {
$resultat = array_unique(array_merge($resultat, $resultat_analyse_recursive));
}
}
}
return array_unique($resultat);
}
 
/**
* Make a control key with the string containing datas
*
* @param string $data Data
* @param string $controlType Type of control 'md5', 'crc32' or 'strlen'
* @throws Zend_Cache_Exception
* @return string Control key
*/
protected function genererCleSecu($donnees, $type_de_controle) {
switch ($type_de_controle) {
case 'md5':
return md5($donnees);
case 'crc32':
return crc32($donnees);
case 'strlen':
return strlen($donnees);
case 'adler32':
return hash('adler32', $donnees);
default:
trigger_error("Fonction de génération de clé de sécurité introuvable : $type_de_controle", E_USER_WARNING);
}
}
 
/**
* Transform a cache id into a file name and return it
*
* @param string $id Cache id
* @return string File name
*/
protected function transformaterIdEnNomFichier($id) {
$prefixe = $this->options['fichier_prefixe'];
$resultat = $prefixe.'---'.$id;
return $resultat;
}
 
/**
* Make and return a file name (with path)
*
* @param string $id Cache id
* @return string File name (with path)
*/
protected function getFichierNom($id) {
$path = $this->getChemin($id);
$fileName = $this->transformaterIdEnNomFichier($id);
return $path . $fileName;
}
 
/**
* Return the complete directory path of a filename (including hashedDirectoryStructure)
*
* @param string $id Cache id
* @param boolean $decoupage if true, returns array of directory parts instead of single string
* @return string Complete directory path
*/
protected function getChemin($id, $decoupage = false) {
$morceaux = array();
$chemin = $this->options['stockage_chemin'];
$prefixe = $this->options['fichier_prefixe'];
if ($this->options['dossier_niveau'] > 0) {
$hash = hash('adler32', $id);
for ($i = 0 ; $i < $this->options['dossier_niveau'] ; $i++) {
$chemin .= $prefixe.'--'.substr($hash, 0, $i + 1).DS;
$morceaux[] = $chemin;
}
}
return ($decoupage) ? $morceaux : $chemin;
}
 
/**
* Make the directory strucuture for the given id
*
* @param string $id cache id
* @return boolean true
*/
protected function lancerMkdirEtChmodRecursif($id) {
$resultat = true;
if ($this->options['dossier_niveau'] > 0) {
$chemins = $this->getChemin($id, true);
foreach ($chemins as $chemin) {
if (!is_dir($chemin)) {
@mkdir($chemin, $this->options['dossier_umask']);
@chmod($chemin, $this->options['dossier_umask']); // see #ZF-320 (this line is required in some configurations)
}
}
}
return $resultat;
}
 
/**
* Test if the given cache id is available (and still valid as a cache record)
*
* @param string $id Cache id
* @param boolean $doNotTestCacheValidity If set to true, the cache validity won't be tested
* @return boolean|mixed false (a cache is not available) or "last modified" timestamp (int) of the available cache record
*/
protected function testerExistenceCache($id, $ne_pas_tester_validiter_du_cache) {
$resultat = false;
if ($metadonnees = $this->getMetadonnees($id)) {
if ($ne_pas_tester_validiter_du_cache || (time() <= $metadonnees['expiration'])) {
$resultat = $metadonnees['mtime'];
}
}
return $resultat;
}
 
/**
* Return the file content of the given file
*
* @param string $file File complete path
* @return string File content (or false if problem)
*/
protected function getContenuFichier($fichier) {
$resultat = false;
if (is_file($fichier)) {
$f = @fopen($fichier, 'rb');
if ($f) {
if ($this->options['fichier_verrou']) @flock($f, LOCK_SH);
$resultat = stream_get_contents($f);
if ($this->options['fichier_verrou']) @flock($f, LOCK_UN);
@fclose($f);
}
}
return $resultat;
}
 
/**
* Put the given string into the given file
*
* @param string $file File complete path
* @param string $string String to put in file
* @return boolean true if no problem
*/
protected function setContenuFichier($fichier, $chaine) {
$resultat = false;
$f = @fopen($fichier, 'ab+');
if ($f) {
if ($this->options['fichier_verrou']) @flock($f, LOCK_EX);
fseek($f, 0);
ftruncate($f, 0);
$tmp = @fwrite($f, $chaine);
if (!($tmp === FALSE)) {
$resultat = true;
}
@fclose($f);
}
@chmod($fichier, $this->options['fichier_umask']);
return $resultat;
}
 
/**
* Transform a file name into cache id and return it
*
* @param string $fileName File name
* @return string Cache id
*/
protected function transformerNomFichierEnId($nom_de_fichier) {
$prefixe = $this->options['fichier_prefixe'];
return preg_replace('~^' . $prefixe . '---(.*)$~', '$1', $nom_de_fichier);
}
}
?>
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/trunk/doc/PhpDoc/files/utilitaires.Pattern.php.html
New file
0,0 → 1,278
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1919169064"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1919169064" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content file">
<nav>
</nav>
 
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small>utilitaires</small>Pattern.php</h1>
<p><em></em></p>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="../classes/Pattern.html">Pattern</a></td>
<td><em>Classe fournissant des constantes correspondant à des expressions régulières de vérification très courrantes.</em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
 
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label"></h3>
</div>
<div class="modal-body">
<pre data-src="../files/utilitaires/Pattern.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/files/utilitaires.Tableau.php.html
New file
0,0 → 1,278
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-120964873"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-120964873" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content file">
<nav>
</nav>
 
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small>utilitaires</small>Tableau.php</h1>
<p><em></em></p>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="../classes/Tableau.html">Tableau</a></td>
<td><em>Classe fournissant des méthodes statiques de manipulation des tableaux (Array).</em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
 
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label"></h3>
</div>
<div class="modal-body">
<pre data-src="../files/utilitaires/Tableau.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/files/RestClient.php.html
New file
0,0 → 1,278
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1014413070"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1014413070" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content file">
<nav>
</nav>
 
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small></small>RestClient.php</h1>
<p><em></em></p>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="../classes/RestClient.html">RestClient</a></td>
<td><em>Classe client permettant d&#039;interroger des services web REST.</em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
 
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label"></h3>
</div>
<div class="modal-body">
<pre data-src="../files/RestClient.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/files/Url.php.txt
New file
0,0 → 1,426
<?php
// declare(encoding='UTF-8');
/**
* Classe Url, gérant le découpage des paramètres, leurs modification etc...
* Traduction et conversion d'une classe (NET_Url2) issue de Pear
*
* @category Php 5.2
* @package Framework
* @author Christian SCHMIDT <schmidt@php.net> (Auteur classe originale)
* @author Aurélien PERONNET <aurelien@tela-botanica.org>
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version SVN: $Id: Url.php 405 2012-02-22 15:45:39Z gduche $
* @link /doc/framework/
*/
class Url {
 
/**
* Répresenter les tableaux dans les requêtes en utilisant la notation php []. Par défaut à true.
*/
const OPTION_UTILISER_CROCHETS = 'utiliser_crochets';
 
/**
* URL-encoder les clés des variables dans les requêtes. Par défaut à true.
*/
const OPTION_ENCODER_CLES = 'encoder_cles';
 
/**
* URL-encoder les valeurs des variables dans les requêtes. Par défaut à false.
*/
const OPTION_ENCODER_VALEURS = 'encoder_valeurs';
/**
* 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 "&").
*/
const OPTION_SEPARATEUR_ENTREE = 'separateur_entree';
 
/**
* 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 "&").
*/
const OPTION_SEPARATEUR_SORTIE = 'separateur_sortie';
 
/**
* Options par défaut correspondant au comportement de php
* vis à vis de $_GET
*/
private $options = array(
self::OPTION_UTILISER_CROCHETS => true,
self::OPTION_ENCODER_CLES => true,
self::OPTION_ENCODER_VALEURS => false,
self::OPTION_SEPARATEUR_ENTREE => '&',
self::OPTION_SEPARATEUR_SORTIE => '&');
 
/**
* @var string|bool
*/
private $schema = false;
 
/**
* @var string|bool
*/
private $infoUtilisateur = false;
 
/**
* @var string|bool
*/
private $hote = false;
 
/**
* @var int|bool
*/
private $port = false;
 
/**
* @var string
*/
private $chemin = '';
 
/**
* @var string|bool
*/
private $requete = false;
 
/**
* @var string|bool
*/
private $fragment = false;
 
/** Tableau des noms des paramètres à définir dans le fichier de config car obligatoirement nécessaire à cette classe.*/
private $parametres_obligatoires = array('url_arg_separateur_entree', 'url_arg_separateur_sortie');
/**
* @param string $url une URL relative ou absolue
* @param array $options
*/
public function __construct($url, $options = null) {
Config::verifierPresenceParametres($this->parametres_obligatoires);
$this->setOption(self::OPTION_SEPARATEUR_ENTREE, Config::get('url_arg_separateur_entree'));
$this->setOption(self::OPTION_SEPARATEUR_SORTIE, Config::get('url_arg_separateur_sortie'));
if (is_array($options)) {
foreach ($options as $nomOption => $valeur) {
$this->setOption($nomOption);
}
}
 
if (preg_match('@^([a-z][a-z0-9.+-]*):@i', $url, $reg)) {
$this->schema = $reg[1];
$url = substr($url, strlen($reg[0]));
}
 
if (preg_match('@^//([^/#?]+)@', $url, $reg)) {
$this->setAutorite($reg[1]);
$url = substr($url, strlen($reg[0]));
}
 
$i = strcspn($url, '?#');
$this->chemin = substr($url, 0, $i);
$url = substr($url, $i);
 
if (preg_match('@^\?([^#]*)@', $url, $reg)) {
$this->requete = $reg[1];
$url = substr($url, strlen($reg[0]));
}
 
if ($url) {
$this->fragment = substr($url, 1);
}
}
/**
* Renvoie la valeur de l'option specifiée.
*
* @param string $nomOption Nom de l'option demandée
*
* @return mixed
*/
public function getOption($nomOption) {
return isset($this->options[$nomOption]) ? $this->options[$nomOption] : false;
}
 
/**
* Met à jour la valeur de l'option spécifiée.
*
* @param string $nomOption une des constantes commençant par self::OPTION_
* @param mixed $valeur valeur de l'option
*
* @return void
* @see self::OPTION_STRICTE
* @see self::OPTION_UTILISER_CROCHETS
* @see self::OPTION_ENCODER_CLES
*/
public function setOption($nomOption, $valeur) {
if (!array_key_exists($nomOption, $this->options)) {
return false;
}
$this->options[$nomOption] = $valeur;
}
 
/**
* Renvoie la partie autorité, i.e. [ infoUtilisateur "@" ] hote [ ":" port ], ou
* false si celle-ci est absente.
*
* @return string|bool
*/
private function getAutorite() {
if (!$this->hote) {
return false;
}
 
$autorite = '';
 
if ($this->infoUtilisateur !== false) {
$autorite .= $this->infoUtilisateur . '@';
}
 
$autorite .= $this->hote;
 
if ($this->port !== false) {
$autorite .= ':' . $this->port;
}
 
return $autorite;
}
 
/**
* @param string|false $autorite
*
* @return void
*/
private function setAutorite($autorite) {
$this->user = false;
$this->pass = false;
$this->hote = false;
$this->port = false;
if (preg_match('@^(([^\@]+)\@)?([^:]+)(:(\d*))?$@', $autorite, $reg)) {
if ($reg[1]) {
$this->infoUtilisateur = $reg[2];
}
 
$this->hote = $reg[3];
if (isset($reg[5])) {
$this->port = intval($reg[5]);
}
}
}
 
/**
* Renvoie vrai ou faux suivant que l'instance en cours représente une URL relative ou absolue.
*
* @return bool
*/
private function etreAbsolue() {
return (bool) $this->schema;
}
/**
* La suppression des segments à points est décrite dans la RFC 3986, section 5.2.4, e.g.
* "/foo/../bar/baz" => "/bar/baz"
*
* @param string $chemin un chemin
*
* @return string un chemin
*/
private static function supprimerSegmentsAPoints($chemin) {
$sortie = '';
 
// Assurons nous de ne pas nous retrouver piégés dans une boucle infinie due à un bug de cette méthode
$j = 0;
while ($chemin && $j++ < 100) {
if (substr($chemin, 0, 2) == './') {// Étape A
$chemin = substr($chemin, 2);
} else if (substr($chemin, 0, 3) == '../') {
$chemin = substr($chemin, 3);
} else if (substr($chemin, 0, 3) == '/./' || $chemin == '/.') {// Étape B
$chemin = '/' . substr($chemin, 3);
} else if (substr($chemin, 0, 4) == '/../' || $chemin == '/..') {// Étape C
$chemin = '/' . substr($chemin, 4);
$i = strrpos($sortie, '/');
$sortie = $i === false ? '' : substr($sortie, 0, $i);
} else if ($chemin == '.' || $chemin == '..') {// Étape D
$chemin = '';
} else {// Étape E
$i = strpos($chemin, '/');
if ($i === 0) {
$i = strpos($chemin, '/', 1);
}
if ($i === false) {
$i = strlen($chemin);
}
$sortie .= substr($chemin, 0, $i);
$chemin = substr($chemin, $i);
}
}
 
return $sortie;
}
/**
* (Re-)Création de la partie requête de l'URL à partir des données du tableau (passé en paramètre).
*
* @param array (nom => valeur) tableau de clés & valeurs pour la partie requête de l'url.
* @return void (Re-)Création de la partie requête.
*/
public function setRequete(Array $parametres) {
if (!$parametres) {
$this->requete = false;
} else {
foreach ($parametres as $nom => $valeur) {
if ($this->getOption(self::OPTION_ENCODER_CLES)) {
$nom = rawurlencode($nom);
}
 
if ($this->getOption(self::OPTION_ENCODER_VALEURS)) {
$valeur = rawurlencode($valeur);
}
if (is_array($valeur)) {
foreach ($valeur as $k => $v) {
if ($this->getOption(self::OPTION_UTILISER_CROCHETS)) {
$parties[] = sprintf('%s[%s]=%s', $nom, $k, $v);
} else {
$parties[] = $nom.'='.$v;
}
}
} else if (!is_null($valeur)) {
$parties[] = $nom . '=' . $valeur;
} else {
$parties[] = $nom;
}
}
$this->requete = implode($this->getOption(self::OPTION_SEPARATEUR_SORTIE), $parties);
}
}
/**
* (Re-)Création de la partie requête de l'URL à partir de la fusion du tableau (passé en paramètre) et
* les valeurs présentes dans $_GET.
*
* @param array (nom => valeur) tableau de clés & valeurs pour la partie requête de l'url.
* @return void (Re-)Création de la partie requête.
*/
public function fusionnerRequete(Array $parametres) {
if ($parametres) {
$requete = $parametres + $_GET;
$this->setRequete($requete);
}
}
 
/**
* Normalise les données de l'instance d'Url faisant appel à cette méthode.
*
* @return void l'instance d'Url courrante est normalisée.
*/
public function normaliser() {
// Voir RFC 3886, section 6
 
// les cchémas sont insesibles à la casse
if ($this->schema) {
$this->schema = strtolower($this->schema);
}
 
// les noms d'hotes sont insensibles à la casse
if ($this->hote) {
$this->hote = strtolower($this->hote);
}
 
// Supprimer le numéro de port par défaut pour les schemas connus (RFC 3986, section 6.2.3)
if ($this->port && $this->schema && $this->port == getservbyname($this->schema, 'tcp')) {
$this->port = false;
}
 
// normalisation dans le cas d'un encodage avec %XX pourcentage (RFC 3986, section 6.2.2.1)
foreach (array('infoUtilisateur', 'hote', 'chemin') as $partie) {
if ($this->$partie) {
$this->$partie = preg_replace('/%[0-9a-f]{2}/ie', 'strtoupper("\0")', $this->$partie);
}
}
 
// normalisation des segments du chemin (RFC 3986, section 6.2.2.3)
$this->chemin = self::supprimerSegmentsAPoints($this->chemin);
 
// normalisation basée sur le schéma (RFC 3986, section 6.2.3)
if ($this->hote && !$this->chemin) {
$this->chemin = '/';
}
}
 
/**
* Renvoie une instance d'objet Url representant l'URL canonique du script PHP en cours d'éxécution.
*
* @return Url retourne un objet Url ou null en cas d'erreur.
*/
public static function getCanonique() {
$url = null;
if (!isset($_SERVER['REQUEST_METHOD'])) {
trigger_error("Le script n'a pas été appellé à travers un serveur web", E_USER_WARNING);
} else {
// À partir d'une URL relative
$url = new self($_SERVER['PHP_SELF']);
$url->schema = isset($_SERVER['HTTPS']) ? 'https' : 'http';
$url->hote = $_SERVER['SERVER_NAME'];
$port = intval($_SERVER['SERVER_PORT']);
if ($url->schema == 'http' && $port != 80 || $url->schema == 'https' && $port != 443) {
$url->port = $port;
}
}
return $url;
}
 
/**
* Renvoie une instance d'objet Url representant l'URL utilisée pour récupérer la requête en cours.
*
* @return Url retourne un objet Url ou null en cas d'erreur.
*/
public static function getDemande() {
$url = null;
if (!isset($_SERVER['REQUEST_METHOD'])) {
trigger_error("Le script n'a pas été appellé à travers un serveur web", E_USER_WARNING);
} else {
// On part d'une URL relative
$url = new self($_SERVER['REQUEST_URI']);
$url->schema = isset($_SERVER['HTTPS']) ? 'https' : 'http';
// On met à jour les valeurs de l'hôte et si possible du port
$url->setAutorite($_SERVER['HTTP_hote']);
}
return $url;
}
 
/**
* Renvoie un représentation sous forme de chaine de l'URL.
*
* @return string l'url
*/
public function getURL() {
// Voir RFC 3986, section 5.3
$url = '';
if ($this->schema !== false) {
$url .= $this->schema . ':';
}
 
$autorite = $this->getAutorite();
if ($autorite !== false) {
$url .= '//' . $autorite;
}
$url .= $this->chemin;
 
if ($this->requete !== false) {
$url .= '?' . $this->requete;
}
 
if ($this->fragment !== false) {
$url .= '#' . $this->fragment;
}
 
return $url;
}
}
?>
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/trunk/doc/PhpDoc/files/Cache.php.txt
New file
0,0 → 1,507
<?php
// declare(encoding='UTF-8');
/**
* Classe Cache permettant de mettre en cache des données.
* Basée sur les principes de Zend_Cache (Copyright (c) 2005-2010, Zend Technologies USA, Inc. All rights reserved.)
*
* @category php 5.2
* @package Framework
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license http://framework.zend.com/license/new-bsd Licence New BSD
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id: Cache.php 299 2011-01-18 14:03:46Z jpm $
* @link /doc/framework/
*/
class Cache {
/** Socke les enregistrements du cache dans des fichiers textes de façon extremement simple. */
const STOCKAGE_MODE_SIMPLE = "FichierSimple";
/** Socke les enregistrements du cache dans des fichiers textes. */
const STOCKAGE_MODE_FICHIER = "Fichier";
/** Socke les enregistrements du cache dans une base de données SQLite. */
const STOCKAGE_MODE_SQLITE = "Sqlite";
/** 'tous' (par défaut) : supprime tous les enregistrements. */
const NETTOYAGE_MODE_TOUS = "tous";
/** 'expiration' : supprime tous les enregistrements dont la date d'expériration est dépassée. */
const NETTOYAGE_MODE_EXPIRATION = "expiration";
/** 'avecLesTags' : supprime tous les enregistrements contenant tous les tags indiqués. */
const NETTOYAGE_MODE_AVEC_LES_TAGS = "avecLesTags";
/** 'sansLesTags' : supprime tous les enregistrements contenant aucun des tags indiqués. */
const NETTOYAGE_MODE_SANS_LES_TAGS = "sansLesTags";
/** 'avecUnTag' : supprime tous les enregistrements contenant au moins un des tags indiqués. */
const NETTOYAGE_MODE_AVEC_UN_TAG = "avecUnTag";
/**
* Dernier identifiant de cache utilisé.
*
* @var string $dernier_id
*/
private $dernier_id = null;
/**
* Les options disponibles pour le cache :
* ====> (string) stockage_mode :
* Indique le mode de stockage du cache à utiliser parmis :
* - Cache::STOCKAGE_MODE_FICHIER : sous forme d'une arborescence de fichiers et dossier
* - Cache::STOCKAGE_MODE_SQLITE : sous forme d'une base de données SQLite
*
* ====> (string) stockage_chemin :
* Chemin vers :
* - Cache::STOCKAGE_MODE_FICHIER : le dossier devant contenir l'arborescence.
* - Cache::STOCKAGE_MODE_SQLITE : le fichier contenant la base SQLite.
*
* ====> (boolean) controle_ecriture :
* - Active / Désactive le controle d'écriture (le cache est lue jute après l'écriture du fichier pour détecter sa corruption)
* - Activer le controle d'écriture ralentira légèrement l'écriture du fichier de cache mais pas sa lecture
* Le controle d'écriture peut détecter la corruption de fichier mais ce n'est pas un système de controle parfait.
*
* ====> (boolean) mise_en_cache :
* - Active / Désactive la mise en cache
* (peut être très utile pour le débogage des scripts utilisant le cache
*
* =====> (string) cache_id_prefixe :
* - préfixe pour les identifiant de cache ( = espace de nom)
*
* ====> (boolean) serialisation_auto :
* - Active / Désactive la sérialisation automatique
* - Peut être utilisé pour sauver directement des données qui ne sont pas des chaines (mais c'est plus lent)
*
* ====> (int) nettoyage_auto :
* - Désactive / Régler le processus de nettoyage automatique
* - Le processus de nettoyage automatiques détruit les fichier trop vieux (pour la durée de vie donnée)
* quand un nouveau fichier de cache est écrit :
* 0 => pas de nettoyage automatique
* 1 => nettoyage automatique systématique
* x (integer) > 1 => nettoyage automatique toutes les 1 fois (au hasard) sur x écriture de fichier de cache
*
* ====> (int) duree_de_vie :
* - Durée de vie du cache (en secondes)
* - Si null, le cache est valide indéfiniment.
*
* @var array $options les options disponibles pour le cache .
*/
protected $options = array(
'stockage_mode' => self::STOCKAGE_MODE_FICHIER,
'stockage_chemin' => null,
'controle_ecriture' => true,
'mise_en_cache' => true,
'cache_id_prefixe' => null,
'serialisation_auto' => false,
'nettoyage_auto' => 10,
'duree_de_vie' => 3600,
);
protected $stockage = null;
public function __construct($options = array(), $options_stockage = array()) {
$this->initialiserOptionsParConfig();
$this->setOptions($options);
if ($this->options['stockage_mode'] == self::STOCKAGE_MODE_FICHIER) {
$this->stockage = new CacheFichier($options_stockage, $this);
$this->stockage->setEmplacement($this->options['stockage_chemin']);
} else if ($this->options['stockage_mode'] == self::STOCKAGE_MODE_SQLITE) {
$this->stockage = new CacheSqlite($options_stockage, $this);
$this->stockage->setEmplacement($this->options['stockage_chemin']);
} else {
trigger_error("Ce mode de stockage n'existe pas ou ne supporte pas la création par le constructeur", E_USER_WARNING);
}
}
private function initialiserOptionsParConfig() {
while (list($nom, $valeur) = each($this->options)) {
if (Config::existe($nom)) {
$this->options[$nom] = Config::get($nom);
}
}
}
private function setOptions($options) {
while (list($nom, $valeur) = each($options)) {
if (!is_string($nom)) {
trigger_error("Nom d'option incorecte : $nom", E_USER_WARNING);
}
$nom = strtolower($nom);
if (array_key_exists($nom, $this->options)) {
$this->options[$nom] = $valeur;
}
}
}
/**
* Permet de (re-)définir l'emplacement pour le stockage du cache.
* En fonction du mode de stockage utilisé , l'emplacement indiqué correspondra au chemin du :
* - dossier où stocker les fichiers pour le mode "fichier".
* - fichier de la base de données pour le mode "sqlite".
* @param string $emplacement chemin vers dossier (Cache::STOCKAGE_MODE_FICHIER) ou fichier base Sqlite (Cache::STOCKAGE_MODE_SQLITE)
* @return void
*/
public function setEmplacement($emplacement) {
if ($emplacement != null) {
$this->executerMethodeStockage('setEmplacement', array($emplacement));
} else {
trigger_error("L'emplacement ne peut pas être null.", E_USER_WARNING);
}
}
public static function fabriquer($mode, $options = array()) {
if ($mode == self::STOCKAGE_MODE_SIMPLE) {
return new CacheSimple($options);
} else {
trigger_error("Le mode '$mode' de stockage n'existe pas ou ne supporte pas la création par fabrique", E_USER_WARNING);
}
return false;
}
/**
* Teste si un cache est disponible pour l'identifiant donné et (si oui) le retourne (false dans le cas contraire)
*
* @param string $id Identifiant de cache.
* @param boolean $ne_pas_tester_validiter_du_cache Si mis à true, la validité du cache n'est pas testée
* @return mixed|false Cached datas
*/
public function charger($id, $ne_pas_tester_validiter_du_cache = false) {
$donnees = false;
if ($this->options['mise_en_cache'] === true) {
$id = $this->prefixerId($id);
$this->dernier_id = $id;
self::validerIdOuTag($id);
$donnees = $this->executerMethodeStockage('charger', array($id, $ne_pas_tester_validiter_du_cache));
$donnees = $this->deserialiserAutomatiquement($donnees);
}
return $donnees;
}
/**
* Test if a cache is available for the given id
*
* @param string $id Cache id
* @return int|false Last modified time of cache entry if it is available, false otherwise
*/
public function tester($id) {
$resultat = false;
if ($this->options['mise_en_cache'] === true) {
$id = $this->prefixerId($id);
self::validerIdOuTag($id);
$this->dernier_id = $id;
$resultat = $this->executerMethodeStockage('tester', array($id));
}
return $resultat;
}
/**
* Sauvegarde en cache les données passées en paramètre.
*
* @param mixed $donnees Données à mettre en cache (peut être différent d'une chaine si serialisation_auto vaut true).
* @param string $id Identifiant du cache (s'il n'est pas définit, le dernier identifiant sera utilisé).
* @param array $tags Mots-clés du cache.
* @param int $duree_de_vie_specifique Si != false, indique une durée de vie spécifique pour cet enregistrement en cache (null => durée de vie infinie)
* @return boolean True si aucun problème n'est survenu.
*/
public function sauver($donnees, $id = null, $tags = array(), $duree_de_vie_specifique = false) {
$resultat = true;
if ($this->options['mise_en_cache'] === true) {
$id = ($id === null) ? $this->dernier_id : $this->prefixerId($id);
self::validerIdOuTag($id);
self::validerTableauDeTags($tags);
$donnees = $this->serialiserAutomatiquement($donnees);
$this->nettoyerAutomatiquement();
$resultat = $this->executerMethodeStockage('sauver', array($donnees, $id, $tags, $duree_de_vie_specifique));
if ($resultat == false) {
// Le cache étant peut être corrompu, nous le supprimons
$this->supprimer($id);
} else {
$resultat = $this->controlerEcriture($id, $donnees);
}
}
return $resultat;
}
/**
* Supprime un enregistrement en cache.
*
* @param string $id Identificant du cache à supprimer.
* @return boolean True si ok
*/
public function supprimer($id) {
$resultat = true;
if ($this->options['mise_en_cache'] === true) {
$id = $this->prefixerId($id);
self::validerIdOuTag($id);
$resultat = $this->executerMethodeStockage('supprimer', array($id));
}
return $resultat;
}
/**
* Nettoyage des enregistrements en cache
*
* Mode de nettoyage disponibles :
* 'tous' (défaut) => supprime tous les enregistrements ($tags n'est pas utilisé)
* 'expiration' => supprime tous les enregistrements dont la date d'expériration est dépassée ($tags n'est pas utilisé)
* 'avecLesTag' => supprime tous les enregistrements contenant tous les tags indiqués
* 'sansLesTag' => supprime tous les enregistrements contenant aucun des tags indiqués
* 'avecUnTag' => supprime tous les enregistrements contenant au moins un des tags indiqués
*
* @param string $mode mode de nettoyage
* @param array|string $tags peut être un tableau de chaîne ou une simple chaine.
* @return boolean True si ok
*/
public function nettoyer($mode = self::NETTOYAGE_MODE_TOUS, $tags = array()) {
$resultat = true;
if ($this->options['mise_en_cache'] === true) {
if (!in_array($mode, array(Cache::NETTOYAGE_MODE_TOUS,
Cache::NETTOYAGE_MODE_EXPIRATION,
Cache::NETTOYAGE_MODE_AVEC_LES_TAGS,
Cache::NETTOYAGE_MODE_SANS_LES_TAGS,
Cache::NETTOYAGE_MODE_AVEC_UN_TAG))) {
trigger_error("Le mode de nettoyage du cache indiqué n'est pas valide", E_USER_WARNING);
}
self::validerTableauDeTags($tags);
$resultat = $this->executerMethodeStockage('nettoyer', array($mode, $tags));
}
return $resultat;
}
 
/**
* Return an array of stored cache ids
*
* @return array array of stored cache ids (string)
*/
public function getIds() {
$ids = $this->executerMethodeStockage('getIds');
$ids = $this->supprimerPrefixe($ids);
return $ids;
}
 
/**
* Return an array of stored tags
*
* @return array array of stored tags (string)
*/
public function getTags() {
return $this->executerMethodeStockage('getTags');
}
/**
* Return an array of stored cache ids which match given tags
*
* In case of multiple tags, a logical AND is made between tags
*
* @param array $tags array of tags
* @return array array of matching cache ids (string)
*/
public function getIdsAvecLesTags($tags = array()) {
$ids = $this->executerMethodeStockage('getIdsAvecLesTags', array($tags));
$ids = $this->supprimerPrefixe($ids);
return $ids;
}
 
/**
* Return an array of stored cache ids which don't match given tags
*
* In case of multiple tags, a logical OR is made between tags
*
* @param array $tags array of tags
* @return array array of not matching cache ids (string)
*/
public function getIdsSansLesTags($tags = array()) {
$ids = $this->executerMethodeStockage('getIdsSansLesTags', array($tags));
$ids = $this->supprimerPrefixe($ids);
return $ids;
}
 
/**
* Return an array of stored cache ids which match any given tags
*
* In case of multiple tags, a logical OR is made between tags
*
* @param array $tags array of tags
* @return array array of matching any cache ids (string)
*/
public function getIdsAvecUnTag($tags = array()) {
$ids = $this->executerMethodeStockage('getIdsAvecUnTag', array($tags));
$ids = $this->supprimerPrefixe($ids);
return $ids;
}
 
/**
* Return the filling percentage of the backend storage
*
* @return int integer between 0 and 100
*/
public function getPourcentageRemplissage() {
return $this->executerMethodeStockage('getPourcentageRemplissage');
}
 
/**
* Return an array of metadatas for the given cache id
*
* The array will include these keys :
* - expire : the expire timestamp
* - tags : a string array of tags
* - mtime : timestamp of last modification time
*
* @param string $id cache id
* @return array array of metadatas (false if the cache id is not found)
*/
public function getMetadonnees($id) {
$id = $this->prefixerId($id);
return $this->executerMethodeStockage('getMetadonnees', array($id));
}
 
/**
* Give (if possible) an extra lifetime to the given cache id
*
* @param string $id cache id
* @param int $extraLifetime
* @return boolean true if ok
*/
public function ajouterSupplementDureeDeVie($id, $supplement_duree_de_vie) {
$id = $this->prefixerId($id);
return $this->executerMethodeStockage('ajouterSupplementDureeDeVie', array($id, $supplement_duree_de_vie));
}
 
/**
* Fabrique et retourne l'identifiant du cache avec son préfixe.
*
* Vérifie l'option 'cache_id_prefixe' et retourne le nouvel id avec préfixe ou simplement l'id lui même si elle vaut null.
*
* @param string $id Identifiant du cache.
* @return string Identifiant du cache avec ou sans préfixe.
*/
private function prefixerId($id) {
$nouvel_id = $id;
if (($id !== null) && isset($this->options['cache_id_prefixe'])) {
$nouvel_id = $this->options['cache_id_prefixe'].$id;
}
return $nouvel_id;
}
private function executerMethodeStockage($methode, $params = null) {
if (method_exists($this->stockage, $methode)) {
if ($params == null) {
$resultat = call_user_func(array($this->stockage, $methode));
} else {
$resultat = call_user_func_array(array($this->stockage, $methode), $params);
}
} else {
$resultat = false;
trigger_error("La méthode '$methode' n'existe pas dans la classe '".get_class($this)."'.", E_USER_WARNING);
}
return $resultat;
}
private function supprimerPrefixe($ids) {
// Il est nécessaire de retirer les cache_id_prefixe des ids (voir #ZF-6178, #ZF-7600)
if (isset($this->options['cache_id_prefixe']) && $this->options['cache_id_prefixe'] !== '') {
$prefixe =& $this->options['cache_id_prefixe'];
$prefixe_longueur = strlen($prefixe);
foreach ($ids as &$id) {
if (strpos($id, $prefixe) === 0) {
$id = substr($id, $prefixe_longueur);
}
}
}
return $ids;
}
private function controlerEcriture($id, $donnees_avant_ecriture) {
$resultat = true;
if ($this->options['controle_ecriture']) {
$donnees_apres_ecriture = $this->executerMethodeStockage('charger', array($id, true));
if ($donnees_avant_ecriture != $donnees_apres_ecriture) {
$this->executerMethodeStockage('supprimer', array($id));
$resultat = false;
}
}
return $resultat;
}
private function deserialiserAutomatiquement($donnees) {
if ($donnees !== false && $this->options['serialisation_auto']) {
// we need to unserialize before sending the result
$donnees = unserialize($donnees);
}
return $donnees;
}
private function serialiserAutomatiquement($donnees) {
if ($this->options['serialisation_auto']) {
// we need to serialize datas before storing them
$donnees = serialize($donnees);
} else {
if (!is_string($donnees)) {
trigger_error("Les données doivent être une chaîne de caractères ou vous devez activez l'option serialisation_auto = true", E_USER_WARNING);
}
}
return $donnees;
}
private function nettoyerAutomatiquement() {
if ($this->options['nettoyage_auto'] > 0) {
$rand = rand(1, $this->options['nettoyage_auto']);
if ($rand == 1) {
$this->nettoyer(self::NETTOYAGE_MODE_EXPIRATION);
}
}
}
/**
* Valide un identifiant de cache ou un tag (securité, nom de fichiers fiables, préfixes réservés...)
*
* @param string $chaine Identificant de cache ou tag
* @return void
*/
protected static function validerIdOuTag($chaine) {
if (!is_string($chaine)) {
trigger_error('Id ou tag invalide : doit être une chaîne de caractères', E_USER_ERROR);
}
if (substr($chaine, 0, 9) == 'internal-') {
trigger_error('"internal-*" identifiants ou tags sont réservés', E_USER_WARNING);
}
if (!preg_match('~^[a-zA-Z0-9_]+$~D', $chaine)) {
trigger_error("Id ou tag invalide '$chaine' : doit contenir seulement [a-zA-Z0-9_]", E_USER_WARNING);
}
}
 
/**
* Valide un tableau de tags (securité, nom de fichiers fiables, préfixes réservés...)
*
* @param array $tags tableau de tags
* @return void
*/
protected static function validerTableauDeTags($tags) {
if (!is_array($tags)) {
trigger_error("Tableau de tags invalide : doit être un tableau 'array'", E_USER_WARNING);
}
foreach ($tags as $tag) {
self::validerIdOuTag($tag);
}
reset($tags);
}
/**
* Calcule et retourne le timestamp d'expiration
*
* @return int timestamp d'expiration (unix timestamp)
*/
public function getTimestampExpiration($duree_de_vie) {
if ($duree_de_vie === false) {
if (isset($this->options['duree_de_vie']) && is_int($this->options['duree_de_vie'])) {
$duree_de_vie = (int) $this->options['duree_de_vie'];
} else {
$duree_de_vie = 3600;
}
}
$timestamp = ($duree_de_vie === null) ? 9999999999 : (time() + $duree_de_vie);
return $timestamp;
}
}
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/trunk/doc/PhpDoc/files/I18n.php.html
New file
0,0 → 1,278
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1789135022"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1789135022" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content file">
<nav>
</nav>
 
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small></small>I18n.php</h1>
<p><em></em></p>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="../classes/I18n.html">I18n</a></td>
<td><em>I18n permet de traduire une application à partir de données stockées dans des fichiers ini.</em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
 
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label"></h3>
</div>
<div class="modal-body">
<pre data-src="../files/I18n.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/files/Log.php.html
New file
0,0 → 1,278
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-927636323"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-927636323" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content file">
<nav>
</nav>
 
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small></small>Log.php</h1>
<p><em></em></p>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="../classes/Log.html">Log</a></td>
<td><em>Classe permettant de logger des messages dans les fichier situés dans le dossier de log.</em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
 
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label"></h3>
</div>
<div class="modal-body">
<pre data-src="../files/Log.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/files/SquelettePhp.php.html
New file
0,0 → 1,278
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-2001021800"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-2001021800" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content file">
<nav>
</nav>
 
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small></small>SquelettePhp.php</h1>
<p><em></em></p>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="../classes/SquelettePhp.html">SquelettePhp</a></td>
<td><em>Classe SquelettePhp, traitant les squelette Php utilisant la syntaxe courte php ou pas.</em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
 
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label"></h3>
</div>
<div class="modal-body">
<pre data-src="../files/SquelettePhp.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/files/CacheSqlite.php.html
New file
0,0 → 1,278
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-640522190"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-640522190" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content file">
<nav>
</nav>
 
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small></small>CacheSqlite.php</h1>
<p><em></em></p>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="../classes/CacheSqlite.html">CacheSqlite</a></td>
<td><em></em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
 
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label"></h3>
</div>
<div class="modal-body">
<pre data-src="../files/CacheSqlite.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/phpdoc-cache-52/phpdoc-cache-file_95ac810071946135cd004f6a2d287311.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/phpdoc-cache-52/phpdoc-cache-file_95ac810071946135cd004f6a2d287311.dat
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/phpdoc-cache-70/phpdoc-cache-file_07f09baff0792f103b49c0c9b5a16fd1.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/phpdoc-cache-70/phpdoc-cache-file_07f09baff0792f103b49c0c9b5a16fd1.dat
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/phpdoc-cache-19/phpdoc-cache-file_72e0fa05dee7578b9d5d12fdfd89e7f3.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/phpdoc-cache-19/phpdoc-cache-file_72e0fa05dee7578b9d5d12fdfd89e7f3.dat
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/phpdoc-cache-75/phpdoc-cache-file_736975869f045847d0e0177c15dd5d33.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/phpdoc-cache-75/phpdoc-cache-file_736975869f045847d0e0177c15dd5d33.dat
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/index.html
New file
0,0 → 1,433
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="css/prism.css" rel="stylesheet" media="all"/>
<link href="css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="js/jquery.smooth-scroll.js"></script>
<script src="js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<link rel="shortcut icon" href="images/favicon.ico"/>
<link rel="apple-touch-icon" href="images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-472400817"></a>
<a href="namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-472400817" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="classes/Url.html">Url</a></li>
<li class="class"><a href="classes/Debug.html">Debug</a></li>
<li class="class"><a href="classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="classes/Cache.html">Cache</a></li>
<li class="class"><a href="classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="classes/Script.html">Script</a></li>
<li class="class"><a href="classes/Registre.html">Registre</a></li>
<li class="class"><a href="classes/RestService.html">RestService</a></li>
<li class="class"><a href="classes/Cli.html">Cli</a></li>
<li class="class"><a href="classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="classes/I18n.html">I18n</a></li>
<li class="class"><a href="classes/Config.html">Config</a></li>
<li class="class"><a href="classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="classes/Log.html">Log</a></li>
<li class="class"><a href="classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="classes/Framework.html">Framework</a></li>
<li class="class"><a href="classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content namespace">
<nav>
</nav>
<h1><small></small>\</h1>
 
<h2>Classes</h2>
<table class="table table-hover">
<tr>
<td><a href="classes/Url.html">Url</a></td>
<td><em>Classe Url, gérant le découpage des paramètres, leurs modification etc.</em></td>
</tr>
<tr>
<td><a href="classes/Debug.html">Debug</a></td>
<td><em>Classe fournissant des fonctions de débogage équivalante à var_dump et print_r.</em></td>
</tr>
<tr>
<td><a href="classes/Chronometre.html">Chronometre</a></td>
<td><em>Chronometre permet de stocker et d&#039;afficher les temps d&#039;éxécution de script.</em></td>
</tr>
<tr>
<td><a href="classes/RestServeur.html">RestServeur</a></td>
<td><em>Classe principale gérant les services web de type (@link(REST, http://fr.wikipedia.org/wiki/Rest).</em></td>
</tr>
<tr>
<td><a href="classes/SquelettePhp.html">SquelettePhp</a></td>
<td><em>Classe SquelettePhp, traitant les squelette Php utilisant la syntaxe courte php ou pas.</em></td>
</tr>
<tr>
<td><a href="classes/Controleur.html">Controleur</a></td>
<td><em>Classe Controleur, coeur d&#039;une application, c&#039;est normalement la seule classe d&#039;une application
qui devrait être appelée de l&#039;extérieur.</em></td>
</tr>
<tr>
<td><a href="classes/Cache.html">Cache</a></td>
<td><em>Classe Cache permettant de mettre en cache des données.</em></td>
</tr>
<tr>
<td><a href="classes/RestClient.html">RestClient</a></td>
<td><em>Classe client permettant d&#039;interroger des services web REST.</em></td>
</tr>
<tr>
<td><a href="classes/GestionnaireException.html">GestionnaireException</a></td>
<td><em>Classe de gestion des exceptions.</em></td>
</tr>
<tr>
<td><a href="classes/Script.html">Script</a></td>
<td><em>Script est une classe abstraite qui doit être implémenté par les classes éxecutant des scripts en ligne de commande.</em></td>
</tr>
<tr>
<td><a href="classes/Registre.html">Registre</a></td>
<td><em>Classe Registre, qui permet un accès à différentes variables et paramètres à travers les autres classes.</em></td>
</tr>
<tr>
<td><a href="classes/RestService.html">RestService</a></td>
<td><em>Classe principale gérant les services.</em></td>
</tr>
<tr>
<td><a href="classes/Cli.html">Cli</a></td>
<td><em>CLI permet de récupérer les paramètres passés en ligne de commande pour instancier une classe héritant de la classe abstraite
Script.</em></td>
</tr>
<tr>
<td><a href="classes/Encodage.html">Encodage</a></td>
<td><em>Classe fournissant des méthodes statiques concernant l&#039;encodage et le décodage des caractères de variable.</em></td>
</tr>
<tr>
<td><a href="classes/Tableau.html">Tableau</a></td>
<td><em>Classe fournissant des méthodes statiques de manipulation des tableaux (Array).</em></td>
</tr>
<tr>
<td><a href="classes/Pattern.html">Pattern</a></td>
<td><em>Classe fournissant des constantes correspondant à des expressions régulières de vérification très courrantes.</em></td>
</tr>
<tr>
<td><a href="classes/Chaine.html">Chaine</a></td>
<td><em>Classe fournissant des méthodes statiques de manipulation des chaînes de caractères (String).</em></td>
</tr>
<tr>
<td><a href="classes/Fichier.html">Fichier</a></td>
<td><em>Classe fournissant des méthodes statiques de manipulation des fichiers.</em></td>
</tr>
<tr>
<td><a href="classes/I18n.html">I18n</a></td>
<td><em>I18n permet de traduire une application à partir de données stockées dans des fichiers ini.</em></td>
</tr>
<tr>
<td><a href="classes/Config.html">Config</a></td>
<td><em>Config permet de charger automatiquement les fichiers ini du Framework et de l&#039;application.</em></td>
</tr>
<tr>
<td><a href="classes/CacheSqlite.html">CacheSqlite</a></td>
<td><em></em></td>
</tr>
<tr>
<td><a href="classes/Bdd.html">Bdd</a></td>
<td><em>Classe Bdd, d&#039;accés au base de données.</em></td>
</tr>
<tr>
<td><a href="classes/Log.html">Log</a></td>
<td><em>Classe permettant de logger des messages dans les fichier situés dans le dossier de log.</em></td>
</tr>
<tr>
<td><a href="classes/CacheFichier.html">CacheFichier</a></td>
<td><em></em></td>
</tr>
<tr>
<td><a href="classes/Framework.html">Framework</a></td>
<td><em>Classe de base du Framework :
- fournissant des infos sur l&#039;application,
- paramétrant l&#039;environnement de l&#039;appli et du framework,
- réalisant des traitements sur les variables globales ($_GET, $_POST, $_COOKIE.</em></td>
</tr>
<tr>
<td><a href="classes/CacheSimple.html">CacheSimple</a></td>
<td><em>Classe Cache permettant de mettre en cache des données de façon extremement simple.</em></td>
</tr>
</table>
</div>
 
<aside class="span4 detailsbar">
<dl>
<dt>Namespace hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\</div>
</dd>
</dl>
</aside>
</div>
 
<div class="row-fluid">
<section class="span8 content namespace">
<h2>Constants</h2>
</section>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_DS" name="constant_DS" class="anchor"></a>
<article id="constant_DS" class="constant">
<h3 class="">DS</h3>
<pre class="signature">DS</pre>
<p><em>Redéfinition de la constante DIRECTORY_SEPARATOR en version abrégée DS</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
<dt>File</dt>
<dd><a href=""><div class="path-wrapper"></div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_PS" name="constant_PS" class="anchor"></a>
<article id="constant_PS" class="constant">
<h3 class="">PS</h3>
<pre class="signature">PS</pre>
<p><em>Redéfinition de la constante PATH_SEPARATOR en version abrégée PS</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
<dt>File</dt>
<dd><a href=""><div class="path-wrapper"></div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<section class="span8 content namespace">
<h2>Functions</h2>
</section>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_nettoyerSlashProfond" name="method_nettoyerSlashProfond" class="anchor"></a>
<article class="method">
<h3 class=" ">nettoyerSlashProfond()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">nettoyerSlashProfond( <span class="argument">$valeur</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$valeur</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
<dt>File</dt>
<dd><a href=""><div class="path-wrapper"></div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="reports/errors.html">Errors</a></li>
<li><a href="reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/phpdoc-cache-98/phpdoc-cache-file_dd77e54ff89c835ae0f416f4edab9c35.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/phpdoc-cache-98/phpdoc-cache-file_dd77e54ff89c835ae0f416f4edab9c35.dat
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/phpdoc-cache-b0/phpdoc-cache-file_e58b2c25bb3f22169e34a0eefaf424eb.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/phpdoc-cache-b0/phpdoc-cache-file_e58b2c25bb3f22169e34a0eefaf424eb.dat
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/phpdoc-cache-0c/phpdoc-cache-file_2115f90b0e81f12bc4ef706e92d8ffc1.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/phpdoc-cache-0c/phpdoc-cache-file_2115f90b0e81f12bc4ef706e92d8ffc1.dat
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/phpdoc-cache-0d/phpdoc-cache-file_f90d35be0c8f3486d33aac180b8d39a1.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/phpdoc-cache-0d/phpdoc-cache-file_f90d35be0c8f3486d33aac180b8d39a1.dat
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/phpdoc-cache-f0/phpdoc-cache-file_19fba3fd5f6df8a705d3aef2a9c12310.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/phpdoc-cache-f0/phpdoc-cache-file_19fba3fd5f6df8a705d3aef2a9c12310.dat
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/phpdoc-cache-2e/phpdoc-cache-settings.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/phpdoc-cache-2e/phpdoc-cache-settings.dat
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/graphs/class.html
New file
0,0 → 1,165
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<link href="../css/jquery.iviewer.css" rel="stylesheet" media="all"/>
<style>
#viewer {
position: relative;
width: 100%;
}
.wrapper {
overflow: hidden;
}
</style>
 
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script src="../js/jquery.mousewheel.min.js" type="text/javascript"></script>
<script src="../js/jquery.iviewer.js" type="text/javascript"></script>
<script type="text/javascript">
$(window).resize(function(){
$("#viewer").height($(window).height() - 100);
});
 
$(document).ready(function() {
$("#viewer").iviewer({src: '../graphs/classes.svg', zoom_animation: false});
$('#viewer img').bind('dragstart', function(event){
event.preventDefault();
});
$(window).resize();
});
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<div class="row-fluid">
<div class="span12">
<div class="wrapper">
<div id="viewer" class="viewer"></div>
</div>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/phpdoc-cache-f5/phpdoc-cache-file_f503dc934ce8ca1b9cd46ef44f1dd267.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/phpdoc-cache-f5/phpdoc-cache-file_f503dc934ce8ca1b9cd46ef44f1dd267.dat
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/phpdoc-cache-d9/phpdoc-cache-file_b3f0e6492d633f3fac64cdbc534eaa5d.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/phpdoc-cache-d9/phpdoc-cache-file_b3f0e6492d633f3fac64cdbc534eaa5d.dat
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/css/jquery.iviewer.css
New file
0,0 → 1,65
.viewer {
-ms-touch-action: none;
}
 
.iviewer_common {
position:absolute;
bottom:10px;
border: 1px solid #000;
height: 28px;
z-index: 5000;
}
 
.iviewer_cursor {
cursor: url(../images/iviewer/hand.cur) 6 8, pointer;
}
 
.iviewer_drag_cursor {
cursor: url(../images/iviewer/grab.cur) 6 8, pointer;
}
 
.iviewer_button {
width: 28px;
cursor: pointer;
background-position: center center;
background-repeat: no-repeat;
}
 
.iviewer_zoom_in {
left: 20px;
background: url(../images/iviewer/iviewer.zoom_in.png);
}
 
.iviewer_zoom_out {
left: 55px;
background: url(../images/iviewer/iviewer.zoom_out.png);
}
 
.iviewer_zoom_zero {
left: 90px;
background: url(../images/iviewer/iviewer.zoom_zero.png);
}
 
.iviewer_zoom_fit {
left: 125px;
background: url(../images/iviewer/iviewer.zoom_fit.png);
}
 
.iviewer_zoom_status {
left: 160px;
font: 1em/28px Sans;
color: #000;
background-color: #fff;
text-align: center;
width: 60px;
}
 
.iviewer_rotate_left {
left: 227px;
background: #fff url(../images/iviewer/iviewer.rotate_left.png) center center no-repeat;
}
 
.iviewer_rotate_right {
left: 262px;
background: #fff url(../images/iviewer/iviewer.rotate_right.png) center center no-repeat;
}
/trunk/doc/PhpDoc/css/phpdocumentor-clean-icons/lte-ie7.js
New file
0,0 → 1,30
/* Load this script using conditional IE comments if you need to support IE 7 and IE 6. */
 
window.onload = function() {
function addIcon(el, entity) {
var html = el.innerHTML;
el.innerHTML = '<span style="font-family: \'phpdocumentor-clean-icons\'">' + entity + '</span>' + html;
}
var icons = {
'icon-trait' : '&#xe000;',
'icon-interface' : '&#xe001;',
'icon-class' : '&#xe002;'
},
els = document.getElementsByTagName('*'),
i, attr, html, c, el;
for (i = 0; ; i += 1) {
el = els[i];
if(!el) {
break;
}
attr = el.getAttribute('data-icon');
if (attr) {
addIcon(el, attr);
}
c = el.className;
c = c.match(/icon-[^\s'"]+/);
if (c && icons[c[0]]) {
addIcon(el, icons[c[0]]);
}
}
};
/trunk/doc/PhpDoc/css/phpdocumentor-clean-icons/style.css
New file
0,0 → 1,48
@font-face {
font-family: 'phpdocumentor-clean-icons';
src:url('fonts/phpdocumentor-clean-icons.eot');
src:url('fonts/phpdocumentor-clean-icons.eot?#iefix') format('embedded-opentype'),
url('fonts/phpdocumentor-clean-icons.woff') format('woff'),
url('fonts/phpdocumentor-clean-icons.ttf') format('truetype'),
url('fonts/phpdocumentor-clean-icons.svg#phpdocumentor-clean-icons') format('svg');
font-weight: normal;
font-style: normal;
}
 
/* Use the following CSS code if you want to use data attributes for inserting your icons */
[data-icon]:before {
font-family: 'phpdocumentor-clean-icons';
content: attr(data-icon);
speak: none;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
-webkit-font-smoothing: antialiased;
}
 
/* Use the following CSS code if you want to have a class per icon */
/*
Instead of a list of all class selectors,
you can use the generic selector below, but it's slower:
[class*="icon-"] {
*/
.icon-trait, .icon-interface, .icon-class {
font-family: 'phpdocumentor-clean-icons';
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
-webkit-font-smoothing: antialiased;
}
.icon-trait:before {
content: "\e000";
}
.icon-interface:before {
content: "\e001";
}
.icon-class:before {
content: "\e002";
}
/trunk/doc/PhpDoc/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.eot
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.eot
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.dev.svg
New file
0,0 → 1,17
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>
This is a custom SVG font generated by IcoMoon.
<iconset id="phpdocumentor-clean-icons" name="phpdocumentor-clean-icons" href="http://www.phpdoc.org" grid="16"></iconset><author name="Mike van Riel" href="http://www.mikevanriel.com"></author><license name="SIL"></license>
</metadata>
<defs>
<font id="phpdocumentor-clean-icons" horiz-adv-x="512" >
<font-face units-per-em="512" ascent="480" descent="-32" />
<missing-glyph horiz-adv-x="512" />
<glyph class="hidden" unicode="&#xf000;" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" />
<glyph unicode="&#xe000;" d="M 139.636,456.727 C 75.171,456.727 23.273,404.829 23.273,340.364 l 0-232.727 c 0-64.465 51.898-116.364 116.364-116.364 l 232.727,0 c 64.465,0 116.364,51.898 116.364,116.364 L 488.727,340.364 C 488.727,404.829 436.829,456.727 372.364,456.727 L 139.636,456.727 z m 20.727-41.381 191.274,0 c 53.001,0 95.709-42.708 95.709-95.709 l 0-191.274 c 0-53.001 -42.708-95.709 -95.709-95.709 l -191.274,0 c -53.001,0 -95.709,42.708 -95.709,95.709 l 0,191.274 c 0,53.001 42.708,95.709 95.709,95.709 zM 359.963,366.827 m0,0,0-43.124 -84.271,0 0-231.052 -50.246,0 0,231.052 -84.271,0 0,43.124 218.787,0" data-tags="trait" />
<glyph unicode="&#xe001;" d="M 139.636,456.727 C 75.171,456.727 23.273,404.829 23.273,340.364 l 0-232.727 c 0-64.465 51.898-116.364 116.364-116.364 l 232.727,0 c 64.465,0 116.364,51.898 116.364,116.364 L 488.727,340.364 C 488.727,404.829 436.829,456.727 372.364,456.727 L 139.636,456.727 z m 20.727-41.381 191.274,0 c 53.001,0 95.709-42.708 95.709-95.709 l 0-191.274 c 0-53.001 -42.708-95.709 -95.709-95.709 l -191.274,0 c -53.001,0 -95.709,42.708 -95.709,95.709 l 0,191.274 c 0,53.001 42.708,95.709 95.709,95.709 zM 231.075,366.827 m0,0, 49.85,0 0-274.176 -49.85,0 0,274.176" data-tags="interface" />
<glyph unicode="&#xe002;" d="M 139.636,456.727 C 75.171,456.727 23.273,404.829 23.273,340.364 l 0-232.727 c 0-64.465 51.898-116.364 116.364-116.364 l 232.727,0 c 64.465,0 116.364,51.898 116.364,116.364 L 488.727,340.364 C 488.727,404.829 436.829,456.727 372.364,456.727 L 139.636,456.727 z m 20.727-41.381 191.274,0 c 53.001,0 95.709-42.708 95.709-95.709 l 0-191.274 c 0-53.001 -42.708-95.709 -95.709-95.709 l -191.274,0 c -53.001,0 -95.709,42.708 -95.709,95.709 l 0,191.274 c 0,53.001 42.708,95.709 95.709,95.709 zM 278.749,86.717 m0,0,c -20.573,0 -39.036,3.165 -55.389,9.495 -16.353,6.33 -30.2,15.562 -41.542,27.695 -11.342,12.397 -20.046,27.431 -26.112,45.103 -6.066,17.672 -9.1,37.981 -9.1,60.928 0,22.947 3.429,43.256 10.287,60.928 7.121,17.672 16.749,32.574 28.881,44.707 12.133,12.396 26.376,21.76 42.729,28.090 16.353,6.33 33.893,9.495 52.62,9.495 11.341,0 21.628-0.923 30.86-2.769 9.231-1.583 17.276-3.429 24.134-5.539 6.857-2.11 12.528-4.352 17.012-6.726 4.484-2.374 7.649-4.089 9.495-5.143 l -14.639-40.751 c -6.33,3.956 -15.43,7.649 -27.299,11.078 -11.606,3.692 -24.266,5.539 -37.981,5.539 -11.869,0 -22.947-2.11 -33.233-6.33 -10.287-3.957 -19.254-10.023 -26.903-18.199 -7.385-8.177 -13.188-18.463 -17.408-30.86 -4.22-12.397 -6.33-26.772 -6.33-43.124 0-14.507 1.582-27.827 4.748-39.959 3.429-12.133 8.572-22.683 15.43-31.651 6.858-8.704 15.562-15.562 26.112-20.573 10.55-4.748 23.211-7.122 37.981-7.121 17.672,0 32.046,1.714 43.124,5.143 11.078,3.693 19.65,7.121 25.716,10.287 l 13.452-40.751 c -3.165-2.11 -7.517-4.22 -13.056-6.33 -5.275-2.11 -11.606-4.22 -18.991-6.33 -7.385-1.846 -15.694-3.297 -24.925-4.352 -9.232-1.319 -19.123-1.978 -29.673-1.978" data-tags="class" />
<glyph unicode="&#x20;" horiz-adv-x="256" />
</font></defs></svg>
/trunk/doc/PhpDoc/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.ttf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.ttf
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.svg
New file
0,0 → 1,17
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>
This is a custom SVG font generated by IcoMoon.
<iconset id="phpdocumentor-clean-icons" name="phpdocumentor-clean-icons" href="http://www.phpdoc.org" grid="16"></iconset><author name="Mike van Riel" href="http://www.mikevanriel.com"></author><license name="SIL"></license>
</metadata>
<defs>
<font id="phpdocumentor-clean-icons" horiz-adv-x="512" >
<font-face units-per-em="512" ascent="480" descent="-32" />
<missing-glyph horiz-adv-x="512" />
<glyph class="hidden" unicode="&#xf000;" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" />
<glyph unicode="&#xe000;" d="M 139.636,456.727 C 75.171,456.727 23.273,404.829 23.273,340.364 l 0-232.727 c 0-64.465 51.898-116.364 116.364-116.364 l 232.727,0 c 64.465,0 116.364,51.898 116.364,116.364 L 488.727,340.364 C 488.727,404.829 436.829,456.727 372.364,456.727 L 139.636,456.727 z m 20.727-41.381 191.274,0 c 53.001,0 95.709-42.708 95.709-95.709 l 0-191.274 c 0-53.001 -42.708-95.709 -95.709-95.709 l -191.274,0 c -53.001,0 -95.709,42.708 -95.709,95.709 l 0,191.274 c 0,53.001 42.708,95.709 95.709,95.709 zM 359.963,366.827 m0,0,0-43.124 -84.271,0 0-231.052 -50.246,0 0,231.052 -84.271,0 0,43.124 218.787,0" />
<glyph unicode="&#xe001;" d="M 139.636,456.727 C 75.171,456.727 23.273,404.829 23.273,340.364 l 0-232.727 c 0-64.465 51.898-116.364 116.364-116.364 l 232.727,0 c 64.465,0 116.364,51.898 116.364,116.364 L 488.727,340.364 C 488.727,404.829 436.829,456.727 372.364,456.727 L 139.636,456.727 z m 20.727-41.381 191.274,0 c 53.001,0 95.709-42.708 95.709-95.709 l 0-191.274 c 0-53.001 -42.708-95.709 -95.709-95.709 l -191.274,0 c -53.001,0 -95.709,42.708 -95.709,95.709 l 0,191.274 c 0,53.001 42.708,95.709 95.709,95.709 zM 231.075,366.827 m0,0, 49.85,0 0-274.176 -49.85,0 0,274.176" />
<glyph unicode="&#xe002;" d="M 139.636,456.727 C 75.171,456.727 23.273,404.829 23.273,340.364 l 0-232.727 c 0-64.465 51.898-116.364 116.364-116.364 l 232.727,0 c 64.465,0 116.364,51.898 116.364,116.364 L 488.727,340.364 C 488.727,404.829 436.829,456.727 372.364,456.727 L 139.636,456.727 z m 20.727-41.381 191.274,0 c 53.001,0 95.709-42.708 95.709-95.709 l 0-191.274 c 0-53.001 -42.708-95.709 -95.709-95.709 l -191.274,0 c -53.001,0 -95.709,42.708 -95.709,95.709 l 0,191.274 c 0,53.001 42.708,95.709 95.709,95.709 zM 278.749,86.717 m0,0,c -20.573,0 -39.036,3.165 -55.389,9.495 -16.353,6.33 -30.2,15.562 -41.542,27.695 -11.342,12.397 -20.046,27.431 -26.112,45.103 -6.066,17.672 -9.1,37.981 -9.1,60.928 0,22.947 3.429,43.256 10.287,60.928 7.121,17.672 16.749,32.574 28.881,44.707 12.133,12.396 26.376,21.76 42.729,28.090 16.353,6.33 33.893,9.495 52.62,9.495 11.341,0 21.628-0.923 30.86-2.769 9.231-1.583 17.276-3.429 24.134-5.539 6.857-2.11 12.528-4.352 17.012-6.726 4.484-2.374 7.649-4.089 9.495-5.143 l -14.639-40.751 c -6.33,3.956 -15.43,7.649 -27.299,11.078 -11.606,3.692 -24.266,5.539 -37.981,5.539 -11.869,0 -22.947-2.11 -33.233-6.33 -10.287-3.957 -19.254-10.023 -26.903-18.199 -7.385-8.177 -13.188-18.463 -17.408-30.86 -4.22-12.397 -6.33-26.772 -6.33-43.124 0-14.507 1.582-27.827 4.748-39.959 3.429-12.133 8.572-22.683 15.43-31.651 6.858-8.704 15.562-15.562 26.112-20.573 10.55-4.748 23.211-7.122 37.981-7.121 17.672,0 32.046,1.714 43.124,5.143 11.078,3.693 19.65,7.121 25.716,10.287 l 13.452-40.751 c -3.165-2.11 -7.517-4.22 -13.056-6.33 -5.275-2.11 -11.606-4.22 -18.991-6.33 -7.385-1.846 -15.694-3.297 -24.925-4.352 -9.232-1.319 -19.123-1.978 -29.673-1.978" />
<glyph unicode="&#x20;" horiz-adv-x="256" />
</font></defs></svg>
/trunk/doc/PhpDoc/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.woff
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.woff
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/doc/PhpDoc/css/phpdocumentor-clean-icons/Read Me.txt
New file
0,0 → 1,3
To modify your generated font, use the *dev.svg* file, located in the *fonts* folder in this package. You can import this dev.svg file to the IcoMoon app. All the tags (class names) and the Unicode points of your glyphs are saved in this file.
 
See the documentation for more info on how to use this package: http://icomoon.io/#docs/font-face
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/trunk/doc/PhpDoc/css/prism.css
New file
0,0 → 1,204
/**
* prism.js default theme for JavaScript, CSS and HTML
* Based on dabblet (http://dabblet.com)
* @author Lea Verou
*/
 
code[class*="language-"],
pre[class*="language-"] {
color: black;
text-shadow: 0 1px white;
font-family: Consolas, Monaco, 'Andale Mono', monospace;
direction: ltr;
text-align: left;
white-space: pre;
word-spacing: normal;
 
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
 
-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
hyphens: none;
}
 
::-moz-selection {
text-shadow: none;
background: #b3d4fc;
}
 
::selection {
text-shadow: none;
background: #b3d4fc;
}
 
@media print {
code[class*="language-"],
pre[class*="language-"] {
text-shadow: none;
}
}
 
/* Code blocks */
pre[class*="language-"] {
padding: 1em;
margin: .5em 0;
overflow: auto;
}
 
:not(pre) > code[class*="language-"],
pre[class*="language-"] {
background: #f5f2f0;
}
 
/* Inline code */
:not(pre) > code[class*="language-"] {
padding: .1em;
border-radius: .3em;
}
 
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: slategray;
}
 
.token.punctuation {
color: #999;
}
 
.namespace {
opacity: .7;
}
 
.token.property,
.token.tag,
.token.boolean,
.token.number {
color: #905;
}
 
.token.selector,
.token.attr-name,
.token.string {
color: #690;
}
 
.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
color: #a67f59;
background: hsla(0,0%,100%,.5);
}
 
.token.atrule,
.token.attr-value,
.token.keyword {
color: #07a;
}
 
 
.token.regex,
.token.important {
color: #e90;
}
 
.token.important {
font-weight: bold;
}
 
.token.entity {
cursor: help;
}
pre[data-line] {
position: relative;
padding: 1em 0 1em 3em;
}
 
.line-highlight {
position: absolute;
left: 0;
right: 0;
padding: inherit 0;
margin-top: 1em; /* Same as .prism’s padding-top */
 
background: hsla(24, 20%, 50%,.08);
background: -moz-linear-gradient(left, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));
background: -webkit-linear-gradient(left, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));
background: -o-linear-gradient(left, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));
background: linear-gradient(left, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));
pointer-events: none;
line-height: inherit;
white-space: pre;
}
 
.line-highlight:before,
.line-highlight[data-end]:after {
content: attr(data-start);
position: absolute;
top: .4em;
left: .6em;
min-width: 1em;
padding: 0 .5em;
background-color: hsla(24, 20%, 50%,.4);
color: hsl(24, 20%, 95%);
font: bold 65%/1.5 sans-serif;
text-align: center;
vertical-align: .3em;
border-radius: 999px;
text-shadow: none;
box-shadow: 0 1px white;
}
.line-highlight[data-end]:after {
content: attr(data-end);
top: auto;
bottom: .4em;
}
pre.line-numbers {
position: relative;
padding-left: 3.8em;
counter-reset: linenumber;
}
 
pre.line-numbers > code {
position: relative;
}
 
.line-numbers .line-numbers-rows {
position: absolute;
pointer-events: none;
top: 0;
font-size: 100%;
left: -3.8em;
width: 3em; /* works for line-numbers below 1000 lines */
letter-spacing: -1px;
border-right: 1px solid #999;
 
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
 
}
 
.line-numbers-rows > span {
pointer-events: none;
display: block;
counter-increment: linenumber;
}
 
.line-numbers-rows > span:before {
content: counter(linenumber);
color: #999;
display: block;
padding-right: 0.8em;
text-align: right;
}
/trunk/doc/PhpDoc/css/template.css
New file
0,0 → 1,418
@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro);
@import url('phpdocumentor-clean-icons/style.css');
 
body {
padding-top: 40px;
background-color: #333333;
}
 
a {
color: #6495ed;
}
a.anchor {
height: 40px;
margin-top: -40px;
display: block;
}
 
h1, h2, h3, h4, h5, h6, .brand {
font-family: 'Source Sans Pro', sans-serif;
font-weight: normal;
letter-spacing: 0.05em;
}
 
h2, h3, .detailsbar h1 {
overflow: hidden;
white-space: nowrap;
margin: 30px 0 20px 0;
}
 
h2:after, h3:after, .detailsbar h1:after {
content: '';
display: inline-block;
vertical-align: middle;
width: 100%;
height: 2px;
margin-left: 1em;
background: silver;
}
 
h3 {
margin: 10px 0 20px 0;
}
 
h4 {
margin: 20px 0 10px 0;
color: gray;
font-size: 18.5px;
}
 
h3.public, h3.protected, h3.private {
padding-left: 10px;
text-overflow: ellipsis;
}
 
.table tr:first-of-type th, .table tr:first-of-type td {
border-top: none;
}
.detailsbar {
color: #eeeeee;
background-color: #333333;
font-size: 0.9em;
overflow: hidden;
border-left: 2px solid gray;
}
 
.detailsbar h1 {
font-size: 1.5em;
margin-bottom: 20px;
margin-top: 0;
}
 
.detailsbar h2 {
font-size: 1.2em;
margin: 0;
padding: 0;
}
 
.detailsbar h1:after {
background: gray;
}
.detailsbar h2:after, .detailsbar h3:after {
background: transparent;
}
 
.detailsbar dt {
font-variant: small-caps;
text-transform: lowercase;
font-size: 1.1em;
letter-spacing: 0.1em;
color: silver;
}
 
.hierarchy div:nth-of-type(2) { margin-left: 11px; }
.hierarchy div:nth-of-type(3) { margin-left: 22px; }
.hierarchy div:nth-of-type(4) { margin-left: 33px; }
.hierarchy div:nth-of-type(5) { margin-left: 44px; }
.hierarchy div:nth-of-type(6) { margin-left: 55px; }
.hierarchy div:nth-of-type(7) { margin-left: 66px; }
.hierarchy div:nth-of-type(8) { margin-left: 77px; }
.hierarchy div:nth-of-type(9) { margin-left: 88px; }
.hierarchy div:before {
content: "\f0da";
font-family: FontAwesome;
margin-right: 5px;
}
 
.row-fluid {
background-color: white;
overflow: hidden;
}
 
footer.row-fluid, footer.row-fluid * {
background-color: #333333;
color: white;
}
 
footer.row-fluid {
border-top: 2px dashed #555;
margin-top: 2px;
}
 
.footer-sections .span4 {
border: 2px solid #555;
text-align: center;
border-radius: 10px;
margin-top: 70px;
margin-bottom: 20px;
background: #373737;
}
 
.footer-sections .span4 h1 {
background: transparent;
margin-top: -30px;
margin-bottom: 20px;
font-size: 5em;
}
 
.footer-sections .span4 h1 * {
background: transparent;
}
 
.footer-sections .span4 div {
border-bottom-right-radius: 6px;
border-bottom-left-radius: 6px;
padding: 10px;
min-height: 40px;
}
.footer-sections .span4 div, .footer-sections .span4 div * {
background-color: #555;
}
.footer-sections .span4 ul {
text-align: left;
list-style: none;
margin: 0;
padding: 0;
}
 
.content {
background-color: white;
padding-right: 20px;
}
 
.content nav {
text-align: center;
border-bottom: 1px solid silver;
margin: 5px 0 20px 0;
padding-bottom: 5px;
}
 
.content > h1 {
padding-bottom: 15px;
}
 
.content > h1 small {
display: block;
padding-bottom: 8px;
font-size: 0.6em;
}
 
.deprecated {
text-decoration: line-through;
}
 
.method {
margin-bottom: 20px;
}
 
.method .signature .argument {
color: maroon;
font-weight: bold;
}
 
.class #summary section.row-fluid {
overflow: hidden
}
 
.class #summary .heading {
font-weight: bold;
text-align: center;
}
 
.class #summary section .span4 {
padding: 3px;
overflow: hidden;
margin-bottom: -9999px;
padding-bottom: 9999px;
white-space: nowrap;
text-overflow: ellipsis;
border-left: 5px solid transparent;
}
 
.class #summary section.public .span4:first-of-type:before,
.class #summary section.public .span6:first-of-type:before,
h3.public:before {
font-family: FontAwesome;
content: "\f046";
color: green;
display: inline-block;
width: 1.2em;
}
 
.class #summary section .span4:first-of-type,
.class #summary section .span6:first-of-type {
padding-left: 21px;
}
.class #summary section .span4:first-of-type:before,
.class #summary section .span6:first-of-type:before {
margin-left: -21px;
}
.class #summary section.protected .span4:first-of-type:before,
.class #summary section.protected .span6:first-of-type:before,
h3.protected:before {
font-family: FontAwesome;
content: "\f132";
color: orange;
display: inline-block;
width: 1.2em;
}
 
.class #summary section.private .span4:first-of-type:before,
.class #summary section.private .span6:first-of-type:before,
h3.private:before {
font-family: FontAwesome;
content: "\f023";
color: red;
display: inline-block;
width: 1.2em;
}
 
.class #summary section em {
font-size: 0.9em;
color: silver;
}
.class #summary .inherited {
color: gray;
font-style: italic;
}
 
.accordion-group {
border: none;
}
 
.accordion {
margin-bottom: 0;
}
 
.accordion a:hover {
text-decoration: none;
background: #333333;
color: #eeeeee;
}
 
.accordion-heading .accordion-toggle:before {
content: "\f078";
font-family: FontAwesome;
margin-right: 5px;
}
 
.accordion-heading .accordion-toggle.collapsed:before {
content: "\f054";
}
.accordion-heading .accordion-toggle {
float: left;
width: 16px;
height: 16px;
padding: 4px 2px 4px 12px;
}
.accordion-heading a {
display: block;
padding: 4px 12px;
}
 
.accordion-inner a {
display: block;
padding: 4px 12px;
}
 
.accordion-inner > ul a:before {
font-family: 'phpdocumentor-clean-icons';
content: "\e001";
margin-right: 5px;
}
 
.accordion-inner li.class a:before {
content: "\e002";
}
 
.accordion-inner li.interface a:before {
content: "\e001";
}
 
.accordion-inner li.trait a:before {
content: "\e000";
}
 
.accordion-inner {
padding: 4px 0 4px 12px;
}
.accordion-inner ul {
list-style: none;
padding: 0;
margin: 0;
}
 
.row-fluid .span2 {
width: 16.5%;
}
 
body .modal {
width: 90%; /* desired relative width */
left: 5%; /* (100%-width)/2 */
/* place center */
margin-left:auto;
margin-right:auto;
}
 
@media (min-width: 767px) {
.sidebar {
position: fixed;
top: 40px;
bottom: 0;
background-color: #f3f3f3;
left: 0;
border-right: 1px solid #e9e9e9;
overflow-y: scroll;
overflow-x: hidden;
padding-top: 10px;
}
 
.sidebar::-webkit-scrollbar {
width: 10px;
}
 
.sidebar::-webkit-scrollbar-thumb {
background: #cccccc;
background-clip: padding-box;
border: 3px solid #f3f3f3;
border-radius: 5px;
}
 
.sidebar::-webkit-scrollbar-button {
display: none;
}
 
.sidebar::-webkit-scrollbar-track {
background: #f3f3f3;
}
}
 
@media (max-width: 979px) {
body {
padding-top: 0;
}
}
 
@media (max-width: 767px) {
.class #summary .heading {
display: none;
}
 
.detailsbar h1 {
display: none;
}
 
body {
background-color: white;
}
 
footer.row-fluid, footer.row-fluid * {
background-color: white;
}
 
.footer-sections h1 {
color: #ccccd9;
}
 
.detailsbar {
background-color: white;
color: #333;
border: none;
}
}
 
@media (min-width: 767px) {
.detailsbar {
min-height: 100%;
margin-bottom: -99999px;
padding-bottom: 99999px;
padding-left: 20px;
padding-top: 10px;
}
}
 
@media (min-width: 1200px) {
.row-fluid .span2 {
width: 16.5%;
}
}
/trunk/doc/PhpDoc/classes/RestServeur.html
New file
0,0 → 1,2274
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-302390834"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-302390834" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content class">
<nav>
<a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
 
<h1><small>\</small>RestServeur</h1>
<p><em>Classe principale gérant les services web de type (@link(REST, http://fr.wikipedia.org/wiki/Rest).</em></p>
<p>Elle contient :</p>
<ul>
<li>les constantes indiquant les différentes (@link(méthode HTTP, <a href="http://fr.wikipedia.org/wiki/Http">http://fr.wikipedia.org/wiki/Http</a>) prises en compte.</li>
<li>les @link(codes HTTP des réponses, <a href="http://fr.wikipedia.org/wiki/Liste_des_codes_HTTP">http://fr.wikipedia.org/wiki/Liste_des_codes_HTTP</a>)</li>
</ul>
<p>Ce serveur REST accepte 4 types de méthodes HTTP : GET, PUT, POST, DELETE.
GET et POST ne pose généralement pas de problème pour les clients HTTP mais ce n'est pas forcément le cas pour PUT et DELETE.
Vous pouvez donc pour réaliser :</p>
<ul>
<li>DELETE : utiliser la méthode POST avec action=DELETE dans le corps de la requête.</li>
<li>PUT : utiliser la méthode POST avec une url ne contenant aucune indication de ressource.
Une autre solution consiste à utiliser n'importe quelle méthode et à ajouter l'entête "X_HTTP_METHOD_OVERRIDE" avec pour
valeur le nom de la méthode que vous souhaitez utiliser. Exemple d'entête : "X_HTTP_METHOD_OVERRIDE: PUT".
Exemple : <code>curl -v -v -H "X_HTTP_METHOD_OVERRIDE: DELETE" "<a href="http://www.mondomaine.org/services/apiVersion/[mon-service]/"&lt;/code">http://www.mondomaine.org/services/apiVersion/[mon-service]/"&lt;/code</a>>
Cela fonctionne avec Apache.</li>
</ul>
<p>Les classes des services web doivent avoir un nom au format ChatMot "MonService" et être appelée dans l'url par le même nom
en minuscule où les mots sont séparés par des tirets "mon-service".</p>
<p>Paramètres liés dans config.ini :</p>
<ul>
<li>serveur.baseURL : morceau de l'url pour appeler le serveur relative au domaine. Exemple : pour <a href="http://www.tela-botanica.org/mon_serveur/">http://www.tela-botanica.org/mon_serveur/</a>
mettre : "/mon_serveur/"</li>
<li>serveur.baseAlternativeURL : sur le même principe que ci-dessus permet d'affecter une deuxième url (pour gérer des raccourci via htaccess)</li>
</ul>
<p>Encodage en entrée : utf8
Encodage en sortie : utf8</p>
 
<section id="summary">
<h2>Summary</h2>
<section class="row-fluid heading">
<section class="span4">
<a href="#methods">Methods</a>
</section>
<section class="span4">
<a href="#properties">Properties</a>
</section>
<section class="span4">
<a href="#constants">Constants</a>
</section>
</section>
<section class="row-fluid public">
<section class="span4">
<a href="../classes/RestServeur.html#method___construct" class="">__construct()</a><br />
<a href="../classes/RestServeur.html#method_chargerClasse" class="">chargerClasse()</a><br />
<a href="../classes/RestServeur.html#method_executer" class="">executer()</a><br />
<a href="../classes/RestServeur.html#method_envoyerEnteteStatutHttp" class="">envoyerEnteteStatutHttp()</a><br />
<a href="../classes/RestServeur.html#method_gererErreurs" class="">gererErreurs()</a><br />
<a href="../classes/RestServeur.html#method_ajouterMessage" class="">ajouterMessage()</a><br />
</section>
<section class="span4">
<em>No public properties found</em>
</section>
<section class="span4">
<a href="../classes/RestServeur.html#constant_METHODE_GET" class="">METHODE_GET</a><br />
<a href="../classes/RestServeur.html#constant_METHODE_POST" class="">METHODE_POST</a><br />
<a href="../classes/RestServeur.html#constant_METHODE_DELETE" class="">METHODE_DELETE</a><br />
<a href="../classes/RestServeur.html#constant_METHODE_PUT" class="">METHODE_PUT</a><br />
<a href="../classes/RestServeur.html#constant_HTTP_CODE_OK" class="">HTTP_CODE_OK</a><br />
<a href="../classes/RestServeur.html#constant_HTTP_CODE_CREATION_OK" class="">HTTP_CODE_CREATION_OK</a><br />
<a href="../classes/RestServeur.html#constant_HTTP_CODE_SUPPRESSION_OK" class="">HTTP_CODE_SUPPRESSION_OK</a><br />
<a href="../classes/RestServeur.html#constant_HTTP_CODE_MAUVAISE_REQUETE" class="">HTTP_CODE_MAUVAISE_REQUETE</a><br />
<a href="../classes/RestServeur.html#constant_HTTP_CODE_ACCES_NON_AUTORISE" class="">HTTP_CODE_ACCES_NON_AUTORISE</a><br />
<a href="../classes/RestServeur.html#constant_HTTP_CODE_RESSOURCE_INTROUVABLE" class="">HTTP_CODE_RESSOURCE_INTROUVABLE</a><br />
<a href="../classes/RestServeur.html#constant_HTTP_CODE_METHODE_NON_AUTORISE" class="">HTTP_CODE_METHODE_NON_AUTORISE</a><br />
<a href="../classes/RestServeur.html#constant_HTTP_CODE_CONFLIT" class="">HTTP_CODE_CONFLIT</a><br />
<a href="../classes/RestServeur.html#constant_HTTP_CODE_CONTENU_REQUIS" class="">HTTP_CODE_CONTENU_REQUIS</a><br />
<a href="../classes/RestServeur.html#constant_HTTP_CODE_ERREUR" class="">HTTP_CODE_ERREUR</a><br />
<a href="../classes/RestServeur.html#constant_MOTIF_API_VERSION" class="">MOTIF_API_VERSION</a><br />
<a href="../classes/RestServeur.html#constant_MOTIF_SERVICE_NOM" class="">MOTIF_SERVICE_NOM</a><br />
</section>
</section>
<section class="row-fluid protected">
<section class="span4">
<em>No protected methods found</em>
</section>
<section class="span4">
<em>No protected properties found</em>
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
<section class="row-fluid private">
<section class="span4">
<a href="../classes/RestServeur.html#method_initialiserMethode" class="">initialiserMethode()</a><br />
<a href="../classes/RestServeur.html#method_initialiserRequeteDonnees" class="">initialiserRequeteDonnees()</a><br />
<a href="../classes/RestServeur.html#method_decouperUrlChemin" class="">decouperUrlChemin()</a><br />
<a href="../classes/RestServeur.html#method_initialiserApiVersion" class="">initialiserApiVersion()</a><br />
<a href="../classes/RestServeur.html#method_verifierApiVersion" class="">verifierApiVersion()</a><br />
<a href="../classes/RestServeur.html#method_initialiserServiceNom" class="">initialiserServiceNom()</a><br />
<a href="../classes/RestServeur.html#method_verifierServiceNom" class="">verifierServiceNom()</a><br />
<a href="../classes/RestServeur.html#method_traiterNomService" class="">traiterNomService()</a><br />
<a href="../classes/RestServeur.html#method_initialiserRessource" class="">initialiserRessource()</a><br />
<a href="../classes/RestServeur.html#method_initialiserParametres" class="">initialiserParametres()</a><br />
<a href="../classes/RestServeur.html#method_recupererParametresGet" class="">recupererParametresGet()</a><br />
<a href="../classes/RestServeur.html#method_nettoyerParametres" class="">nettoyerParametres()</a><br />
<a href="../classes/RestServeur.html#method_recupererParametresBruts" class="">recupererParametresBruts()</a><br />
<a href="../classes/RestServeur.html#method_get" class="">get()</a><br />
<a href="../classes/RestServeur.html#method_post" class="">post()</a><br />
<a href="../classes/RestServeur.html#method_put" class="">put()</a><br />
<a href="../classes/RestServeur.html#method_delete" class="">delete()</a><br />
<a href="../classes/RestServeur.html#method_parserDonneesRequete" class="">parserDonneesRequete()</a><br />
<a href="../classes/RestServeur.html#method_cloreAccesServeur" class="">cloreAccesServeur()</a><br />
<a href="../classes/RestServeur.html#method_envoyerMessages" class="">envoyerMessages()</a><br />
</section>
<section class="span4">
<a href="../classes/RestServeur.html#property_debogageActivation" class="">$debogageActivation</a><br />
<a href="../classes/RestServeur.html#property_debogageMode" class="">$debogageMode</a><br />
<a href="../classes/RestServeur.html#property_methode" class="">$methode</a><br />
<a href="../classes/RestServeur.html#property_requeteDonnees" class="">$requeteDonnees</a><br />
<a href="../classes/RestServeur.html#property_requeteDonneesParsees" class="">$requeteDonneesParsees</a><br />
<a href="../classes/RestServeur.html#property_apiVersion" class="">$apiVersion</a><br />
<a href="../classes/RestServeur.html#property_service" class="">$service</a><br />
<a href="../classes/RestServeur.html#property_ressources" class="">$ressources</a><br />
<a href="../classes/RestServeur.html#property_parametres" class="">$parametres</a><br />
<a href="../classes/RestServeur.html#property_parametresBruts" class="">$parametresBruts</a><br />
<a href="../classes/RestServeur.html#property_config" class="">$config</a><br />
<a href="../classes/RestServeur.html#property_messages" class="">$messages</a><br />
<a href="../classes/RestServeur.html#property_http10" class="">$http10</a><br />
<a href="../classes/RestServeur.html#property_parametres_obligatoires" class="">$parametres_obligatoires</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
</section>
</div>
<aside class="span4 detailsbar">
<dl>
<dt>File</dt>
<dd><a href="../files/RestServeur.php.html"><div class="path-wrapper">RestServeur.php</div></a></dd>
<dt>Package</dt>
<dd><div class="namespace-wrapper">\Framework</div></dd>
<dt>Class hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\RestServeur</div>
</dd>
 
<dt>See also</dt>
<dd><a href="/doc/framework/"><div class="namespace-wrapper">/doc/framework/</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
category
</th>
<td>
<p>Php 5.2</p>
</td>
</tr>
<tr>
<th>
author
</th>
<td>
<p>Jean-Pascal MILCENT <a href="mailto:jpm@tela-botanica.org">jpm@tela-botanica.org</a></p>
</td>
</tr>
<tr>
<th>
copyright
</th>
<td>
<p>Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)</p>
</td>
</tr>
<tr>
<th>
license
</th>
<td>
<p>GPL v3 <a href="http://www.gnu.org/licenses/gpl.txt">http://www.gnu.org/licenses/gpl.txt</a></p>
<p>CECILL v2 <a href="http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt">http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt</a></p>
</td>
</tr>
<tr>
<th>
since
</th>
<td>
</td>
</tr>
<tr>
<th>
version
</th>
<td>
<p>$Id: RestServeur.php 421 2013-04-11 14:43:49Z jpm $</p>
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="constants" name="constants"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Constants</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_METHODE_GET" name="constant_METHODE_GET" class="anchor"></a>
<article id="constant_METHODE_GET" class="constant">
<h3 class="">METHODE_GET</h3>
<pre class="signature">METHODE_GET</pre>
<p><em>Nom de la méthode appelée dans un service pour éxécuter une requête de type GET.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_METHODE_POST" name="constant_METHODE_POST" class="anchor"></a>
<article id="constant_METHODE_POST" class="constant">
<h3 class="">METHODE_POST</h3>
<pre class="signature">METHODE_POST</pre>
<p><em>Nom de la méthode appelée dans un service pour éxécuter une requête de type POST.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_METHODE_DELETE" name="constant_METHODE_DELETE" class="anchor"></a>
<article id="constant_METHODE_DELETE" class="constant">
<h3 class="">METHODE_DELETE</h3>
<pre class="signature">METHODE_DELETE</pre>
<p><em>Nom de la méthode appelée dans un service pour éxécuter une requête de type DELETE.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_METHODE_PUT" name="constant_METHODE_PUT" class="anchor"></a>
<article id="constant_METHODE_PUT" class="constant">
<h3 class="">METHODE_PUT</h3>
<pre class="signature">METHODE_PUT</pre>
<p><em>Nom de la méthode appelée dans un service pour éxécuter une requête de type PUT.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_HTTP_CODE_OK" name="constant_HTTP_CODE_OK" class="anchor"></a>
<article id="constant_HTTP_CODE_OK" class="constant">
<h3 class="">HTTP_CODE_OK</h3>
<pre class="signature">HTTP_CODE_OK</pre>
<p><em>Code HTTP 200 indiquant le succès de l&#039;accès à un service web par la méthode GET.</em></p>
<p>L'utiliser lors d'une requète de type GET (consulter) pour indiquer le succès de l'opération.
Sera renvoyée par défaut par PHP.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_HTTP_CODE_CREATION_OK" name="constant_HTTP_CODE_CREATION_OK" class="anchor"></a>
<article id="constant_HTTP_CODE_CREATION_OK" class="constant">
<h3 class="">HTTP_CODE_CREATION_OK</h3>
<pre class="signature">HTTP_CODE_CREATION_OK</pre>
<p><em>Code HTTP 201 indiquant que l&#039;accès à un service web est un succès et que la ressource a été créée ou modifié.</em></p>
<p>L'utiliser lors d'une requète de type PUT (ajouter) ou POST (modifier) pour indiquer le succès de l'opération.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_HTTP_CODE_SUPPRESSION_OK" name="constant_HTTP_CODE_SUPPRESSION_OK" class="anchor"></a>
<article id="constant_HTTP_CODE_SUPPRESSION_OK" class="constant">
<h3 class="">HTTP_CODE_SUPPRESSION_OK</h3>
<pre class="signature">HTTP_CODE_SUPPRESSION_OK</pre>
<p><em>Code HTTP 204 indique que l&#039;accès à un service web est un succès et qu&#039;il n&#039;y a pas de contenu à renvoyer.</em></p>
<p>L'utiliser lors d'une requète de type DELETE (supprimer) pour indiquer le succès de l'opération si aucun
contenu (status) ne doit être renvoyé, sinon utiliser 200 OK.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_HTTP_CODE_MAUVAISE_REQUETE" name="constant_HTTP_CODE_MAUVAISE_REQUETE" class="anchor"></a>
<article id="constant_HTTP_CODE_MAUVAISE_REQUETE" class="constant">
<h3 class="">HTTP_CODE_MAUVAISE_REQUETE</h3>
<pre class="signature">HTTP_CODE_MAUVAISE_REQUETE</pre>
<p><em>Code HTTP 400 indique que les paramètres envoyés au service contiennent des erreurs.</em></p>
<p>L'utiliser pour indiquer l'échec de l'accès au service. La réponse pourra contenir un message expliquant la source
de l'erreur.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_HTTP_CODE_ACCES_NON_AUTORISE" name="constant_HTTP_CODE_ACCES_NON_AUTORISE" class="anchor"></a>
<article id="constant_HTTP_CODE_ACCES_NON_AUTORISE" class="constant">
<h3 class="">HTTP_CODE_ACCES_NON_AUTORISE</h3>
<pre class="signature">HTTP_CODE_ACCES_NON_AUTORISE</pre>
<p><em>Code HTTP 401 indiquant que l&#039;accès à un service web est refusé car l&#039;authentification (obligatoire) a échoué pour
accéder à la ressource.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_HTTP_CODE_RESSOURCE_INTROUVABLE" name="constant_HTTP_CODE_RESSOURCE_INTROUVABLE" class="anchor"></a>
<article id="constant_HTTP_CODE_RESSOURCE_INTROUVABLE" class="constant">
<h3 class="">HTTP_CODE_RESSOURCE_INTROUVABLE</h3>
<pre class="signature">HTTP_CODE_RESSOURCE_INTROUVABLE</pre>
<p><em>Code HTTP 404 indiquant que la ressource indiquée par l&#039;url est introuvable.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_HTTP_CODE_METHODE_NON_AUTORISE" name="constant_HTTP_CODE_METHODE_NON_AUTORISE" class="anchor"></a>
<article id="constant_HTTP_CODE_METHODE_NON_AUTORISE" class="constant">
<h3 class="">HTTP_CODE_METHODE_NON_AUTORISE</h3>
<pre class="signature">HTTP_CODE_METHODE_NON_AUTORISE</pre>
<p><em>Code HTTP 405 indiquant soit :
- que le service web ne possède pas d&#039;accès la ressource correspondant à la méthode HTTP employée.</em></p>
<ul>
<li>que la méthode HTTP enployée n'est pas en accord avec la ressource indiquée par l'url.</li>
</ul>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_HTTP_CODE_CONFLIT" name="constant_HTTP_CODE_CONFLIT" class="anchor"></a>
<article id="constant_HTTP_CODE_CONFLIT" class="constant">
<h3 class="">HTTP_CODE_CONFLIT</h3>
<pre class="signature">HTTP_CODE_CONFLIT</pre>
<p><em>Code d&#039;erreur HTTP 409 indiquant qu&#039;un conflit est survenu vis à vis de la ressource.</em></p>
<p>Par exemple, essayer de créer deux fois la même ressource ou bien tenter de modifier une ressource qui a été modifiée par
ailleurs.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_HTTP_CODE_CONTENU_REQUIS" name="constant_HTTP_CODE_CONTENU_REQUIS" class="anchor"></a>
<article id="constant_HTTP_CODE_CONTENU_REQUIS" class="constant">
<h3 class="">HTTP_CODE_CONTENU_REQUIS</h3>
<pre class="signature">HTTP_CODE_CONTENU_REQUIS</pre>
<p><em>Code HTTP 411 indiquant que des paramètres passés dans le contenu de la requête sont nécessaires au service.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_HTTP_CODE_ERREUR" name="constant_HTTP_CODE_ERREUR" class="anchor"></a>
<article id="constant_HTTP_CODE_ERREUR" class="constant">
<h3 class="">HTTP_CODE_ERREUR</h3>
<pre class="signature">HTTP_CODE_ERREUR</pre>
<p><em>Code d&#039;erreur HTTP 500 Internal Server Error.</em></p>
<p>L'utiliser quand le serveur ou un service soulève une erreur ou une exception.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_MOTIF_API_VERSION" name="constant_MOTIF_API_VERSION" class="anchor"></a>
<article id="constant_MOTIF_API_VERSION" class="constant">
<h3 class="">MOTIF_API_VERSION</h3>
<pre class="signature">MOTIF_API_VERSION</pre>
<p><em>Motif de l&#039;epression régulière vérfiant la version de l&#039;API.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_MOTIF_SERVICE_NOM" name="constant_MOTIF_SERVICE_NOM" class="anchor"></a>
<article id="constant_MOTIF_SERVICE_NOM" class="constant">
<h3 class="">MOTIF_SERVICE_NOM</h3>
<pre class="signature">MOTIF_SERVICE_NOM</pre>
<p><em>Motif de l&#039;epression régulière vérfiant le nom du service.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="properties" name="properties"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Properties</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_debogageActivation" name="property_debogageActivation" class="anchor"></a>
<article class="property">
<h3 class="private ">$debogageActivation</h3>
<pre class="signature">$debogageActivation : boolean</pre>
<p><em>Mettre à true pour activer l&#039;affichage des messages d&#039;erreurs et de débogage.</em></p>
 
<h4>Type</h4>
boolean
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_debogageMode" name="property_debogageMode" class="anchor"></a>
<article class="property">
<h3 class="private ">$debogageMode</h3>
<pre class="signature">$debogageMode : string</pre>
<p><em>Indiquer le mode de débogage à utiliser (@see Debug).</em></p>
 
<h4>Type</h4>
string
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_methode" name="property_methode" class="anchor"></a>
<article class="property">
<h3 class="private ">$methode</h3>
<pre class="signature">$methode : string</pre>
<p><em>La méthode de la requête HTTP utilisée.</em></p>
 
<h4>Type</h4>
string
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_requeteDonnees" name="property_requeteDonnees" class="anchor"></a>
<article class="property">
<h3 class="private ">$requeteDonnees</h3>
<pre class="signature">$requeteDonnees : array</pre>
<p><em>Le contenu brut du corps de la requête HTTP (s&#039;il y en a).</em></p>
 
<h4>Type</h4>
array
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_requeteDonneesParsees" name="property_requeteDonneesParsees" class="anchor"></a>
<article class="property">
<h3 class="private ">$requeteDonneesParsees</h3>
<pre class="signature">$requeteDonneesParsees : array</pre>
<p><em>Le contenu sous forme de tableau de paires clés-valeurs du corps de la requête HTTP (s&#039;il y en a).</em></p>
 
<h4>Type</h4>
array
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_apiVersion" name="property_apiVersion" class="anchor"></a>
<article class="property">
<h3 class="private ">$apiVersion</h3>
<pre class="signature">$apiVersion : mixed</pre>
<p><em>Version de l&#039;API demandée.</em></p>
<p>Ex. <a href="http://www.mondomaine.org/services/[apiVersion]/mon-service/">http://www.mondomaine.org/services/[apiVersion]/mon-service/</a></p>
 
<h4>Type</h4>
mixed
&mdash; Généralement deux nombres séparés par un point. Ex. : 1.0 </article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_service" name="property_service" class="anchor"></a>
<article class="property">
<h3 class="private ">$service</h3>
<pre class="signature">$service : string</pre>
<p><em>Nom du service demandé.</em></p>
<p>Ex. <a href="http://www.mondomaine.org/services/apiVersion/[mon-service">http://www.mondomaine.org/services/apiVersion/[mon-service</a>]/</p>
 
<h4>Type</h4>
string
&mdash; par défaut vaut null. </article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_ressources" name="property_ressources" class="anchor"></a>
<article class="property">
<h3 class="private ">$ressources</h3>
<pre class="signature">$ressources : array</pre>
<p><em>Morceaux de l&#039;url servant à préciser la ressource concerné pour le service demandé.</em></p>
<p>Ex. <a href="http://www.mondomaine.org/services/apiVersion/mon-service/[maRessource/maSousResource">http://www.mondomaine.org/services/apiVersion/mon-service/[maRessource/maSousResource</a>...]</p>
 
<h4>Type</h4>
array
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_parametres" name="property_parametres" class="anchor"></a>
<article class="property">
<h3 class="private ">$parametres</h3>
<pre class="signature">$parametres : array</pre>
<p><em>Partie de l&#039;url situé après le &#039;?&#039; servant à paramétrer le service demandé.</em></p>
<p>Les données proviennent de $<em>GET où les caractères suivant ont été transformé en '</em>' undescrore dans les clés :</p>
<ul>
<li>chr(32) ( ) (space)</li>
<li>chr(46) (.) (dot)</li>
<li>chr(91) ([) (open square bracket)</li>
<li>chr(128) - chr(159) (various)
En outre nous appliquons la méthode nettoyerGet() qui effectue d'autres remplacement dans les valeurs.
Ex. <a href="http://www.mondomaine.org/services/apiVersion/mon-service?monParametre1=maValeur1&amp;monParametre2=maValeur2">http://www.mondomaine.org/services/apiVersion/mon-service?monParametre1=maValeur1&amp;monParametre2=maValeur2</a></li>
</ul>
 
<h4>Type</h4>
array
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
<dt>See also</dt>
<dd><a href=""><span class="namespace-wrapper"></span></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_parametresBruts" name="property_parametresBruts" class="anchor"></a>
<article class="property">
<h3 class="private ">$parametresBruts</h3>
<pre class="signature">$parametresBruts : array</pre>
<p><em>Partie de l&#039;url situé après le &#039;?&#039; servant à paramétrer le service demandé.</em></p>
<p>Les données proviennent de $_SERVER['QUERY_STRING'] et n'ont subies aucune transformation au niveau des clés.
Cependant nous appliquons la méthode nettoyerGet() qui effectue d'autres remplacement dans les valeurs.
Ex. <a href="http://www.mondomaine.org/services/apiVersion/mon-service?monParametre1=maValeur1&amp;monParametre2=maValeur2">http://www.mondomaine.org/services/apiVersion/mon-service?monParametre1=maValeur1&amp;monParametre2=maValeur2</a></p>
 
<h4>Type</h4>
array
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
<dt>See also</dt>
<dd><a href=""><span class="namespace-wrapper"></span></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_config" name="property_config" class="anchor"></a>
<article class="property">
<h3 class="private ">$config</h3>
<pre class="signature">$config : array</pre>
<p><em>Tableau contenant les paramètres de configuration du serveur.</em></p>
 
<h4>Type</h4>
array
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_messages" name="property_messages" class="anchor"></a>
<article class="property">
<h3 class="private ">$messages</h3>
<pre class="signature">$messages : array</pre>
<p><em>Tableau contenant les messages d&#039;erreur et/ou d&#039;avertissement du Serveur.</em></p>
 
<h4>Type</h4>
array
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_http10" name="property_http10" class="anchor"></a>
<article class="property">
<h3 class="private ">$http10</h3>
<pre class="signature">$http10</pre>
<p><em>Codes HTTP.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_parametres_obligatoires" name="property_parametres_obligatoires" class="anchor"></a>
<article class="property">
<h3 class="private ">$parametres_obligatoires</h3>
<pre class="signature">$parametres_obligatoires</pre>
<p><em>Tableau des noms des paramètres à définir dans le fichier de config car obligatoirement nécessaire à cette classe.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="methods" name="methods"></a>
<div class="row-fluid">
<div class="span8 content class"><h2>Methods</h2></div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method___construct" name="method___construct" class="anchor"></a>
<article class="method">
<h3 class="public ">__construct()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">__construct()</pre>
<p><em>Analyse les données envoyées au serveur, enregistre la méthode HTTP utilisée pour appeler le serveur et parse
l&#039;url appelée pour trouver le service demandé.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_chargerClasse" name="method_chargerClasse" class="anchor"></a>
<article class="method">
<h3 class="public ">chargerClasse()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">chargerClasse( <span class="argument">$classe</span>) : void</pre>
<p><em>La méthode __autoload() charge dynamiquement les classes trouvées dans le code.</em></p>
<p>Cette fonction est appelée par php5 quand il trouve une instanciation de classe dans le code.</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$classe</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_executer" name="method_executer" class="anchor"></a>
<article class="method">
<h3 class="public ">executer()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">executer()</pre>
<p><em>Execute la requête.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_envoyerEnteteStatutHttp" name="method_envoyerEnteteStatutHttp" class="anchor"></a>
<article class="method">
<h3 class="public ">envoyerEnteteStatutHttp()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">envoyerEnteteStatutHttp(int <span class="argument">$code</span>)</pre>
<p><em>Envoyer un entête HTTP (version 1.0) de statut.</em></p>
<p>Il remplacera systématiquement tout entête HTTP de statut précédement envoyé.</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>int</td>
<td>$code</td>
<td><p>entier indiquant le code du statut de l'entête HTTP à envoyer.</p></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_gererErreurs" name="method_gererErreurs" class="anchor"></a>
<article class="method">
<h3 class="public ">gererErreurs()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">gererErreurs()</pre>
<p><em>Si des exceptions ou des erreurs sont soulevées par le serveur ou les services, elles sont gérées par cette méthode.</em></p>
<p>Si nous avec des erreurs d'un type différent d'E_USER_NOTICE (réservé au débogage), elle sont renvoyées sur la sortie
standard (via echo).
Si seulement des erreurs de type E_USER_NOTICE, sont présentes, elle sont envoyées en fonction du contenu du paramètre de
config "debogage_mode" :</p>
<ul>
<li>Debug::MODE_ECHO : les messages sont affichés en utilisant echo au moment où ils sont déclenchés dans le code.</li>
<li>Debug::MODE_NOTICE : les message sont stockés par le gestionnaire d'exception sous forme d'erreur de type
E_USER_NOTICE et sont renvoyés sur la sortie standard à la fin de l'execution du programme (via echo).</li>
<li>Debug::MODE_ENTETE_HTTP : les message sont stockés par le gestionnaire d'exception sous forme d'erreur de type
E_USER_NOTICE et sont renvoyés dans un entête HTTP (X_REST_DEBOGAGE_MESSAGES) à la fin de l'execution du programme.</li>
<li>Autre valeur : les messages sont formatés puis retournés par la fonction de débogage (à vous de les afficher).</li>
</ul>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_ajouterMessage" name="method_ajouterMessage" class="anchor"></a>
<article class="method">
<h3 class="public ">ajouterMessage()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">ajouterMessage(string <span class="argument">$message</span>)</pre>
<p><em>Permet d&#039;ajouter un message d&#039;erreur ou d&#039;avertissement qui sera envoyé au client.</em></p>
<p>Le message doit être au format texte et en UTF-8.</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$message</td>
<td><p>le message à envoyer.</p></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_initialiserMethode" name="method_initialiserMethode" class="anchor"></a>
<article class="method">
<h3 class="private ">initialiserMethode()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">initialiserMethode()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_initialiserRequeteDonnees" name="method_initialiserRequeteDonnees" class="anchor"></a>
<article class="method">
<h3 class="private ">initialiserRequeteDonnees()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">initialiserRequeteDonnees()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_decouperUrlChemin" name="method_decouperUrlChemin" class="anchor"></a>
<article class="method">
<h3 class="private ">decouperUrlChemin()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">decouperUrlChemin()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_initialiserApiVersion" name="method_initialiserApiVersion" class="anchor"></a>
<article class="method">
<h3 class="private ">initialiserApiVersion()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">initialiserApiVersion( <span class="argument">$apiVersion</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$apiVersion</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_verifierApiVersion" name="method_verifierApiVersion" class="anchor"></a>
<article class="method">
<h3 class="private ">verifierApiVersion()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">verifierApiVersion( <span class="argument">$apiVersion</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$apiVersion</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_initialiserServiceNom" name="method_initialiserServiceNom" class="anchor"></a>
<article class="method">
<h3 class="private ">initialiserServiceNom()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">initialiserServiceNom( <span class="argument">$serviceNom</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$serviceNom</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_verifierServiceNom" name="method_verifierServiceNom" class="anchor"></a>
<article class="method">
<h3 class="private ">verifierServiceNom()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">verifierServiceNom( <span class="argument">$serviceNom</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$serviceNom</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_traiterNomService" name="method_traiterNomService" class="anchor"></a>
<article class="method">
<h3 class="private ">traiterNomService()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">traiterNomService( <span class="argument">$serviceNom</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$serviceNom</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_initialiserRessource" name="method_initialiserRessource" class="anchor"></a>
<article class="method">
<h3 class="private ">initialiserRessource()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">initialiserRessource( <span class="argument">$urlParts</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$urlParts</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_initialiserParametres" name="method_initialiserParametres" class="anchor"></a>
<article class="method">
<h3 class="private ">initialiserParametres()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">initialiserParametres()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_recupererParametresGet" name="method_recupererParametresGet" class="anchor"></a>
<article class="method">
<h3 class="private ">recupererParametresGet()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">recupererParametresGet()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_nettoyerParametres" name="method_nettoyerParametres" class="anchor"></a>
<article class="method">
<h3 class="private ">nettoyerParametres()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">nettoyerParametres(array <span class="argument">$parametres</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$parametres</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_recupererParametresBruts" name="method_recupererParametresBruts" class="anchor"></a>
<article class="method">
<h3 class="private ">recupererParametresBruts()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">recupererParametresBruts()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_get" name="method_get" class="anchor"></a>
<article class="method">
<h3 class="private ">get()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">get()</pre>
<p><em>Execute a GET request. A GET request fetches a list of resource when no resource name is given, a list of element
when a resource name is given, or a resource element when a resource and resource unique identifier are given. It does not change the
database contents.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_post" name="method_post" class="anchor"></a>
<article class="method">
<h3 class="private ">post()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">post()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_put" name="method_put" class="anchor"></a>
<article class="method">
<h3 class="private ">put()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">put()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_delete" name="method_delete" class="anchor"></a>
<article class="method">
<h3 class="private ">delete()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">delete()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_parserDonneesRequete" name="method_parserDonneesRequete" class="anchor"></a>
<article class="method">
<h3 class="private ">parserDonneesRequete()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">parserDonneesRequete() : array</pre>
<p><em>Parse les données contenu dans le corps de la requête HTTP (= POST) en :
- décodant les clés et valeurs.</em></p>
<ul>
<li>supprimant les espaces en début et fin des clés et des valeurs.</li>
</ul>
 
<h4>Returns</h4>
array
&mdash; <p>Tableau de paires clé et valeur.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_cloreAccesServeur" name="method_cloreAccesServeur" class="anchor"></a>
<article class="method">
<h3 class="private ">cloreAccesServeur()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">cloreAccesServeur( <span class="argument">$retour</span>)</pre>
<p><em>Termine l&#039;accès au serveur après envoir envoyer les messages.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$retour</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_envoyerMessages" name="method_envoyerMessages" class="anchor"></a>
<article class="method">
<h3 class="private ">envoyerMessages()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">envoyerMessages()</pre>
<p><em>Envoie au client les éventuels messages d&#039;erreur et d&#039;avertissement du Serveur.</em></p>
<p>Le format d'envoie est text/plain encodé en UTF-8.</p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label">RestServeur.php</h3>
</div>
<div class="modal-body">
<pre data-src="../files/RestServeur.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/classes/Bdd.html
New file
0,0 → 1,1599
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1898789351"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1898789351" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content class">
<nav>
<a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
 
<h1><small>\</small>Bdd</h1>
<p><em>Classe Bdd, d&#039;accés au base de données.</em></p>
<p>Elle fait office d'abstraction légère de base de données en utilisant diverses possibilités d'accès aux
bases de données (PDO, mysql, mysqli, SQLite3).
Les valeurs pour le paramètre 'bdd_abstraction' du fichier config.ini sont : pdo, mysql, mysqli, sqlite3
Vous pouvez aussi utiliser : "php:Bdd::ABSTRACTION_PDO","php:Bdd::ABSTRACTION_MYSQL", "php:Bdd::ABSTRACTION_MYSQLI",
"php:Bdd::ABSTRACTION_SQLITE3".
Elle peut être étendue, pour ajouter le support d'autres bases de données où prendre en compte des méthodes spécifique à
un type d'abstraction.</p>
 
<section id="summary">
<h2>Summary</h2>
<section class="row-fluid heading">
<section class="span4">
<a href="#methods">Methods</a>
</section>
<section class="span4">
<a href="#properties">Properties</a>
</section>
<section class="span4">
<a href="#constants">Constants</a>
</section>
</section>
<section class="row-fluid public">
<section class="span4">
<a href="../classes/Bdd.html#method___construct" class="">__construct()</a><br />
<a href="../classes/Bdd.html#method_requeter" class="">requeter()</a><br />
<a href="../classes/Bdd.html#method_recuperer" class="">recuperer()</a><br />
<a href="../classes/Bdd.html#method_recupererTous" class="">recupererTous()</a><br />
<a href="../classes/Bdd.html#method_proteger" class="">proteger()</a><br />
<a href="../classes/Bdd.html#method_protegerTableau" class="deprecated">protegerTableau()</a><br />
<a href="../classes/Bdd.html#method_recupererIdDernierAjout" class="">recupererIdDernierAjout()</a><br />
<a href="../classes/Bdd.html#method___destruct" class="">__destruct()</a><br />
</section>
<section class="span4">
<em>No public properties found</em>
</section>
<section class="span4">
<a href="../classes/Bdd.html#constant_ERREUR_REQUETE_TPL" class="">ERREUR_REQUETE_TPL</a><br />
<a href="../classes/Bdd.html#constant_ERREUR_CONNEXION_TPL" class="">ERREUR_CONNEXION_TPL</a><br />
<a href="../classes/Bdd.html#constant_ERREUR_SELECTION_BDD_TPL" class="">ERREUR_SELECTION_BDD_TPL</a><br />
<a href="../classes/Bdd.html#constant_ABSTRACTION_PDO" class="">ABSTRACTION_PDO</a><br />
<a href="../classes/Bdd.html#constant_ABSTRACTION_MYSQL" class="">ABSTRACTION_MYSQL</a><br />
<a href="../classes/Bdd.html#constant_ABSTRACTION_MYSQLI" class="">ABSTRACTION_MYSQLI</a><br />
<a href="../classes/Bdd.html#constant_ABSTRACTION_SQLITE3" class="">ABSTRACTION_SQLITE3</a><br />
<a href="../classes/Bdd.html#constant_MODE_ASSOC" class="">MODE_ASSOC</a><br />
<a href="../classes/Bdd.html#constant_MODE_OBJET" class="">MODE_OBJET</a><br />
</section>
</section>
<section class="row-fluid protected">
<section class="span4">
<a href="../classes/Bdd.html#method_initialiserProtocole" class="">initialiserProtocole()</a><br />
<a href="../classes/Bdd.html#method_connecter" class="">connecter()</a><br />
<a href="../classes/Bdd.html#method_requete" class="deprecated">requete()</a><br />
<a href="../classes/Bdd.html#method_requeteUn" class="deprecated">requeteUn()</a><br />
<a href="../classes/Bdd.html#method_requeteTous" class="deprecated">requeteTous()</a><br />
</section>
<section class="span4">
<a href="../classes/Bdd.html#property_ASSOC" class="">$ASSOC</a><br />
<a href="../classes/Bdd.html#property_OBJECT" class="">$OBJECT</a><br />
<a href="../classes/Bdd.html#property_abstraction" class="">$abstraction</a><br />
<a href="../classes/Bdd.html#property_dsn" class="">$dsn</a><br />
<a href="../classes/Bdd.html#property_type" class="">$type</a><br />
<a href="../classes/Bdd.html#property_hote" class="">$hote</a><br />
<a href="../classes/Bdd.html#property_bdd_nom" class="">$bdd_nom</a><br />
<a href="../classes/Bdd.html#property_utilisateur" class="">$utilisateur</a><br />
<a href="../classes/Bdd.html#property_pass" class="">$pass</a><br />
<a href="../classes/Bdd.html#property_encodage" class="">$encodage</a><br />
<a href="../classes/Bdd.html#property_connexion" class="">$connexion</a><br />
<a href="../classes/Bdd.html#property_parametres_obligatoires" class="">$parametres_obligatoires</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
<section class="row-fluid private">
<section class="span4">
<a href="../classes/Bdd.html#method_protegerChaine" class="">protegerChaine()</a><br />
</section>
<section class="span4">
<em>No private properties found</em>
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
</section>
</div>
<aside class="span4 detailsbar">
<dl>
<dt>File</dt>
<dd><a href="../files/Bdd.php.html"><div class="path-wrapper">Bdd.php</div></a></dd>
<dt>Package</dt>
<dd><div class="namespace-wrapper">\Framework</div></dd>
<dt>Class hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\Bdd</div>
</dd>
 
<dt>See also</dt>
<dd><a href="/doc/framework/"><div class="namespace-wrapper">/doc/framework/</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
category
</th>
<td>
<p>php 5.2</p>
</td>
</tr>
<tr>
<th>
author
</th>
<td>
<p>Aurélien PERONNET <a href="mailto:aurelien@tela-botanica.org">aurelien@tela-botanica.org</a></p>
<p>Jean-Pascal MILCENT <a href="mailto:jpm@tela-botanica.org">jpm@tela-botanica.org</a></p>
</td>
</tr>
<tr>
<th>
copyright
</th>
<td>
<p>Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)</p>
</td>
</tr>
<tr>
<th>
license
</th>
<td>
<p><a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt</a> Licence CECILL</p>
<p><a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> Licence GNU-GPL</p>
</td>
</tr>
<tr>
<th>
version
</th>
<td>
<p>$Id: Bdd.php 461 2014-03-05 16:13:16Z jpm $</p>
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="constants" name="constants"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Constants</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_ERREUR_REQUETE_TPL" name="constant_ERREUR_REQUETE_TPL" class="anchor"></a>
<article id="constant_ERREUR_REQUETE_TPL" class="constant">
<h3 class="">ERREUR_REQUETE_TPL</h3>
<pre class="signature">ERREUR_REQUETE_TPL</pre>
<p><em>Constante stockant le squelette du message en cas d&#039;erreur de requête sql.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_ERREUR_CONNEXION_TPL" name="constant_ERREUR_CONNEXION_TPL" class="anchor"></a>
<article id="constant_ERREUR_CONNEXION_TPL" class="constant">
<h3 class="">ERREUR_CONNEXION_TPL</h3>
<pre class="signature">ERREUR_CONNEXION_TPL</pre>
<p><em>Constante stockant le squelette du message en cas d&#039;erreur de connexion à la base de données.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_ERREUR_SELECTION_BDD_TPL" name="constant_ERREUR_SELECTION_BDD_TPL" class="anchor"></a>
<article id="constant_ERREUR_SELECTION_BDD_TPL" class="constant">
<h3 class="">ERREUR_SELECTION_BDD_TPL</h3>
<pre class="signature">ERREUR_SELECTION_BDD_TPL</pre>
<p><em>Constante stockant le squelette du message en cas d&#039;erreur de sélection de la base de données.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_ABSTRACTION_PDO" name="constant_ABSTRACTION_PDO" class="anchor"></a>
<article id="constant_ABSTRACTION_PDO" class="constant">
<h3 class="">ABSTRACTION_PDO</h3>
<pre class="signature">ABSTRACTION_PDO</pre>
<p><em>Constante stockant le code pour l&#039;abstraction de PDO.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_ABSTRACTION_MYSQL" name="constant_ABSTRACTION_MYSQL" class="anchor"></a>
<article id="constant_ABSTRACTION_MYSQL" class="constant">
<h3 class="">ABSTRACTION_MYSQL</h3>
<pre class="signature">ABSTRACTION_MYSQL</pre>
<p><em>Constante stockant le code pour l&#039;abstraction de mysql.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_ABSTRACTION_MYSQLI" name="constant_ABSTRACTION_MYSQLI" class="anchor"></a>
<article id="constant_ABSTRACTION_MYSQLI" class="constant">
<h3 class="">ABSTRACTION_MYSQLI</h3>
<pre class="signature">ABSTRACTION_MYSQLI</pre>
<p><em>Constante stockant le code pour l&#039;abstraction de mysqli.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_ABSTRACTION_SQLITE3" name="constant_ABSTRACTION_SQLITE3" class="anchor"></a>
<article id="constant_ABSTRACTION_SQLITE3" class="constant">
<h3 class="">ABSTRACTION_SQLITE3</h3>
<pre class="signature">ABSTRACTION_SQLITE3</pre>
<p><em>Constante stockant le code pour l&#039;abstraction de SQLite3.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_MODE_ASSOC" name="constant_MODE_ASSOC" class="anchor"></a>
<article id="constant_MODE_ASSOC" class="constant">
<h3 class="">MODE_ASSOC</h3>
<pre class="signature">MODE_ASSOC</pre>
<p><em>Constante stockant le code pour le mode tableau associatif des résultats des requêtes.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_MODE_OBJET" name="constant_MODE_OBJET" class="anchor"></a>
<article id="constant_MODE_OBJET" class="constant">
<h3 class="">MODE_OBJET</h3>
<pre class="signature">MODE_OBJET</pre>
<p><em>Constante stockant le code pour le mode objet des résultats des requêtes.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="properties" name="properties"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Properties</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_ASSOC" name="property_ASSOC" class="anchor"></a>
<article class="property">
<h3 class="protected ">$ASSOC</h3>
<pre class="signature">$ASSOC</pre>
<p><em>Mode de fetch associatif</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_OBJECT" name="property_OBJECT" class="anchor"></a>
<article class="property">
<h3 class="protected ">$OBJECT</h3>
<pre class="signature">$OBJECT</pre>
<p><em>Mode de fetch objet</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_abstraction" name="property_abstraction" class="anchor"></a>
<article class="property">
<h3 class="protected ">$abstraction</h3>
<pre class="signature">$abstraction</pre>
<p><em>abstraction de base de données utilisée</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_dsn" name="property_dsn" class="anchor"></a>
<article class="property">
<h3 class="protected ">$dsn</h3>
<pre class="signature">$dsn</pre>
<p><em>DSN pour accéder à la base de données</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_type" name="property_type" class="anchor"></a>
<article class="property">
<h3 class="protected ">$type</h3>
<pre class="signature">$type</pre>
<p><em>Type de base de données (mysql, mysqli, etc .</em></p>
<p>..)</p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_hote" name="property_hote" class="anchor"></a>
<article class="property">
<h3 class="protected ">$hote</h3>
<pre class="signature">$hote</pre>
<p><em>Hote herbergeant la base de données</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_bdd_nom" name="property_bdd_nom" class="anchor"></a>
<article class="property">
<h3 class="protected ">$bdd_nom</h3>
<pre class="signature">$bdd_nom</pre>
<p><em>Nom de la base de données à laquelle le modèle doit se connecter</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_utilisateur" name="property_utilisateur" class="anchor"></a>
<article class="property">
<h3 class="protected ">$utilisateur</h3>
<pre class="signature">$utilisateur</pre>
<p><em>Nom d&#039;utilisateur</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_pass" name="property_pass" class="anchor"></a>
<article class="property">
<h3 class="protected ">$pass</h3>
<pre class="signature">$pass</pre>
<p><em>Mot de passe</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_encodage" name="property_encodage" class="anchor"></a>
<article class="property">
<h3 class="protected ">$encodage</h3>
<pre class="signature">$encodage</pre>
<p><em>Encodage de la base de données</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_connexion" name="property_connexion" class="anchor"></a>
<article class="property">
<h3 class="protected ">$connexion</h3>
<pre class="signature">$connexion</pre>
<p><em>Connexion à la base de données</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_parametres_obligatoires" name="property_parametres_obligatoires" class="anchor"></a>
<article class="property">
<h3 class="protected ">$parametres_obligatoires</h3>
<pre class="signature">$parametres_obligatoires</pre>
<p><em>Tableau des noms des paramètres à définir dans le fichier de config car obligatoirement nécessaire à cette classe.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="methods" name="methods"></a>
<div class="row-fluid">
<div class="span8 content class"><h2>Methods</h2></div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method___construct" name="method___construct" class="anchor"></a>
<article class="method">
<h3 class="public ">__construct()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">__construct()</pre>
<p><em>Constructeur par défaut, appelé à l&#039;initialisation.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_requeter" name="method_requeter" class="anchor"></a>
<article class="method">
<h3 class="public ">requeter()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">requeter( <span class="argument">$requete</span>) : mixed</pre>
<p><em>Execute une requête et retourne le résultat tel que renvoyé par l&#039;abstraction courante.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$requete</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
mixed
&mdash; <p>un objet contenant le résultat de la requête</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_recuperer" name="method_recuperer" class="anchor"></a>
<article class="method">
<h3 class="public ">recuperer()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">recuperer( <span class="argument">$requete</span>, <span class="argument">$mode</span>) : mixed</pre>
<p><em>Execute une requête et retourne le premier résultat sous forme de tableau (par défaut) ou d&#039;objet.</em></p>
<p>Les noms des champs de la base de données correspondent aux noms des clés du tableau ou aux noms des attributs de l'objet.</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$requete</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$mode</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
mixed
&mdash; <p>un objet ou un tableau contenant le résultat de la requête</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_recupererTous" name="method_recupererTous" class="anchor"></a>
<article class="method">
<h3 class="public ">recupererTous()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">recupererTous( <span class="argument">$requete</span>, <span class="argument">$mode</span>) : array</pre>
<p><em>Execute une requête et retourne un tableau de résultats. Un résultat peut être présentés sous forme
de tableau (par défaut) ou d&#039;objet.</em></p>
<p>Les noms des champs de la base de données correspondent aux noms des clés du tableau résultat ou
aux noms des attributs de l'objet résultat.</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$requete</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$mode</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
array
&mdash; <p>un tableau contenant les résultats sous forme d'objets ou de tableau (par défaut).</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_proteger" name="method_proteger" class="anchor"></a>
<article class="method">
<h3 class="public ">proteger()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">proteger( <span class="argument">$donnees</span>) : mixed</pre>
<p><em>Protège une chaine de caractères ou le contenu d&#039;un tablea avant l&#039;insertion dans la base de données
(ajout de quotes ou guillemets).</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$donnees</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
mixed
&mdash; <p>la chaine ou le tableau à protégé</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_protegerTableau" name="method_protegerTableau" class="anchor"></a>
<article class="method">
<h3 class="public deprecated">protegerTableau()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">protegerTableau(array <span class="argument">$tableau</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$tableau</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<aside class="alert alert-block alert-error">
<h4>Deprecated</h4>
changement de nom. Deviendra &quot;private&quot; dans la version 0.5. Utiliser à la place : @see proteger
</aside>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_recupererIdDernierAjout" name="method_recupererIdDernierAjout" class="anchor"></a>
<article class="method">
<h3 class="public ">recupererIdDernierAjout()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">recupererIdDernierAjout( <span class="argument">$parametres</span>) : mixed</pre>
<p><em>Retourne l&#039;identifiant de la dernière ligne insérée, ou la dernière valeur d&#039;une séquence d&#039;objets, dépendamment, dans
le cas de PDO, du driver utilisé. Les méthodes utilisées pour retourner l&#039;identifiant peuvent avoir des comportements
différent. Consulter la documentation PHP correspondant à l&#039;abstraction choisie avant de l&#039;utiliser :</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$parametres</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
mixed
&mdash; <p>le dernier identifiant de clé primaire ajouté dans la base de données (string ou int).</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
<dt>See also</dt>
<dd><a href="(http://fr.php.net/manual/fr/pdo.lastinsertid.php,"><span class="namespace-wrapper">PDO::lastInsertId([ string $name = NULL ]))</span></a></dd>
<dd><a href="(http://php.net/manual/en/mysqli.insert-id.php,"><span class="namespace-wrapper">mysqli-&gt;insert_id())</span></a></dd>
<dd><a href="(http://fr.php.net/manual/fr/function.mysql-insert-id.php,"><span class="namespace-wrapper">mysql_insert_id())</span></a></dd>
<dd><a href="(http://fr.php.net/manual/fr/sqlite3.lastinsertrowid.php,"><span class="namespace-wrapper">SQLite3::lastInsertRowID())</span></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method___destruct" name="method___destruct" class="anchor"></a>
<article class="method">
<h3 class="public ">__destruct()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">__destruct()</pre>
<p><em>Destructeur de classe, se contente de fermer explicitement la connexion à la base de donnée.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_initialiserProtocole" name="method_initialiserProtocole" class="anchor"></a>
<article class="method">
<h3 class="protected ">initialiserProtocole()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">initialiserProtocole()</pre>
<p><em>Initialise les constantes de classe à leur bonne valeur et déclenche une erreur si le protocole n&#039;est pas bien défini.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_connecter" name="method_connecter" class="anchor"></a>
<article class="method">
<h3 class="protected ">connecter()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">connecter()</pre>
<p><em>Connection à la base de données en utilisant les informations fournies par
le fichier de configuration.</em></p>
<p>Cette méthode est private et final car elle n'a pas vocation a être appelée par l'utilisateur.
TODO : il est peut être nécessaire pour MYSQL, MYSQLi et SQLITE3 afin d'éviter les boucles infinis
d'erreur quand la bdd n'est pas configuré d'utiliser : $this->connexion->query (comme pour PDO)</p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_requete" name="method_requete" class="anchor"></a>
<article class="method">
<h3 class="protected deprecated">requete()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">requete( <span class="argument">$requete</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$requete</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">final</span>
<aside class="alert alert-block alert-error">
<h4>Deprecated</h4>
changement de nom. Disparaîtra dans la version 0.4. Utiliser à la place : @see requeter
</aside>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_requeteUn" name="method_requeteUn" class="anchor"></a>
<article class="method">
<h3 class="protected deprecated">requeteUn()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">requeteUn( <span class="argument">$requete</span>, <span class="argument">$mode</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$requete</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$mode</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">final</span>
<aside class="alert alert-block alert-error">
<h4>Deprecated</h4>
changement de nom. Disparaîtra dans la version 0.4. Utiliser à la place : @see recuperer
</aside>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_requeteTous" name="method_requeteTous" class="anchor"></a>
<article class="method">
<h3 class="protected deprecated">requeteTous()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">requeteTous( <span class="argument">$requete</span>, <span class="argument">$mode</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$requete</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$mode</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">final</span>
<aside class="alert alert-block alert-error">
<h4>Deprecated</h4>
changement de nom. Disparaîtra dans la version 0.4. Utiliser à la place : @see recupererTous
</aside>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_protegerChaine" name="method_protegerChaine" class="anchor"></a>
<article class="method">
<h3 class="private ">protegerChaine()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">protegerChaine( <span class="argument">$chaine</span>) : string</pre>
<p><em>Protège une chaine de caractères avant l&#039;insertion dans la base de données (ajout de quotes ou guillemets).</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$chaine</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>la chaine protégée</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label">Bdd.php</h3>
</div>
<div class="modal-body">
<pre data-src="../files/Bdd.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/classes/Controleur.html
New file
0,0 → 1,863
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-154190780"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-154190780" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content class">
<nav>
<a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
 
<h1><small>\</small>Controleur</h1>
<p><em>Classe Controleur, coeur d&#039;une application, c&#039;est normalement la seule classe d&#039;une application
qui devrait être appelée de l&#039;extérieur.</em></p>
<p>Elle est abstraite donc doit obligatoirement être étendue.</p>
 
<section id="summary">
<h2>Summary</h2>
<section class="row-fluid heading">
<section class="span4">
<a href="#methods">Methods</a>
</section>
<section class="span4">
<a href="#properties">Properties</a>
</section>
<section class="span4">
<a href="#constants">Constants</a>
</section>
</section>
<section class="row-fluid public">
<section class="span4">
<a href="../classes/Controleur.html#method___construct" class="">__construct()</a><br />
<a href="../classes/Controleur.html#method_chargerModele" class="">chargerModele()</a><br />
</section>
<section class="span4">
<em>No public properties found</em>
</section>
<section class="span4">
<em>No constants found</em>
</section>
</section>
<section class="row-fluid protected">
<section class="span4">
<a href="../classes/Controleur.html#method_getCheminSquelette" class="">getCheminSquelette()</a><br />
<a href="../classes/Controleur.html#method_setCheminSquelette" class="">setCheminSquelette()</a><br />
<a href="../classes/Controleur.html#method_getModele" class="">getModele()</a><br />
<a href="../classes/Controleur.html#method_getVue" class="">getVue()</a><br />
<a href="../classes/Controleur.html#method_preTraiterDonnees" class="">preTraiterDonnees()</a><br />
</section>
<section class="span4">
<a href="../classes/Controleur.html#property_parametres_obligatoires" class="">$parametres_obligatoires</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
<section class="row-fluid private">
<section class="span4">
<em>No private methods found</em>
</section>
<section class="span4">
<a href="../classes/Controleur.html#property_encodage" class="">$encodage</a><br />
<a href="../classes/Controleur.html#property_base_chemin_modele" class="">$base_chemin_modele</a><br />
<a href="../classes/Controleur.html#property_base_chemin_squelette" class="">$base_chemin_squelette</a><br />
<a href="../classes/Controleur.html#property_base_chemin_controleur" class="">$base_chemin_controleur</a><br />
<a href="../classes/Controleur.html#property_base_url_applicaton" class="">$base_url_applicaton</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
</section>
</div>
<aside class="span4 detailsbar">
<span class="label label-info">abstract</span>
<dl>
<dt>File</dt>
<dd><a href="../files/Controleur.php.html"><div class="path-wrapper">Controleur.php</div></a></dd>
<dt>Package</dt>
<dd><div class="namespace-wrapper">\Framework</div></dd>
<dt>Class hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\Controleur</div>
</dd>
 
<dt>See also</dt>
<dd><a href="/doc/framework/"><div class="namespace-wrapper">/doc/framework/</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
category
</th>
<td>
<p>php 5.2</p>
</td>
</tr>
<tr>
<th>
author
</th>
<td>
<p>Aurélien PERONNET <a href="mailto:aurelien@tela-botanica.org">aurelien@tela-botanica.org</a></p>
<p>Jean-Pascal MILCENT <a href="mailto:jpm@tela-botanica.org">jpm@tela-botanica.org</a></p>
</td>
</tr>
<tr>
<th>
copyright
</th>
<td>
<p>Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)</p>
</td>
</tr>
<tr>
<th>
license
</th>
<td>
<p><a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt</a> Licence CECILL</p>
<p><a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> Licence GNU-GPL</p>
</td>
</tr>
<tr>
<th>
version
</th>
<td>
<p>$Id: Controleur.php 415 2012-04-04 09:05:55Z jpm $</p>
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="properties" name="properties"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Properties</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_parametres_obligatoires" name="property_parametres_obligatoires" class="anchor"></a>
<article class="property">
<h3 class="protected ">$parametres_obligatoires</h3>
<pre class="signature">$parametres_obligatoires</pre>
<p><em>Tableau des noms des paramètres à définir dans le fichier de config car obligatoirement nécessaire à cette classe.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_encodage" name="property_encodage" class="anchor"></a>
<article class="property">
<h3 class="private ">$encodage</h3>
<pre class="signature">$encodage</pre>
<p><em>Variable statique indiquant que les tableaux _GET et _POST ont déjà été encodé au format de l&#039;appli.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_base_chemin_modele" name="property_base_chemin_modele" class="anchor"></a>
<article class="property">
<h3 class="private ">$base_chemin_modele</h3>
<pre class="signature">$base_chemin_modele</pre>
<p><em>Chemin de base vers les classes métiers de la partie Modèle de l&#039;application.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_base_chemin_squelette" name="property_base_chemin_squelette" class="anchor"></a>
<article class="property">
<h3 class="private ">$base_chemin_squelette</h3>
<pre class="signature">$base_chemin_squelette</pre>
<p><em>Chemin de base vers les fichiers squelette de la partie Vue de l&#039;application.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_base_chemin_controleur" name="property_base_chemin_controleur" class="anchor"></a>
<article class="property">
<h3 class="private ">$base_chemin_controleur</h3>
<pre class="signature">$base_chemin_controleur</pre>
<p><em>Chemin de base vers les classes controleurs de la partie Controleur de l&#039;application.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_base_url_applicaton" name="property_base_url_applicaton" class="anchor"></a>
<article class="property">
<h3 class="private ">$base_url_applicaton</h3>
<pre class="signature">$base_url_applicaton</pre>
<p><em>Objet URL contant l&#039;url de la base de l&#039;application.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="methods" name="methods"></a>
<div class="row-fluid">
<div class="span8 content class"><h2>Methods</h2></div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method___construct" name="method___construct" class="anchor"></a>
<article class="method">
<h3 class="public ">__construct()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">__construct()</pre>
<p><em>Constructeur par défaut</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_chargerModele" name="method_chargerModele" class="anchor"></a>
<article class="method">
<h3 class="public ">chargerModele()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">chargerModele(string <span class="argument">$nom_modele</span>) : boolean</pre>
<p><em>Charge un modele donné et le rend disponible sous la forme $this-&gt;nom_modele</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$nom_modele</td>
<td><p>le nom du modèle à  charger</p></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>false si le chargement a échoué, sinon true.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getCheminSquelette" name="method_getCheminSquelette" class="anchor"></a>
<article class="method">
<h3 class="protected ">getCheminSquelette()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getCheminSquelette() : String</pre>
<p><em>Permet de récupérer le chemin vers les squelettes.</em></p>
 
<h4>Returns</h4>
String
&mdash; <p>$chemin chemin vers les squelettes</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_setCheminSquelette" name="method_setCheminSquelette" class="anchor"></a>
<article class="method">
<h3 class="protected ">setCheminSquelette()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">setCheminSquelette(String <span class="argument">$chemin</span>)</pre>
<p><em>Permet de définir dynamiquement le chemin vers les squelettes.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>String</td>
<td>$chemin</td>
<td><p>chemin vers les squelettes</p></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getModele" name="method_getModele" class="anchor"></a>
<article class="method">
<h3 class="protected ">getModele()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getModele(string <span class="argument">$nom_modele</span>, String <span class="argument">$ext</span>) : mixed</pre>
<p><em>Retourne un modele donné</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$nom_modele</td>
<td><p>le nom du fichier modèle à charger sans son extension</p></td>
</tr>
<tr>
<td>String</td>
<td>$ext</td>
<td><p>l'extension du fichier du modèle (par défaut : ".php")</p></td>
</tr>
</table>
<h4>Returns</h4>
mixed
&mdash; <p>false si le chargement a échoué, sinon l'objet du modèle demandé.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getVue" name="method_getVue" class="anchor"></a>
<article class="method">
<h3 class="protected ">getVue()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getVue(String <span class="argument">$nom_squelette</span>, Array <span class="argument">$donnees</span>) : boolean</pre>
<p><em>Fonction prenant en paramètre le nom d&#039;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.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>String</td>
<td>$nom_squelette</td>
<td><p>le nom du squelette sans son extension si elle vaut ".tpl.html"</p></td>
</tr>
<tr>
<td>Array</td>
<td>$donnees</td>
<td><p>un tableau associatif contenant les variables a injecter dans la vue</p></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>false si la vue n'existe pas, sinon la chaine résultat.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
since
</th>
<td>
0.4 <p>suppression du paramètre 'ext' => le mettre directement dans le nom du squelette</p>
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_preTraiterDonnees" name="method_preTraiterDonnees" class="anchor"></a>
<article class="method">
<h3 class="protected ">preTraiterDonnees()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">preTraiterDonnees(Array <span class="argument">$donnees</span>) : Array</pre>
<p><em>Fonction prenant en paramètre un tableau de données et effectuant un traitement dessus.</em></p>
<p>Cette fonction est à surcharger dans les classes filles pour automatiser un traitement
avant chaque chargement de vue.</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>Array</td>
<td>$donnees</td>
<td><p>Le tableau de données à traiter</p></td>
</tr>
</table>
<h4>Returns</h4>
Array
&mdash; <p>$donnees Le tableau de données traité</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label">Controleur.php</h3>
</div>
<div class="modal-body">
<pre data-src="../files/Controleur.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/classes/CacheFichier.html
New file
0,0 → 1,2148
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-911047271"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-911047271" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content class">
<nav>
<a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
 
<h1><small>\</small>CacheFichier</h1>
<p><em></em></p>
 
<section id="summary">
<h2>Summary</h2>
<section class="row-fluid heading">
<section class="span4">
<a href="#methods">Methods</a>
</section>
<section class="span4">
<a href="#properties">Properties</a>
</section>
<section class="span4">
<a href="#constants">Constants</a>
</section>
</section>
<section class="row-fluid public">
<section class="span4">
<a href="../classes/CacheFichier.html#method___construct" class="">__construct()</a><br />
<a href="../classes/CacheFichier.html#method_setEmplacement" class="">setEmplacement()</a><br />
<a href="../classes/CacheFichier.html#method_charger" class="">charger()</a><br />
<a href="../classes/CacheFichier.html#method_tester" class="">tester()</a><br />
<a href="../classes/CacheFichier.html#method_sauver" class="">sauver()</a><br />
<a href="../classes/CacheFichier.html#method_supprimer" class="">supprimer()</a><br />
<a href="../classes/CacheFichier.html#method_nettoyer" class="">nettoyer()</a><br />
<a href="../classes/CacheFichier.html#method_getIds" class="">getIds()</a><br />
<a href="../classes/CacheFichier.html#method_getTags" class="">getTags()</a><br />
<a href="../classes/CacheFichier.html#method_getIdsAvecLesTags" class="">getIdsAvecLesTags()</a><br />
<a href="../classes/CacheFichier.html#method_getIdsSansLesTags" class="">getIdsSansLesTags()</a><br />
<a href="../classes/CacheFichier.html#method_getIdsAvecUnTag" class="">getIdsAvecUnTag()</a><br />
<a href="../classes/CacheFichier.html#method_getPourcentageRemplissage" class="">getPourcentageRemplissage()</a><br />
<a href="../classes/CacheFichier.html#method_getMetadonnees" class="">getMetadonnees()</a><br />
<a href="../classes/CacheFichier.html#method_ajouterSupplementDureeDeVie" class="">ajouterSupplementDureeDeVie()</a><br />
</section>
<section class="span4">
<em>No public properties found</em>
</section>
<section class="span4">
<em>No constants found</em>
</section>
</section>
<section class="row-fluid protected">
<section class="span4">
<a href="../classes/CacheFichier.html#method_getMetadonneesFichier" class="">getMetadonneesFichier()</a><br />
<a href="../classes/CacheFichier.html#method_setMetadonnees" class="">setMetadonnees()</a><br />
<a href="../classes/CacheFichier.html#method_supprimerMetadonnees" class="">supprimerMetadonnees()</a><br />
<a href="../classes/CacheFichier.html#method_nettoyerMetadonnees" class="">nettoyerMetadonnees()</a><br />
<a href="../classes/CacheFichier.html#method_chargerMetadonnees" class="">chargerMetadonnees()</a><br />
<a href="../classes/CacheFichier.html#method_sauverMetadonnees" class="">sauverMetadonnees()</a><br />
<a href="../classes/CacheFichier.html#method_getNomFichierMeta" class="">getNomFichierMeta()</a><br />
<a href="../classes/CacheFichier.html#method_etreFichierMeta" class="">etreFichierMeta()</a><br />
<a href="../classes/CacheFichier.html#method_supprimerFichier" class="">supprimerFichier()</a><br />
<a href="../classes/CacheFichier.html#method_nettoyerFichiers" class="">nettoyerFichiers()</a><br />
<a href="../classes/CacheFichier.html#method_analyserCache" class="">analyserCache()</a><br />
<a href="../classes/CacheFichier.html#method_genererCleSecu" class="">genererCleSecu()</a><br />
<a href="../classes/CacheFichier.html#method_transformaterIdEnNomFichier" class="">transformaterIdEnNomFichier()</a><br />
<a href="../classes/CacheFichier.html#method_getFichierNom" class="">getFichierNom()</a><br />
<a href="../classes/CacheFichier.html#method_getChemin" class="">getChemin()</a><br />
<a href="../classes/CacheFichier.html#method_lancerMkdirEtChmodRecursif" class="">lancerMkdirEtChmodRecursif()</a><br />
<a href="../classes/CacheFichier.html#method_testerExistenceCache" class="">testerExistenceCache()</a><br />
<a href="../classes/CacheFichier.html#method_getContenuFichier" class="">getContenuFichier()</a><br />
<a href="../classes/CacheFichier.html#method_setContenuFichier" class="">setContenuFichier()</a><br />
<a href="../classes/CacheFichier.html#method_transformerNomFichierEnId" class="">transformerNomFichierEnId()</a><br />
</section>
<section class="span4">
<a href="../classes/CacheFichier.html#property_options" class="">$options</a><br />
<a href="../classes/CacheFichier.html#property_metadonnees" class="">$metadonnees</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
<section class="row-fluid private">
<section class="span4">
<a href="../classes/CacheFichier.html#method_initialiserOptionsParConfig" class="">initialiserOptionsParConfig()</a><br />
<a href="../classes/CacheFichier.html#method_setOptions" class="">setOptions()</a><br />
</section>
<section class="span4">
<a href="../classes/CacheFichier.html#property_Cache" class="">$Cache</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
</section>
</div>
<aside class="span4 detailsbar">
<dl>
<dt>File</dt>
<dd><a href="../files/CacheFichier.php.html"><div class="path-wrapper">CacheFichier.php</div></a></dd>
<dt>Class hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\CacheFichier</div>
</dd>
 
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="properties" name="properties"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Properties</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_options" name="property_options" class="anchor"></a>
<article class="property">
<h3 class="protected ">$options</h3>
<pre class="signature">$options : array</pre>
<p><em>Options disponibles</em></p>
<p>====> (string) stockage_chemin :
Chemin vers le dossier devant contenir l'arborescence du cache.</p>
<p>=====> (boolean) fichier_verrou :</p>
<ul>
<li>Active / Désactive le verrouillage des fichiers</li>
<li>Peut éviter la corruption du cache dans de mauvaises circonstances, mais cela ne fonctionne pas sur des serveur
multithread et sur les systèmes de fichiers NFS par exemple.</li>
</ul>
<p>=====> (boolean) controle_lecture :</p>
<ul>
<li>Activer / désactiver le contrôle de lecture</li>
<li>S'il est activé, une clé de contrôle est ajoutée dans le fichier de cache et cette clé est comparée avec celle calculée
après la lecture.</li>
</ul>
<p>=====> (string) controle_lecture_type :
Type de contrôle de lecture (seulement si le contrôle de lecture est activé).
Les valeurs disponibles sont:</p>
<ul>
<li>«md5» pour un contrôle md5 (le meilleur mais le plus lent)</li>
<li>«crc32» pour un contrôle de hachage crc32 (un peu moins sécurisé, mais plus rapide, un meilleur choix)</li>
<li>«adler32» pour un contrôle de hachage adler32 (excellent choix aussi, plus rapide que crc32)</li>
<li>«strlen» pour un test de longueur uniquement (le plus rapide)</li>
</ul>
<p>=====> (int) dossier_niveau :</p>
<ul>
<li>Permet de réglez le nombre de niveau de sous-dossier que contiendra l'arborescence des dossiers du cache.
0 signifie "pas de sous-dossier pour le cache",
1 signifie "un niveau de sous-dossier",
2 signifie "deux niveaux" ...
Cette option peut accélérer le cache seulement lorsque vous avez plusieurs centaines de fichiers de cache.
Seuls des tests spécifiques peuvent vous aider à choisir la meilleure valeur possible pour vous.
1 ou 2 peut être est un bon début.</li>
</ul>
<p>=====> (int) dossier_umask :</p>
<ul>
<li>Umask pour les sous-dossiers de l'arborescence du cache.</li>
</ul>
<p>=====> (string) fichier_prefixe :</p>
<ul>
<li>préfixe pour les fichiers du cache</li>
<li>ATTENTION : faite vraiment attention avec cette option, car une valeur trop générique dans le dossier cache du système
(comme /tmp) peut provoquer des catastrophes lors du nettoyage du cache.</li>
</ul>
<p>=====> (int) fichier_umask :</p>
<ul>
<li>Umask pour les fichiers de cache</li>
</ul>
<p>=====> (int) metadonnees_max_taille :</p>
<ul>
<li>taille maximum pour le tableau de métadonnées du cache (ne changer pas cette valeur sauf si vous savez ce que vous faite)</li>
</ul>
 
<h4>Type</h4>
array
&mdash; options disponibles </article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_metadonnees" name="property_metadonnees" class="anchor"></a>
<article class="property">
<h3 class="protected ">$metadonnees</h3>
<pre class="signature">$metadonnees : array</pre>
<p><em>Array of metadatas (each item is an associative array)</em></p>
 
<h4>Type</h4>
array
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_Cache" name="property_Cache" class="anchor"></a>
<article class="property">
<h3 class="private ">$Cache</h3>
<pre class="signature">$Cache</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="methods" name="methods"></a>
<div class="row-fluid">
<div class="span8 content class"><h2>Methods</h2></div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method___construct" name="method___construct" class="anchor"></a>
<article class="method">
<h3 class="public ">__construct()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">__construct(array <span class="argument">$options</span>, \Cache <span class="argument">$cache</span>) : void</pre>
<p><em>Constructor</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$options</td>
<td><p>associative array of options</p></td>
</tr>
<tr>
<td><a href="../classes/Cache.html">\Cache</a></td>
<td>$cache</td>
<td></td>
</tr>
</table>
<h4>Throws</h4>
<dl>
<dt>\Zend_Cache_Exception</dt>
<dd></dd>
</dl>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_setEmplacement" name="method_setEmplacement" class="anchor"></a>
<article class="method">
<h3 class="public ">setEmplacement()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">setEmplacement( <span class="argument">$emplacement</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$emplacement</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_charger" name="method_charger" class="anchor"></a>
<article class="method">
<h3 class="public ">charger()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">charger(string <span class="argument">$id</span>, <span class="argument">$ne_pas_tester_validiter_du_cache</span>) : string|false</pre>
<p><em>Test if a cache is available for the given id and (if yes) return it (false else)</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>cache id</p></td>
</tr>
<tr>
<td></td>
<td>$ne_pas_tester_validiter_du_cache</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
string|false
&mdash; <p>cached datas</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_tester" name="method_tester" class="anchor"></a>
<article class="method">
<h3 class="public ">tester()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">tester(string <span class="argument">$id</span>) : mixed</pre>
<p><em>Teste si un enregistrement en cache est disponible ou pas (pour l&#039;id passé en paramètre).</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>identifiant de cache.</p></td>
</tr>
</table>
<h4>Returns</h4>
mixed
&mdash; <p>false (le cache n'est pas disponible) ou timestamp (int) "de dernière modification" de l'enregistrement en cache</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_sauver" name="method_sauver" class="anchor"></a>
<article class="method">
<h3 class="public ">sauver()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">sauver( <span class="argument">$donnees</span>, string <span class="argument">$id</span>, array <span class="argument">$tags</span>, <span class="argument">$duree_vie_specifique</span>) : boolean</pre>
<p><em>Save some string datas into a cache record</em></p>
<p>Note : $data is always "string" (serialization is done by the
core not by the backend)</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$donnees</td>
<td></td>
</tr>
<tr>
<td>string</td>
<td>$id</td>
<td><p>Cache id</p></td>
</tr>
<tr>
<td>array</td>
<td>$tags</td>
<td><p>Array of strings, the cache record will be tagged by each string entry</p></td>
</tr>
<tr>
<td></td>
<td>$duree_vie_specifique</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>true if no problem</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_supprimer" name="method_supprimer" class="anchor"></a>
<article class="method">
<h3 class="public ">supprimer()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">supprimer(string <span class="argument">$id</span>) : boolean</pre>
<p><em>Remove a cache record</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>cache id</p></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>true if no problem</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_nettoyer" name="method_nettoyer" class="anchor"></a>
<article class="method">
<h3 class="public ">nettoyer()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">nettoyer(string <span class="argument">$mode</span>, <span class="argument">$tags</span>) : boolean</pre>
<p><em>Clean some cache records</em></p>
<p>Available modes are :
'all' (default) => remove all cache entries ($tags is not used)
'old' => remove too old cache entries ($tags is not used)
'matchingTag' => remove cache entries matching all given tags</p>
<pre><code> ($tags can be an array of strings or a single string)</code></pre>
<p>'notMatchingTag' => remove cache entries not matching one of the given tags</p>
<pre><code> ($tags can be an array of strings or a single string)</code></pre>
<p>'matchingAnyTag' => remove cache entries matching any given tags</p>
<pre><code> ($tags can be an array of strings or a single string)</code></pre>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$mode</td>
<td><p>clean mode</p></td>
</tr>
<tr>
<td></td>
<td>$tags</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>true if no problem</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getIds" name="method_getIds" class="anchor"></a>
<article class="method">
<h3 class="public ">getIds()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getIds() : array</pre>
<p><em>Return an array of stored cache ids</em></p>
 
<h4>Returns</h4>
array
&mdash; <p>array of stored cache ids (string)</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getTags" name="method_getTags" class="anchor"></a>
<article class="method">
<h3 class="public ">getTags()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getTags() : array</pre>
<p><em>Return an array of stored tags</em></p>
 
<h4>Returns</h4>
array
&mdash; <p>array of stored tags (string)</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getIdsAvecLesTags" name="method_getIdsAvecLesTags" class="anchor"></a>
<article class="method">
<h3 class="public ">getIdsAvecLesTags()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getIdsAvecLesTags(array <span class="argument">$tags</span>) : array</pre>
<p><em>Return an array of stored cache ids which match given tags</em></p>
<p>In case of multiple tags, a logical AND is made between tags</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$tags</td>
<td><p>array of tags</p></td>
</tr>
</table>
<h4>Returns</h4>
array
&mdash; <p>array of matching cache ids (string)</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getIdsSansLesTags" name="method_getIdsSansLesTags" class="anchor"></a>
<article class="method">
<h3 class="public ">getIdsSansLesTags()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getIdsSansLesTags(array <span class="argument">$tags</span>) : array</pre>
<p><em>Return an array of stored cache ids which don&#039;t match given tags</em></p>
<p>In case of multiple tags, a logical OR is made between tags</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$tags</td>
<td><p>array of tags</p></td>
</tr>
</table>
<h4>Returns</h4>
array
&mdash; <p>array of not matching cache ids (string)</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getIdsAvecUnTag" name="method_getIdsAvecUnTag" class="anchor"></a>
<article class="method">
<h3 class="public ">getIdsAvecUnTag()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getIdsAvecUnTag(array <span class="argument">$tags</span>) : array</pre>
<p><em>Return an array of stored cache ids which match any given tags</em></p>
<p>In case of multiple tags, a logical AND is made between tags</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$tags</td>
<td><p>array of tags</p></td>
</tr>
</table>
<h4>Returns</h4>
array
&mdash; <p>array of any matching cache ids (string)</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getPourcentageRemplissage" name="method_getPourcentageRemplissage" class="anchor"></a>
<article class="method">
<h3 class="public ">getPourcentageRemplissage()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getPourcentageRemplissage() : int</pre>
<p><em>Return the filling percentage of the backend storage</em></p>
 
<h4>Throws</h4>
<dl>
<dt>\Zend_Cache_Exception</dt>
<dd></dd>
</dl>
<h4>Returns</h4>
int
&mdash; <p>integer between 0 and 100</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getMetadonnees" name="method_getMetadonnees" class="anchor"></a>
<article class="method">
<h3 class="public ">getMetadonnees()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getMetadonnees(string <span class="argument">$id</span>) : array</pre>
<p><em>Return an array of metadatas for the given cache id</em></p>
<p>The array must include these keys :</p>
<ul>
<li>expire : the expire timestamp</li>
<li>tags : a string array of tags</li>
<li>mtime : timestamp of last modification time</li>
</ul>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>cache id</p></td>
</tr>
</table>
<h4>Returns</h4>
array
&mdash; <p>array of metadatas (false if the cache id is not found)</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_ajouterSupplementDureeDeVie" name="method_ajouterSupplementDureeDeVie" class="anchor"></a>
<article class="method">
<h3 class="public ">ajouterSupplementDureeDeVie()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">ajouterSupplementDureeDeVie(string <span class="argument">$id</span>, <span class="argument">$supplement_duree_de_vie</span>) : boolean</pre>
<p><em>Give (if possible) an extra lifetime to the given cache id</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>cache id</p></td>
</tr>
<tr>
<td></td>
<td>$supplement_duree_de_vie</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>true if ok</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getMetadonneesFichier" name="method_getMetadonneesFichier" class="anchor"></a>
<article class="method">
<h3 class="protected ">getMetadonneesFichier()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getMetadonneesFichier(string <span class="argument">$id</span>) : array|false</pre>
<p><em>Get a metadatas record</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>Cache id</p></td>
</tr>
</table>
<h4>Returns</h4>
array|false
&mdash; <p>Associative array of metadatas</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_setMetadonnees" name="method_setMetadonnees" class="anchor"></a>
<article class="method">
<h3 class="protected ">setMetadonnees()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">setMetadonnees(string <span class="argument">$id</span>, <span class="argument">$metadonnees</span>, <span class="argument">$sauvegarde</span>) : boolean</pre>
<p><em>Set a metadatas record</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>Cache id</p></td>
</tr>
<tr>
<td></td>
<td>$metadonnees</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$sauvegarde</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>True if no problem</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_supprimerMetadonnees" name="method_supprimerMetadonnees" class="anchor"></a>
<article class="method">
<h3 class="protected ">supprimerMetadonnees()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">supprimerMetadonnees(string <span class="argument">$id</span>) : boolean</pre>
<p><em>Drop a metadata record</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>Cache id</p></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>True if no problem</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_nettoyerMetadonnees" name="method_nettoyerMetadonnees" class="anchor"></a>
<article class="method">
<h3 class="protected ">nettoyerMetadonnees()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">nettoyerMetadonnees() : void</pre>
<p><em>Clear the metadatas array</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_chargerMetadonnees" name="method_chargerMetadonnees" class="anchor"></a>
<article class="method">
<h3 class="protected ">chargerMetadonnees()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">chargerMetadonnees(string <span class="argument">$id</span>) : array|false</pre>
<p><em>Load metadatas from disk</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>Cache id</p></td>
</tr>
</table>
<h4>Returns</h4>
array|false
&mdash; <p>Metadatas associative array</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_sauverMetadonnees" name="method_sauverMetadonnees" class="anchor"></a>
<article class="method">
<h3 class="protected ">sauverMetadonnees()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">sauverMetadonnees(string <span class="argument">$id</span>, <span class="argument">$metadonnees</span>) : boolean</pre>
<p><em>Save metadatas to disk</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>Cache id</p></td>
</tr>
<tr>
<td></td>
<td>$metadonnees</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>True if no problem</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getNomFichierMeta" name="method_getNomFichierMeta" class="anchor"></a>
<article class="method">
<h3 class="protected ">getNomFichierMeta()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getNomFichierMeta(string <span class="argument">$id</span>) : string</pre>
<p><em>Make and return a file name (with path) for metadatas</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>Cache id</p></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>Metadatas file name (with path)</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_etreFichierMeta" name="method_etreFichierMeta" class="anchor"></a>
<article class="method">
<h3 class="protected ">etreFichierMeta()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">etreFichierMeta( <span class="argument">$fichier_nom</span>) : boolean</pre>
<p><em>Check if the given filename is a metadatas one</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$fichier_nom</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>True if it's a metadatas one</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_supprimerFichier" name="method_supprimerFichier" class="anchor"></a>
<article class="method">
<h3 class="protected ">supprimerFichier()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">supprimerFichier( <span class="argument">$fichier</span>) : boolean</pre>
<p><em>Remove a file</em></p>
<p>If we can't remove the file (because of locks or any problem), we will touch
the file to invalidate it</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$fichier</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>True if ok</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_nettoyerFichiers" name="method_nettoyerFichiers" class="anchor"></a>
<article class="method">
<h3 class="protected ">nettoyerFichiers()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">nettoyerFichiers( <span class="argument">$dossier</span>, string <span class="argument">$mode</span>, array <span class="argument">$tags</span>) : boolean</pre>
<p><em>Clean some cache records (protected method used for recursive stuff)</em></p>
<p>Available modes are :
Zend_Cache::CLEANING_MODE_ALL (default) => remove all cache entries ($tags is not used)
Zend_Cache::CLEANING_MODE_OLD => remove too old cache entries ($tags is not used)
Zend_Cache::CLEANING_MODE_MATCHING_TAG => remove cache entries matching all given tags</p>
<pre><code> ($tags can be an array of strings or a single string)</code></pre>
<p>Zend_Cache::CLEANING_MODE_NOT_MATCHING_TAG => remove cache entries not {matching one of the given tags}</p>
<pre><code> ($tags can be an array of strings or a single string)</code></pre>
<p>Zend_Cache::CLEANING_MODE_MATCHING_ANY_TAG => remove cache entries matching any given tags</p>
<pre><code> ($tags can be an array of strings or a single string)</code></pre>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$dossier</td>
<td></td>
</tr>
<tr>
<td>string</td>
<td>$mode</td>
<td><p>Clean mode</p></td>
</tr>
<tr>
<td>array</td>
<td>$tags</td>
<td><p>Array of tags</p></td>
</tr>
</table>
<h4>Throws</h4>
<dl>
<dt>\Zend_Cache_Exception</dt>
<dd></dd>
</dl>
<h4>Returns</h4>
boolean
&mdash; <p>True if no problem</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_analyserCache" name="method_analyserCache" class="anchor"></a>
<article class="method">
<h3 class="protected ">analyserCache()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">analyserCache( <span class="argument">$dossier</span>, <span class="argument">$mode</span>, <span class="argument">$tags</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$dossier</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$mode</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$tags</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_genererCleSecu" name="method_genererCleSecu" class="anchor"></a>
<article class="method">
<h3 class="protected ">genererCleSecu()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">genererCleSecu( <span class="argument">$donnees</span>, <span class="argument">$type_de_controle</span>) : string</pre>
<p><em>Make a control key with the string containing datas</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$donnees</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$type_de_controle</td>
<td></td>
</tr>
</table>
<h4>Throws</h4>
<dl>
<dt>\Zend_Cache_Exception</dt>
<dd></dd>
</dl>
<h4>Returns</h4>
string
&mdash; <p>Control key</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_transformaterIdEnNomFichier" name="method_transformaterIdEnNomFichier" class="anchor"></a>
<article class="method">
<h3 class="protected ">transformaterIdEnNomFichier()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">transformaterIdEnNomFichier(string <span class="argument">$id</span>) : string</pre>
<p><em>Transform a cache id into a file name and return it</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>Cache id</p></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>File name</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getFichierNom" name="method_getFichierNom" class="anchor"></a>
<article class="method">
<h3 class="protected ">getFichierNom()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getFichierNom(string <span class="argument">$id</span>) : string</pre>
<p><em>Make and return a file name (with path)</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>Cache id</p></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>File name (with path)</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getChemin" name="method_getChemin" class="anchor"></a>
<article class="method">
<h3 class="protected ">getChemin()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getChemin(string <span class="argument">$id</span>, boolean <span class="argument">$decoupage</span>) : string</pre>
<p><em>Return the complete directory path of a filename (including hashedDirectoryStructure)</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>Cache id</p></td>
</tr>
<tr>
<td>boolean</td>
<td>$decoupage</td>
<td><p>if true, returns array of directory parts instead of single string</p></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>Complete directory path</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_lancerMkdirEtChmodRecursif" name="method_lancerMkdirEtChmodRecursif" class="anchor"></a>
<article class="method">
<h3 class="protected ">lancerMkdirEtChmodRecursif()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">lancerMkdirEtChmodRecursif(string <span class="argument">$id</span>) : boolean</pre>
<p><em>Make the directory strucuture for the given id</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>cache id</p></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>true</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_testerExistenceCache" name="method_testerExistenceCache" class="anchor"></a>
<article class="method">
<h3 class="protected ">testerExistenceCache()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">testerExistenceCache(string <span class="argument">$id</span>, <span class="argument">$ne_pas_tester_validiter_du_cache</span>) : boolean|mixed</pre>
<p><em>Test if the given cache id is available (and still valid as a cache record)</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>Cache id</p></td>
</tr>
<tr>
<td></td>
<td>$ne_pas_tester_validiter_du_cache</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
boolean|mixed
&mdash; <p>false (a cache is not available) or "last modified" timestamp (int) of the available cache record</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getContenuFichier" name="method_getContenuFichier" class="anchor"></a>
<article class="method">
<h3 class="protected ">getContenuFichier()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getContenuFichier( <span class="argument">$fichier</span>) : string</pre>
<p><em>Return the file content of the given file</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$fichier</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>File content (or false if problem)</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_setContenuFichier" name="method_setContenuFichier" class="anchor"></a>
<article class="method">
<h3 class="protected ">setContenuFichier()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">setContenuFichier( <span class="argument">$fichier</span>, <span class="argument">$chaine</span>) : boolean</pre>
<p><em>Put the given string into the given file</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$fichier</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$chaine</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>true if no problem</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_transformerNomFichierEnId" name="method_transformerNomFichierEnId" class="anchor"></a>
<article class="method">
<h3 class="protected ">transformerNomFichierEnId()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">transformerNomFichierEnId( <span class="argument">$nom_de_fichier</span>) : string</pre>
<p><em>Transform a file name into cache id and return it</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$nom_de_fichier</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>Cache id</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_initialiserOptionsParConfig" name="method_initialiserOptionsParConfig" class="anchor"></a>
<article class="method">
<h3 class="private ">initialiserOptionsParConfig()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">initialiserOptionsParConfig()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_setOptions" name="method_setOptions" class="anchor"></a>
<article class="method">
<h3 class="private ">setOptions()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">setOptions( <span class="argument">$options</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$options</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label">CacheFichier.php</h3>
</div>
<div class="modal-body">
<pre data-src="../files/CacheFichier.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/classes/Framework.html
New file
0,0 → 1,1090
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-367728364"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-367728364" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content class">
<nav>
<a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
 
<h1><small>\</small>Framework</h1>
<p><em>Classe de base du Framework :
- fournissant des infos sur l&#039;application,
- paramétrant l&#039;environnement de l&#039;appli et du framework,
- réalisant des traitements sur les variables globales ($_GET, $_POST, $_COOKIE.</em></p>
<p>..)</p>
<p>Cette classe contient la fonction de chargement automatique de classes.
Ce fichier doit toujours rester à la racine du framework car il initialise le chemin
de l'application en se basant sur son propre emplacement.</p>
 
<section id="summary">
<h2>Summary</h2>
<section class="row-fluid heading">
<section class="span4">
<a href="#methods">Methods</a>
</section>
<section class="span4">
<a href="#properties">Properties</a>
</section>
<section class="span4">
<a href="#constants">Constants</a>
</section>
</section>
<section class="row-fluid public">
<section class="span4">
<a href="../classes/Framework.html#method_setCheminAppli" class="">setCheminAppli()</a><br />
<a href="../classes/Framework.html#method_getCheminAppli" class="">getCheminAppli()</a><br />
<a href="../classes/Framework.html#method_setInfoAppli" class="">setInfoAppli()</a><br />
<a href="../classes/Framework.html#method_getInfoAppli" class="">getInfoAppli()</a><br />
</section>
<section class="span4">
<em>No public properties found</em>
</section>
<section class="span4">
<em>No constants found</em>
</section>
</section>
<section class="row-fluid protected">
<section class="span4">
<a href="../classes/Framework.html#method_verifierEtReencoderTableauRequete" class="">verifierEtReencoderTableauRequete()</a><br />
<a href="../classes/Framework.html#method_encoderTableau" class="">encoderTableau()</a><br />
</section>
<section class="span4">
<em>No protected properties found</em>
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
<section class="row-fluid private">
<section class="span4">
<a href="../classes/Framework.html#method_initialiserEnvironnement" class="">initialiserEnvironnement()</a><br />
<a href="../classes/Framework.html#method_initialiserFramework" class="">initialiserFramework()</a><br />
<a href="../classes/Framework.html#method_definirConstantesGlobales" class="">definirConstantesGlobales()</a><br />
<a href="../classes/Framework.html#method_definirCheminAppli" class="">definirCheminAppli()</a><br />
<a href="../classes/Framework.html#method_enregistrerMethodesAutoload" class="">enregistrerMethodesAutoload()</a><br />
<a href="../classes/Framework.html#method_autoloadFw" class="">autoloadFw()</a><br />
<a href="../classes/Framework.html#method_autoloadAppliDefaut" class="">autoloadAppliDefaut()</a><br />
<a href="../classes/Framework.html#method_initialiserUrl" class="">initialiserUrl()</a><br />
<a href="../classes/Framework.html#method_verifierEtTraiterSlashTableauRequete" class="">verifierEtTraiterSlashTableauRequete()</a><br />
</section>
<section class="span4">
<a href="../classes/Framework.html#property_encodage" class="">$encodage</a><br />
<a href="../classes/Framework.html#property_info" class="">$info</a><br />
<a href="../classes/Framework.html#property_chemin" class="">$chemin</a><br />
<a href="../classes/Framework.html#property_parametres_obligatoires" class="">$parametres_obligatoires</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
</section>
</div>
<aside class="span4 detailsbar">
<dl>
<dt>File</dt>
<dd><a href="../files/Framework.php.html"><div class="path-wrapper">Framework.php</div></a></dd>
<dt>Package</dt>
<dd><div class="namespace-wrapper">\Framework</div></dd>
<dt>Class hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\Framework</div>
</dd>
 
<dt>See also</dt>
<dd><a href="/doc/framework/"><div class="namespace-wrapper">/doc/framework/</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
category
</th>
<td>
<p>PHP 5.2</p>
</td>
</tr>
<tr>
<th>
author
</th>
<td>
<p>Jean-Pascal MILCENT <a href="mailto:jpm@tela-botanica.org">jpm@tela-botanica.org</a></p>
</td>
</tr>
<tr>
<th>
copyright
</th>
<td>
<p>Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)</p>
</td>
</tr>
<tr>
<th>
license
</th>
<td>
<p><a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> Licence GNU-GPL-v3</p>
<p><a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt</a> Licence CECILL-v2</p>
</td>
</tr>
<tr>
<th>
version
</th>
<td>
<p>$Id: Framework.php 393 2011-11-10 13:36:48Z jpm $</p>
</td>
</tr>
<tr>
<th>
since
</th>
<td>
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="properties" name="properties"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Properties</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_encodage" name="property_encodage" class="anchor"></a>
<article class="property">
<h3 class="private ">$encodage</h3>
<pre class="signature">$encodage</pre>
<p><em>Variable statique indiquant que les tableaux _GET et _POST ont déjà été encodé au format de l&#039;appli.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_info" name="property_info" class="anchor"></a>
<article class="property">
<h3 class="private ">$info</h3>
<pre class="signature">$info</pre>
<p><em>Tableau d&#039;informations sur l&#039;application</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_chemin" name="property_chemin" class="anchor"></a>
<article class="property">
<h3 class="private ">$chemin</h3>
<pre class="signature">$chemin</pre>
<p><em>Chemin de base de l&#039;application</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_parametres_obligatoires" name="property_parametres_obligatoires" class="anchor"></a>
<article class="property">
<h3 class="private ">$parametres_obligatoires</h3>
<pre class="signature">$parametres_obligatoires</pre>
<p><em>Tableau des noms des paramètres à définir dans le fichier de config car obligatoirement nécessaire à cette classe.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="methods" name="methods"></a>
<div class="row-fluid">
<div class="span8 content class"><h2>Methods</h2></div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_setCheminAppli" name="method_setCheminAppli" class="anchor"></a>
<article class="method">
<h3 class="public ">setCheminAppli()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">setCheminAppli(string <span class="argument">$chemin_fichier_principal</span>)</pre>
<p><em>Permet d&#039;indiquer le chemin de base de l&#039;Application.</em></p>
<p>Cette méthode doit obligatoirement être utilisée par l'application pour que le Framework fonctionne correctement.</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$chemin_fichier_principal</td>
<td><p>chemin de base</p></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getCheminAppli" name="method_getCheminAppli" class="anchor"></a>
<article class="method">
<h3 class="public ">getCheminAppli()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getCheminAppli() : string</pre>
<p><em>accesseur pour le chemin</em></p>
 
<h4>Returns</h4>
string
&mdash; <p>le chemin</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_setInfoAppli" name="method_setInfoAppli" class="anchor"></a>
<article class="method">
<h3 class="public ">setInfoAppli()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">setInfoAppli(array <span class="argument">$info</span>) : void</pre>
<p><em>Le tableau des informations sur l&#039;application possède les clés suivantes :
- nom : nom de l&#039;application
- abr : abréviation de l&#039;application
- encodage : encodage de l&#039;application (ISO-8859-15, UTF-8.</em></p>
<p>..)</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$info</td>
<td><p>tableau fournissant des informations sur l'application</p></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getInfoAppli" name="method_getInfoAppli" class="anchor"></a>
<article class="method">
<h3 class="public ">getInfoAppli()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getInfoAppli(string <span class="argument">$cle</span>)</pre>
<p><em>Accesseur pour le tableau d&#039;infos sur l&#039;application.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$cle</td>
<td><p>la clé à laquelle on veut accéder</p></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_verifierEtReencoderTableauRequete" name="method_verifierEtReencoderTableauRequete" class="anchor"></a>
<article class="method">
<h3 class="protected ">verifierEtReencoderTableauRequete()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">verifierEtReencoderTableauRequete()</pre>
<p><em>Procédure vérifiant l&#039;encodage des tableaux $_GET et $_POST et les transcodant dans l&#039;encodage de l&#039;application</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_encoderTableau" name="method_encoderTableau" class="anchor"></a>
<article class="method">
<h3 class="protected ">encoderTableau()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">encoderTableau(mixed <span class="argument">$tableau</span>, mixed <span class="argument">$encodage_sortie</span>, mixed <span class="argument">$encodage_entree</span>) : Array</pre>
<p><em>Fonction récursive transcodant toutes les valeurs d&#039;un tableau de leur encodage d&#039;entrée vers un encodage de sortie donné</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>mixed</td>
<td>$tableau</td>
<td><p>Array Un tableau de données à encoder</p></td>
</tr>
<tr>
<td>mixed</td>
<td>$encodage_sortie</td>
<td><p>String l'encodage vers lequel on doit transcoder</p></td>
</tr>
<tr>
<td>mixed</td>
<td>$encodage_entree</td>
<td><p>String l'encodage original des chaines du tableau (optionnel)</p></td>
</tr>
</table>
<h4>Returns</h4>
Array
&mdash; <p>Le tableau encodé dans l'encodage de sortie</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<span class="label label-info">final</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_initialiserEnvironnement" name="method_initialiserEnvironnement" class="anchor"></a>
<article class="method">
<h3 class="private ">initialiserEnvironnement()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">initialiserEnvironnement()</pre>
<p><em>Initialise l&#039;environnement nécessaire au Framework : constantes globales, méthodeles autoload, séparateur d&#039;arguments
d&#039;url.</em></p>
<p>Cette méthode est appelée automatiquement suite à la définition du chemin de l'application via Application::setChemin().</p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_initialiserFramework" name="method_initialiserFramework" class="anchor"></a>
<article class="method">
<h3 class="private ">initialiserFramework()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">initialiserFramework()</pre>
<p><em>Initialise différentes classes du Framework nécessaires pour le fonctionnement de l&#039;application.</em></p>
<p>Ces classes sont ensuites controlées via les fichiers de config.ini.
Elle est appelée automatiquement suite à la définition du chemin de l'application via Application::setChemin().</p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_definirConstantesGlobales" name="method_definirConstantesGlobales" class="anchor"></a>
<article class="method">
<h3 class="private ">definirConstantesGlobales()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">definirConstantesGlobales()</pre>
<p><em>Redéfinit des constantes globales utiles pour le Framework et les applis.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_definirCheminAppli" name="method_definirCheminAppli" class="anchor"></a>
<article class="method">
<h3 class="private ">definirCheminAppli()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">definirCheminAppli( <span class="argument">$chemin</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$chemin</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_enregistrerMethodesAutoload" name="method_enregistrerMethodesAutoload" class="anchor"></a>
<article class="method">
<h3 class="private ">enregistrerMethodesAutoload()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">enregistrerMethodesAutoload()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_autoloadFw" name="method_autoloadFw" class="anchor"></a>
<article class="method">
<h3 class="private ">autoloadFw()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">autoloadFw( <span class="argument">$nom_classe_fw</span>)</pre>
<p><em>Autoload pour le Framework.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$nom_classe_fw</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_autoloadAppliDefaut" name="method_autoloadAppliDefaut" class="anchor"></a>
<article class="method">
<h3 class="private ">autoloadAppliDefaut()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">autoloadAppliDefaut( <span class="argument">$nom_classe</span>)</pre>
<p><em>Autoload par défaut pour l&#039;application</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$nom_classe</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_initialiserUrl" name="method_initialiserUrl" class="anchor"></a>
<article class="method">
<h3 class="private ">initialiserUrl()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">initialiserUrl()</pre>
<p><em>Initialise le format des urls.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_verifierEtTraiterSlashTableauRequete" name="method_verifierEtTraiterSlashTableauRequete" class="anchor"></a>
<article class="method">
<h3 class="private ">verifierEtTraiterSlashTableauRequete()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">verifierEtTraiterSlashTableauRequete()</pre>
<p><em>Procédure vérifiant l&#039;activation des magic quotes et remplacant les slash dans les tableaux de requete</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label">Framework.php</h3>
</div>
<div class="modal-body">
<pre data-src="../files/Framework.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/classes/RestService.html
New file
0,0 → 1,902
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1211737728"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1211737728" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content class">
<nav>
<a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
 
<h1><small>\</small>RestService</h1>
<p><em>Classe principale gérant les services.</em></p>
<p>Paramètres liés dans config.ini :</p>
<ul>
<li>serveur.baseURL</li>
</ul>
<p>Encodage en entrée : utf8
Encodage en sortie : utf8</p>
 
<section id="summary">
<h2>Summary</h2>
<section class="row-fluid heading">
<section class="span4">
<a href="#methods">Methods</a>
</section>
<section class="span4">
<a href="#properties">Properties</a>
</section>
<section class="span4">
<a href="#constants">Constants</a>
</section>
</section>
<section class="row-fluid public">
<section class="span4">
<a href="../classes/RestService.html#method___construct" class="">__construct()</a><br />
<a href="../classes/RestService.html#method_initialiser" class="">initialiser()</a><br />
<a href="../classes/RestService.html#method_utiliserParametresBruts" class="">utiliserParametresBruts()</a><br />
<a href="../classes/RestService.html#method_consulter" class="">consulter()</a><br />
<a href="../classes/RestService.html#method_modifier" class="">modifier()</a><br />
<a href="../classes/RestService.html#method_ajouter" class="">ajouter()</a><br />
<a href="../classes/RestService.html#method_supprimer" class="">supprimer()</a><br />
</section>
<section class="span4">
<em>No public properties found</em>
</section>
<section class="span4">
<em>No constants found</em>
</section>
</section>
<section class="row-fluid protected">
<section class="span4">
<a href="../classes/RestService.html#method_getBdd" class="">getBdd()</a><br />
<a href="../classes/RestService.html#method_getRestClient" class="">getRestClient()</a><br />
<a href="../classes/RestService.html#method_ajouterMessage" class="">ajouterMessage()</a><br />
</section>
<section class="span4">
<a href="../classes/RestService.html#property_bdd" class="deprecated">$bdd</a><br />
<a href="../classes/RestService.html#property_utilisationParametresBruts" class="">$utilisationParametresBruts</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
<section class="row-fluid private">
<section class="span4">
<em>No private methods found</em>
</section>
<section class="span4">
<a href="../classes/RestService.html#property_RestClient" class="">$RestClient</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
</section>
</div>
<aside class="span4 detailsbar">
<span class="label label-info">abstract</span>
<dl>
<dt>File</dt>
<dd><a href="../files/RestService.php.html"><div class="path-wrapper">RestService.php</div></a></dd>
<dt>Package</dt>
<dd><div class="namespace-wrapper">\Framework</div></dd>
<dt>Class hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\RestService</div>
</dd>
 
<dt>See also</dt>
<dd><a href="/doc/framework/"><div class="namespace-wrapper">/doc/framework/</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
category
</th>
<td>
<p>Php 5.2</p>
</td>
</tr>
<tr>
<th>
author
</th>
<td>
<p>Jean-Pascal MILCENT <a href="mailto:jpm@tela-botanica.org">jpm@tela-botanica.org</a></p>
</td>
</tr>
<tr>
<th>
copyright
</th>
<td>
<p>Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)</p>
</td>
</tr>
<tr>
<th>
license
</th>
<td>
<p>GPL v3 <a href="http://www.gnu.org/licenses/gpl.txt">http://www.gnu.org/licenses/gpl.txt</a></p>
<p>CECILL v2 <a href="http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt">http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt</a></p>
</td>
</tr>
<tr>
<th>
since
</th>
<td>
</td>
</tr>
<tr>
<th>
version
</th>
<td>
<p>$Id: RestService.php 417 2012-05-15 09:24:12Z jpm $</p>
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="properties" name="properties"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Properties</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_bdd" name="property_bdd" class="anchor"></a>
<article class="property">
<h3 class="protected deprecated">$bdd</h3>
<pre class="signature">$bdd</pre>
<p><em>Objet de connection à la base de données.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<aside class="alert alert-block alert-error">
<h4>Deprecated</h4>
Utiliser la methode getBdd().
</aside>
<dl>
<dt>See also</dt>
<dd><a href=""><span class="namespace-wrapper"></span></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_utilisationParametresBruts" name="property_utilisationParametresBruts" class="anchor"></a>
<article class="property">
<h3 class="protected ">$utilisationParametresBruts</h3>
<pre class="signature">$utilisationParametresBruts</pre>
<p><em>Indique si oui (true) ou non (false), on veut utiliser les paramètres brutes.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_RestClient" name="property_RestClient" class="anchor"></a>
<article class="property">
<h3 class="private ">$RestClient</h3>
<pre class="signature">$RestClient</pre>
<p><em>Objet Rest Client.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="methods" name="methods"></a>
<div class="row-fluid">
<div class="span8 content class"><h2>Methods</h2></div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method___construct" name="method___construct" class="anchor"></a>
<article class="method">
<h3 class="public ">__construct()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">__construct( <span class="argument">$config</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$config</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_initialiser" name="method_initialiser" class="anchor"></a>
<article class="method">
<h3 class="public ">initialiser()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">initialiser()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_utiliserParametresBruts" name="method_utiliserParametresBruts" class="anchor"></a>
<article class="method">
<h3 class="public ">utiliserParametresBruts()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">utiliserParametresBruts()</pre>
<p><em>Méthode permettant de savoir si le service veut utiliser des paramètres bruts (issu de la QueryString)
ou pas (issu de $_GET).</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_consulter" name="method_consulter" class="anchor"></a>
<article class="method">
<h3 class="public ">consulter()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">consulter( <span class="argument">$ressources</span>, <span class="argument">$parametres</span>) : string</pre>
<p><em>Méthode appelée lors d&#039;une requête HTTP de type GET.</em></p>
<p>Si la consultation est un succès, le code statut HTTP retourné sera 200. Dans tous les autres cas,
la méthode devra retourner le code statut HTTP adéquate.</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$ressources</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$parametres</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>une chaine indiquant le succès de l'opération et les données demandées.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_modifier" name="method_modifier" class="anchor"></a>
<article class="method">
<h3 class="public ">modifier()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">modifier( <span class="argument">$ressources</span>, <span class="argument">$requeteDonnees</span>) : mixed</pre>
<p><em>Méthode appelée lors d&#039;une requête HTTP de type POST.</em></p>
<p>La ressource à modifier est indiquée via l'url. Les données devant servir à la mise à jours sont passées dans le corps
de la requête.
Si la modification est un succès, la méthode devra retourner "true" et le code statut HTTP retourné sera 201.</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$ressources</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$requeteDonnees</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
mixed
&mdash; <p>une chaine indiquant le succès de l'opération ou rien.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_ajouter" name="method_ajouter" class="anchor"></a>
<article class="method">
<h3 class="public ">ajouter()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">ajouter( <span class="argument">$ressources</span>, <span class="argument">$requeteDonnees</span>) : string</pre>
<p><em>Méthode appelée lors d&#039;une requête HTTP de type PUT.</em></p>
<p>L'identifiant de la ressource à ajouter est indiqué via l'url si on le connait par avance. Sinon, il doit être créé par
le service. Dans ce dernier cas, le nouvel identifiant devrait être renvoyé dans le corps de la réponse.
Si l'ajout est un succès, la méthode devra retourner "true" ou l'identifiant.
Le code statut HTTP retourné sera 201 en cas de succès.
Dans le cas contraire, la méthode devra retourner false.</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$ressources</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$requeteDonnees</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>l'identifiant créé.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_supprimer" name="method_supprimer" class="anchor"></a>
<article class="method">
<h3 class="public ">supprimer()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">supprimer( <span class="argument">$ressources</span>) : mixed</pre>
<p><em>Méthode appelée lors d&#039;une requête HTTP de type DELETE (ou POST avec action=DELETE dans le corps de la requete).</em></p>
<p>Si la suppression est un succès, la méthode devra retourner "true" et le code statut HTTP retourné par
RestServeur sera 204.
Si la ressource à supprimer est introuvable, la méthode devra retourner "false" et le code statut HTTP
retourné par RestServeur sera 404.
Dans les autres cas de figure ou si vous souhaitez gérer vos propres codes de retour erreur, retourner
la valeur null ou rien.</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$ressources</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
mixed
&mdash; <p>une chaine indiquant le succès de l'opération ou rien.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getBdd" name="method_getBdd" class="anchor"></a>
<article class="method">
<h3 class="protected ">getBdd()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getBdd()</pre>
<p><em>Méthode de connection à la base de données sur demande.</em></p>
<p>Tous les services web n'ont pas besoin de s'y connecter.</p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getRestClient" name="method_getRestClient" class="anchor"></a>
<article class="method">
<h3 class="protected ">getRestClient()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getRestClient()</pre>
<p><em>Méthode permettant de faire appel à un client REST en fonction des besoins du service.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_ajouterMessage" name="method_ajouterMessage" class="anchor"></a>
<article class="method">
<h3 class="protected ">ajouterMessage()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">ajouterMessage(string <span class="argument">$message</span>)</pre>
<p><em>Permet d&#039;ajouter un message d&#039;erreur ou d&#039;avertissement qui sera envoyé au client.</em></p>
<p>Le message doit être au format texte et en UTF-8.</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$message</td>
<td><p>le message à envoyer.</p></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label">RestService.php</h3>
</div>
<div class="modal-body">
<pre data-src="../files/RestService.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/classes/Url.html
New file
0,0 → 1,1326
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1687080797"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1687080797" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content class">
<nav>
<a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
 
<h1><small>\</small>Url</h1>
<p><em>Classe Url, gérant le découpage des paramètres, leurs modification etc.</em></p>
<p>..
Traduction et conversion d'une classe (NET_Url2) issue de Pear</p>
 
<section id="summary">
<h2>Summary</h2>
<section class="row-fluid heading">
<section class="span4">
<a href="#methods">Methods</a>
</section>
<section class="span4">
<a href="#properties">Properties</a>
</section>
<section class="span4">
<a href="#constants">Constants</a>
</section>
</section>
<section class="row-fluid public">
<section class="span4">
<a href="../classes/Url.html#method___construct" class="">__construct()</a><br />
<a href="../classes/Url.html#method_getOption" class="">getOption()</a><br />
<a href="../classes/Url.html#method_setOption" class="">setOption()</a><br />
<a href="../classes/Url.html#method_setRequete" class="">setRequete()</a><br />
<a href="../classes/Url.html#method_fusionnerRequete" class="">fusionnerRequete()</a><br />
<a href="../classes/Url.html#method_normaliser" class="">normaliser()</a><br />
<a href="../classes/Url.html#method_getCanonique" class="">getCanonique()</a><br />
<a href="../classes/Url.html#method_getDemande" class="">getDemande()</a><br />
<a href="../classes/Url.html#method_getURL" class="">getURL()</a><br />
</section>
<section class="span4">
<em>No public properties found</em>
</section>
<section class="span4">
<a href="../classes/Url.html#constant_OPTION_UTILISER_CROCHETS" class="">OPTION_UTILISER_CROCHETS</a><br />
<a href="../classes/Url.html#constant_OPTION_ENCODER_CLES" class="">OPTION_ENCODER_CLES</a><br />
<a href="../classes/Url.html#constant_OPTION_ENCODER_VALEURS" class="">OPTION_ENCODER_VALEURS</a><br />
<a href="../classes/Url.html#constant_OPTION_SEPARATEUR_ENTREE" class="">OPTION_SEPARATEUR_ENTREE</a><br />
<a href="../classes/Url.html#constant_OPTION_SEPARATEUR_SORTIE" class="">OPTION_SEPARATEUR_SORTIE</a><br />
</section>
</section>
<section class="row-fluid protected">
<section class="span4">
<em>No protected methods found</em>
</section>
<section class="span4">
<em>No protected properties found</em>
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
<section class="row-fluid private">
<section class="span4">
<a href="../classes/Url.html#method_getAutorite" class="">getAutorite()</a><br />
<a href="../classes/Url.html#method_setAutorite" class="">setAutorite()</a><br />
<a href="../classes/Url.html#method_etreAbsolue" class="">etreAbsolue()</a><br />
<a href="../classes/Url.html#method_supprimerSegmentsAPoints" class="">supprimerSegmentsAPoints()</a><br />
</section>
<section class="span4">
<a href="../classes/Url.html#property_options" class="">$options</a><br />
<a href="../classes/Url.html#property_schema" class="">$schema</a><br />
<a href="../classes/Url.html#property_infoUtilisateur" class="">$infoUtilisateur</a><br />
<a href="../classes/Url.html#property_hote" class="">$hote</a><br />
<a href="../classes/Url.html#property_port" class="">$port</a><br />
<a href="../classes/Url.html#property_chemin" class="">$chemin</a><br />
<a href="../classes/Url.html#property_requete" class="">$requete</a><br />
<a href="../classes/Url.html#property_fragment" class="">$fragment</a><br />
<a href="../classes/Url.html#property_parametres_obligatoires" class="">$parametres_obligatoires</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
</section>
</div>
<aside class="span4 detailsbar">
<dl>
<dt>File</dt>
<dd><a href="../files/Url.php.html"><div class="path-wrapper">Url.php</div></a></dd>
<dt>Package</dt>
<dd><div class="namespace-wrapper">\Framework</div></dd>
<dt>Class hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\Url</div>
</dd>
 
<dt>See also</dt>
<dd><a href="/doc/framework/"><div class="namespace-wrapper">/doc/framework/</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
category
</th>
<td>
<p>Php 5.2</p>
</td>
</tr>
<tr>
<th>
author
</th>
<td>
<p>Christian SCHMIDT <a href="mailto:schmidt@php.net">schmidt@php.net</a> (Auteur classe originale)</p>
<p>Aurélien PERONNET <a href="mailto:aurelien@tela-botanica.org">aurelien@tela-botanica.org</a></p>
<p>Jean-Pascal MILCENT <a href="mailto:jpm@tela-botanica.org">jpm@tela-botanica.org</a></p>
</td>
</tr>
<tr>
<th>
copyright
</th>
<td>
<p>Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)</p>
</td>
</tr>
<tr>
<th>
license
</th>
<td>
<p><a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt</a> Licence CECILL</p>
<p><a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> Licence GNU-GPL</p>
</td>
</tr>
<tr>
<th>
version
</th>
<td>
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="constants" name="constants"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Constants</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_OPTION_UTILISER_CROCHETS" name="constant_OPTION_UTILISER_CROCHETS" class="anchor"></a>
<article id="constant_OPTION_UTILISER_CROCHETS" class="constant">
<h3 class="">OPTION_UTILISER_CROCHETS</h3>
<pre class="signature">OPTION_UTILISER_CROCHETS</pre>
<p><em>Répresenter les tableaux dans les requêtes en utilisant la notation php []. Par défaut à true.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_OPTION_ENCODER_CLES" name="constant_OPTION_ENCODER_CLES" class="anchor"></a>
<article id="constant_OPTION_ENCODER_CLES" class="constant">
<h3 class="">OPTION_ENCODER_CLES</h3>
<pre class="signature">OPTION_ENCODER_CLES</pre>
<p><em>URL-encoder les clés des variables dans les requêtes. Par défaut à true.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_OPTION_ENCODER_VALEURS" name="constant_OPTION_ENCODER_VALEURS" class="anchor"></a>
<article id="constant_OPTION_ENCODER_VALEURS" class="constant">
<h3 class="">OPTION_ENCODER_VALEURS</h3>
<pre class="signature">OPTION_ENCODER_VALEURS</pre>
<p><em>URL-encoder les valeurs des variables dans les requêtes. Par défaut à false.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_OPTION_SEPARATEUR_ENTREE" name="constant_OPTION_SEPARATEUR_ENTREE" class="anchor"></a>
<article id="constant_OPTION_SEPARATEUR_ENTREE" class="constant">
<h3 class="">OPTION_SEPARATEUR_ENTREE</h3>
<pre class="signature">OPTION_SEPARATEUR_ENTREE</pre>
<p><em>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 &quot;&amp;&quot;).</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_OPTION_SEPARATEUR_SORTIE" name="constant_OPTION_SEPARATEUR_SORTIE" class="anchor"></a>
<article id="constant_OPTION_SEPARATEUR_SORTIE" class="constant">
<h3 class="">OPTION_SEPARATEUR_SORTIE</h3>
<pre class="signature">OPTION_SEPARATEUR_SORTIE</pre>
<p><em>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 &quot;&amp;&quot;).</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="properties" name="properties"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Properties</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_options" name="property_options" class="anchor"></a>
<article class="property">
<h3 class="private ">$options</h3>
<pre class="signature">$options</pre>
<p><em>Options par défaut correspondant au comportement de php
vis à vis de $_GET</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_schema" name="property_schema" class="anchor"></a>
<article class="property">
<h3 class="private ">$schema</h3>
<pre class="signature">$schema : string|bool</pre>
<p><em></em></p>
 
<h4>Type</h4>
string|bool
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_infoUtilisateur" name="property_infoUtilisateur" class="anchor"></a>
<article class="property">
<h3 class="private ">$infoUtilisateur</h3>
<pre class="signature">$infoUtilisateur : string|bool</pre>
<p><em></em></p>
 
<h4>Type</h4>
string|bool
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_hote" name="property_hote" class="anchor"></a>
<article class="property">
<h3 class="private ">$hote</h3>
<pre class="signature">$hote : string|bool</pre>
<p><em></em></p>
 
<h4>Type</h4>
string|bool
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_port" name="property_port" class="anchor"></a>
<article class="property">
<h3 class="private ">$port</h3>
<pre class="signature">$port : int|bool</pre>
<p><em></em></p>
 
<h4>Type</h4>
int|bool
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_chemin" name="property_chemin" class="anchor"></a>
<article class="property">
<h3 class="private ">$chemin</h3>
<pre class="signature">$chemin : string</pre>
<p><em></em></p>
 
<h4>Type</h4>
string
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_requete" name="property_requete" class="anchor"></a>
<article class="property">
<h3 class="private ">$requete</h3>
<pre class="signature">$requete : string|bool</pre>
<p><em></em></p>
 
<h4>Type</h4>
string|bool
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_fragment" name="property_fragment" class="anchor"></a>
<article class="property">
<h3 class="private ">$fragment</h3>
<pre class="signature">$fragment : string|bool</pre>
<p><em></em></p>
 
<h4>Type</h4>
string|bool
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_parametres_obligatoires" name="property_parametres_obligatoires" class="anchor"></a>
<article class="property">
<h3 class="private ">$parametres_obligatoires</h3>
<pre class="signature">$parametres_obligatoires</pre>
<p><em>Tableau des noms des paramètres à définir dans le fichier de config car obligatoirement nécessaire à cette classe.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="methods" name="methods"></a>
<div class="row-fluid">
<div class="span8 content class"><h2>Methods</h2></div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method___construct" name="method___construct" class="anchor"></a>
<article class="method">
<h3 class="public ">__construct()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">__construct(string <span class="argument">$url</span>, array <span class="argument">$options</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$url</td>
<td><p>une URL relative ou absolue</p></td>
</tr>
<tr>
<td>array</td>
<td>$options</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getOption" name="method_getOption" class="anchor"></a>
<article class="method">
<h3 class="public ">getOption()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getOption(string <span class="argument">$nomOption</span>) : mixed</pre>
<p><em>Renvoie la valeur de l&#039;option specifiée.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$nomOption</td>
<td><p>Nom de l'option demandée</p></td>
</tr>
</table>
<h4>Returns</h4>
mixed
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_setOption" name="method_setOption" class="anchor"></a>
<article class="method">
<h3 class="public ">setOption()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">setOption(string <span class="argument">$nomOption</span>, mixed <span class="argument">$valeur</span>) : void</pre>
<p><em>Met à jour la valeur de l&#039;option spécifiée.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$nomOption</td>
<td><p>une des constantes commençant par self::OPTION_</p></td>
</tr>
<tr>
<td>mixed</td>
<td>$valeur</td>
<td><p>valeur de l'option</p></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
<dt>See also</dt>
<dd><a href=""><span class="namespace-wrapper"></span></a></dd>
<dd><a href=""><span class="namespace-wrapper"></span></a></dd>
<dd><a href=""><span class="namespace-wrapper"></span></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_setRequete" name="method_setRequete" class="anchor"></a>
<article class="method">
<h3 class="public ">setRequete()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">setRequete(array <span class="argument">$parametres</span>) : void</pre>
<p><em>(Re-)Création de la partie requête de l&#039;URL à partir des données du tableau (passé en paramètre).</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$parametres</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_fusionnerRequete" name="method_fusionnerRequete" class="anchor"></a>
<article class="method">
<h3 class="public ">fusionnerRequete()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">fusionnerRequete(array <span class="argument">$parametres</span>) : void</pre>
<p><em>(Re-)Création de la partie requête de l&#039;URL à partir de la fusion du tableau (passé en paramètre) et
les valeurs présentes dans $_GET.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$parametres</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_normaliser" name="method_normaliser" class="anchor"></a>
<article class="method">
<h3 class="public ">normaliser()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">normaliser() : void</pre>
<p><em>Normalise les données de l&#039;instance d&#039;Url faisant appel à cette méthode.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getCanonique" name="method_getCanonique" class="anchor"></a>
<article class="method">
<h3 class="public ">getCanonique()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getCanonique() : \Url</pre>
<p><em>Renvoie une instance d&#039;objet Url representant l&#039;URL canonique du script PHP en cours d&#039;éxécution.</em></p>
 
<h4>Returns</h4>
<a href="../classes/Url.html">\Url</a>
&mdash; <p>retourne un objet Url ou null en cas d'erreur.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getDemande" name="method_getDemande" class="anchor"></a>
<article class="method">
<h3 class="public ">getDemande()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getDemande() : \Url</pre>
<p><em>Renvoie une instance d&#039;objet Url representant l&#039;URL utilisée pour récupérer la requête en cours.</em></p>
 
<h4>Returns</h4>
<a href="../classes/Url.html">\Url</a>
&mdash; <p>retourne un objet Url ou null en cas d'erreur.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getURL" name="method_getURL" class="anchor"></a>
<article class="method">
<h3 class="public ">getURL()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getURL() : string</pre>
<p><em>Renvoie un représentation sous forme de chaine de l&#039;URL.</em></p>
 
<h4>Returns</h4>
string
&mdash; <p>l'url</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getAutorite" name="method_getAutorite" class="anchor"></a>
<article class="method">
<h3 class="private ">getAutorite()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getAutorite() : string|bool</pre>
<p><em>Renvoie la partie autorité, i.e. [ infoUtilisateur &quot;@&quot; ] hote [ &quot;:&quot; port ], ou
false si celle-ci est absente.</em></p>
 
<h4>Returns</h4>
string|bool
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_setAutorite" name="method_setAutorite" class="anchor"></a>
<article class="method">
<h3 class="private ">setAutorite()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">setAutorite(string|false <span class="argument">$autorite</span>) : void</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string|false</td>
<td>$autorite</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_etreAbsolue" name="method_etreAbsolue" class="anchor"></a>
<article class="method">
<h3 class="private ">etreAbsolue()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">etreAbsolue() : bool</pre>
<p><em>Renvoie vrai ou faux suivant que l&#039;instance en cours représente une URL relative ou absolue.</em></p>
 
<h4>Returns</h4>
bool
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_supprimerSegmentsAPoints" name="method_supprimerSegmentsAPoints" class="anchor"></a>
<article class="method">
<h3 class="private ">supprimerSegmentsAPoints()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">supprimerSegmentsAPoints(string <span class="argument">$chemin</span>) : string</pre>
<p><em>La suppression des segments à points est décrite dans la RFC 3986, section 5.2.4, e.g.</em></p>
<p>"/foo/../bar/baz" => "/bar/baz"</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$chemin</td>
<td><p>un chemin</p></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>un chemin</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label">Url.php</h3>
</div>
<div class="modal-body">
<pre data-src="../files/Url.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/classes/Cache.html
New file
0,0 → 1,1944
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1522024118"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1522024118" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content class">
<nav>
<a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
 
<h1><small>\</small>Cache</h1>
<p><em>Classe Cache permettant de mettre en cache des données.</em></p>
<p>Basée sur les principes de Zend_Cache (Copyright (c) 2005-2010, Zend Technologies USA, Inc. All rights reserved.)</p>
 
<section id="summary">
<h2>Summary</h2>
<section class="row-fluid heading">
<section class="span4">
<a href="#methods">Methods</a>
</section>
<section class="span4">
<a href="#properties">Properties</a>
</section>
<section class="span4">
<a href="#constants">Constants</a>
</section>
</section>
<section class="row-fluid public">
<section class="span4">
<a href="../classes/Cache.html#method___construct" class="">__construct()</a><br />
<a href="../classes/Cache.html#method_setEmplacement" class="">setEmplacement()</a><br />
<a href="../classes/Cache.html#method_fabriquer" class="">fabriquer()</a><br />
<a href="../classes/Cache.html#method_charger" class="">charger()</a><br />
<a href="../classes/Cache.html#method_tester" class="">tester()</a><br />
<a href="../classes/Cache.html#method_sauver" class="">sauver()</a><br />
<a href="../classes/Cache.html#method_supprimer" class="">supprimer()</a><br />
<a href="../classes/Cache.html#method_nettoyer" class="">nettoyer()</a><br />
<a href="../classes/Cache.html#method_getIds" class="">getIds()</a><br />
<a href="../classes/Cache.html#method_getTags" class="">getTags()</a><br />
<a href="../classes/Cache.html#method_getIdsAvecLesTags" class="">getIdsAvecLesTags()</a><br />
<a href="../classes/Cache.html#method_getIdsSansLesTags" class="">getIdsSansLesTags()</a><br />
<a href="../classes/Cache.html#method_getIdsAvecUnTag" class="">getIdsAvecUnTag()</a><br />
<a href="../classes/Cache.html#method_getPourcentageRemplissage" class="">getPourcentageRemplissage()</a><br />
<a href="../classes/Cache.html#method_getMetadonnees" class="">getMetadonnees()</a><br />
<a href="../classes/Cache.html#method_ajouterSupplementDureeDeVie" class="">ajouterSupplementDureeDeVie()</a><br />
<a href="../classes/Cache.html#method_getTimestampExpiration" class="">getTimestampExpiration()</a><br />
</section>
<section class="span4">
<em>No public properties found</em>
</section>
<section class="span4">
<a href="../classes/Cache.html#constant_STOCKAGE_MODE_SIMPLE" class="">STOCKAGE_MODE_SIMPLE</a><br />
<a href="../classes/Cache.html#constant_STOCKAGE_MODE_FICHIER" class="">STOCKAGE_MODE_FICHIER</a><br />
<a href="../classes/Cache.html#constant_STOCKAGE_MODE_SQLITE" class="">STOCKAGE_MODE_SQLITE</a><br />
<a href="../classes/Cache.html#constant_NETTOYAGE_MODE_TOUS" class="">NETTOYAGE_MODE_TOUS</a><br />
<a href="../classes/Cache.html#constant_NETTOYAGE_MODE_EXPIRATION" class="">NETTOYAGE_MODE_EXPIRATION</a><br />
<a href="../classes/Cache.html#constant_NETTOYAGE_MODE_AVEC_LES_TAGS" class="">NETTOYAGE_MODE_AVEC_LES_TAGS</a><br />
<a href="../classes/Cache.html#constant_NETTOYAGE_MODE_SANS_LES_TAGS" class="">NETTOYAGE_MODE_SANS_LES_TAGS</a><br />
<a href="../classes/Cache.html#constant_NETTOYAGE_MODE_AVEC_UN_TAG" class="">NETTOYAGE_MODE_AVEC_UN_TAG</a><br />
</section>
</section>
<section class="row-fluid protected">
<section class="span4">
<a href="../classes/Cache.html#method_validerIdOuTag" class="">validerIdOuTag()</a><br />
<a href="../classes/Cache.html#method_validerTableauDeTags" class="">validerTableauDeTags()</a><br />
</section>
<section class="span4">
<a href="../classes/Cache.html#property_options" class="">$options</a><br />
<a href="../classes/Cache.html#property_stockage" class="">$stockage</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
<section class="row-fluid private">
<section class="span4">
<a href="../classes/Cache.html#method_initialiserOptionsParConfig" class="">initialiserOptionsParConfig()</a><br />
<a href="../classes/Cache.html#method_setOptions" class="">setOptions()</a><br />
<a href="../classes/Cache.html#method_prefixerId" class="">prefixerId()</a><br />
<a href="../classes/Cache.html#method_executerMethodeStockage" class="">executerMethodeStockage()</a><br />
<a href="../classes/Cache.html#method_supprimerPrefixe" class="">supprimerPrefixe()</a><br />
<a href="../classes/Cache.html#method_controlerEcriture" class="">controlerEcriture()</a><br />
<a href="../classes/Cache.html#method_deserialiserAutomatiquement" class="">deserialiserAutomatiquement()</a><br />
<a href="../classes/Cache.html#method_serialiserAutomatiquement" class="">serialiserAutomatiquement()</a><br />
<a href="../classes/Cache.html#method_nettoyerAutomatiquement" class="">nettoyerAutomatiquement()</a><br />
</section>
<section class="span4">
<a href="../classes/Cache.html#property_dernier_id" class="">$dernier_id</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
</section>
</div>
<aside class="span4 detailsbar">
<dl>
<dt>File</dt>
<dd><a href="../files/Cache.php.html"><div class="path-wrapper">Cache.php</div></a></dd>
<dt>Package</dt>
<dd><div class="namespace-wrapper">\Framework</div></dd>
<dt>Class hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\Cache</div>
</dd>
 
<dt>See also</dt>
<dd><a href="/doc/framework/"><div class="namespace-wrapper">/doc/framework/</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
category
</th>
<td>
<p>php 5.2</p>
</td>
</tr>
<tr>
<th>
author
</th>
<td>
<p>Jean-Pascal MILCENT <a href="mailto:jpm@tela-botanica.org">jpm@tela-botanica.org</a></p>
</td>
</tr>
<tr>
<th>
copyright
</th>
<td>
<p>Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)</p>
</td>
</tr>
<tr>
<th>
license
</th>
<td>
<p><a href="http://framework.zend.com/license/new-bsd">http://framework.zend.com/license/new-bsd</a> Licence New BSD</p>
<p><a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt</a> Licence CECILL</p>
<p><a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> Licence GNU-GPL</p>
</td>
</tr>
<tr>
<th>
version
</th>
<td>
<p>$Id: Cache.php 299 2011-01-18 14:03:46Z jpm $</p>
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="constants" name="constants"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Constants</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_STOCKAGE_MODE_SIMPLE" name="constant_STOCKAGE_MODE_SIMPLE" class="anchor"></a>
<article id="constant_STOCKAGE_MODE_SIMPLE" class="constant">
<h3 class="">STOCKAGE_MODE_SIMPLE</h3>
<pre class="signature">STOCKAGE_MODE_SIMPLE</pre>
<p><em>Socke les enregistrements du cache dans des fichiers textes de façon extremement simple.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_STOCKAGE_MODE_FICHIER" name="constant_STOCKAGE_MODE_FICHIER" class="anchor"></a>
<article id="constant_STOCKAGE_MODE_FICHIER" class="constant">
<h3 class="">STOCKAGE_MODE_FICHIER</h3>
<pre class="signature">STOCKAGE_MODE_FICHIER</pre>
<p><em>Socke les enregistrements du cache dans des fichiers textes.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_STOCKAGE_MODE_SQLITE" name="constant_STOCKAGE_MODE_SQLITE" class="anchor"></a>
<article id="constant_STOCKAGE_MODE_SQLITE" class="constant">
<h3 class="">STOCKAGE_MODE_SQLITE</h3>
<pre class="signature">STOCKAGE_MODE_SQLITE</pre>
<p><em>Socke les enregistrements du cache dans une base de données SQLite.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_NETTOYAGE_MODE_TOUS" name="constant_NETTOYAGE_MODE_TOUS" class="anchor"></a>
<article id="constant_NETTOYAGE_MODE_TOUS" class="constant">
<h3 class="">NETTOYAGE_MODE_TOUS</h3>
<pre class="signature">NETTOYAGE_MODE_TOUS</pre>
<p><em>&#039;tous&#039; (par défaut) : supprime tous les enregistrements.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_NETTOYAGE_MODE_EXPIRATION" name="constant_NETTOYAGE_MODE_EXPIRATION" class="anchor"></a>
<article id="constant_NETTOYAGE_MODE_EXPIRATION" class="constant">
<h3 class="">NETTOYAGE_MODE_EXPIRATION</h3>
<pre class="signature">NETTOYAGE_MODE_EXPIRATION</pre>
<p><em>&#039;expiration&#039; : supprime tous les enregistrements dont la date d&#039;expériration est dépassée.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_NETTOYAGE_MODE_AVEC_LES_TAGS" name="constant_NETTOYAGE_MODE_AVEC_LES_TAGS" class="anchor"></a>
<article id="constant_NETTOYAGE_MODE_AVEC_LES_TAGS" class="constant">
<h3 class="">NETTOYAGE_MODE_AVEC_LES_TAGS</h3>
<pre class="signature">NETTOYAGE_MODE_AVEC_LES_TAGS</pre>
<p><em>&#039;avecLesTags&#039; : supprime tous les enregistrements contenant tous les tags indiqués.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_NETTOYAGE_MODE_SANS_LES_TAGS" name="constant_NETTOYAGE_MODE_SANS_LES_TAGS" class="anchor"></a>
<article id="constant_NETTOYAGE_MODE_SANS_LES_TAGS" class="constant">
<h3 class="">NETTOYAGE_MODE_SANS_LES_TAGS</h3>
<pre class="signature">NETTOYAGE_MODE_SANS_LES_TAGS</pre>
<p><em>&#039;sansLesTags&#039; : supprime tous les enregistrements contenant aucun des tags indiqués.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_NETTOYAGE_MODE_AVEC_UN_TAG" name="constant_NETTOYAGE_MODE_AVEC_UN_TAG" class="anchor"></a>
<article id="constant_NETTOYAGE_MODE_AVEC_UN_TAG" class="constant">
<h3 class="">NETTOYAGE_MODE_AVEC_UN_TAG</h3>
<pre class="signature">NETTOYAGE_MODE_AVEC_UN_TAG</pre>
<p><em>&#039;avecUnTag&#039; : supprime tous les enregistrements contenant au moins un des tags indiqués.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="properties" name="properties"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Properties</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_options" name="property_options" class="anchor"></a>
<article class="property">
<h3 class="protected ">$options</h3>
<pre class="signature">$options : array</pre>
<p><em>Les options disponibles pour le cache :
====&gt; (string) stockage_mode :
Indique le mode de stockage du cache à utiliser parmis :
- Cache::STOCKAGE_MODE_FICHIER : sous forme d&#039;une arborescence de fichiers et dossier
- Cache::STOCKAGE_MODE_SQLITE : sous forme d&#039;une base de données SQLite</em></p>
<p>====> (string) stockage_chemin :
Chemin vers :</p>
<ul>
<li>Cache::STOCKAGE_MODE_FICHIER : le dossier devant contenir l'arborescence.</li>
<li>Cache::STOCKAGE_MODE_SQLITE : le fichier contenant la base SQLite.</li>
</ul>
<p>====> (boolean) controle_ecriture :</p>
<ul>
<li>Active / Désactive le controle d'écriture (le cache est lue jute après l'écriture du fichier pour détecter sa corruption)</li>
<li>Activer le controle d'écriture ralentira légèrement l'écriture du fichier de cache mais pas sa lecture
Le controle d'écriture peut détecter la corruption de fichier mais ce n'est pas un système de controle parfait.</li>
</ul>
<p>====> (boolean) mise_en_cache :</p>
<ul>
<li>Active / Désactive la mise en cache
(peut être très utile pour le débogage des scripts utilisant le cache</li>
</ul>
<p>=====> (string) cache_id_prefixe :</p>
<ul>
<li>préfixe pour les identifiant de cache ( = espace de nom)</li>
</ul>
<p>====> (boolean) serialisation_auto :</p>
<ul>
<li>Active / Désactive la sérialisation automatique</li>
<li>Peut être utilisé pour sauver directement des données qui ne sont pas des chaines (mais c'est plus lent)</li>
</ul>
<p>====> (int) nettoyage_auto :</p>
<ul>
<li>Désactive / Régler le processus de nettoyage automatique</li>
<li>Le processus de nettoyage automatiques détruit les fichier trop vieux (pour la durée de vie donnée)
quand un nouveau fichier de cache est écrit :
0 => pas de nettoyage automatique
1 => nettoyage automatique systématique
x (integer) > 1 => nettoyage automatique toutes les 1 fois (au hasard) sur x écriture de fichier de cache</li>
</ul>
<p>====> (int) duree_de_vie :</p>
<ul>
<li>Durée de vie du cache (en secondes)</li>
<li>Si null, le cache est valide indéfiniment.</li>
</ul>
 
<h4>Type</h4>
array
&mdash; les options disponibles pour le cache . </article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_stockage" name="property_stockage" class="anchor"></a>
<article class="property">
<h3 class="protected ">$stockage</h3>
<pre class="signature">$stockage</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_dernier_id" name="property_dernier_id" class="anchor"></a>
<article class="property">
<h3 class="private ">$dernier_id</h3>
<pre class="signature">$dernier_id : string</pre>
<p><em>Dernier identifiant de cache utilisé.</em></p>
 
<h4>Type</h4>
string
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="methods" name="methods"></a>
<div class="row-fluid">
<div class="span8 content class"><h2>Methods</h2></div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method___construct" name="method___construct" class="anchor"></a>
<article class="method">
<h3 class="public ">__construct()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">__construct( <span class="argument">$options</span>, <span class="argument">$options_stockage</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$options</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$options_stockage</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_setEmplacement" name="method_setEmplacement" class="anchor"></a>
<article class="method">
<h3 class="public ">setEmplacement()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">setEmplacement(string <span class="argument">$emplacement</span>) : void</pre>
<p><em>Permet de (re-)définir l&#039;emplacement pour le stockage du cache.</em></p>
<p>En fonction du mode de stockage utilisé , l'emplacement indiqué correspondra au chemin du :</p>
<ul>
<li>dossier où stocker les fichiers pour le mode "fichier".</li>
<li>fichier de la base de données pour le mode "sqlite".</li>
</ul>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$emplacement</td>
<td><p>chemin vers dossier (Cache::STOCKAGE_MODE_FICHIER) ou fichier base Sqlite (Cache::STOCKAGE_MODE_SQLITE)</p></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_fabriquer" name="method_fabriquer" class="anchor"></a>
<article class="method">
<h3 class="public ">fabriquer()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">fabriquer( <span class="argument">$mode</span>, <span class="argument">$options</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$mode</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$options</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_charger" name="method_charger" class="anchor"></a>
<article class="method">
<h3 class="public ">charger()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">charger(string <span class="argument">$id</span>, boolean <span class="argument">$ne_pas_tester_validiter_du_cache</span>) : mixed|false</pre>
<p><em>Teste si un cache est disponible pour l&#039;identifiant donné et (si oui) le retourne (false dans le cas contraire)</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>Identifiant de cache.</p></td>
</tr>
<tr>
<td>boolean</td>
<td>$ne_pas_tester_validiter_du_cache</td>
<td><p>Si mis à true, la validité du cache n'est pas testée</p></td>
</tr>
</table>
<h4>Returns</h4>
mixed|false
&mdash; <p>Cached datas</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_tester" name="method_tester" class="anchor"></a>
<article class="method">
<h3 class="public ">tester()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">tester(string <span class="argument">$id</span>) : int|false</pre>
<p><em>Test if a cache is available for the given id</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>Cache id</p></td>
</tr>
</table>
<h4>Returns</h4>
int|false
&mdash; <p>Last modified time of cache entry if it is available, false otherwise</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_sauver" name="method_sauver" class="anchor"></a>
<article class="method">
<h3 class="public ">sauver()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">sauver(mixed <span class="argument">$donnees</span>, string <span class="argument">$id</span>, array <span class="argument">$tags</span>, int <span class="argument">$duree_de_vie_specifique</span>) : boolean</pre>
<p><em>Sauvegarde en cache les données passées en paramètre.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>mixed</td>
<td>$donnees</td>
<td><p>Données à mettre en cache (peut être différent d'une chaine si serialisation_auto vaut true).</p></td>
</tr>
<tr>
<td>string</td>
<td>$id</td>
<td><p>Identifiant du cache (s'il n'est pas définit, le dernier identifiant sera utilisé).</p></td>
</tr>
<tr>
<td>array</td>
<td>$tags</td>
<td><p>Mots-clés du cache.</p></td>
</tr>
<tr>
<td>int</td>
<td>$duree_de_vie_specifique</td>
<td><p>Si != false, indique une durée de vie spécifique pour cet enregistrement en cache (null => durée de vie infinie)</p></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>True si aucun problème n'est survenu.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_supprimer" name="method_supprimer" class="anchor"></a>
<article class="method">
<h3 class="public ">supprimer()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">supprimer(string <span class="argument">$id</span>) : boolean</pre>
<p><em>Supprime un enregistrement en cache.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>Identificant du cache à supprimer.</p></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>True si ok</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_nettoyer" name="method_nettoyer" class="anchor"></a>
<article class="method">
<h3 class="public ">nettoyer()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">nettoyer(string <span class="argument">$mode</span>, array|string <span class="argument">$tags</span>) : boolean</pre>
<p><em>Nettoyage des enregistrements en cache</em></p>
<p>Mode de nettoyage disponibles :
'tous' (défaut) => supprime tous les enregistrements ($tags n'est pas utilisé)
'expiration' => supprime tous les enregistrements dont la date d'expériration est dépassée ($tags n'est pas utilisé)
'avecLesTag' => supprime tous les enregistrements contenant tous les tags indiqués
'sansLesTag' => supprime tous les enregistrements contenant aucun des tags indiqués
'avecUnTag' => supprime tous les enregistrements contenant au moins un des tags indiqués</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$mode</td>
<td><p>mode de nettoyage</p></td>
</tr>
<tr>
<td>array|string</td>
<td>$tags</td>
<td><p>peut être un tableau de chaîne ou une simple chaine.</p></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>True si ok</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getIds" name="method_getIds" class="anchor"></a>
<article class="method">
<h3 class="public ">getIds()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getIds() : array</pre>
<p><em>Return an array of stored cache ids</em></p>
 
<h4>Returns</h4>
array
&mdash; <p>array of stored cache ids (string)</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getTags" name="method_getTags" class="anchor"></a>
<article class="method">
<h3 class="public ">getTags()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getTags() : array</pre>
<p><em>Return an array of stored tags</em></p>
 
<h4>Returns</h4>
array
&mdash; <p>array of stored tags (string)</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getIdsAvecLesTags" name="method_getIdsAvecLesTags" class="anchor"></a>
<article class="method">
<h3 class="public ">getIdsAvecLesTags()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getIdsAvecLesTags(array <span class="argument">$tags</span>) : array</pre>
<p><em>Return an array of stored cache ids which match given tags</em></p>
<p>In case of multiple tags, a logical AND is made between tags</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$tags</td>
<td><p>array of tags</p></td>
</tr>
</table>
<h4>Returns</h4>
array
&mdash; <p>array of matching cache ids (string)</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getIdsSansLesTags" name="method_getIdsSansLesTags" class="anchor"></a>
<article class="method">
<h3 class="public ">getIdsSansLesTags()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getIdsSansLesTags(array <span class="argument">$tags</span>) : array</pre>
<p><em>Return an array of stored cache ids which don&#039;t match given tags</em></p>
<p>In case of multiple tags, a logical OR is made between tags</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$tags</td>
<td><p>array of tags</p></td>
</tr>
</table>
<h4>Returns</h4>
array
&mdash; <p>array of not matching cache ids (string)</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getIdsAvecUnTag" name="method_getIdsAvecUnTag" class="anchor"></a>
<article class="method">
<h3 class="public ">getIdsAvecUnTag()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getIdsAvecUnTag(array <span class="argument">$tags</span>) : array</pre>
<p><em>Return an array of stored cache ids which match any given tags</em></p>
<p>In case of multiple tags, a logical OR is made between tags</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$tags</td>
<td><p>array of tags</p></td>
</tr>
</table>
<h4>Returns</h4>
array
&mdash; <p>array of matching any cache ids (string)</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getPourcentageRemplissage" name="method_getPourcentageRemplissage" class="anchor"></a>
<article class="method">
<h3 class="public ">getPourcentageRemplissage()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getPourcentageRemplissage() : int</pre>
<p><em>Return the filling percentage of the backend storage</em></p>
 
<h4>Returns</h4>
int
&mdash; <p>integer between 0 and 100</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getMetadonnees" name="method_getMetadonnees" class="anchor"></a>
<article class="method">
<h3 class="public ">getMetadonnees()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getMetadonnees(string <span class="argument">$id</span>) : array</pre>
<p><em>Return an array of metadatas for the given cache id</em></p>
<p>The array will include these keys :</p>
<ul>
<li>expire : the expire timestamp</li>
<li>tags : a string array of tags</li>
<li>mtime : timestamp of last modification time</li>
</ul>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>cache id</p></td>
</tr>
</table>
<h4>Returns</h4>
array
&mdash; <p>array of metadatas (false if the cache id is not found)</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_ajouterSupplementDureeDeVie" name="method_ajouterSupplementDureeDeVie" class="anchor"></a>
<article class="method">
<h3 class="public ">ajouterSupplementDureeDeVie()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">ajouterSupplementDureeDeVie(string <span class="argument">$id</span>, <span class="argument">$supplement_duree_de_vie</span>) : boolean</pre>
<p><em>Give (if possible) an extra lifetime to the given cache id</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>cache id</p></td>
</tr>
<tr>
<td></td>
<td>$supplement_duree_de_vie</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>true if ok</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getTimestampExpiration" name="method_getTimestampExpiration" class="anchor"></a>
<article class="method">
<h3 class="public ">getTimestampExpiration()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getTimestampExpiration( <span class="argument">$duree_de_vie</span>) : int</pre>
<p><em>Calcule et retourne le timestamp d&#039;expiration</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$duree_de_vie</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
int
&mdash; <p>timestamp d'expiration (unix timestamp)</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_validerIdOuTag" name="method_validerIdOuTag" class="anchor"></a>
<article class="method">
<h3 class="protected ">validerIdOuTag()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">validerIdOuTag(string <span class="argument">$chaine</span>) : void</pre>
<p><em>Valide un identifiant de cache ou un tag (securité, nom de fichiers fiables, préfixes réservés.</em></p>
<p>..)</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$chaine</td>
<td><p>Identificant de cache ou tag</p></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_validerTableauDeTags" name="method_validerTableauDeTags" class="anchor"></a>
<article class="method">
<h3 class="protected ">validerTableauDeTags()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">validerTableauDeTags(array <span class="argument">$tags</span>) : void</pre>
<p><em>Valide un tableau de tags (securité, nom de fichiers fiables, préfixes réservés.</em></p>
<p>..)</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$tags</td>
<td><p>tableau de tags</p></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_initialiserOptionsParConfig" name="method_initialiserOptionsParConfig" class="anchor"></a>
<article class="method">
<h3 class="private ">initialiserOptionsParConfig()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">initialiserOptionsParConfig()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_setOptions" name="method_setOptions" class="anchor"></a>
<article class="method">
<h3 class="private ">setOptions()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">setOptions( <span class="argument">$options</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$options</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_prefixerId" name="method_prefixerId" class="anchor"></a>
<article class="method">
<h3 class="private ">prefixerId()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">prefixerId(string <span class="argument">$id</span>) : string</pre>
<p><em>Fabrique et retourne l&#039;identifiant du cache avec son préfixe.</em></p>
<p>Vérifie l'option 'cache_id_prefixe' et retourne le nouvel id avec préfixe ou simplement l'id lui même si elle vaut null.</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>Identifiant du cache.</p></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>Identifiant du cache avec ou sans préfixe.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_executerMethodeStockage" name="method_executerMethodeStockage" class="anchor"></a>
<article class="method">
<h3 class="private ">executerMethodeStockage()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">executerMethodeStockage( <span class="argument">$methode</span>, <span class="argument">$params</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$methode</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$params</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_supprimerPrefixe" name="method_supprimerPrefixe" class="anchor"></a>
<article class="method">
<h3 class="private ">supprimerPrefixe()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">supprimerPrefixe( <span class="argument">$ids</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$ids</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_controlerEcriture" name="method_controlerEcriture" class="anchor"></a>
<article class="method">
<h3 class="private ">controlerEcriture()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">controlerEcriture( <span class="argument">$id</span>, <span class="argument">$donnees_avant_ecriture</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$id</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$donnees_avant_ecriture</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_deserialiserAutomatiquement" name="method_deserialiserAutomatiquement" class="anchor"></a>
<article class="method">
<h3 class="private ">deserialiserAutomatiquement()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">deserialiserAutomatiquement( <span class="argument">$donnees</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$donnees</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_serialiserAutomatiquement" name="method_serialiserAutomatiquement" class="anchor"></a>
<article class="method">
<h3 class="private ">serialiserAutomatiquement()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">serialiserAutomatiquement( <span class="argument">$donnees</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$donnees</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_nettoyerAutomatiquement" name="method_nettoyerAutomatiquement" class="anchor"></a>
<article class="method">
<h3 class="private ">nettoyerAutomatiquement()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">nettoyerAutomatiquement()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label">Cache.php</h3>
</div>
<div class="modal-body">
<pre data-src="../files/Cache.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/classes/Script.html
New file
0,0 → 1,1374
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1206739871"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1206739871" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content class">
<nav>
<a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
 
<h1><small>\</small>Script</h1>
<p><em>Script est une classe abstraite qui doit être implémenté par les classes éxecutant des scripts en ligne de commande.</em></p>
 
<section id="summary">
<h2>Summary</h2>
<section class="row-fluid heading">
<section class="span4">
<a href="#methods">Methods</a>
</section>
<section class="span4">
<a href="#properties">Properties</a>
</section>
<section class="span4">
<a href="#constants">Constants</a>
</section>
</section>
<section class="row-fluid public">
<section class="span4">
<a href="../classes/Script.html#method___construct" class="">__construct()</a><br />
<a href="../classes/Script.html#method_executer" class="">executer()</a><br />
</section>
<section class="span4">
<em>No public properties found</em>
</section>
<section class="span4">
<a href="../classes/Script.html#constant_MSG_LOG" class="">MSG_LOG</a><br />
<a href="../classes/Script.html#constant_MSG_ERREUR" class="">MSG_ERREUR</a><br />
<a href="../classes/Script.html#constant_MSG_AVERTISSEMENT" class="">MSG_AVERTISSEMENT</a><br />
<a href="../classes/Script.html#constant_MSG_INFO" class="">MSG_INFO</a><br />
</section>
</section>
<section class="row-fluid protected">
<section class="span4">
<a href="../classes/Script.html#method_getScriptNom" class="">getScriptNom()</a><br />
<a href="../classes/Script.html#method_getScriptChemin" class="">getScriptChemin()</a><br />
<a href="../classes/Script.html#method_getParametre" class="">getParametre()</a><br />
<a href="../classes/Script.html#method_traiterErreur" class="">traiterErreur()</a><br />
<a href="../classes/Script.html#method_traiterAvertissement" class="">traiterAvertissement()</a><br />
<a href="../classes/Script.html#method_traiterInfo" class="">traiterInfo()</a><br />
<a href="../classes/Script.html#method_formaterMsg" class="">formaterMsg()</a><br />
<a href="../classes/Script.html#method_afficherAvancement" class="">afficherAvancement()</a><br />
</section>
<section class="span4">
<a href="../classes/Script.html#property_parametres_autorises" class="">$parametres_autorises</a><br />
<a href="../classes/Script.html#property_parametres" class="">$parametres</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
<section class="row-fluid private">
<section class="span4">
<a href="../classes/Script.html#method_getMsgNiveauTxt" class="">getMsgNiveauTxt()</a><br />
<a href="../classes/Script.html#method_chargerParametresAutorises" class="">chargerParametresAutorises()</a><br />
<a href="../classes/Script.html#method_chargerParametres" class="">chargerParametres()</a><br />
<a href="../classes/Script.html#method_traiterMessage" class="">traiterMessage()</a><br />
</section>
<section class="span4">
<a href="../classes/Script.html#property_msg_niveaux_txt" class="">$msg_niveaux_txt</a><br />
<a href="../classes/Script.html#property_script_nom" class="">$script_nom</a><br />
<a href="../classes/Script.html#property_parametres_autorises_defaut" class="">$parametres_autorises_defaut</a><br />
<a href="../classes/Script.html#property_parametres_cli" class="">$parametres_cli</a><br />
<a href="../classes/Script.html#property_avancement" class="">$avancement</a><br />
<a href="../classes/Script.html#property_parametres_obligatoires" class="">$parametres_obligatoires</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
</section>
</div>
<aside class="span4 detailsbar">
<span class="label label-info">abstract</span>
<dl>
<dt>File</dt>
<dd><a href="../files/Script.php.html"><div class="path-wrapper">Script.php</div></a></dd>
<dt>Package</dt>
<dd><div class="namespace-wrapper">\Framework</div></dd>
<dt>Class hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\Script</div>
</dd>
 
<dt>See also</dt>
<dd><a href="/doc/framework/"><div class="namespace-wrapper">/doc/framework/</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
category
</th>
<td>
<p>PHP 5.2</p>
</td>
</tr>
<tr>
<th>
author
</th>
<td>
<p>Jean-Pascal MILCENT <a href="mailto:jpm@tela-botanica.org">jpm@tela-botanica.org</a></p>
<p>Delphine CAUQUIL <a href="mailto:delphine@tela-botanica.org">delphine@tela-botanica.org</a></p>
</td>
</tr>
<tr>
<th>
copyright
</th>
<td>
<p>Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)</p>
</td>
</tr>
<tr>
<th>
license
</th>
<td>
<p><a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> Licence GNU-GPL-v3</p>
<p><a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt</a> Licence CECILL-v2</p>
</td>
</tr>
<tr>
<th>
since
</th>
<td>
</td>
</tr>
<tr>
<th>
version
</th>
<td>
<p>$Id: Script.php 299 2011-01-18 14:03:46Z jpm $</p>
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="constants" name="constants"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Constants</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_MSG_LOG" name="constant_MSG_LOG" class="anchor"></a>
<article id="constant_MSG_LOG" class="constant">
<h3 class="">MSG_LOG</h3>
<pre class="signature">MSG_LOG</pre>
<p><em>Niveau de message de type LOG</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_MSG_ERREUR" name="constant_MSG_ERREUR" class="anchor"></a>
<article id="constant_MSG_ERREUR" class="constant">
<h3 class="">MSG_ERREUR</h3>
<pre class="signature">MSG_ERREUR</pre>
<p><em>Niveau de message de type ERREUR</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_MSG_AVERTISSEMENT" name="constant_MSG_AVERTISSEMENT" class="anchor"></a>
<article id="constant_MSG_AVERTISSEMENT" class="constant">
<h3 class="">MSG_AVERTISSEMENT</h3>
<pre class="signature">MSG_AVERTISSEMENT</pre>
<p><em>Niveau de message de type AVERTISSEMENT</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_MSG_INFO" name="constant_MSG_INFO" class="anchor"></a>
<article id="constant_MSG_INFO" class="constant">
<h3 class="">MSG_INFO</h3>
<pre class="signature">MSG_INFO</pre>
<p><em>Niveau de message de type INFORMATION</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="properties" name="properties"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Properties</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_parametres_autorises" name="property_parametres_autorises" class="anchor"></a>
<article class="property">
<h3 class="protected ">$parametres_autorises</h3>
<pre class="signature">$parametres_autorises : array</pre>
<p><em>Paramêtres autorisés par le script.</em></p>
<p>le tableau est de la forme suivante :</p>
<ul>
<li>clé = nom du paramêtre '-foo'</li>
<li>value = contient un nouveau tableau composé de cette façon :
<ul>
<li>booléen: true si le paramêtre est obligatoire</li>
<li>booléen ou var : true si le paramêtre nécessite un valeur à sa suite ou la valeur par défaut</li>
<li>string: description du contenu du paramêtre
Les paramêtres optionels devraient être déclaré à la fin du tableau.
Le dernier parametre du tableau peut avoir la valeur '...',
il contiendra alors l'ensemble des paramêtres suivant trouvés sur la ligne de commande.</li>
</ul>
</li>
</ul>
 
<h4>Type</h4>
array
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_parametres" name="property_parametres" class="anchor"></a>
<article class="property">
<h3 class="protected ">$parametres</h3>
<pre class="signature">$parametres : array</pre>
<p><em>Contient le tableau des paramètres disponible après vérification :
le tableau est de la forme suivante :
- clé = nom du paramêtre &#039;-foo&#039;
- valeur = la valeur récupérée sur la ligne de commande</em></p>
 
<h4>Type</h4>
array
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_msg_niveaux_txt" name="property_msg_niveaux_txt" class="anchor"></a>
<article class="property">
<h3 class="private ">$msg_niveaux_txt</h3>
<pre class="signature">$msg_niveaux_txt</pre>
<p><em>Inititulé des différents types de message.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_script_nom" name="property_script_nom" class="anchor"></a>
<article class="property">
<h3 class="private ">$script_nom</h3>
<pre class="signature">$script_nom : string</pre>
<p><em>Le nom du script tel que passé dans la ligne de commande.</em></p>
 
<h4>Type</h4>
string
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_parametres_autorises_defaut" name="property_parametres_autorises_defaut" class="anchor"></a>
<article class="property">
<h3 class="private ">$parametres_autorises_defaut</h3>
<pre class="signature">$parametres_autorises_defaut : array</pre>
<p><em>Paramêtres par défaut disponibles pour la ligne de commande
le tableau se construit de la forme suivante :
- clé = nom du paramêtre &#039;-foo&#039;
- value = contient un nouveau tableau composé de cette façon :
- booléen: true si le paramêtre est obligatoire
- booléen ou var : true si le paramêtre nécessite un valeur à sa suite ou la valeur par défaut
- string: description du contenu du paramêtre
Les paramêtres optionels devraient être déclaré à la fin du tableau.</em></p>
<p>Le dernier parametre du tableau peut avoir la valeur '...',
il contiendra alors l'ensemble des paramêtres suivant trouvés sur la ligne de commande.</p>
 
<h4>Type</h4>
array
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_parametres_cli" name="property_parametres_cli" class="anchor"></a>
<article class="property">
<h3 class="private ">$parametres_cli</h3>
<pre class="signature">$parametres_cli : array</pre>
<p><em>Contient les valeurs des paramêtres récupérés de la ligne de commande :
le tableau se construit de la forme suivnate :
- clé = nom du paramêtre &#039;-foo&#039;
- valeur = la valeur récupérée sur la ligne de commande</em></p>
 
<h4>Type</h4>
array
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_avancement" name="property_avancement" class="anchor"></a>
<article class="property">
<h3 class="private ">$avancement</h3>
<pre class="signature">$avancement : array</pre>
<p><em>Tableau associatif permettant de stocker l&#039;avancement dans une boucle.</em></p>
<p>La clé est un md5 du message à afficher au démarrage de la boucle.</p>
 
<h4>Type</h4>
array
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_parametres_obligatoires" name="property_parametres_obligatoires" class="anchor"></a>
<article class="property">
<h3 class="private ">$parametres_obligatoires</h3>
<pre class="signature">$parametres_obligatoires</pre>
<p><em>Tableau des noms des paramètres à définir dans le fichier de config car obligatoirement nécessaire à cette classe.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="methods" name="methods"></a>
<div class="row-fluid">
<div class="span8 content class"><h2>Methods</h2></div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method___construct" name="method___construct" class="anchor"></a>
<article class="method">
<h3 class="public ">__construct()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">__construct( <span class="argument">$script_nom</span>, <span class="argument">$parametres_cli</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$script_nom</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$parametres_cli</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_executer" name="method_executer" class="anchor"></a>
<article class="method">
<h3 class="public ">executer()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">executer()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">abstract</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getScriptNom" name="method_getScriptNom" class="anchor"></a>
<article class="method">
<h3 class="protected ">getScriptNom()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getScriptNom()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getScriptChemin" name="method_getScriptChemin" class="anchor"></a>
<article class="method">
<h3 class="protected ">getScriptChemin()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getScriptChemin( <span class="argument">$doit_exister</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$doit_exister</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getParametre" name="method_getParametre" class="anchor"></a>
<article class="method">
<h3 class="protected ">getParametre()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getParametre( <span class="argument">$parametre</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$parametre</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_traiterErreur" name="method_traiterErreur" class="anchor"></a>
<article class="method">
<h3 class="protected ">traiterErreur()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">traiterErreur( <span class="argument">$message</span>, <span class="argument">$tab_arguments</span>) : \void.</pre>
<p><em>Affiche un message d&#039;erreur formaté.</em></p>
<p>Si le paramétre de verbosité (-v) vaut 1 ou plus, le message est écrit dans le fichier de log et afficher dans la console.</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$message</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$tab_arguments</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
\void.
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_traiterAvertissement" name="method_traiterAvertissement" class="anchor"></a>
<article class="method">
<h3 class="protected ">traiterAvertissement()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">traiterAvertissement( <span class="argument">$message</span>, <span class="argument">$tab_arguments</span>) : \void.</pre>
<p><em>Affiche un message d&#039;avertissement formaté.</em></p>
<p>Si le paramétre de verbosité (-v) vaut 1, le message est écrit dans le fichier de log.
Si le paramétre de verbosité (-v) vaut 2 ou plus, le message est écrit dans le fichier de log et afficher dans la console.</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$message</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$tab_arguments</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
\void.
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_traiterInfo" name="method_traiterInfo" class="anchor"></a>
<article class="method">
<h3 class="protected ">traiterInfo()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">traiterInfo( <span class="argument">$message</span>, <span class="argument">$tab_arguments</span>) : \void.</pre>
<p><em>Retourne un message d&#039;information formaté.</em></p>
<p>Si le paramétre de verbosité (-v) vaut 1 ou 2 , le message est écrit dans le fichier de log.
Si le paramétre de verbosité (-v) vaut 3 ou plus, le message est écrit dans le fichier de log et afficher dans la console.</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$message</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$tab_arguments</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
\void.
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_formaterMsg" name="method_formaterMsg" class="anchor"></a>
<article class="method">
<h3 class="protected ">formaterMsg()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">formaterMsg( <span class="argument">$message</span>, <span class="argument">$tab_arguments</span>, <span class="argument">$niveau</span>) : string</pre>
<p><em>Retourne un message d&#039;information formaté.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$message</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$tab_arguments</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$niveau</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>le message d'erreur formaté.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_afficherAvancement" name="method_afficherAvancement" class="anchor"></a>
<article class="method">
<h3 class="protected ">afficherAvancement()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">afficherAvancement( <span class="argument">$message</span>, <span class="argument">$depart</span>) : void</pre>
<p><em>Utiliser cette méthode dans une boucle pour afficher un message suivi du nombre de tour de boucle effectué.</em></p>
<p>Vous devrez vous même gérer le retour à la ligne à la sortie de la boucle.</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$message</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$depart</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getMsgNiveauTxt" name="method_getMsgNiveauTxt" class="anchor"></a>
<article class="method">
<h3 class="private ">getMsgNiveauTxt()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getMsgNiveauTxt( <span class="argument">$niveau</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$niveau</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_chargerParametresAutorises" name="method_chargerParametresAutorises" class="anchor"></a>
<article class="method">
<h3 class="private ">chargerParametresAutorises()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">chargerParametresAutorises()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_chargerParametres" name="method_chargerParametres" class="anchor"></a>
<article class="method">
<h3 class="private ">chargerParametres()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">chargerParametres()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_traiterMessage" name="method_traiterMessage" class="anchor"></a>
<article class="method">
<h3 class="private ">traiterMessage()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">traiterMessage( <span class="argument">$message</span>, <span class="argument">$tab_arguments</span>, <span class="argument">$niveau</span>) : \void.</pre>
<p><em>Retourne un message formaté en le stockant dans un fichier de log si nécessaire.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$message</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$tab_arguments</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$niveau</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
\void.
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label">Script.php</h3>
</div>
<div class="modal-body">
<pre data-src="../files/Script.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/classes/Config.html
New file
0,0 → 1,1099
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-532744172"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-532744172" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content class">
<nav>
<a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
 
<h1><small>\</small>Config</h1>
<p><em>Config permet de charger automatiquement les fichiers ini du Framework et de l&#039;application.</em></p>
<p>Elle offre l'accès en lecture seule aux paramètres de config.
C'est une Singleton.
Si vous avez besoin de modifier dynamiquement des paramètres de configuration, utiliser le @see Registe, il est fait pour ça.</p>
 
<section id="summary">
<h2>Summary</h2>
<section class="row-fluid heading">
<section class="span4">
<a href="#methods">Methods</a>
</section>
<section class="span4">
<a href="#properties">Properties</a>
</section>
<section class="span4">
<a href="#constants">Constants</a>
</section>
</section>
<section class="row-fluid public">
<section class="span4">
<a href="../classes/Config.html#method_charger" class="">charger()</a><br />
<a href="../classes/Config.html#method_get" class="">get()</a><br />
<a href="../classes/Config.html#method_existe" class="">existe()</a><br />
<a href="../classes/Config.html#method_verifierPresenceParametres" class="">verifierPresenceParametres()</a><br />
</section>
<section class="span4">
<em>No public properties found</em>
</section>
<section class="span4">
<em>No constants found</em>
</section>
</section>
<section class="row-fluid protected">
<section class="span4">
<em>No protected methods found</em>
</section>
<section class="span4">
<em>No protected properties found</em>
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
<section class="row-fluid private">
<section class="span4">
<a href="../classes/Config.html#method___construct" class="">__construct()</a><br />
<a href="../classes/Config.html#method_chargerFichierContexte" class="">chargerFichierContexte()</a><br />
<a href="../classes/Config.html#method_parserFichierIni" class="">parserFichierIni()</a><br />
<a href="../classes/Config.html#method_fusionner" class="">fusionner()</a><br />
<a href="../classes/Config.html#method_getValeur" class="">getValeur()</a><br />
<a href="../classes/Config.html#method_existeValeur" class="">existeValeur()</a><br />
<a href="../classes/Config.html#method_verifierCreationInstance" class="">verifierCreationInstance()</a><br />
<a href="../classes/Config.html#method_analyserTableauIni" class="">analyserTableauIni()</a><br />
<a href="../classes/Config.html#method_evaluerCle" class="">evaluerCle()</a><br />
<a href="../classes/Config.html#method_evaluerReferences" class="">evaluerReferences()</a><br />
<a href="../classes/Config.html#method_evaluerPhp" class="">evaluerPhp()</a><br />
</section>
<section class="span4">
<a href="../classes/Config.html#property_instance" class="">$instance</a><br />
<a href="../classes/Config.html#property_parametres" class="">$parametres</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
</section>
</div>
<aside class="span4 detailsbar">
<dl>
<dt>File</dt>
<dd><a href="../files/Config.php.html"><div class="path-wrapper">Config.php</div></a></dd>
<dt>Package</dt>
<dd><div class="namespace-wrapper">\Framework</div></dd>
<dt>Class hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\Config</div>
</dd>
 
<dt>See also</dt>
<dd><a href="/doc/framework/"><div class="namespace-wrapper">/doc/framework/</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
category
</th>
<td>
<p>PHP 5.2</p>
</td>
</tr>
<tr>
<th>
author
</th>
<td>
<p>Jean-Pascal MILCENT <a href="mailto:jpm@tela-botanica.org">jpm@tela-botanica.org</a></p>
</td>
</tr>
<tr>
<th>
copyright
</th>
<td>
<p>Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)</p>
</td>
</tr>
<tr>
<th>
license
</th>
<td>
<p><a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> Licence GNU-GPL-v3</p>
<p><a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt</a> Licence CECILL-v2</p>
</td>
</tr>
<tr>
<th>
version
</th>
<td>
<p>$Id: Config.php 447 2013-12-19 10:52:37Z jpm $</p>
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="properties" name="properties"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Properties</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_instance" name="property_instance" class="anchor"></a>
<article class="property">
<h3 class="private ">$instance</h3>
<pre class="signature">$instance</pre>
<p><em>Instance de la classe pointant sur elle même (pour le pattern singleton).</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_parametres" name="property_parametres" class="anchor"></a>
<article class="property">
<h3 class="private ">$parametres</h3>
<pre class="signature">$parametres</pre>
<p><em>Paramètres de configuration.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="methods" name="methods"></a>
<div class="row-fluid">
<div class="span8 content class"><h2>Methods</h2></div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_charger" name="method_charger" class="anchor"></a>
<article class="method">
<h3 class="public ">charger()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">charger(string <span class="argument">$fichier_ini</span>) : array</pre>
<p><em>Charge un fichier ini dans le tableau des paramètres de l&#039;appli.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$fichier_ini</td>
<td><p>le nom du fichier à charger</p></td>
</tr>
</table>
<h4>Returns</h4>
array
&mdash; <p>le fichier ini parsé</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_get" name="method_get" class="anchor"></a>
<article class="method">
<h3 class="public ">get()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">get(string <span class="argument">$param</span>) : string</pre>
<p><em>Accesseur pour la valeur d&#039;un paramètre.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$param</td>
<td><p>le nom du paramètre</p></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>la valeur du paramètre</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_existe" name="method_existe" class="anchor"></a>
<article class="method">
<h3 class="public ">existe()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">existe(string <span class="argument">$param</span>) : boolean</pre>
<p><em>Vérifie si la valeur d&#039;un paramètre existe.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$param</td>
<td><p>le nom du paramètre</p></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>vrai si le paramètre existe, false sinon</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_verifierPresenceParametres" name="method_verifierPresenceParametres" class="anchor"></a>
<article class="method">
<h3 class="public ">verifierPresenceParametres()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">verifierPresenceParametres(array <span class="argument">$parametres</span>) : boolean</pre>
<p><em>Vérifie que tous les paramêtres de config nécessaires au fonctionnement d&#039;une classe existe dans les fichiers
de configurations.</em></p>
<p>L'utilisation de cette méthode depuis la classe Config évite de faire appel à une classe supplémentaire.</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$parametres</td>
<td><p>tableau des noms des paramètres de la config à verifier.</p></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>true si tous les paramétres sont présents sinon false.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method___construct" name="method___construct" class="anchor"></a>
<article class="method">
<h3 class="private ">__construct()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">__construct()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_chargerFichierContexte" name="method_chargerFichierContexte" class="anchor"></a>
<article class="method">
<h3 class="private ">chargerFichierContexte()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">chargerFichierContexte(string <span class="argument">$contexte</span>)</pre>
<p><em>Charge le fichier de config correspondant au contexte</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$contexte</td>
<td><p>le contexte</p></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_parserFichierIni" name="method_parserFichierIni" class="anchor"></a>
<article class="method">
<h3 class="private ">parserFichierIni()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">parserFichierIni(string <span class="argument">$fichier_ini</span>) : array</pre>
<p><em>Parse le fichier ini donné en paramètre</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$fichier_ini</td>
<td><p>nom du fichier ini à parser</p></td>
</tr>
</table>
<h4>Returns</h4>
array
&mdash; <p>tableau contenant les paramètres du fichier ini</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_fusionner" name="method_fusionner" class="anchor"></a>
<article class="method">
<h3 class="private ">fusionner()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">fusionner(array <span class="argument">$ini</span>)</pre>
<p><em>Fusionne un tableau de paramètres avec le tableau de paramètres global</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$ini</td>
<td><p>le tableau à fusionner</p></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getValeur" name="method_getValeur" class="anchor"></a>
<article class="method">
<h3 class="private ">getValeur()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getValeur(string <span class="argument">$param</span>, array <span class="argument">$config</span>) : string</pre>
<p><em>Renvoie la valeur demandée grâce une chaîne de paramètres</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$param</td>
<td><p>la chaine de paramètres</p></td>
</tr>
<tr>
<td>array</td>
<td>$config</td>
<td><p>le tableau de paramètre</p></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>la valeur de la chaine demandée</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_existeValeur" name="method_existeValeur" class="anchor"></a>
<article class="method">
<h3 class="private ">existeValeur()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">existeValeur(string <span class="argument">$param</span>, <span class="argument">$config</span>)</pre>
<p><em>Teste si param existe dans le tableau config</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$param</td>
<td><p>nom du paramètre</p></td>
</tr>
<tr>
<td></td>
<td>$config</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_verifierCreationInstance" name="method_verifierCreationInstance" class="anchor"></a>
<article class="method">
<h3 class="private ">verifierCreationInstance()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">verifierCreationInstance()</pre>
<p><em>Vérifie si l&#039;instance de classe à été crée, si non la crée</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_analyserTableauIni" name="method_analyserTableauIni" class="anchor"></a>
<article class="method">
<h3 class="private ">analyserTableauIni()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">analyserTableauIni(array <span class="argument">$config</span>) : array</pre>
<p><em>Analyse un tableau de paramètres.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$config</td>
<td><p>le tableau de paramètres</p></td>
</tr>
</table>
<h4>Returns</h4>
array
&mdash; <p>le tableau analysé</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_evaluerCle" name="method_evaluerCle" class="anchor"></a>
<article class="method">
<h3 class="private ">evaluerCle()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">evaluerCle(array <span class="argument">$config</span>, string <span class="argument">$cle</span>, string <span class="argument">$valeur</span>)</pre>
<p><em>Dans le cas des chaine de configuration à sous clé (ex.: cle.souscle)
évalue les valeurs correspondantes et crée les sous tableaux associés.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$config</td>
<td><p>tableau de configuration (par référence)</p></td>
</tr>
<tr>
<td>string</td>
<td>$cle</td>
<td><p>la cle dans le tableau</p></td>
</tr>
<tr>
<td>string</td>
<td>$valeur</td>
<td><p>la valeur à affecter</p></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_evaluerReferences" name="method_evaluerReferences" class="anchor"></a>
<article class="method">
<h3 class="private ">evaluerReferences()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">evaluerReferences(array <span class="argument">$config</span>, string <span class="argument">$cle</span>)</pre>
<p><em>Évalue les valeurs de références à une clé dans le tableau config (cas du ref:cle).</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$config</td>
<td><p>tableau de configuration</p></td>
</tr>
<tr>
<td>string</td>
<td>$cle</td>
<td><p>la clé dont il faut évaluer les références</p></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_evaluerPhp" name="method_evaluerPhp" class="anchor"></a>
<article class="method">
<h3 class="private ">evaluerPhp()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">evaluerPhp(array <span class="argument">$config</span>, string <span class="argument">$cle</span>)</pre>
<p><em>Évalue le code php contenu dans un clé tu tableau config.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$config</td>
<td><p>tableau de configuration (par référence)</p></td>
</tr>
<tr>
<td>string</td>
<td>$cle</td>
<td><p>le clé du tableau dont il faut évaluer la valeur</p></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label">Config.php</h3>
</div>
<div class="modal-body">
<pre data-src="../files/Config.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/classes/Encodage.html
New file
0,0 → 1,476
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-405020446"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-405020446" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content class">
<nav>
<a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
 
<h1><small>\</small>Encodage</h1>
<p><em>Classe fournissant des méthodes statiques concernant l&#039;encodage et le décodage des caractères de variable.</em></p>
 
<section id="summary">
<h2>Summary</h2>
<section class="row-fluid heading">
<section class="span4">
<a href="#methods">Methods</a>
</section>
<section class="span4">
<a href="#properties">Properties</a>
</section>
<section class="span4">
<a href="#constants">Constants</a>
</section>
</section>
<section class="row-fluid public">
<section class="span4">
<a href="../classes/Encodage.html#method_encoderEnUtf8" class="">encoderEnUtf8()</a><br />
<a href="../classes/Encodage.html#method_detecterUtf8" class="">detecterUtf8()</a><br />
</section>
<section class="span4">
<em>No public properties found</em>
</section>
<section class="span4">
<em>No constants found</em>
</section>
</section>
<section class="row-fluid protected">
<section class="span4">
<em>No protected methods found</em>
</section>
<section class="span4">
<em>No protected properties found</em>
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
<section class="row-fluid private">
<section class="span4">
<em>No private methods found</em>
</section>
<section class="span4">
<em>No private properties found</em>
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
</section>
</div>
<aside class="span4 detailsbar">
<dl>
<dt>File</dt>
<dd><a href="../files/utilitaires.Encodage.php.html"><div class="path-wrapper">utilitaires/Encodage.php</div></a></dd>
<dt>Package</dt>
<dd><div class="namespace-wrapper">\Utilitaire</div></dd>
<dt>Class hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\Encodage</div>
</dd>
 
<dt>See also</dt>
<dd><a href="/doc/framework/"><div class="namespace-wrapper">/doc/framework/</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
category
</th>
<td>
<p>PHP 5.2</p>
</td>
</tr>
<tr>
<th>
author
</th>
<td>
<p>Jean-Pascal MILCENT <a href="mailto:jpm@tela-botanica.org">jpm@tela-botanica.org</a></p>
</td>
</tr>
<tr>
<th>
copyright
</th>
<td>
<p>Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)</p>
</td>
</tr>
<tr>
<th>
license
</th>
<td>
<p><a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> Licence GNU-GPL-v3</p>
<p><a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt</a> Licence CECILL-v2</p>
</td>
</tr>
<tr>
<th>
version
</th>
<td>
<p>$Id: Encodage.php 299 2011-01-18 14:03:46Z jpm $</p>
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="methods" name="methods"></a>
<div class="row-fluid">
<div class="span8 content class"><h2>Methods</h2></div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_encoderEnUtf8" name="method_encoderEnUtf8" class="anchor"></a>
<article class="method">
<h3 class="public ">encoderEnUtf8()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">encoderEnUtf8( <span class="argument">$variable</span>, <span class="argument">$encodage</span>) : mixed</pre>
<p><em>Méthode permettant d&#039;encoder par défaut de ISO-8859-15 vers UTF-8 une variable ou un tableau de variables.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$variable</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$encodage</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
mixed
&mdash; <p>la chaine ou le tableau encodé en UTF-8.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_detecterUtf8" name="method_detecterUtf8" class="anchor"></a>
<article class="method">
<h3 class="public ">detecterUtf8()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">detecterUtf8( <span class="argument">$chaine</span>) : bool</pre>
<p><em>Méthode permettant de détecter réellement l&#039;encodage UTF-8.</em></p>
<p>mb_detect_encoding plante si la chaine de caractère se termine par un caractère accentué.
Provient de PHPDIG.</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$chaine</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
bool
&mdash; <p>true si c'est de UTF-8, sinon false.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label">Encodage.php</h3>
</div>
<div class="modal-body">
<pre data-src="../files/utilitaires/Encodage.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/classes/GestionnaireException.html
New file
0,0 → 1,1253
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1726026430"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1726026430" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content class">
<nav>
<a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
 
<h1><small>\</small>GestionnaireException</h1>
<p><em>Classe de gestion des exceptions.</em></p>
<p>C'est un Singleton.</p>
 
<section id="summary">
<h2>Summary</h2>
<section class="row-fluid heading">
<section class="span4">
<a href="#methods">Methods</a>
</section>
<section class="span4">
<a href="#properties">Properties</a>
</section>
<section class="span4">
<a href="#constants">Constants</a>
</section>
</section>
<section class="row-fluid public">
<section class="span4">
<a href="../classes/GestionnaireException.html#method_initialiser" class="">initialiser()</a><br />
<a href="../classes/GestionnaireException.html#method_configurer" class="">configurer()</a><br />
<a href="../classes/GestionnaireException.html#method_getExceptionsNbre" class="">getExceptionsNbre()</a><br />
<a href="../classes/GestionnaireException.html#method_getContexte" class="">getContexte()</a><br />
<a href="../classes/GestionnaireException.html#method_setContexte" class="">setContexte()</a><br />
<a href="../classes/GestionnaireException.html#method_gererException" class="">gererException()</a><br />
<a href="../classes/GestionnaireException.html#method_gererErreur" class="">gererErreur()</a><br />
<a href="../classes/GestionnaireException.html#method_getExceptions" class="deprecated">getExceptions()</a><br />
<a href="../classes/GestionnaireException.html#method_getExceptionsFormatees" class="">getExceptionsFormatees()</a><br />
<a href="../classes/GestionnaireException.html#method_getExceptionsTriees" class="">getExceptionsTriees()</a><br />
<a href="../classes/GestionnaireException.html#method_formaterExceptionDebug" class="">formaterExceptionDebug()</a><br />
<a href="../classes/GestionnaireException.html#method_formaterExceptionTxt" class="">formaterExceptionTxt()</a><br />
<a href="../classes/GestionnaireException.html#method_formaterExceptionXhtml" class="">formaterExceptionXhtml()</a><br />
<a href="../classes/GestionnaireException.html#method___destruct" class="">__destruct()</a><br />
</section>
<section class="span4">
<em>No public properties found</em>
</section>
<section class="span4">
<a href="../classes/GestionnaireException.html#constant_MODE_CLI" class="">MODE_CLI</a><br />
</section>
</section>
<section class="row-fluid protected">
<section class="span4">
<em>No protected methods found</em>
</section>
<section class="span4">
<em>No protected properties found</em>
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
<section class="row-fluid private">
<section class="span4">
<a href="../classes/GestionnaireException.html#method_loggerException" class="">loggerException()</a><br />
</section>
<section class="span4">
<a href="../classes/GestionnaireException.html#property_exceptions" class="">$exceptions</a><br />
<a href="../classes/GestionnaireException.html#property_contexte" class="">$contexte</a><br />
<a href="../classes/GestionnaireException.html#property_logger" class="">$logger</a><br />
<a href="../classes/GestionnaireException.html#property_afficher" class="">$afficher</a><br />
<a href="../classes/GestionnaireException.html#property_mode" class="">$mode</a><br />
<a href="../classes/GestionnaireException.html#property_parametres_obligatoires" class="">$parametres_obligatoires</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
</section>
</div>
<aside class="span4 detailsbar">
<dl>
<dt>File</dt>
<dd><a href="../files/GestionnaireException.php.html"><div class="path-wrapper">GestionnaireException.php</div></a></dd>
<dt>Package</dt>
<dd><div class="namespace-wrapper">\Framework</div></dd>
<dt>Class hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\GestionnaireException</div>
</dd>
 
<dt>See also</dt>
<dd><a href="/doc/framework/"><div class="namespace-wrapper">/doc/framework/</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
category
</th>
<td>
<p>PHP 5.2</p>
</td>
</tr>
<tr>
<th>
author
</th>
<td>
<p>Aurélien PERONNET <a href="mailto:aurelien@tela-botanica.org">aurelien@tela-botanica.org</a></p>
<p>Jean-Pascal MILCENT <a href="mailto:jmp@tela-botanica.org">jmp@tela-botanica.org</a></p>
</td>
</tr>
<tr>
<th>
copyright
</th>
<td>
<p>Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)</p>
</td>
</tr>
<tr>
<th>
license
</th>
<td>
<p><a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt</a> Licence CECILL</p>
<p><a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> Licence GNU-GPL</p>
</td>
</tr>
<tr>
<th>
version
</th>
<td>
<p>$Id: GestionnaireException.php 369 2011-10-03 12:47:17Z jpm $$</p>
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="constants" name="constants"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Constants</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_MODE_CLI" name="constant_MODE_CLI" class="anchor"></a>
<article id="constant_MODE_CLI" class="constant">
<h3 class="">MODE_CLI</h3>
<pre class="signature">MODE_CLI</pre>
<p><em></em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="properties" name="properties"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Properties</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_exceptions" name="property_exceptions" class="anchor"></a>
<article class="property">
<h3 class="private ">$exceptions</h3>
<pre class="signature">$exceptions</pre>
<p><em>Liste des exceptions enregistrées</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_contexte" name="property_contexte" class="anchor"></a>
<article class="property">
<h3 class="private ">$contexte</h3>
<pre class="signature">$contexte</pre>
<p><em>Détermine si l&#039;on affiche ou non le contexte</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_logger" name="property_logger" class="anchor"></a>
<article class="property">
<h3 class="private ">$logger</h3>
<pre class="signature">$logger</pre>
<p><em>Détermine si l&#039;on loggue ou non les erreurs</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_afficher" name="property_afficher" class="anchor"></a>
<article class="property">
<h3 class="private ">$afficher</h3>
<pre class="signature">$afficher</pre>
<p><em>Détermine si l&#039;affichage des erreurs est forcé (true) ou pas (false) à la destruction de la classe</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_mode" name="property_mode" class="anchor"></a>
<article class="property">
<h3 class="private ">$mode</h3>
<pre class="signature">$mode</pre>
<p><em>Definit si php est lancé en ligne de commande ou en mode serveur</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_parametres_obligatoires" name="property_parametres_obligatoires" class="anchor"></a>
<article class="property">
<h3 class="private ">$parametres_obligatoires</h3>
<pre class="signature">$parametres_obligatoires</pre>
<p><em>Tableau des noms des paramètres à définir dans le fichier de config car obligatoirement nécessaire à cette classe.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="methods" name="methods"></a>
<div class="row-fluid">
<div class="span8 content class"><h2>Methods</h2></div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_initialiser" name="method_initialiser" class="anchor"></a>
<article class="method">
<h3 class="public ">initialiser()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">initialiser()</pre>
<p><em>Initialise le Gestionnaire d&#039;exceptions et d&#039;erreur sans tenir comptes des paramêtres de config.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_configurer" name="method_configurer" class="anchor"></a>
<article class="method">
<h3 class="public ">configurer()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">configurer()</pre>
<p><em>Configure le Gestionnaire d&#039;exceptions et d&#039;erreur à partir des paramêtres de config.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getExceptionsNbre" name="method_getExceptionsNbre" class="anchor"></a>
<article class="method">
<h3 class="public ">getExceptionsNbre()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getExceptionsNbre() : int</pre>
<p><em>Renvoie le nombre d&#039;exceptions et d&#039;erreurs levées.</em></p>
 
<h4>Returns</h4>
int
&mdash; <p>le nombre d'exception actuellement levées</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
<dt>See also</dt>
<dd><a href=""><span class="namespace-wrapper">pour obtenir les exceptions formatées.</span></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
since
</th>
<td>
0.3
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getContexte" name="method_getContexte" class="anchor"></a>
<article class="method">
<h3 class="public ">getContexte()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getContexte() : bool</pre>
<p><em>Renvoie le booleen définissant si l&#039;on affiche le contexte ou non</em></p>
 
<h4>Returns</h4>
bool
&mdash; <p>true si on affiche le contexte sinon false.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_setContexte" name="method_setContexte" class="anchor"></a>
<article class="method">
<h3 class="public ">setContexte()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">setContexte( <span class="argument">$contexte</span>)</pre>
<p><em>Definit si l&#039;on veut afficher le contexte ou non</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$contexte</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_gererException" name="method_gererException" class="anchor"></a>
<article class="method">
<h3 class="public ">gererException()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">gererException(\Exception <span class="argument">$e</span>)</pre>
<p><em>Fonction de gestion des exceptions, remplace le handler par défaut.</em></p>
<p>Si une boucle génère de multiple exception (ou erreur) identique une seule sera stockée.</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>\Exception</td>
<td>$e</td>
<td><p>l'exception à traiter</p></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_gererErreur" name="method_gererErreur" class="anchor"></a>
<article class="method">
<h3 class="public ">gererErreur()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">gererErreur(int <span class="argument">$niveau</span>, string <span class="argument">$message</span>, string <span class="argument">$fichier</span>, int <span class="argument">$ligne</span>, string <span class="argument">$contexte</span>)</pre>
<p><em>Gère les erreurs en les convertissant en exceptions (remplace la fonction gestion d&#039;erreurs native de php)</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>int</td>
<td>$niveau</td>
<td><p>le niveau de l'erreur</p></td>
</tr>
<tr>
<td>string</td>
<td>$message</td>
<td><p>le message associé à l'erreur</p></td>
</tr>
<tr>
<td>string</td>
<td>$fichier</td>
<td><p>le nom du fichier où l'erreur s'est produite</p></td>
</tr>
<tr>
<td>int</td>
<td>$ligne</td>
<td><p>la ligne où l'erreur s'est produite</p></td>
</tr>
<tr>
<td>string</td>
<td>$contexte</td>
<td><p>le contexte associé à l'erreur</p></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getExceptions" name="method_getExceptions" class="anchor"></a>
<article class="method">
<h3 class="public deprecated">getExceptions()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getExceptions() : string</pre>
<p><em>Renvoie les exceptions au format (X)HTML ou bien au format texte suivant le mode d&#039;utilisation de PHP.</em></p>
 
<h4>Returns</h4>
string
&mdash; <p>les exceptions formatées en texte ou (X)HTML.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<aside class="alert alert-block alert-error">
<h4>Deprecated</h4>
</aside>
<dl>
<dt>See also</dt>
<dd><a href=""><span class="namespace-wrapper"></span></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
since
</th>
<td>
0.3
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getExceptionsFormatees" name="method_getExceptionsFormatees" class="anchor"></a>
<article class="method">
<h3 class="public ">getExceptionsFormatees()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getExceptionsFormatees() : string</pre>
<p><em>Renvoie les exceptions au format (X)HTML ou bien au format texte suivant le mode d&#039;utilisation de PHP.</em></p>
 
<h4>Returns</h4>
string
&mdash; <p>les exceptions formatées en texte ou (X)HTML.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
since
</th>
<td>
0.3
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getExceptionsTriees" name="method_getExceptionsTriees" class="anchor"></a>
<article class="method">
<h3 class="public ">getExceptionsTriees()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getExceptionsTriees() : array</pre>
<p><em>Renvoie le tableau d&#039;objets Exception générées par le script PHP triées du niveau de sévérité le plus élevé au moins élevé.</em></p>
<p>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>
array
&mdash; <p>le tableau trié d'objet Exception.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
since
</th>
<td>
0.3
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_formaterExceptionDebug" name="method_formaterExceptionDebug" class="anchor"></a>
<article class="method">
<h3 class="public ">formaterExceptionDebug()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">formaterExceptionDebug(\Exception <span class="argument">$e</span>)</pre>
<p><em>Formate une exception de type Notice générée par la classe Debug.</em></p>
<p>Seul le message est gardé car les autres infos font référence à la classe Debug et non à l'endroit où
le débug est lancée.
TODO : faire en sorte d'afficher le fichier et la ligne où le débug est lancé.</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>\Exception</td>
<td>$e</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
since
</th>
<td>
0.3
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_formaterExceptionTxt" name="method_formaterExceptionTxt" class="anchor"></a>
<article class="method">
<h3 class="public ">formaterExceptionTxt()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">formaterExceptionTxt(\Exception <span class="argument">$e</span>)</pre>
<p><em>Formate en texte une exception passée en paramètre.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>\Exception</td>
<td>$e</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
since
</th>
<td>
0.3
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_formaterExceptionXhtml" name="method_formaterExceptionXhtml" class="anchor"></a>
<article class="method">
<h3 class="public ">formaterExceptionXhtml()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">formaterExceptionXhtml(\Exception <span class="argument">$e</span>)</pre>
<p><em>Formate en (X)HTML une exception passée en paramètre.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>\Exception</td>
<td>$e</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
since
</th>
<td>
0.3
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method___destruct" name="method___destruct" class="anchor"></a>
<article class="method">
<h3 class="public ">__destruct()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">__destruct()</pre>
<p><em>Lors de la destruction de la classe si des exceptions n&#039;ont pas été affichées, et si le débogage est à true, elles sont
affichées.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_loggerException" name="method_loggerException" class="anchor"></a>
<article class="method">
<h3 class="private ">loggerException()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">loggerException(\Exception <span class="argument">$e</span>)</pre>
<p><em>Logue une exception donnée sous une forme lisible si self::logger vaut true.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>\Exception</td>
<td>$e</td>
<td><p>l'exception à logger</p></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label">GestionnaireException.php</h3>
</div>
<div class="modal-body">
<pre data-src="../files/GestionnaireException.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/classes/Cli.html
New file
0,0 → 1,589
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1147235730"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1147235730" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content class">
<nav>
<a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
 
<h1><small>\</small>Cli</h1>
<p><em>CLI permet de récupérer les paramètres passés en ligne de commande pour instancier une classe héritant de la classe abstraite
Script.</em></p>
<p>Elle va déclencher l'éxecution du script via l'appel de la méthode executer().
C'est une Singleton.</p>
 
<section id="summary">
<h2>Summary</h2>
<section class="row-fluid heading">
<section class="span4">
<a href="#methods">Methods</a>
</section>
<section class="span4">
<a href="#properties">Properties</a>
</section>
<section class="span4">
<a href="#constants">Constants</a>
</section>
</section>
<section class="row-fluid public">
<section class="span4">
<a href="../classes/Cli.html#method_executer" class="">executer()</a><br />
</section>
<section class="span4">
<em>No public properties found</em>
</section>
<section class="span4">
<em>No constants found</em>
</section>
</section>
<section class="row-fluid protected">
<section class="span4">
<em>No protected methods found</em>
</section>
<section class="span4">
<em>No protected properties found</em>
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
<section class="row-fluid private">
<section class="span4">
<a href="../classes/Cli.html#method_charger" class="">charger()</a><br />
<a href="../classes/Cli.html#method_obtenirNomClasse" class="">obtenirNomClasse()</a><br />
<a href="../classes/Cli.html#method_getParametres" class="">getParametres()</a><br />
</section>
<section class="span4">
<a href="../classes/Cli.html#property_parametres_obligatoires" class="">$parametres_obligatoires</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
</section>
</div>
<aside class="span4 detailsbar">
<dl>
<dt>File</dt>
<dd><a href="../files/Cli.php.html"><div class="path-wrapper">Cli.php</div></a></dd>
<dt>Package</dt>
<dd><div class="namespace-wrapper">\Framework</div></dd>
<dt>Class hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\Cli</div>
</dd>
 
<dt>See also</dt>
<dd><a href="/doc/framework/"><div class="namespace-wrapper">/doc/framework/</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
category
</th>
<td>
<p>PHP 5.2</p>
</td>
</tr>
<tr>
<th>
author
</th>
<td>
<p>Jean-Pascal MILCENT <a href="mailto:jpm@tela-botanica.org">jpm@tela-botanica.org</a></p>
<p>Delphine CAUQUIL <a href="mailto:delphine@tela-botanica.org">delphine@tela-botanica.org</a></p>
</td>
</tr>
<tr>
<th>
copyright
</th>
<td>
<p>Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)</p>
</td>
</tr>
<tr>
<th>
license
</th>
<td>
<p><a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> Licence GNU-GPL-v3</p>
<p><a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt</a> Licence CECILL-v2</p>
</td>
</tr>
<tr>
<th>
since
</th>
<td>
</td>
</tr>
<tr>
<th>
version
</th>
<td>
<p>$Id: Cli.php 387 2011-10-28 15:57:40Z jpm $</p>
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="properties" name="properties"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Properties</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_parametres_obligatoires" name="property_parametres_obligatoires" class="anchor"></a>
<article class="property">
<h3 class="private ">$parametres_obligatoires</h3>
<pre class="signature">$parametres_obligatoires</pre>
<p><em>Tableau des noms des paramètres à définir dans le fichier de config car obligatoirement nécessaire à cette classe.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="methods" name="methods"></a>
<div class="row-fluid">
<div class="span8 content class"><h2>Methods</h2></div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_executer" name="method_executer" class="anchor"></a>
<article class="method">
<h3 class="public ">executer()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">executer() : void</pre>
<p><em>Execute la ligne de commande en récupérant le nom du script à lancer et ses paramètres.</em></p>
<p>Instancie la classe du script à lancer et appelle la méthode executer().</p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_charger" name="method_charger" class="anchor"></a>
<article class="method">
<h3 class="private ">charger()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">charger( <span class="argument">$script_nom</span>, <span class="argument">$parametres</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$script_nom</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$parametres</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_obtenirNomClasse" name="method_obtenirNomClasse" class="anchor"></a>
<article class="method">
<h3 class="private ">obtenirNomClasse()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">obtenirNomClasse( <span class="argument">$script_nom</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$script_nom</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getParametres" name="method_getParametres" class="anchor"></a>
<article class="method">
<h3 class="private ">getParametres()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getParametres( <span class="argument">$argv</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$argv</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label">Cli.php</h3>
</div>
<div class="modal-body">
<pre data-src="../files/Cli.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/classes/Fichier.html
New file
0,0 → 1,646
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1230953267"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1230953267" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content class">
<nav>
<a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
 
<h1><small>\</small>Fichier</h1>
<p><em>Classe fournissant des méthodes statiques de manipulation des fichiers.</em></p>
 
<section id="summary">
<h2>Summary</h2>
<section class="row-fluid heading">
<section class="span4">
<a href="#methods">Methods</a>
</section>
<section class="span4">
<a href="#properties">Properties</a>
</section>
<section class="span4">
<a href="#constants">Constants</a>
</section>
</section>
<section class="row-fluid public">
<section class="span4">
<a href="../classes/Fichier.html#method_creerFichier" class="">creerFichier()</a><br />
<a href="../classes/Fichier.html#method_creerFichierGzip" class="">creerFichierGzip()</a><br />
<a href="../classes/Fichier.html#method_supprimerDossier" class="">supprimerDossier()</a><br />
<a href="../classes/Fichier.html#method_convertirTaille" class="">convertirTaille()</a><br />
<a href="../classes/Fichier.html#method_getDossierTmp" class="">getDossierTmp()</a><br />
</section>
<section class="span4">
<em>No public properties found</em>
</section>
<section class="span4">
<em>No constants found</em>
</section>
</section>
<section class="row-fluid protected">
<section class="span4">
<a href="../classes/Fichier.html#method_etreAccessibleEnLectureEtEcriture" class="">etreAccessibleEnLectureEtEcriture()</a><br />
</section>
<section class="span4">
<em>No protected properties found</em>
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
<section class="row-fluid private">
<section class="span4">
<em>No private methods found</em>
</section>
<section class="span4">
<em>No private properties found</em>
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
</section>
</div>
<aside class="span4 detailsbar">
<dl>
<dt>File</dt>
<dd><a href="../files/utilitaires.Fichier.php.html"><div class="path-wrapper">utilitaires/Fichier.php</div></a></dd>
<dt>Package</dt>
<dd><div class="namespace-wrapper">\Utilitaire</div></dd>
<dt>Class hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\Fichier</div>
</dd>
 
<dt>See also</dt>
<dd><a href="/doc/framework/"><div class="namespace-wrapper">/doc/framework/</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
category
</th>
<td>
<p>PHP 5.2</p>
</td>
</tr>
<tr>
<th>
author
</th>
<td>
<p>Jean-Pascal MILCENT <a href="mailto:jpm@tela-botanica.org">jpm@tela-botanica.org</a></p>
</td>
</tr>
<tr>
<th>
copyright
</th>
<td>
<p>Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)</p>
</td>
</tr>
<tr>
<th>
license
</th>
<td>
<p><a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> Licence GNU-GPL-v3</p>
<p><a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt</a> Licence CECILL-v2</p>
</td>
</tr>
<tr>
<th>
version
</th>
<td>
<p>$Id: Fichier.php 352 2011-07-21 10:25:56Z jpm $</p>
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="methods" name="methods"></a>
<div class="row-fluid">
<div class="span8 content class"><h2>Methods</h2></div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_creerFichier" name="method_creerFichier" class="anchor"></a>
<article class="method">
<h3 class="public ">creerFichier()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">creerFichier( <span class="argument">$fichier</span>, <span class="argument">$contenu</span>) : string</pre>
<p><em>Créer et stocke du contenu dans un fichier.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$fichier</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$contenu</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>true en cas de succès sinon false.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_creerFichierGzip" name="method_creerFichierGzip" class="anchor"></a>
<article class="method">
<h3 class="public ">creerFichierGzip()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">creerFichierGzip( <span class="argument">$fichier</span>, <span class="argument">$contenu</span>) : string</pre>
<p><em>Créer et stocke du contenu dans un fichier compressé en Gzip.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$fichier</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$contenu</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>true en cas de succès sinon false.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_supprimerDossier" name="method_supprimerDossier" class="anchor"></a>
<article class="method">
<h3 class="public ">supprimerDossier()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">supprimerDossier(string <span class="argument">$dossier</span>) : void</pre>
<p><em>Supprime récursivement un dossier et tout son contenu.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$dossier</td>
<td><p>le chemin vers le dossier à supprimer.</p></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_convertirTaille" name="method_convertirTaille" class="anchor"></a>
<article class="method">
<h3 class="public ">convertirTaille()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">convertirTaille(integer <span class="argument">$taille</span>) : string</pre>
<p><em>Convertion d&#039;un nombre d&#039;octet en kB, MB, GB.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>integer</td>
<td>$taille</td>
<td><p>la taille en octet à convertir</p></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>la chaine représentant la taille en octets.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
<dt>See also</dt>
<dd><a href="http://forum.webmaster-rank.info/developpement-site/code-taille-memoire-d-une-variable-en-php-t1344.html"><span class="namespace-wrapper">http://forum.webmaster-rank.info/developpement-site/code-taille-memoire-d-une-variable-en-php-t1344.html</span></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getDossierTmp" name="method_getDossierTmp" class="anchor"></a>
<article class="method">
<h3 class="public ">getDossierTmp()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getDossierTmp() : string|false</pre>
<p><em>Détermine le dossier système temporaire et détecte si nous y avons accès en lecture et écriture.</em></p>
<p>Inspiré de Zend_File_Transfer_Adapter_Abstract &amp; Zend_Cache</p>
 
<h4>Returns</h4>
string|false
&mdash; <p>le chemine vers le dossier temporaire ou false en cas d'échec.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_etreAccessibleEnLectureEtEcriture" name="method_etreAccessibleEnLectureEtEcriture" class="anchor"></a>
<article class="method">
<h3 class="protected ">etreAccessibleEnLectureEtEcriture()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">etreAccessibleEnLectureEtEcriture(mixed <span class="argument">$ressource</span>) : boolean</pre>
<p><em>Vérifie si le fichier ou dossier est accessible en lecture et écriture.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>mixed</td>
<td>$ressource</td>
<td><p>chemin vers le dossier ou fichier à tester</p></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>true si la ressource est accessible en lecture et écriture.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label">Fichier.php</h3>
</div>
<div class="modal-body">
<pre data-src="../files/utilitaires/Fichier.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/classes/RestClient.html
New file
0,0 → 1,1232
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1241880162"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1241880162" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content class">
<nav>
<a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
 
<h1><small>\</small>RestClient</h1>
<p><em>Classe client permettant d&#039;interroger des services web REST.</em></p>
 
<section id="summary">
<h2>Summary</h2>
<section class="row-fluid heading">
<section class="span4">
<a href="#methods">Methods</a>
</section>
<section class="span4">
<a href="#properties">Properties</a>
</section>
<section class="span4">
<a href="#constants">Constants</a>
</section>
</section>
<section class="row-fluid public">
<section class="span4">
<a href="../classes/RestClient.html#method_getReponseEntetes" class="">getReponseEntetes()</a><br />
<a href="../classes/RestClient.html#method_getParametre" class="">getParametre()</a><br />
<a href="../classes/RestClient.html#method_ajouterParametre" class="">ajouterParametre()</a><br />
<a href="../classes/RestClient.html#method_supprimerParametre" class="">supprimerParametre()</a><br />
<a href="../classes/RestClient.html#method_nettoyerParametres" class="">nettoyerParametres()</a><br />
<a href="../classes/RestClient.html#method_consulter" class="">consulter()</a><br />
<a href="../classes/RestClient.html#method_ajouter" class="">ajouter()</a><br />
<a href="../classes/RestClient.html#method_modifier" class="">modifier()</a><br />
<a href="../classes/RestClient.html#method_supprimer" class="">supprimer()</a><br />
<a href="../classes/RestClient.html#method_envoyerCurlRequete" class="">envoyerCurlRequete()</a><br />
<a href="../classes/RestClient.html#method_getCaller" class="">getCaller()</a><br />
<a href="../classes/RestClient.html#method_envoyerRequete" class="">envoyerRequete()</a><br />
</section>
<section class="span4">
<em>No public properties found</em>
</section>
<section class="span4">
<a href="../classes/RestClient.html#constant_HTTP_URL_REQUETE_SEPARATEUR" class="">HTTP_URL_REQUETE_SEPARATEUR</a><br />
<a href="../classes/RestClient.html#constant_HTTP_URL_REQUETE_CLE_VALEUR_SEPARATEUR" class="">HTTP_URL_REQUETE_CLE_VALEUR_SEPARATEUR</a><br />
</section>
</section>
<section class="row-fluid protected">
<section class="span4">
<em>No protected methods found</em>
</section>
<section class="span4">
<a href="../classes/RestClient.html#property_parametres" class="">$parametres</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
<section class="row-fluid private">
<section class="span4">
<a href="../classes/RestClient.html#method_traiterUrlParametres" class="">traiterUrlParametres()</a><br />
<a href="../classes/RestClient.html#method_traiterEntete" class="">traiterEntete()</a><br />
<a href="../classes/RestClient.html#method_analyserEntete" class="">analyserEntete()</a><br />
<a href="../classes/RestClient.html#method_traiterEnteteDebogage" class="">traiterEnteteDebogage()</a><br />
<a href="../classes/RestClient.html#method_reinitialiser" class="">reinitialiser()</a><br />
</section>
<section class="span4">
<a href="../classes/RestClient.html#property_http_methodes" class="">$http_methodes</a><br />
<a href="../classes/RestClient.html#property_url" class="">$url</a><br />
<a href="../classes/RestClient.html#property_reponse_entetes" class="">$reponse_entetes</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
</section>
</div>
<aside class="span4 detailsbar">
<dl>
<dt>File</dt>
<dd><a href="../files/RestClient.php.html"><div class="path-wrapper">RestClient.php</div></a></dd>
<dt>Package</dt>
<dd><div class="namespace-wrapper">\Framework</div></dd>
<dt>Class hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\RestClient</div>
</dd>
 
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
category
</th>
<td>
<p>php 5.2</p>
</td>
</tr>
<tr>
<th>
author
</th>
<td>
<p>Jean-Pascal MILCENT <a href="mailto:jpm@tela-botanica.org">jpm@tela-botanica.org</a></p>
</td>
</tr>
<tr>
<th>
copyright
</th>
<td>
<p>Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)</p>
</td>
</tr>
<tr>
<th>
license
</th>
<td>
<p><a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt</a> Licence CECILL</p>
<p><a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> Licence GNU-GPL</p>
</td>
</tr>
<tr>
<th>
version
</th>
<td>
<p>$Id: RestClient.php 439 2013-10-14 15:48:41Z raphael $</p>
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="constants" name="constants"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Constants</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_HTTP_URL_REQUETE_SEPARATEUR" name="constant_HTTP_URL_REQUETE_SEPARATEUR" class="anchor"></a>
<article id="constant_HTTP_URL_REQUETE_SEPARATEUR" class="constant">
<h3 class="">HTTP_URL_REQUETE_SEPARATEUR</h3>
<pre class="signature">HTTP_URL_REQUETE_SEPARATEUR</pre>
<p><em></em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_HTTP_URL_REQUETE_CLE_VALEUR_SEPARATEUR" name="constant_HTTP_URL_REQUETE_CLE_VALEUR_SEPARATEUR" class="anchor"></a>
<article id="constant_HTTP_URL_REQUETE_CLE_VALEUR_SEPARATEUR" class="constant">
<h3 class="">HTTP_URL_REQUETE_CLE_VALEUR_SEPARATEUR</h3>
<pre class="signature">HTTP_URL_REQUETE_CLE_VALEUR_SEPARATEUR</pre>
<p><em></em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="properties" name="properties"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Properties</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_parametres" name="property_parametres" class="anchor"></a>
<article class="property">
<h3 class="protected ">$parametres</h3>
<pre class="signature">$parametres</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_http_methodes" name="property_http_methodes" class="anchor"></a>
<article class="property">
<h3 class="private ">$http_methodes</h3>
<pre class="signature">$http_methodes</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_url" name="property_url" class="anchor"></a>
<article class="property">
<h3 class="private ">$url</h3>
<pre class="signature">$url</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_reponse_entetes" name="property_reponse_entetes" class="anchor"></a>
<article class="property">
<h3 class="private ">$reponse_entetes</h3>
<pre class="signature">$reponse_entetes</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="methods" name="methods"></a>
<div class="row-fluid">
<div class="span8 content class"><h2>Methods</h2></div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getReponseEntetes" name="method_getReponseEntetes" class="anchor"></a>
<article class="method">
<h3 class="public ">getReponseEntetes()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getReponseEntetes()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getParametre" name="method_getParametre" class="anchor"></a>
<article class="method">
<h3 class="public ">getParametre()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getParametre( <span class="argument">$cle</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$cle</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_ajouterParametre" name="method_ajouterParametre" class="anchor"></a>
<article class="method">
<h3 class="public ">ajouterParametre()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">ajouterParametre( <span class="argument">$cle</span>, <span class="argument">$valeur</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$cle</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$valeur</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_supprimerParametre" name="method_supprimerParametre" class="anchor"></a>
<article class="method">
<h3 class="public ">supprimerParametre()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">supprimerParametre( <span class="argument">$cle</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$cle</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_nettoyerParametres" name="method_nettoyerParametres" class="anchor"></a>
<article class="method">
<h3 class="public ">nettoyerParametres()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">nettoyerParametres()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_consulter" name="method_consulter" class="anchor"></a>
<article class="method">
<h3 class="public ">consulter()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">consulter( <span class="argument">$url</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$url</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_ajouter" name="method_ajouter" class="anchor"></a>
<article class="method">
<h3 class="public ">ajouter()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">ajouter( <span class="argument">$url</span>, array <span class="argument">$donnees</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$url</td>
<td></td>
</tr>
<tr>
<td>array</td>
<td>$donnees</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_modifier" name="method_modifier" class="anchor"></a>
<article class="method">
<h3 class="public ">modifier()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">modifier( <span class="argument">$url</span>, array <span class="argument">$donnees</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$url</td>
<td></td>
</tr>
<tr>
<td>array</td>
<td>$donnees</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_supprimer" name="method_supprimer" class="anchor"></a>
<article class="method">
<h3 class="public ">supprimer()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">supprimer( <span class="argument">$url</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$url</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_envoyerCurlRequete" name="method_envoyerCurlRequete" class="anchor"></a>
<article class="method">
<h3 class="public ">envoyerCurlRequete()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">envoyerCurlRequete( <span class="argument">$url</span>, <span class="argument">$mode</span>, array <span class="argument">$donnees</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$url</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$mode</td>
<td></td>
</tr>
<tr>
<td>array</td>
<td>$donnees</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getCaller" name="method_getCaller" class="anchor"></a>
<article class="method">
<h3 class="public ">getCaller()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getCaller( <span class="argument">$trace</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$trace</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_envoyerRequete" name="method_envoyerRequete" class="anchor"></a>
<article class="method">
<h3 class="public ">envoyerRequete()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">envoyerRequete( <span class="argument">$url</span>, <span class="argument">$mode</span>, array <span class="argument">$donnees</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$url</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$mode</td>
<td></td>
</tr>
<tr>
<td>array</td>
<td>$donnees</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_traiterUrlParametres" name="method_traiterUrlParametres" class="anchor"></a>
<article class="method">
<h3 class="private ">traiterUrlParametres()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">traiterUrlParametres()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_traiterEntete" name="method_traiterEntete" class="anchor"></a>
<article class="method">
<h3 class="private ">traiterEntete()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">traiterEntete()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_analyserEntete" name="method_analyserEntete" class="anchor"></a>
<article class="method">
<h3 class="private ">analyserEntete()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">analyserEntete()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_traiterEnteteDebogage" name="method_traiterEnteteDebogage" class="anchor"></a>
<article class="method">
<h3 class="private ">traiterEnteteDebogage()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">traiterEnteteDebogage( <span class="argument">$entetes_analyses</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$entetes_analyses</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_reinitialiser" name="method_reinitialiser" class="anchor"></a>
<article class="method">
<h3 class="private ">reinitialiser()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">reinitialiser()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label">RestClient.php</h3>
</div>
<div class="modal-body">
<pre data-src="../files/RestClient.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/classes/CacheSimple.html
New file
0,0 → 1,673
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-464253697"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-464253697" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content class">
<nav>
<a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
 
<h1><small>\</small>CacheSimple</h1>
<p><em>Classe Cache permettant de mettre en cache des données de façon extremement simple.</em></p>
<p>Le cache est stocker dans des fichiers textes.
Le contrôle de la durée de vie du cache se fait avec la fonction PHP filemtime.
Si la durée de vie du cache est modifiée dans le constructeur ou le fichier de config, alors la durée de vie de l'ensemble
des fichiers de cache est modifiée en conséquence.
Les clés pour le tableau des options et les valeurs par défaut sont indiquées dans l'attribut options de la classe.</p>
 
<section id="summary">
<h2>Summary</h2>
<section class="row-fluid heading">
<section class="span4">
<a href="#methods">Methods</a>
</section>
<section class="span4">
<a href="#properties">Properties</a>
</section>
<section class="span4">
<a href="#constants">Constants</a>
</section>
</section>
<section class="row-fluid public">
<section class="span4">
<a href="../classes/CacheSimple.html#method___construct" class="">__construct()</a><br />
<a href="../classes/CacheSimple.html#method_charger" class="">charger()</a><br />
<a href="../classes/CacheSimple.html#method_sauver" class="">sauver()</a><br />
</section>
<section class="span4">
<em>No public properties found</em>
</section>
<section class="span4">
<em>No constants found</em>
</section>
</section>
<section class="row-fluid protected">
<section class="span4">
<em>No protected methods found</em>
</section>
<section class="span4">
<em>No protected properties found</em>
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
<section class="row-fluid private">
<section class="span4">
<a href="../classes/CacheSimple.html#method_initialiserOptionsParConfig" class="">initialiserOptionsParConfig()</a><br />
</section>
<section class="span4">
<a href="../classes/CacheSimple.html#property_mise_en_cache" class="">$mise_en_cache</a><br />
<a href="../classes/CacheSimple.html#property_stockage_chemin" class="">$stockage_chemin</a><br />
<a href="../classes/CacheSimple.html#property_duree_de_vie" class="">$duree_de_vie</a><br />
<a href="../classes/CacheSimple.html#property_options" class="">$options</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
</section>
</div>
<aside class="span4 detailsbar">
<dl>
<dt>File</dt>
<dd><a href="../files/CacheSimple.php.html"><div class="path-wrapper">CacheSimple.php</div></a></dd>
<dt>Package</dt>
<dd><div class="namespace-wrapper">\Framework</div></dd>
<dt>Class hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\CacheSimple</div>
</dd>
 
<dt>See also</dt>
<dd><a href="/doc/framework/"><div class="namespace-wrapper">/doc/framework/</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
category
</th>
<td>
<p>php 5.2</p>
</td>
</tr>
<tr>
<th>
author
</th>
<td>
<p>Jean-Pascal MILCENT <a href="mailto:jpm@tela-botanica.org">jpm@tela-botanica.org</a></p>
<p>Aurélien PERONNET <a href="mailto:aurelien@tela-botanica.org">aurelien@tela-botanica.org</a></p>
</td>
</tr>
<tr>
<th>
copyright
</th>
<td>
<p>Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)</p>
</td>
</tr>
<tr>
<th>
license
</th>
<td>
<p><a href="http://framework.zend.com/license/new-bsd">http://framework.zend.com/license/new-bsd</a> Licence New BSD</p>
<p><a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt</a> Licence CECILL</p>
<p><a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> Licence GNU-GPL</p>
</td>
</tr>
<tr>
<th>
version
</th>
<td>
<p>$Id: CacheSimple.php 445 2013-10-24 17:08:14Z raphael $</p>
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="properties" name="properties"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Properties</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_mise_en_cache" name="property_mise_en_cache" class="anchor"></a>
<article class="property">
<h3 class="private ">$mise_en_cache</h3>
<pre class="signature">$mise_en_cache</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_stockage_chemin" name="property_stockage_chemin" class="anchor"></a>
<article class="property">
<h3 class="private ">$stockage_chemin</h3>
<pre class="signature">$stockage_chemin</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_duree_de_vie" name="property_duree_de_vie" class="anchor"></a>
<article class="property">
<h3 class="private ">$duree_de_vie</h3>
<pre class="signature">$duree_de_vie</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_options" name="property_options" class="anchor"></a>
<article class="property">
<h3 class="private ">$options</h3>
<pre class="signature">$options</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="methods" name="methods"></a>
<div class="row-fluid">
<div class="span8 content class"><h2>Methods</h2></div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method___construct" name="method___construct" class="anchor"></a>
<article class="method">
<h3 class="public ">__construct()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">__construct( <span class="argument">$options</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$options</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_charger" name="method_charger" class="anchor"></a>
<article class="method">
<h3 class="public ">charger()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">charger(string <span class="argument">$id</span>) : string|false</pre>
<p><em>Teste si le cache est disponible pour l&#039;id donné et (si oui) le retourne (sinon renvoie false)</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>l'identifiant du Cache.</p></td>
</tr>
</table>
<h4>Returns</h4>
string|false
&mdash; <p>les données en cache.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_sauver" name="method_sauver" class="anchor"></a>
<article class="method">
<h3 class="public ">sauver()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">sauver(string <span class="argument">$contenu</span>, string <span class="argument">$id</span>) : boolean</pre>
<p><em>Sauvegarde la chaine de données dans un fichier texte.</em></p>
<p>Note : $contenu est toujours de type "string". C'est à vous de gérer la sérialisation.</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$contenu</td>
<td><p>les données à mettre en cache.</p></td>
</tr>
<tr>
<td>string</td>
<td>$id</td>
<td><p>l'identifiant du Cache.</p></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>true si aucun problème</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_initialiserOptionsParConfig" name="method_initialiserOptionsParConfig" class="anchor"></a>
<article class="method">
<h3 class="private ">initialiserOptionsParConfig()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">initialiserOptionsParConfig()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label">CacheSimple.php</h3>
</div>
<div class="modal-body">
<pre data-src="../files/CacheSimple.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/classes/Pattern.html
New file
0,0 → 1,580
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-308954734"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-308954734" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content class">
<nav>
<a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
 
<h1><small>\</small>Pattern</h1>
<p><em>Classe fournissant des constantes correspondant à des expressions régulières de vérification très courrantes.</em></p>
 
<section id="summary">
<h2>Summary</h2>
<section class="row-fluid heading">
<section class="span4">
<a href="#methods">Methods</a>
</section>
<section class="span4">
<a href="#properties">Properties</a>
</section>
<section class="span4">
<a href="#constants">Constants</a>
</section>
</section>
<section class="row-fluid public">
<section class="span4">
<em>No public methods found</em>
</section>
<section class="span4">
<em>No public properties found</em>
</section>
<section class="span4">
<a href="../classes/Pattern.html#constant_PRENOM" class="">PRENOM</a><br />
<a href="../classes/Pattern.html#constant_NOM" class="">NOM</a><br />
<a href="../classes/Pattern.html#constant_COURRIEL" class="">COURRIEL</a><br />
<a href="../classes/Pattern.html#constant_URL" class="">URL</a><br />
<a href="../classes/Pattern.html#constant_HEURE_MINUTE" class="">HEURE_MINUTE</a><br />
<a href="../classes/Pattern.html#constant_LATITUDE" class="">LATITUDE</a><br />
<a href="../classes/Pattern.html#constant_LONGITUDE" class="">LONGITUDE</a><br />
</section>
</section>
<section class="row-fluid protected">
<section class="span4">
<em>No protected methods found</em>
</section>
<section class="span4">
<em>No protected properties found</em>
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
<section class="row-fluid private">
<section class="span4">
<em>No private methods found</em>
</section>
<section class="span4">
<em>No private properties found</em>
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
</section>
</div>
<aside class="span4 detailsbar">
<dl>
<dt>File</dt>
<dd><a href="../files/utilitaires.Pattern.php.html"><div class="path-wrapper">utilitaires/Pattern.php</div></a></dd>
<dt>Package</dt>
<dd><div class="namespace-wrapper">\Utilitaire</div></dd>
<dt>Class hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\Pattern</div>
</dd>
 
<dt>See also</dt>
<dd><a href="/doc/framework/"><div class="namespace-wrapper">/doc/framework/</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
category
</th>
<td>
<p>PHP 5.2</p>
</td>
</tr>
<tr>
<th>
author
</th>
<td>
<p>Jean-Pascal MILCENT <a href="mailto:jpm@tela-botanica.org">jpm@tela-botanica.org</a></p>
</td>
</tr>
<tr>
<th>
copyright
</th>
<td>
<p>Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)</p>
</td>
</tr>
<tr>
<th>
license
</th>
<td>
<p><a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> Licence GNU-GPL-v3</p>
<p><a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt</a> Licence CECILL-v2</p>
</td>
</tr>
<tr>
<th>
version
</th>
<td>
<p>$Id: Pattern.php 299 2011-01-18 14:03:46Z jpm $</p>
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="constants" name="constants"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Constants</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_PRENOM" name="constant_PRENOM" class="anchor"></a>
<article id="constant_PRENOM" class="constant">
<h3 class="">PRENOM</h3>
<pre class="signature">PRENOM</pre>
<p><em></em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_NOM" name="constant_NOM" class="anchor"></a>
<article id="constant_NOM" class="constant">
<h3 class="">NOM</h3>
<pre class="signature">NOM</pre>
<p><em></em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_COURRIEL" name="constant_COURRIEL" class="anchor"></a>
<article id="constant_COURRIEL" class="constant">
<h3 class="">COURRIEL</h3>
<pre class="signature">COURRIEL</pre>
<p><em></em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_URL" name="constant_URL" class="anchor"></a>
<article id="constant_URL" class="constant">
<h3 class="">URL</h3>
<pre class="signature">URL</pre>
<p><em></em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_HEURE_MINUTE" name="constant_HEURE_MINUTE" class="anchor"></a>
<article id="constant_HEURE_MINUTE" class="constant">
<h3 class="">HEURE_MINUTE</h3>
<pre class="signature">HEURE_MINUTE</pre>
<p><em></em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_LATITUDE" name="constant_LATITUDE" class="anchor"></a>
<article id="constant_LATITUDE" class="constant">
<h3 class="">LATITUDE</h3>
<pre class="signature">LATITUDE</pre>
<p><em></em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_LONGITUDE" name="constant_LONGITUDE" class="anchor"></a>
<article id="constant_LONGITUDE" class="constant">
<h3 class="">LONGITUDE</h3>
<pre class="signature">LONGITUDE</pre>
<p><em></em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label">Pattern.php</h3>
</div>
<div class="modal-body">
<pre data-src="../files/utilitaires/Pattern.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/classes/Tableau.html
New file
0,0 → 1,805
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-454643850"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-454643850" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content class">
<nav>
<a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
 
<h1><small>\</small>Tableau</h1>
<p><em>Classe fournissant des méthodes statiques de manipulation des tableaux (Array).</em></p>
 
<section id="summary">
<h2>Summary</h2>
<section class="row-fluid heading">
<section class="span4">
<a href="#methods">Methods</a>
</section>
<section class="span4">
<a href="#properties">Properties</a>
</section>
<section class="span4">
<a href="#constants">Constants</a>
</section>
</section>
<section class="row-fluid public">
<section class="span4">
<a href="../classes/Tableau.html#method_etendre" class="">etendre()</a><br />
<a href="../classes/Tableau.html#method_trierTableauMd" class="deprecated">trierTableauMd()</a><br />
<a href="../classes/Tableau.html#method_trierMD" class="">trierMD()</a><br />
<a href="../classes/Tableau.html#method_trierMDType" class="">trierMDType()</a><br />
</section>
<section class="span4">
<em>No public properties found</em>
</section>
<section class="span4">
<a href="../classes/Tableau.html#constant_TRI_NATUREL" class="">TRI_NATUREL</a><br />
<a href="../classes/Tableau.html#constant_TRI_CASSE_SENSIBLE" class="">TRI_CASSE_SENSIBLE</a><br />
<a href="../classes/Tableau.html#constant_TRI_CASSE_INSENSIBLE" class="">TRI_CASSE_INSENSIBLE</a><br />
</section>
</section>
<section class="row-fluid protected">
<section class="span4">
<em>No protected methods found</em>
</section>
<section class="span4">
<em>No protected properties found</em>
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
<section class="row-fluid private">
<section class="span4">
<a href="../classes/Tableau.html#method_comparer" class="">comparer()</a><br />
</section>
<section class="span4">
<a href="../classes/Tableau.html#property_triMultiDimension" class="">$triMultiDimension</a><br />
<a href="../classes/Tableau.html#property_triType" class="">$triType</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
</section>
</div>
<aside class="span4 detailsbar">
<dl>
<dt>File</dt>
<dd><a href="../files/utilitaires.Tableau.php.html"><div class="path-wrapper">utilitaires/Tableau.php</div></a></dd>
<dt>Package</dt>
<dd><div class="namespace-wrapper">\Utilitaire</div></dd>
<dt>Class hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\Tableau</div>
</dd>
 
<dt>See also</dt>
<dd><a href="/doc/framework/"><div class="namespace-wrapper">/doc/framework/</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
category
</th>
<td>
<p>PHP 5.2</p>
</td>
</tr>
<tr>
<th>
author
</th>
<td>
<p>Jean-Pascal MILCENT <a href="mailto:jpm@tela-botanica.org">jpm@tela-botanica.org</a></p>
</td>
</tr>
<tr>
<th>
copyright
</th>
<td>
<p>Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)</p>
</td>
</tr>
<tr>
<th>
license
</th>
<td>
<p><a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> Licence GNU-GPL-v3</p>
<p><a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt</a> Licence CECILL-v2</p>
</td>
</tr>
<tr>
<th>
version
</th>
<td>
<p>$Id: Tableau.php 400 2011-11-25 16:26:26Z jpm $</p>
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="constants" name="constants"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Constants</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_TRI_NATUREL" name="constant_TRI_NATUREL" class="anchor"></a>
<article id="constant_TRI_NATUREL" class="constant">
<h3 class="">TRI_NATUREL</h3>
<pre class="signature">TRI_NATUREL</pre>
<p><em></em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_TRI_CASSE_SENSIBLE" name="constant_TRI_CASSE_SENSIBLE" class="anchor"></a>
<article id="constant_TRI_CASSE_SENSIBLE" class="constant">
<h3 class="">TRI_CASSE_SENSIBLE</h3>
<pre class="signature">TRI_CASSE_SENSIBLE</pre>
<p><em></em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_TRI_CASSE_INSENSIBLE" name="constant_TRI_CASSE_INSENSIBLE" class="anchor"></a>
<article id="constant_TRI_CASSE_INSENSIBLE" class="constant">
<h3 class="">TRI_CASSE_INSENSIBLE</h3>
<pre class="signature">TRI_CASSE_INSENSIBLE</pre>
<p><em></em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="properties" name="properties"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Properties</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_triMultiDimension" name="property_triMultiDimension" class="anchor"></a>
<article class="property">
<h3 class="private ">$triMultiDimension</h3>
<pre class="signature">$triMultiDimension</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_triType" name="property_triType" class="anchor"></a>
<article class="property">
<h3 class="private ">$triType</h3>
<pre class="signature">$triType</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="methods" name="methods"></a>
<div class="row-fluid">
<div class="span8 content class"><h2>Methods</h2></div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_etendre" name="method_etendre" class="anchor"></a>
<article class="method">
<h3 class="public ">etendre()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">etendre(array <span class="argument">$tableau_a_etendre</span>, array <span class="argument">$tableau_a_copier</span>) : void</pre>
<p><em>Etend le tableau à étendre avec les données du tableau à copier. Si des clés sont identiques entre les deux tableaux
une erreur est déclenchée et la valeur du tableau à étendre est gardée. Si les deux tableaux ont des clés numériques
leurs valeurs sont gardées (à la différence de array_merge).</em></p>
<p>Les tableaux sont passés par références et le tableau à copier est progressivement détruit pour éviter la consomation
de mémoire.</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$tableau_a_etendre</td>
<td></td>
</tr>
<tr>
<td>array</td>
<td>$tableau_a_copier</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_trierTableauMd" name="method_trierTableauMd" class="anchor"></a>
<article class="method">
<h3 class="public deprecated">trierTableauMd()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">trierTableauMd( <span class="argument">$array</span>, <span class="argument">$cols</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$array</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$cols</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<aside class="alert alert-block alert-error">
<h4>Deprecated</h4>
Utiliser la méthode trierMD()
</aside>
<dl>
<dt>See also</dt>
<dd><a href=""><span class="namespace-wrapper"></span></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_trierMD" name="method_trierMD" class="anchor"></a>
<article class="method">
<h3 class="public ">trierMD()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">trierMD(Array <span class="argument">$array</span>, Array <span class="argument">$cols</span>) : Array</pre>
<p><em>Permet de trier un tableau multi-dimenssionnel en gardant l&#039;ordre des clés.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>Array</td>
<td>$array</td>
<td><p>le tableau à trier</p></td>
</tr>
<tr>
<td>Array</td>
<td>$cols</td>
<td><p>tableau indiquant en clé la colonne à trier et en valeur l'ordre avec SORT_ASC ou SORT_DESC</p></td>
</tr>
</table>
<h4>Returns</h4>
Array
&mdash; <p>le tableau trié.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
<dt>See also</dt>
<dd><a href=""><span class="namespace-wrapper">Post du 21-Jun-2009 12:38</span></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
author
</th>
<td>
<p>cagret at gmail dot com</p>
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_trierMDType" name="method_trierMDType" class="anchor"></a>
<article class="method">
<h3 class="public ">trierMDType()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">trierMDType( <span class="argument">$tableau</span>, <span class="argument">$cols</span>, <span class="argument">$type</span>) : array</pre>
<p><em>Méthode réalisant un tri d&#039;un tableau multidimension. Attention les clés du tableau ne sont pas modifiées.</em></p>
<p>A utiliser de cette façon:
EfloreTriage::trieMultiple( $tableau_multidimension, array('ma_cle1' => SORT_ASC, 'ma_cle2' => SORT_DESC), $type_de_tri);
Utiliser les constantes php SORT_DESC ou SORT_ASC pour l'odre de tri.
Pour le type de tri : utiliser :</p>
<ul>
<li>Tableau::TRI_NATUREL pour un trie naturel,</li>
<li>Tableau::TRI_CASSE_SENSIBLE pour un tri sensible à la casse,</li>
<li>Tableau::TRI_CASSE_INSENSIBLE pour un tri insensible à la casse.</li>
</ul>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$tableau</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$cols</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$type</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
array
&mdash; <p>le tableau trié.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_comparer" name="method_comparer" class="anchor"></a>
<article class="method">
<h3 class="private ">comparer()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">comparer( <span class="argument">$a</span>, <span class="argument">$b</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$a</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$b</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label">Tableau.php</h3>
</div>
<div class="modal-body">
<pre data-src="../files/utilitaires/Tableau.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/classes/I18n.html
New file
0,0 → 1,1038
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-393804422"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-393804422" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content class">
<nav>
<a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
 
<h1><small>\</small>I18n</h1>
<p><em>I18n permet de traduire une application à partir de données stockées dans des fichiers ini.</em></p>
<p>Si vous souhaitez utiliser le fonctionnement par défaut vous devrez :</p>
<ul>
<li>déposer les fichiers ini dans le dossier définit par la variable de config "chemin_i18n".</li>
<li>nommer les fichiers selon la forme "locale.ini" (Ex.: fr.ini ou fr_CH.ini ).</li>
</ul>
<p>Elle offre l'accès en lecture seule aux paramètres des fichiers ini.
C'est une Singleton. Une seule classe de traduction peut être instanciée par Application.</p>
 
<section id="summary">
<h2>Summary</h2>
<section class="row-fluid heading">
<section class="span4">
<a href="#methods">Methods</a>
</section>
<section class="span4">
<a href="#properties">Properties</a>
</section>
<section class="span4">
<a href="#constants">Constants</a>
</section>
</section>
<section class="row-fluid public">
<section class="span4">
<a href="../classes/I18n.html#method_get" class="">get()</a><br />
<a href="../classes/I18n.html#method_charger" class="">charger()</a><br />
<a href="../classes/I18n.html#method_setLangue" class="">setLangue()</a><br />
</section>
<section class="span4">
<em>No public properties found</em>
</section>
<section class="span4">
<a href="../classes/I18n.html#constant_FORMAT_INI" class="">FORMAT_INI</a><br />
</section>
</section>
<section class="row-fluid protected">
<section class="span4">
<em>No protected methods found</em>
</section>
<section class="span4">
<em>No protected properties found</em>
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
<section class="row-fluid private">
<section class="span4">
<a href="../classes/I18n.html#method___construct" class="">__construct()</a><br />
<a href="../classes/I18n.html#method_getValeur" class="">getValeur()</a><br />
<a href="../classes/I18n.html#method_chargerFichierIni" class="">chargerFichierIni()</a><br />
<a href="../classes/I18n.html#method_analyserTableauIni" class="">analyserTableauIni()</a><br />
<a href="../classes/I18n.html#method_evaluerCle" class="">evaluerCle()</a><br />
<a href="../classes/I18n.html#method_trouverLangue" class="">trouverLangue()</a><br />
<a href="../classes/I18n.html#method_verifierCreationInstance" class="">verifierCreationInstance()</a><br />
<a href="../classes/I18n.html#method_ajouterErreur" class="">ajouterErreur()</a><br />
</section>
<section class="span4">
<a href="../classes/I18n.html#property_instance" class="">$instance</a><br />
<a href="../classes/I18n.html#property_traductions" class="">$traductions</a><br />
<a href="../classes/I18n.html#property_langue" class="">$langue</a><br />
<a href="../classes/I18n.html#property_parametres_obligatoires" class="">$parametres_obligatoires</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
</section>
</div>
<aside class="span4 detailsbar">
<dl>
<dt>File</dt>
<dd><a href="../files/I18n.php.html"><div class="path-wrapper">I18n.php</div></a></dd>
<dt>Package</dt>
<dd><div class="namespace-wrapper">\Framework</div></dd>
<dt>Class hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\I18n</div>
</dd>
 
<dt>See also</dt>
<dd><a href="/doc/framework/"><div class="namespace-wrapper">/doc/framework/</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
category
</th>
<td>
<p>PHP 5.2</p>
</td>
</tr>
<tr>
<th>
author
</th>
<td>
<p>Jean-Pascal MILCENT <a href="mailto:jpm@tela-botanica.org">jpm@tela-botanica.org</a></p>
</td>
</tr>
<tr>
<th>
copyright
</th>
<td>
<p>Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)</p>
</td>
</tr>
<tr>
<th>
license
</th>
<td>
<p><a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt</a> Licence CECILL</p>
<p><a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> Licence GNU-GPL</p>
</td>
</tr>
<tr>
<th>
since
</th>
<td>
</td>
</tr>
<tr>
<th>
version
</th>
<td>
<p>$Id: I18n.php 331 2011-02-24 18:03:35Z jpm $</p>
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="constants" name="constants"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Constants</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_FORMAT_INI" name="constant_FORMAT_INI" class="anchor"></a>
<article id="constant_FORMAT_INI" class="constant">
<h3 class="">FORMAT_INI</h3>
<pre class="signature">FORMAT_INI</pre>
<p><em>Format de traduction utilisant les fichier .ini</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="properties" name="properties"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Properties</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_instance" name="property_instance" class="anchor"></a>
<article class="property">
<h3 class="private ">$instance</h3>
<pre class="signature">$instance</pre>
<p><em>Instance de la classe pointant sur elle même (pour le pattern singleton)</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_traductions" name="property_traductions" class="anchor"></a>
<article class="property">
<h3 class="private ">$traductions</h3>
<pre class="signature">$traductions</pre>
<p><em>Fichiers de traduction disponibles.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_langue" name="property_langue" class="anchor"></a>
<article class="property">
<h3 class="private ">$langue</h3>
<pre class="signature">$langue</pre>
<p><em>Langue courrante utilisée par l&#039;application.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_parametres_obligatoires" name="property_parametres_obligatoires" class="anchor"></a>
<article class="property">
<h3 class="private ">$parametres_obligatoires</h3>
<pre class="signature">$parametres_obligatoires</pre>
<p><em>Tableau des noms des paramètres à définir dans le fichier de config car obligatoirement nécessaire à cette classe.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="methods" name="methods"></a>
<div class="row-fluid">
<div class="span8 content class"><h2>Methods</h2></div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_get" name="method_get" class="anchor"></a>
<article class="method">
<h3 class="public ">get()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">get( <span class="argument">$identifiant</span>, <span class="argument">$langue</span>) : string</pre>
<p><em>Accesseur pour la valeur d&#039;une traduction</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$identifiant</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$langue</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>la valeur du paramètre</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_charger" name="method_charger" class="anchor"></a>
<article class="method">
<h3 class="public ">charger()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">charger( <span class="argument">$langue</span>, <span class="argument">$fichier</span>, <span class="argument">$format</span>) : boolean</pre>
<p><em>Charge un fichier ini dans le tableau des paramètres de l&#039;appli</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$langue</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$fichier</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$format</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>true, si le fichier a été trouvé et correctement chargé, sinon false.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_setLangue" name="method_setLangue" class="anchor"></a>
<article class="method">
<h3 class="public ">setLangue()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">setLangue( <span class="argument">$langue</span>) : array</pre>
<p><em>Définit la langue utiliser pour rechercher une traduction.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$langue</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
array
&mdash; <p>le fichier ini parsé</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method___construct" name="method___construct" class="anchor"></a>
<article class="method">
<h3 class="private ">__construct()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">__construct()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getValeur" name="method_getValeur" class="anchor"></a>
<article class="method">
<h3 class="private ">getValeur()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getValeur(string <span class="argument">$param</span>, array <span class="argument">$i18n</span>) : mixed</pre>
<p><em>Renvoie la valeur demandé grâce une chaine de paramètres</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$param</td>
<td><p>la chaine identifiante</p></td>
</tr>
<tr>
<td>array</td>
<td>$i18n</td>
<td><p>le tableau de traductions</p></td>
</tr>
</table>
<h4>Returns</h4>
mixed
&mdash; <p>la valeur correspondante à la chaine identifiante si elle est trouvée, sinon false.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_chargerFichierIni" name="method_chargerFichierIni" class="anchor"></a>
<article class="method">
<h3 class="private ">chargerFichierIni()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">chargerFichierIni(string <span class="argument">$fichier_ini</span>, string <span class="argument">$langue</span>) : boolean</pre>
<p><em>Parse le fichier ini donné en paramètre</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$fichier_ini</td>
<td><p>nom du fichier ini à parser</p></td>
</tr>
<tr>
<td>string</td>
<td>$langue</td>
<td><p>la langue correspondant au fichier</p></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>true si le chargement c'est bien passé, sinon false.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_analyserTableauIni" name="method_analyserTableauIni" class="anchor"></a>
<article class="method">
<h3 class="private ">analyserTableauIni()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">analyserTableauIni(array <span class="argument">$i18n</span>) : array</pre>
<p><em>Analyse un tableau de traductions pour évaluer les clés.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$i18n</td>
<td><p>le tableau de traductions</p></td>
</tr>
</table>
<h4>Returns</h4>
array
&mdash; <p>le tableau analysé et modifié si nécessaire.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_evaluerCle" name="method_evaluerCle" class="anchor"></a>
<article class="method">
<h3 class="private ">evaluerCle()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">evaluerCle(array <span class="argument">$i18n</span>, string <span class="argument">$cle</span>, string <span class="argument">$valeur</span>)</pre>
<p><em>Dans le cas des chaines de traduction à sous clé (ex.: cle.souscle), cette méthode
évalue les valeurs correspondantes et créée les sous tableaux associés.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$i18n</td>
<td><p>tableau de traductions (par référence)</p></td>
</tr>
<tr>
<td>string</td>
<td>$cle</td>
<td><p>la cle dans le tableau</p></td>
</tr>
<tr>
<td>string</td>
<td>$valeur</td>
<td><p>la valeur à affecter</p></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_trouverLangue" name="method_trouverLangue" class="anchor"></a>
<article class="method">
<h3 class="private ">trouverLangue()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">trouverLangue()</pre>
<p><em>Cherche l&#039;information sur la langue demandée par l&#039;application</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_verifierCreationInstance" name="method_verifierCreationInstance" class="anchor"></a>
<article class="method">
<h3 class="private ">verifierCreationInstance()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">verifierCreationInstance()</pre>
<p><em>Vérifie si l&#039;instance de classe à été crée, si non la crée</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_ajouterErreur" name="method_ajouterErreur" class="anchor"></a>
<article class="method">
<h3 class="private ">ajouterErreur()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">ajouterErreur( <span class="argument">$m</span>, <span class="argument">$e</span>)</pre>
<p><em>Ajouter une message d&#039;erreur</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$m</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$e</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label">I18n.php</h3>
</div>
<div class="modal-body">
<pre data-src="../files/I18n.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/classes/Log.html
New file
0,0 → 1,972
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-230379955"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-230379955" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content class">
<nav>
<a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
 
<h1><small>\</small>Log</h1>
<p><em>Classe permettant de logger des messages dans les fichier situés dans le dossier de log.</em></p>
 
<section id="summary">
<h2>Summary</h2>
<section class="row-fluid heading">
<section class="span4">
<a href="#methods">Methods</a>
</section>
<section class="span4">
<a href="#properties">Properties</a>
</section>
<section class="span4">
<a href="#constants">Constants</a>
</section>
</section>
<section class="row-fluid public">
<section class="span4">
<a href="../classes/Log.html#method_initialiser" class="">initialiser()</a><br />
<a href="../classes/Log.html#method_configurer" class="">configurer()</a><br />
<a href="../classes/Log.html#method_ajouterEntree" class="">ajouterEntree()</a><br />
<a href="../classes/Log.html#method_viderLog" class="">viderLog()</a><br />
<a href="../classes/Log.html#method_verifierOuvrirFichier" class="">verifierOuvrirFichier()</a><br />
<a href="../classes/Log.html#method___destruct" class="">__destruct()</a><br />
</section>
<section class="span4">
<em>No public properties found</em>
</section>
<section class="span4">
<em>No constants found</em>
</section>
</section>
<section class="row-fluid protected">
<section class="span4">
<em>No protected methods found</em>
</section>
<section class="span4">
<em>No protected properties found</em>
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
<section class="row-fluid private">
<section class="span4">
<a href="../classes/Log.html#method_verifierTailleFichierOuArchiver" class="">verifierTailleFichierOuArchiver()</a><br />
<a href="../classes/Log.html#method_desactiverEcriture" class="">desactiverEcriture()</a><br />
</section>
<section class="span4">
<a href="../classes/Log.html#property_logger" class="">$logger</a><br />
<a href="../classes/Log.html#property_fichiersLog" class="">$fichiersLog</a><br />
<a href="../classes/Log.html#property_cheminLogs" class="">$cheminLogs</a><br />
<a href="../classes/Log.html#property_droitLogger" class="">$droitLogger</a><br />
<a href="../classes/Log.html#property_timeZone" class="">$timeZone</a><br />
<a href="../classes/Log.html#property_tailleMax" class="">$tailleMax</a><br />
<a href="../classes/Log.html#property_sd" class="">$sd</a><br />
<a href="../classes/Log.html#property_ext" class="">$ext</a><br />
<a href="../classes/Log.html#property_parametres_obligatoires" class="">$parametres_obligatoires</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
</section>
</div>
<aside class="span4 detailsbar">
<dl>
<dt>File</dt>
<dd><a href="../files/Log.php.html"><div class="path-wrapper">Log.php</div></a></dd>
<dt>Package</dt>
<dd><div class="namespace-wrapper">\Framework</div></dd>
<dt>Class hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\Log</div>
</dd>
 
<dt>See also</dt>
<dd><a href="/doc/framework/"><div class="namespace-wrapper">/doc/framework/</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
category
</th>
<td>
<p>PHP 5.2</p>
</td>
</tr>
<tr>
<th>
author
</th>
<td>
<p>Aurélien PERONNET <a href="mailto:aurelien@tela-botanica.org">aurelien@tela-botanica.org</a></p>
<p>Jean-Pascal MILCENT <a href="mailto:jpm@tela-botanica.org">jpm@tela-botanica.org</a></p>
</td>
</tr>
<tr>
<th>
copyright
</th>
<td>
<p>Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)</p>
</td>
</tr>
<tr>
<th>
license
</th>
<td>
<p><a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt</a> Licence CECILL</p>
<p><a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> Licence GNU-GPL</p>
</td>
</tr>
<tr>
<th>
version
</th>
<td>
<p>$Id: Log.php 274 2010-12-28 15:37:22Z jpm $</p>
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="properties" name="properties"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Properties</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_logger" name="property_logger" class="anchor"></a>
<article class="property">
<h3 class="private ">$logger</h3>
<pre class="signature">$logger</pre>
<p><em>Boolean indiquant si l&#039;on doit utiliser les logs ou pas.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_fichiersLog" name="property_fichiersLog" class="anchor"></a>
<article class="property">
<h3 class="private ">$fichiersLog</h3>
<pre class="signature">$fichiersLog</pre>
<p><em>Tableau associatif stockant les descripteurs de fichiers.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_cheminLogs" name="property_cheminLogs" class="anchor"></a>
<article class="property">
<h3 class="private ">$cheminLogs</h3>
<pre class="signature">$cheminLogs</pre>
<p><em>Chemin de base du dossier log de l&#039;application.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_droitLogger" name="property_droitLogger" class="anchor"></a>
<article class="property">
<h3 class="private ">$droitLogger</h3>
<pre class="signature">$droitLogger</pre>
<p><em>Booleen indiquant si l&#039;on peut correctement écrire dans les fichiers de logs.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_timeZone" name="property_timeZone" class="anchor"></a>
<article class="property">
<h3 class="private ">$timeZone</h3>
<pre class="signature">$timeZone</pre>
<p><em>Zone horaire (pour éviter des avertissements dans les dates).</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_tailleMax" name="property_tailleMax" class="anchor"></a>
<article class="property">
<h3 class="private ">$tailleMax</h3>
<pre class="signature">$tailleMax</pre>
<p><em>Taille maximum d&#039;un fichier de log avant que celui ne soit archivé (en octets).</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_sd" name="property_sd" class="anchor"></a>
<article class="property">
<h3 class="private ">$sd</h3>
<pre class="signature">$sd</pre>
<p><em>séparateur de dossier dans un chemin.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_ext" name="property_ext" class="anchor"></a>
<article class="property">
<h3 class="private ">$ext</h3>
<pre class="signature">$ext</pre>
<p><em>Extension des fichiers de log.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_parametres_obligatoires" name="property_parametres_obligatoires" class="anchor"></a>
<article class="property">
<h3 class="private ">$parametres_obligatoires</h3>
<pre class="signature">$parametres_obligatoires</pre>
<p><em>Tableau des noms des paramètres à définir dans le fichier de config car obligatoirement nécessaire à cette classe.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="methods" name="methods"></a>
<div class="row-fluid">
<div class="span8 content class"><h2>Methods</h2></div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_initialiser" name="method_initialiser" class="anchor"></a>
<article class="method">
<h3 class="public ">initialiser()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">initialiser()</pre>
<p><em>Initialiser les logs par défaut, sans tenir comptes des paramêtres de config.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_configurer" name="method_configurer" class="anchor"></a>
<article class="method">
<h3 class="public ">configurer()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">configurer()</pre>
<p><em>Configure le Log à partir des paramêtres de config.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_ajouterEntree" name="method_ajouterEntree" class="anchor"></a>
<article class="method">
<h3 class="public ">ajouterEntree()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">ajouterEntree(string <span class="argument">$nomFichier</span>, <span class="argument">$entree</span>, <span class="argument">$mode</span>)</pre>
<p><em>Ajoute une entrée au log spécifié par le paramètre $nomFichier</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$nomFichier</td>
<td><p>le nom du fichier dans lequel écrire</p></td>
</tr>
<tr>
<td></td>
<td>$entree</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$mode</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_viderLog" name="method_viderLog" class="anchor"></a>
<article class="method">
<h3 class="public ">viderLog()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">viderLog(string <span class="argument">$nomFichier</span>)</pre>
<p><em>Vide un fichier log indiqué</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$nomFichier</td>
<td><p>le nom du fichier à vider</p></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_verifierOuvrirFichier" name="method_verifierOuvrirFichier" class="anchor"></a>
<article class="method">
<h3 class="public ">verifierOuvrirFichier()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">verifierOuvrirFichier(string <span class="argument">$nomFichier</span>, <span class="argument">$mode</span>) : boolean</pre>
<p><em>Vérifie la présence d&#039;un fichier dans le tableau, ses droits d&#039;écriture, l&#039;ouvre si nécessaire.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$nomFichier</td>
<td><p>le nom du fichier dont on doit vérifier la présence</p></td>
</tr>
<tr>
<td></td>
<td>$mode</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>true si le fichier est ouvert ou maintenant accessible, false sinon</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method___destruct" name="method___destruct" class="anchor"></a>
<article class="method">
<h3 class="public ">__destruct()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">__destruct()</pre>
<p><em>Destructeur de classe, ferme les descripteurs ouverts.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_verifierTailleFichierOuArchiver" name="method_verifierTailleFichierOuArchiver" class="anchor"></a>
<article class="method">
<h3 class="private ">verifierTailleFichierOuArchiver()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">verifierTailleFichierOuArchiver(string <span class="argument">$nomFichier</span>)</pre>
<p><em>Vérifie la taille d&#039;un fichier donné et si celle ci est trop importante
archive le fichier de log</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$nomFichier</td>
<td><p>nom du fichier à vérifier</p></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_desactiverEcriture" name="method_desactiverEcriture" class="anchor"></a>
<article class="method">
<h3 class="private ">desactiverEcriture()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">desactiverEcriture(string <span class="argument">$nomFichier</span>)</pre>
<p><em>Désactive l&#039;écriture du log et envoie un message au gestionnaire d&#039;erreurs</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$nomFichier</td>
<td><p>le nom du fichier qui a causé l'erreur</p></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label">Log.php</h3>
</div>
<div class="modal-body">
<pre data-src="../files/Log.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/classes/SquelettePhp.html
New file
0,0 → 1,475
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-410456175"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-410456175" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content class">
<nav>
<a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
 
<h1><small>\</small>SquelettePhp</h1>
<p><em>Classe SquelettePhp, traitant les squelette Php utilisant la syntaxe courte php ou pas.</em></p>
<p>Ces méthodes sont statiques.</p>
 
<section id="summary">
<h2>Summary</h2>
<section class="row-fluid heading">
<section class="span4">
<a href="#methods">Methods</a>
</section>
<section class="span4">
<a href="#properties">Properties</a>
</section>
<section class="span4">
<a href="#constants">Constants</a>
</section>
</section>
<section class="row-fluid public">
<section class="span4">
<a href="../classes/SquelettePhp.html#method_analyser" class="">analyser()</a><br />
</section>
<section class="span4">
<em>No public properties found</em>
</section>
<section class="span4">
<em>No constants found</em>
</section>
</section>
<section class="row-fluid protected">
<section class="span4">
<em>No protected methods found</em>
</section>
<section class="span4">
<em>No protected properties found</em>
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
<section class="row-fluid private">
<section class="span4">
<a href="../classes/SquelettePhp.html#method_traiterTagsCourts" class="">traiterTagsCourts()</a><br />
</section>
<section class="span4">
<em>No private properties found</em>
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
</section>
</div>
<aside class="span4 detailsbar">
<dl>
<dt>File</dt>
<dd><a href="../files/SquelettePhp.php.html"><div class="path-wrapper">SquelettePhp.php</div></a></dd>
<dt>Package</dt>
<dd><div class="namespace-wrapper">\Framework</div></dd>
<dt>Class hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\SquelettePhp</div>
</dd>
 
<dt>See also</dt>
<dd><a href="/doc/framework/"><div class="namespace-wrapper">/doc/framework/</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
category
</th>
<td>
<p>php5</p>
</td>
</tr>
<tr>
<th>
author
</th>
<td>
<p>Jean-Pascal MILCENT <a href="mailto:jpm@tela-botanica.org">jpm@tela-botanica.org</a></p>
</td>
</tr>
<tr>
<th>
copyright
</th>
<td>
<p>Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)</p>
</td>
</tr>
<tr>
<th>
license
</th>
<td>
<p><a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt</a> Licence CECILL</p>
<p><a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> Licence GNU-GPL</p>
</td>
</tr>
<tr>
<th>
version
</th>
<td>
<p>$Id: SquelettePhp.php 446 2013-10-28 14:21:50Z raphael $</p>
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="methods" name="methods"></a>
<div class="row-fluid">
<div class="span8 content class"><h2>Methods</h2></div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_analyser" name="method_analyser" class="anchor"></a>
<article class="method">
<h3 class="public ">analyser()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">analyser(String <span class="argument">$fichier</span>, Array <span class="argument">$donnees</span>) : boolean</pre>
<p><em>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.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>String</td>
<td>$fichier</td>
<td><p>le chemin du fichier du squelette</p></td>
</tr>
<tr>
<td>Array</td>
<td>$donnees</td>
<td><p>un tableau associatif contenant les variables a injecter dans le squelette.</p></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>false si la vue n'existe pas, sinon la chaine résultat.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_traiterTagsCourts" name="method_traiterTagsCourts" class="anchor"></a>
<article class="method">
<h3 class="private ">traiterTagsCourts()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">traiterTagsCourts(String <span class="argument">$chemin_squelette</span>) : string</pre>
<p><em>Fonction chargeant le contenu du squelette et remplaçant les tags court php (&lt;?= .</em></p>
<p>..) par un tag long avec echo.</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>String</td>
<td>$chemin_squelette</td>
<td><p>le chemin du fichier du squelette</p></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>le contenu du fichier du squelette php avec les tags courts remplacés.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label">SquelettePhp.php</h3>
</div>
<div class="modal-body">
<pre data-src="../files/SquelettePhp.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/classes/Registre.html
New file
0,0 → 1,595
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-400724500"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-400724500" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content class">
<nav>
<a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
 
<h1><small>\</small>Registre</h1>
<p><em>Classe Registre, qui permet un accès à différentes variables et paramètres à travers les autres classes.</em></p>
<p>C'est un remplaçant à la variable magique $_GLOBALS de Php.
C'est un singleton.
Si vous voulez paramètré votre application via un fichier de configuration, utilisez plutôt la classe @see Config.</p>
 
<section id="summary">
<h2>Summary</h2>
<section class="row-fluid heading">
<section class="span4">
<a href="#methods">Methods</a>
</section>
<section class="span4">
<a href="#properties">Properties</a>
</section>
<section class="span4">
<a href="#constants">Constants</a>
</section>
</section>
<section class="row-fluid public">
<section class="span4">
<a href="../classes/Registre.html#method_set" class="">set()</a><br />
<a href="../classes/Registre.html#method_get" class="">get()</a><br />
<a href="../classes/Registre.html#method_detruire" class="">detruire()</a><br />
<a href="../classes/Registre.html#method_existe" class="">existe()</a><br />
</section>
<section class="span4">
<em>No public properties found</em>
</section>
<section class="span4">
<em>No constants found</em>
</section>
</section>
<section class="row-fluid protected">
<section class="span4">
<em>No protected methods found</em>
</section>
<section class="span4">
<em>No protected properties found</em>
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
<section class="row-fluid private">
<section class="span4">
<em>No private methods found</em>
</section>
<section class="span4">
<a href="../classes/Registre.html#property_stockage" class="">$stockage</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
</section>
</div>
<aside class="span4 detailsbar">
<dl>
<dt>File</dt>
<dd><a href="../files/Registre.php.html"><div class="path-wrapper">Registre.php</div></a></dd>
<dt>Package</dt>
<dd><div class="namespace-wrapper">\Framework</div></dd>
<dt>Class hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\Registre</div>
</dd>
 
<dt>See also</dt>
<dd><a href="/doc/framework/"><div class="namespace-wrapper">/doc/framework/</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
category
</th>
<td>
<p>php 5.2</p>
</td>
</tr>
<tr>
<th>
author
</th>
<td>
<p>Jean-Pascal MILCENT <a href="mailto:jmp@tela-botanica.org">jmp@tela-botanica.org</a></p>
</td>
</tr>
<tr>
<th>
copyright
</th>
<td>
<p>Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)</p>
</td>
</tr>
<tr>
<th>
license
</th>
<td>
<p><a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt</a> Licence CECILL</p>
<p><a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> Licence GNU-GPL</p>
</td>
</tr>
<tr>
<th>
version
</th>
<td>
<p>$Id: Registre.php 443 2013-10-22 15:09:30Z raphael $</p>
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="properties" name="properties"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Properties</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_stockage" name="property_stockage" class="anchor"></a>
<article class="property">
<h3 class="private ">$stockage</h3>
<pre class="signature">$stockage</pre>
<p><em>Tableau associatif stockant les variables.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="methods" name="methods"></a>
<div class="row-fluid">
<div class="span8 content class"><h2>Methods</h2></div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_set" name="method_set" class="anchor"></a>
<article class="method">
<h3 class="public ">set()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">set( <span class="argument">$intitule</span>, <span class="argument">$objet</span>)</pre>
<p><em>Ajoute un objet au tableau selon un intitulé donné.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$intitule</td>
<td></td>
</tr>
<tr>
<td></td>
<td>$objet</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_get" name="method_get" class="anchor"></a>
<article class="method">
<h3 class="public ">get()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">get( <span class="argument">$intitule</span>) : mixed</pre>
<p><em>Renvoie le contenu associé à l&#039;intitulé donné en paramètre.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$intitule</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
mixed
&mdash; <p>l'objet associé à l'intitulé ou null s'il n'est pas présent</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_detruire" name="method_detruire" class="anchor"></a>
<article class="method">
<h3 class="public ">detruire()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">detruire( <span class="argument">$intitule</span>)</pre>
<p><em>Détruit l&#039;objet associé à l&#039;intitulé, n&#039;a pas d&#039;effet si il n&#039;y a pas d&#039;objet associé.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$intitule</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_existe" name="method_existe" class="anchor"></a>
<article class="method">
<h3 class="public ">existe()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">existe( <span class="argument">$intitule</span>) : boolean</pre>
<p><em>Teste si le registre contient une donnée pour un intitulé d&#039;entrée donné.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$intitule</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>true si un objet associé à cet intitulé est présent, false sinon</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label">Registre.php</h3>
</div>
<div class="modal-body">
<pre data-src="../files/Registre.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/classes/Chronometre.html
New file
0,0 → 1,683
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1774114560"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1774114560" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content class">
<nav>
<a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
 
<h1><small>\</small>Chronometre</h1>
<p><em>Chronometre permet de stocker et d&#039;afficher les temps d&#039;éxécution de script.</em></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>
 
<section id="summary">
<h2>Summary</h2>
<section class="row-fluid heading">
<section class="span4">
<a href="#methods">Methods</a>
</section>
<section class="span4">
<a href="#properties">Properties</a>
</section>
<section class="span4">
<a href="#constants">Constants</a>
</section>
</section>
<section class="row-fluid public">
<section class="span4">
<a href="../classes/Chronometre.html#method_chrono" class="">chrono()</a><br />
<a href="../classes/Chronometre.html#method_afficherChrono" class="">afficherChrono()</a><br />
</section>
<section class="span4">
<em>No public properties found</em>
</section>
<section class="span4">
<em>No constants found</em>
</section>
</section>
<section class="row-fluid protected">
<section class="span4">
<em>No protected methods found</em>
</section>
<section class="span4">
<em>No protected properties found</em>
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
<section class="row-fluid private">
<section class="span4">
<a href="../classes/Chronometre.html#method_getTemps" class="">getTemps()</a><br />
<a href="../classes/Chronometre.html#method_setTemps" class="">setTemps()</a><br />
<a href="../classes/Chronometre.html#method_getMicroTime" class="">getMicroTime()</a><br />
</section>
<section class="span4">
<a href="../classes/Chronometre.html#property_pointArretNumero" class="">$pointArretNumero</a><br />
<a href="../classes/Chronometre.html#property_temps" class="">$temps</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
</section>
</div>
<aside class="span4 detailsbar">
<dl>
<dt>File</dt>
<dd><a href="../files/Chronometre.php.html"><div class="path-wrapper">Chronometre.php</div></a></dd>
<dt>Package</dt>
<dd><div class="namespace-wrapper">\Framework</div></dd>
<dt>Class hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\Chronometre</div>
</dd>
 
<dt>See also</dt>
<dd><a href="/doc/framework/"><div class="namespace-wrapper">/doc/framework/</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
category
</th>
<td>
<p>PHP 5.2</p>
</td>
</tr>
<tr>
<th>
author
</th>
<td>
<p>Jean-Pascal MILCENT <a href="mailto:jpm@tela-botanica.org">jpm@tela-botanica.org</a></p>
</td>
</tr>
<tr>
<th>
copyright
</th>
<td>
<p>Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)</p>
</td>
</tr>
<tr>
<th>
license
</th>
<td>
<p><a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> Licence GNU-GPL-v3</p>
<p><a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt</a> Licence CECILL-v2</p>
</td>
</tr>
<tr>
<th>
version
</th>
<td>
<p>$Id: Chronometre.php 327 2011-02-08 17:54:34Z jpm $</p>
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="properties" name="properties"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Properties</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_pointArretNumero" name="property_pointArretNumero" class="anchor"></a>
<article class="property">
<h3 class="private ">$pointArretNumero</h3>
<pre class="signature">$pointArretNumero</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_temps" name="property_temps" class="anchor"></a>
<article class="property">
<h3 class="private ">$temps</h3>
<pre class="signature">$temps</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="methods" name="methods"></a>
<div class="row-fluid">
<div class="span8 content class"><h2>Methods</h2></div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_chrono" name="method_chrono" class="anchor"></a>
<article class="method">
<h3 class="public ">chrono()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">chrono( <span class="argument">$cle</span>) : null</pre>
<p><em>Effectue un chronometrage.</em></p>
<p>Vous pouvez indiquer le nom du point de chronométrage.
Si vous n'indiquez rien, un nombre sera généré en débutant à 1.</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$cle</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
null
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_afficherChrono" name="method_afficherChrono" class="anchor"></a>
<article class="method">
<h3 class="public ">afficherChrono()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">afficherChrono( <span class="argument">$cle</span>) : string</pre>
<p><em>Permet d&#039;afficher les temps d&#039;éxécution de différentes parties d&#039;un script.</em></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.</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$cle</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>la chaine XHTML de mesure des temps.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
author
</th>
<td>
<p>Loic d'Anterroches</p>
<p>Jean-Pascal MILCENT <a href="mailto:jpm@tela-botanica.org">jpm@tela-botanica.org</a></p>
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getTemps" name="method_getTemps" class="anchor"></a>
<article class="method">
<h3 class="private ">getTemps()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getTemps(string <span class="argument">$cle</span>) : int</pre>
<p><em>Accesseurs :</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$cle</td>
<td><p>la cle associée à un chronomètre particulier</p></td>
</tr>
</table>
<h4>Returns</h4>
int
&mdash; <p>le temps écoulé</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_setTemps" name="method_setTemps" class="anchor"></a>
<article class="method">
<h3 class="private ">setTemps()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">setTemps( <span class="argument">$cle</span>, \array() <span class="argument">$moment</span>) : null</pre>
<p><em>Setteur pour la variable temps</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$cle</td>
<td></td>
</tr>
<tr>
<td>\array()</td>
<td>$moment</td>
<td><p>ajoute des points de chronométrage au tableau _temps</p></td>
</tr>
</table>
<h4>Returns</h4>
null
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getMicroTime" name="method_getMicroTime" class="anchor"></a>
<article class="method">
<h3 class="private ">getMicroTime()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getMicroTime( <span class="argument">$utps</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$utps</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label">Chronometre.php</h3>
</div>
<div class="modal-body">
<pre data-src="../files/Chronometre.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/classes/CacheSqlite.html
New file
0,0 → 1,1585
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-324688787"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-324688787" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content class">
<nav>
<a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
 
<h1><small>\</small>CacheSqlite</h1>
<p><em></em></p>
 
<section id="summary">
<h2>Summary</h2>
<section class="row-fluid heading">
<section class="span4">
<a href="#methods">Methods</a>
</section>
<section class="span4">
<a href="#properties">Properties</a>
</section>
<section class="span4">
<a href="#constants">Constants</a>
</section>
</section>
<section class="row-fluid public">
<section class="span4">
<a href="../classes/CacheSqlite.html#method___construct" class="">__construct()</a><br />
<a href="../classes/CacheSqlite.html#method___destruct" class="">__destruct()</a><br />
<a href="../classes/CacheSqlite.html#method_setEmplacement" class="">setEmplacement()</a><br />
<a href="../classes/CacheSqlite.html#method_charger" class="">charger()</a><br />
<a href="../classes/CacheSqlite.html#method_tester" class="">tester()</a><br />
<a href="../classes/CacheSqlite.html#method_sauver" class="">sauver()</a><br />
<a href="../classes/CacheSqlite.html#method_supprimer" class="">supprimer()</a><br />
<a href="../classes/CacheSqlite.html#method_nettoyer" class="">nettoyer()</a><br />
<a href="../classes/CacheSqlite.html#method_getIds" class="">getIds()</a><br />
<a href="../classes/CacheSqlite.html#method_getTags" class="">getTags()</a><br />
<a href="../classes/CacheSqlite.html#method_getIdsAvecLesTags" class="">getIdsAvecLesTags()</a><br />
<a href="../classes/CacheSqlite.html#method_getIdsSansLesTags" class="">getIdsSansLesTags()</a><br />
<a href="../classes/CacheSqlite.html#method_getIdsAvecUnTag" class="">getIdsAvecUnTag()</a><br />
<a href="../classes/CacheSqlite.html#method_getPourcentageRemplissage" class="">getPourcentageRemplissage()</a><br />
<a href="../classes/CacheSqlite.html#method_getMetadonnees" class="">getMetadonnees()</a><br />
<a href="../classes/CacheSqlite.html#method_ajouterSupplementDureeDeVie" class="">ajouterSupplementDureeDeVie()</a><br />
</section>
<section class="span4">
<em>No public properties found</em>
</section>
<section class="span4">
<em>No constants found</em>
</section>
</section>
<section class="row-fluid protected">
<section class="span4">
<em>No protected methods found</em>
</section>
<section class="span4">
<a href="../classes/CacheSqlite.html#property_options" class="">$options</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
<section class="row-fluid private">
<section class="span4">
<a href="../classes/CacheSqlite.html#method_initialiserOptionsParConfig" class="">initialiserOptionsParConfig()</a><br />
<a href="../classes/CacheSqlite.html#method_setOptions" class="">setOptions()</a><br />
<a href="../classes/CacheSqlite.html#method_getConnexion" class="">getConnexion()</a><br />
<a href="../classes/CacheSqlite.html#method_requeter" class="">requeter()</a><br />
<a href="../classes/CacheSqlite.html#method_defragmenterAutomatiquement" class="">defragmenterAutomatiquement()</a><br />
<a href="../classes/CacheSqlite.html#method_enregisterTag" class="">enregisterTag()</a><br />
<a href="../classes/CacheSqlite.html#method_creerStructure" class="">creerStructure()</a><br />
<a href="../classes/CacheSqlite.html#method_verifierBddStructureVersion" class="">verifierBddStructureVersion()</a><br />
<a href="../classes/CacheSqlite.html#method_nettoyerSqlite" class="">nettoyerSqlite()</a><br />
<a href="../classes/CacheSqlite.html#method_verifierEtCreerStructureBdd" class="">verifierEtCreerStructureBdd()</a><br />
</section>
<section class="span4">
<a href="../classes/CacheSqlite.html#property_bdd" class="">$bdd</a><br />
<a href="../classes/CacheSqlite.html#property_structure_ok" class="">$structure_ok</a><br />
<a href="../classes/CacheSqlite.html#property_Cache" class="">$Cache</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
</section>
</div>
<aside class="span4 detailsbar">
<dl>
<dt>File</dt>
<dd><a href="../files/CacheSqlite.php.html"><div class="path-wrapper">CacheSqlite.php</div></a></dd>
<dt>Class hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\CacheSqlite</div>
</dd>
 
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="properties" name="properties"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Properties</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_options" name="property_options" class="anchor"></a>
<article class="property">
<h3 class="protected ">$options</h3>
<pre class="signature">$options : array</pre>
<p><em>Options disponibles :</em></p>
<p>====> (string) stockage_chemin :
Chemin vers le fichier contenant la base SQLite.</p>
<p>====> (int) defragmentation_auto :</p>
<ul>
<li>Désactive / Régler le processus de défragmentation automatique</li>
<li>Le processus de défragmentation automatiques réduit la taille du fichier contenant la base de données
quand un ajout ou une suppression de cache est réalisée :
0 => pas de défragmentation automatique
1 => défragmentation automatique systématique
x (integer) > 1 => défragmentation automatique toutes les 1 fois (au hasard) sur x ajout ou suppression de cache</li>
</ul>
 
<h4>Type</h4>
array
&mdash; options disponibles </article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_bdd" name="property_bdd" class="anchor"></a>
<article class="property">
<h3 class="private ">$bdd</h3>
<pre class="signature">$bdd : mixed</pre>
<p><em>DB ressource</em></p>
 
<h4>Type</h4>
mixed
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_structure_ok" name="property_structure_ok" class="anchor"></a>
<article class="property">
<h3 class="private ">$structure_ok</h3>
<pre class="signature">$structure_ok : boolean</pre>
<p><em>Boolean to store if the structure has benn checked or not</em></p>
 
<h4>Type</h4>
boolean
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_Cache" name="property_Cache" class="anchor"></a>
<article class="property">
<h3 class="private ">$Cache</h3>
<pre class="signature">$Cache</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="methods" name="methods"></a>
<div class="row-fluid">
<div class="span8 content class"><h2>Methods</h2></div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method___construct" name="method___construct" class="anchor"></a>
<article class="method">
<h3 class="public ">__construct()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">__construct(array <span class="argument">$options</span>, \Cache <span class="argument">$cache</span>) : void</pre>
<p><em>Constructor</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$options</td>
<td><p>Associative array of options</p></td>
</tr>
<tr>
<td><a href="../classes/Cache.html">\Cache</a></td>
<td>$cache</td>
<td></td>
</tr>
</table>
<h4>Throws</h4>
<dl>
<dt>\Zend_cache_Exception</dt>
<dd></dd>
</dl>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method___destruct" name="method___destruct" class="anchor"></a>
<article class="method">
<h3 class="public ">__destruct()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">__destruct() : void</pre>
<p><em>Destructor</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_setEmplacement" name="method_setEmplacement" class="anchor"></a>
<article class="method">
<h3 class="public ">setEmplacement()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">setEmplacement( <span class="argument">$emplacement</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$emplacement</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_charger" name="method_charger" class="anchor"></a>
<article class="method">
<h3 class="public ">charger()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">charger(string <span class="argument">$id</span>, <span class="argument">$ne_pas_tester_validiter_du_cache</span>) : string|false</pre>
<p><em>Test if a cache is available for the given id and (if yes) return it (false else)</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>Cache id</p></td>
</tr>
<tr>
<td></td>
<td>$ne_pas_tester_validiter_du_cache</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
string|false
&mdash; <p>Cached datas</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_tester" name="method_tester" class="anchor"></a>
<article class="method">
<h3 class="public ">tester()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">tester(string <span class="argument">$id</span>) : mixed|false</pre>
<p><em>Test if a cache is available or not (for the given id)</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>Cache id</p></td>
</tr>
</table>
<h4>Returns</h4>
mixed|false
&mdash; <p>(a cache is not available) or "last modified" timestamp (int) of the available cache record</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_sauver" name="method_sauver" class="anchor"></a>
<article class="method">
<h3 class="public ">sauver()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">sauver( <span class="argument">$donnees</span>, string <span class="argument">$id</span>, array <span class="argument">$tags</span>, <span class="argument">$duree_vie_specifique</span>) : boolean</pre>
<p><em>Save some string datas into a cache record</em></p>
<p>Note : $data is always "string" (serialization is done by the
core not by the backend)</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$donnees</td>
<td></td>
</tr>
<tr>
<td>string</td>
<td>$id</td>
<td><p>Cache id</p></td>
</tr>
<tr>
<td>array</td>
<td>$tags</td>
<td><p>Array of strings, the cache record will be tagged by each string entry</p></td>
</tr>
<tr>
<td></td>
<td>$duree_vie_specifique</td>
<td></td>
</tr>
</table>
<h4>Throws</h4>
<dl>
<dt>\Zend_Cache_Exception</dt>
<dd></dd>
</dl>
<h4>Returns</h4>
boolean
&mdash; <p>True if no problem</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_supprimer" name="method_supprimer" class="anchor"></a>
<article class="method">
<h3 class="public ">supprimer()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">supprimer(string <span class="argument">$id</span>) : boolean</pre>
<p><em>Remove a cache record</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>Cache id</p></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>True if no problem</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_nettoyer" name="method_nettoyer" class="anchor"></a>
<article class="method">
<h3 class="public ">nettoyer()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">nettoyer(string <span class="argument">$mode</span>, array <span class="argument">$tags</span>) : boolean</pre>
<p><em>Clean some cache records</em></p>
<p>Available modes are :
Zend_Cache::CLEANING_MODE_ALL (default) => remove all cache entries ($tags is not used)
Zend_Cache::CLEANING_MODE_OLD => remove too old cache entries ($tags is not used)
Zend_Cache::CLEANING_MODE_MATCHING_TAG => remove cache entries matching all given tags</p>
<pre><code> ($tags can be an array of strings or a single string)</code></pre>
<p>Zend_Cache::CLEANING_MODE_NOT_MATCHING_TAG => remove cache entries not {matching one of the given tags}</p>
<pre><code> ($tags can be an array of strings or a single string)</code></pre>
<p>Zend_Cache::CLEANING_MODE_MATCHING_ANY_TAG => remove cache entries matching any given tags</p>
<pre><code> ($tags can be an array of strings or a single string)</code></pre>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$mode</td>
<td><p>Clean mode</p></td>
</tr>
<tr>
<td>array</td>
<td>$tags</td>
<td><p>Array of tags</p></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>True if no problem</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getIds" name="method_getIds" class="anchor"></a>
<article class="method">
<h3 class="public ">getIds()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getIds() : array</pre>
<p><em>Return an array of stored cache ids</em></p>
 
<h4>Returns</h4>
array
&mdash; <p>array of stored cache ids (string)</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getTags" name="method_getTags" class="anchor"></a>
<article class="method">
<h3 class="public ">getTags()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getTags() : array</pre>
<p><em>Return an array of stored tags</em></p>
 
<h4>Returns</h4>
array
&mdash; <p>array of stored tags (string)</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getIdsAvecLesTags" name="method_getIdsAvecLesTags" class="anchor"></a>
<article class="method">
<h3 class="public ">getIdsAvecLesTags()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getIdsAvecLesTags(array <span class="argument">$tags</span>) : array</pre>
<p><em>Return an array of stored cache ids which match given tags</em></p>
<p>In case of multiple tags, a logical AND is made between tags</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$tags</td>
<td><p>array of tags</p></td>
</tr>
</table>
<h4>Returns</h4>
array
&mdash; <p>array of matching cache ids (string)</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getIdsSansLesTags" name="method_getIdsSansLesTags" class="anchor"></a>
<article class="method">
<h3 class="public ">getIdsSansLesTags()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getIdsSansLesTags(array <span class="argument">$tags</span>) : array</pre>
<p><em>Return an array of stored cache ids which don&#039;t match given tags</em></p>
<p>In case of multiple tags, a logical OR is made between tags</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$tags</td>
<td><p>array of tags</p></td>
</tr>
</table>
<h4>Returns</h4>
array
&mdash; <p>array of not matching cache ids (string)</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getIdsAvecUnTag" name="method_getIdsAvecUnTag" class="anchor"></a>
<article class="method">
<h3 class="public ">getIdsAvecUnTag()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getIdsAvecUnTag(array <span class="argument">$tags</span>) : array</pre>
<p><em>Return an array of stored cache ids which match any given tags</em></p>
<p>In case of multiple tags, a logical AND is made between tags</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>array</td>
<td>$tags</td>
<td><p>array of tags</p></td>
</tr>
</table>
<h4>Returns</h4>
array
&mdash; <p>array of any matching cache ids (string)</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getPourcentageRemplissage" name="method_getPourcentageRemplissage" class="anchor"></a>
<article class="method">
<h3 class="public ">getPourcentageRemplissage()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getPourcentageRemplissage() : int</pre>
<p><em>Return the filling percentage of the backend storage</em></p>
 
<h4>Throws</h4>
<dl>
<dt>\Zend_Cache_Exception</dt>
<dd></dd>
</dl>
<h4>Returns</h4>
int
&mdash; <p>integer between 0 and 100</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getMetadonnees" name="method_getMetadonnees" class="anchor"></a>
<article class="method">
<h3 class="public ">getMetadonnees()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getMetadonnees(string <span class="argument">$id</span>) : array</pre>
<p><em>Return an array of metadatas for the given cache id</em></p>
<p>The array must include these keys :</p>
<ul>
<li>expire : the expire timestamp</li>
<li>tags : a string array of tags</li>
<li>mtime : timestamp of last modification time</li>
</ul>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>cache id</p></td>
</tr>
</table>
<h4>Returns</h4>
array
&mdash; <p>array of metadatas (false if the cache id is not found)</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_ajouterSupplementDureeDeVie" name="method_ajouterSupplementDureeDeVie" class="anchor"></a>
<article class="method">
<h3 class="public ">ajouterSupplementDureeDeVie()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">ajouterSupplementDureeDeVie(string <span class="argument">$id</span>, <span class="argument">$supplement_duree_de_vie</span>) : boolean</pre>
<p><em>Give (if possible) an extra lifetime to the given cache id</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>cache id</p></td>
</tr>
<tr>
<td></td>
<td>$supplement_duree_de_vie</td>
<td></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>true if ok</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_initialiserOptionsParConfig" name="method_initialiserOptionsParConfig" class="anchor"></a>
<article class="method">
<h3 class="private ">initialiserOptionsParConfig()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">initialiserOptionsParConfig()</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_setOptions" name="method_setOptions" class="anchor"></a>
<article class="method">
<h3 class="private ">setOptions()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">setOptions( <span class="argument">$options</span>)</pre>
<p><em></em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td></td>
<td>$options</td>
<td></td>
</tr>
</table>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getConnexion" name="method_getConnexion" class="anchor"></a>
<article class="method">
<h3 class="private ">getConnexion()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getConnexion() : resource</pre>
<p><em>Return the connection resource</em></p>
<p>If we are not connected, the connection is made</p>
 
<h4>Throws</h4>
<dl>
<dt>\Zend_Cache_Exception</dt>
<dd></dd>
</dl>
<h4>Returns</h4>
resource
&mdash; <p>Connection resource</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_requeter" name="method_requeter" class="anchor"></a>
<article class="method">
<h3 class="private ">requeter()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">requeter(string <span class="argument">$requete</span>) : mixed|false</pre>
<p><em>Execute une requête SQL sans afficher de messages d&#039;erreur.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$requete</td>
<td><p>requête SQL</p></td>
</tr>
</table>
<h4>Returns</h4>
mixed|false
&mdash; <p>resultats de la requête</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_defragmenterAutomatiquement" name="method_defragmenterAutomatiquement" class="anchor"></a>
<article class="method">
<h3 class="private ">defragmenterAutomatiquement()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">defragmenterAutomatiquement() : void</pre>
<p><em>Deal with the automatic vacuum process</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_enregisterTag" name="method_enregisterTag" class="anchor"></a>
<article class="method">
<h3 class="private ">enregisterTag()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">enregisterTag(string <span class="argument">$id</span>, string <span class="argument">$tag</span>) : boolean</pre>
<p><em>Register a cache id with the given tag</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$id</td>
<td><p>Cache id</p></td>
</tr>
<tr>
<td>string</td>
<td>$tag</td>
<td><p>Tag</p></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>True if no problem</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_creerStructure" name="method_creerStructure" class="anchor"></a>
<article class="method">
<h3 class="private ">creerStructure()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">creerStructure() : false</pre>
<p><em>Build the database structure</em></p>
 
<h4>Returns</h4>
false
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_verifierBddStructureVersion" name="method_verifierBddStructureVersion" class="anchor"></a>
<article class="method">
<h3 class="private ">verifierBddStructureVersion()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">verifierBddStructureVersion() : boolean</pre>
<p><em>Check if the database structure is ok (with the good version)</em></p>
 
<h4>Returns</h4>
boolean
&mdash; <p>True if ok</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_nettoyerSqlite" name="method_nettoyerSqlite" class="anchor"></a>
<article class="method">
<h3 class="private ">nettoyerSqlite()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">nettoyerSqlite(string <span class="argument">$mode</span>, array <span class="argument">$tags</span>) : boolean</pre>
<p><em>Clean some cache records</em></p>
<p>Available modes are :
Zend_Cache::CLEANING_MODE_ALL (default) => remove all cache entries ($tags is not used)
Zend_Cache::CLEANING_MODE_OLD => remove too old cache entries ($tags is not used)
Zend_Cache::CLEANING_MODE_MATCHING_TAG => remove cache entries matching all given tags</p>
<pre><code> ($tags can be an array of strings or a single string)</code></pre>
<p>Zend_Cache::CLEANING_MODE_NOT_MATCHING_TAG => remove cache entries not {matching one of the given tags}</p>
<pre><code> ($tags can be an array of strings or a single string)</code></pre>
<p>Zend_Cache::CLEANING_MODE_MATCHING_ANY_TAG => remove cache entries matching any given tags</p>
<pre><code> ($tags can be an array of strings or a single string)</code></pre>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$mode</td>
<td><p>Clean mode</p></td>
</tr>
<tr>
<td>array</td>
<td>$tags</td>
<td><p>Array of tags</p></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>True if no problem</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_verifierEtCreerStructureBdd" name="method_verifierEtCreerStructureBdd" class="anchor"></a>
<article class="method">
<h3 class="private ">verifierEtCreerStructureBdd()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">verifierEtCreerStructureBdd() : boolean</pre>
<p><em>Check if the database structure is ok (with the good version), if no : build it</em></p>
 
<h4>Throws</h4>
<dl>
<dt>\Zend_Cache_Exception</dt>
<dd></dd>
</dl>
<h4>Returns</h4>
boolean
&mdash; <p>True if ok</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label">CacheSqlite.php</h3>
</div>
<div class="modal-body">
<pre data-src="../files/CacheSqlite.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/classes/Debug.html
New file
0,0 → 1,956
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-532336799"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-532336799" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content class">
<nav>
<a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
 
<h1><small>\</small>Debug</h1>
<p><em>Classe fournissant des fonctions de débogage équivalante à var_dump et print_r.</em></p>
<p>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>
 
<section id="summary">
<h2>Summary</h2>
<section class="row-fluid heading">
<section class="span4">
<a href="#methods">Methods</a>
</section>
<section class="span4">
<a href="#properties">Properties</a>
</section>
<section class="span4">
<a href="#constants">Constants</a>
</section>
</section>
<section class="row-fluid public">
<section class="span4">
<a href="../classes/Debug.html#method_getMode" class="">getMode()</a><br />
<a href="../classes/Debug.html#method_dump" class="">dump()</a><br />
<a href="../classes/Debug.html#method_printr" class="">printr()</a><br />
<a href="../classes/Debug.html#method_tailleMemoireVar" class="">tailleMemoireVar()</a><br />
<a href="../classes/Debug.html#method_tailleMemoireScript" class="">tailleMemoireScript()</a><br />
</section>
<section class="span4">
<em>No public properties found</em>
</section>
<section class="span4">
<a href="../classes/Debug.html#constant_MODE_ECHO" class="">MODE_ECHO</a><br />
<a href="../classes/Debug.html#constant_MODE_NOTICE" class="">MODE_NOTICE</a><br />
<a href="../classes/Debug.html#constant_MODE_ENTETE_HTTP" class="">MODE_ENTETE_HTTP</a><br />
</section>
</section>
<section class="row-fluid protected">
<section class="span4">
<em>No protected methods found</em>
</section>
<section class="span4">
<a href="../classes/Debug.html#property_mode" class="">$mode</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
<section class="row-fluid private">
<section class="span4">
<a href="../classes/Debug.html#method_traiterDebogage" class="">traiterDebogage()</a><br />
<a href="../classes/Debug.html#method_formaterMotCle" class="">formaterMotCle()</a><br />
<a href="../classes/Debug.html#method_traiterSortieSuivantMode" class="">traiterSortieSuivantMode()</a><br />
</section>
<section class="span4">
<a href="../classes/Debug.html#property_parametres_obligatoires" class="">$parametres_obligatoires</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
</section>
</div>
<aside class="span4 detailsbar">
<dl>
<dt>File</dt>
<dd><a href="../files/Debug.php.html"><div class="path-wrapper">Debug.php</div></a></dd>
<dt>Package</dt>
<dd><div class="namespace-wrapper">\Framework</div></dd>
<dt>Class hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\Debug</div>
</dd>
 
<dt>See also</dt>
<dd><a href="/doc/framework/"><div class="namespace-wrapper">/doc/framework/</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
category
</th>
<td>
<p>PHP 5.2</p>
</td>
</tr>
<tr>
<th>
author
</th>
<td>
<p>Jean-Pascal MILCENT <a href="mailto:jpm@tela-botanica.org">jpm@tela-botanica.org</a></p>
</td>
</tr>
<tr>
<th>
copyright
</th>
<td>
<p>Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)</p>
</td>
</tr>
<tr>
<th>
license
</th>
<td>
<p><a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> Licence GNU-GPL-v3</p>
<p><a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt</a> Licence CECILL-v2</p>
</td>
</tr>
<tr>
<th>
version
</th>
<td>
<p>$Id: Debug.php 365 2011-09-30 08:19:57Z jpm $</p>
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="constants" name="constants"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Constants</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_MODE_ECHO" name="constant_MODE_ECHO" class="anchor"></a>
<article id="constant_MODE_ECHO" class="constant">
<h3 class="">MODE_ECHO</h3>
<pre class="signature">MODE_ECHO</pre>
<p><em>Paramètrer le fichier de config avec &quot;php:Debug::MODE_ECHO&quot; : les messages sont affichés en utilisant echo au moment
où ils sont déclenchés dans le code.</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_MODE_NOTICE" name="constant_MODE_NOTICE" class="anchor"></a>
<article id="constant_MODE_NOTICE" class="constant">
<h3 class="">MODE_NOTICE</h3>
<pre class="signature">MODE_NOTICE</pre>
<p><em>Paramètrer le fichier de config avec &quot;php:Debug::MODE_NOTICE&quot; : les message sont stockés par le gestionnaire
d&#039;exception sous forme d&#039;erreur de type E_USER_NOTICE et sont renvoyés sur la sortie standard à la fin de l&#039;execution
du programme (via echo).</em></p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="constant_MODE_ENTETE_HTTP" name="constant_MODE_ENTETE_HTTP" class="anchor"></a>
<article id="constant_MODE_ENTETE_HTTP" class="constant">
<h3 class="">MODE_ENTETE_HTTP</h3>
<pre class="signature">MODE_ENTETE_HTTP</pre>
<p><em>Paramètrer le fichier de config avec &quot;php:Debug::MODE_ENTETE_HTTP&quot; : les message sont stockés par le gestionnaire
d&#039;exception sous forme d&#039;erreur de type E_USER_NOTICE et sont renvoyés dans un entête HTTP (X_REST_DEBOGAGE_MESSAGES)
à la fin de l&#039;execution du programme.</em></p>
<p>Surtout utile pour le Serveur REST.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="properties" name="properties"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Properties</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_mode" name="property_mode" class="anchor"></a>
<article class="property">
<h3 class="protected ">$mode</h3>
<pre class="signature">$mode</pre>
<p><em>Mode de php (cli ou sapi)</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_parametres_obligatoires" name="property_parametres_obligatoires" class="anchor"></a>
<article class="property">
<h3 class="private ">$parametres_obligatoires</h3>
<pre class="signature">$parametres_obligatoires</pre>
<p><em>Tableau des noms des paramètres à définir dans le fichier de config car obligatoirement nécessaire à cette classe.</em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="methods" name="methods"></a>
<div class="row-fluid">
<div class="span8 content class"><h2>Methods</h2></div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_getMode" name="method_getMode" class="anchor"></a>
<article class="method">
<h3 class="public ">getMode()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">getMode() : string</pre>
<p><em>Accesseur pour le mode</em></p>
 
<h4>Returns</h4>
string
&mdash; <p>le mode de php</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_dump" name="method_dump" class="anchor"></a>
<article class="method">
<h3 class="public ">dump()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">dump(mixed <span class="argument">$variable</span>, string <span class="argument">$mot_cle</span>, boolean <span class="argument">$echo</span>) : string</pre>
<p><em>Equivalent de var_dump</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>mixed</td>
<td>$variable</td>
<td><p>la variable à dumper</p></td>
</tr>
<tr>
<td>string</td>
<td>$mot_cle</td>
<td><p>le mot cle à associer à la variable</p></td>
</tr>
<tr>
<td>boolean</td>
<td>$echo</td>
<td><p>si true on affiche le résultat, si false on ne renvoie que la chaine sans l'afficher</p></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>la chaine à afficher representant le dump ou null si echo</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_printr" name="method_printr" class="anchor"></a>
<article class="method">
<h3 class="public ">printr()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">printr(mixed <span class="argument">$variable</span>, string <span class="argument">$mot_cle</span>, boolean <span class="argument">$echo</span>) : string</pre>
<p><em>Equivalent de print_r.</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>mixed</td>
<td>$variable</td>
<td><p>la variable à afficher</p></td>
</tr>
<tr>
<td>string</td>
<td>$mot_cle</td>
<td><p>le mot cle à associer</p></td>
</tr>
<tr>
<td>boolean</td>
<td>$echo</td>
<td><p>faire un echo ou non</p></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>la chaine contenant la variable printée ou null si echo</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_tailleMemoireVar" name="method_tailleMemoireVar" class="anchor"></a>
<article class="method">
<h3 class="public ">tailleMemoireVar()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">tailleMemoireVar(mixed <span class="argument">$var</span>, string <span class="argument">$mot_cle</span>, boolean <span class="argument">$echo</span>) : string</pre>
<p><em>Affichage d&#039;informations sur l&#039;espace mémoire occupé par une variable</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>mixed</td>
<td>$var</td>
<td><p>la variable dont on veut connaître l'empreinte mémoire.</p></td>
</tr>
<tr>
<td>string</td>
<td>$mot_cle</td>
<td><p>le mot cle à associer</p></td>
</tr>
<tr>
<td>boolean</td>
<td>$echo</td>
<td><p>faire un echo ou non</p></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>la chaine d'information sur l'espace mémoire occupé ou bien null si echo</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
<dt>See also</dt>
<dd><a href="http://forum.webmaster-rank.info/developpement-site/code-taille-memoire-d-une-variable-en-php-t1344.html"><span class="namespace-wrapper">http://forum.webmaster-rank.info/developpement-site/code-taille-memoire-d-une-variable-en-php-t1344.html</span></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
since
</th>
<td>
0.3
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_tailleMemoireScript" name="method_tailleMemoireScript" class="anchor"></a>
<article class="method">
<h3 class="public ">tailleMemoireScript()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">tailleMemoireScript(string <span class="argument">$mot_cle</span>, boolean <span class="argument">$echo</span>) : string</pre>
<p><em>Affichage d&#039;informations sur l&#039;espace mémoire occupé par le script PHP</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$mot_cle</td>
<td><p>le mot cle à associer</p></td>
</tr>
<tr>
<td>boolean</td>
<td>$echo</td>
<td><p>faire un echo ou non</p></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>la chaine d'information sur l'espace mémoire occupé ou bien null si echo</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
<dt>See also</dt>
<dd><a href="http://forum.webmaster-rank.info/developpement-site/code-taille-memoire-d-une-variable-en-php-t1344.html"><span class="namespace-wrapper">http://forum.webmaster-rank.info/developpement-site/code-taille-memoire-d-une-variable-en-php-t1344.html</span></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
since
</th>
<td>
0.3
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_traiterDebogage" name="method_traiterDebogage" class="anchor"></a>
<article class="method">
<h3 class="private ">traiterDebogage()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">traiterDebogage(string <span class="argument">$mot_cle</span>, string <span class="argument">$sortie</span>, boolean <span class="argument">$echo</span>) : string</pre>
<p><em>Traite une chaine de débogage et les mots clés associés</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$mot_cle</td>
<td><p>le mot à associer à la chaine</p></td>
</tr>
<tr>
<td>string</td>
<td>$sortie</td>
<td><p>le chaine de debogage</p></td>
</tr>
<tr>
<td>boolean</td>
<td>$echo</td>
<td><p>faire un echo du resultat ou non</p></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>la chaine de debogage formatée ou bien null si echo</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_formaterMotCle" name="method_formaterMotCle" class="anchor"></a>
<article class="method">
<h3 class="private ">formaterMotCle()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">formaterMotCle(string <span class="argument">$mot_cle</span>) : string</pre>
<p><em>formate un mot clé donné</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$mot_cle</td>
<td><p>le mot clé à formaté</p></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>le mot clé formaté ou bien un chaine vide le mot clé est null ou vide</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_traiterSortieSuivantMode" name="method_traiterSortieSuivantMode" class="anchor"></a>
<article class="method">
<h3 class="private ">traiterSortieSuivantMode()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">traiterSortieSuivantMode(string <span class="argument">$mot_cle</span>, string <span class="argument">$sortie</span>) : string</pre>
<p><em>traite la sortie de la chaine de débogage suivant le mode de php</em></p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$mot_cle</td>
<td><p>le mot clé associé à la chaine</p></td>
</tr>
<tr>
<td>string</td>
<td>$sortie</td>
<td><p>la chaine de débogage</p></td>
</tr>
</table>
<h4>Returns</h4>
string
&mdash; <p>la sortie formatée pour le mode en cours</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label">Debug.php</h3>
</div>
<div class="modal-body">
<pre data-src="../files/Debug.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/classes/Chaine.html
New file
0,0 → 1,501
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>TBFramework - v0.4</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
 
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
 
var code = document.createElement('code');
code.className = 'language-' + language;
 
pre.textContent = '';
 
code.textContent = 'Loading…';
 
pre.appendChild(code);
 
var xhr = new XMLHttpRequest();
 
xhr.open('GET', src, true);
 
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
 
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
 
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
 
xhr.send(null);
});
}
 
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
 
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
 
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">TBFramework - v0.4</a>
 
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown">
<a href="../index.html" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">281</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">12</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
 
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1737141537"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1737141537" class="accordion-body collapse in">
<div class="accordion-inner">
 
<ul>
<li class="class"><a href="../classes/Url.html">Url</a></li>
<li class="class"><a href="../classes/Debug.html">Debug</a></li>
<li class="class"><a href="../classes/Chronometre.html">Chronometre</a></li>
<li class="class"><a href="../classes/RestServeur.html">RestServeur</a></li>
<li class="class"><a href="../classes/SquelettePhp.html">SquelettePhp</a></li>
<li class="class"><a href="../classes/Controleur.html">Controleur</a></li>
<li class="class"><a href="../classes/Cache.html">Cache</a></li>
<li class="class"><a href="../classes/RestClient.html">RestClient</a></li>
<li class="class"><a href="../classes/GestionnaireException.html">GestionnaireException</a></li>
<li class="class"><a href="../classes/Script.html">Script</a></li>
<li class="class"><a href="../classes/Registre.html">Registre</a></li>
<li class="class"><a href="../classes/RestService.html">RestService</a></li>
<li class="class"><a href="../classes/Cli.html">Cli</a></li>
<li class="class"><a href="../classes/Encodage.html">Encodage</a></li>
<li class="class"><a href="../classes/Tableau.html">Tableau</a></li>
<li class="class"><a href="../classes/Pattern.html">Pattern</a></li>
<li class="class"><a href="../classes/Chaine.html">Chaine</a></li>
<li class="class"><a href="../classes/Fichier.html">Fichier</a></li>
<li class="class"><a href="../classes/I18n.html">I18n</a></li>
<li class="class"><a href="../classes/Config.html">Config</a></li>
<li class="class"><a href="../classes/CacheSqlite.html">CacheSqlite</a></li>
<li class="class"><a href="../classes/Bdd.html">Bdd</a></li>
<li class="class"><a href="../classes/Log.html">Log</a></li>
<li class="class"><a href="../classes/CacheFichier.html">CacheFichier</a></li>
<li class="class"><a href="../classes/Framework.html">Framework</a></li>
<li class="class"><a href="../classes/CacheSimple.html">CacheSimple</a></li>
</ul>
</div>
</div>
</div>
</div>
 
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content class">
<nav>
<a href="../namespaces/default.html">\</a> <i class="icon-level-up"></i>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
 
<h1><small>\</small>Chaine</h1>
<p><em>Classe fournissant des méthodes statiques de manipulation des chaînes de caractères (String).</em></p>
 
<section id="summary">
<h2>Summary</h2>
<section class="row-fluid heading">
<section class="span4">
<a href="#methods">Methods</a>
</section>
<section class="span4">
<a href="#properties">Properties</a>
</section>
<section class="span4">
<a href="#constants">Constants</a>
</section>
</section>
<section class="row-fluid public">
<section class="span4">
<a href="../classes/Chaine.html#method_supprimerAccents" class="">supprimerAccents()</a><br />
</section>
<section class="span4">
<em>No public properties found</em>
</section>
<section class="span4">
<em>No constants found</em>
</section>
</section>
<section class="row-fluid protected">
<section class="span4">
<em>No protected methods found</em>
</section>
<section class="span4">
<em>No protected properties found</em>
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
<section class="row-fluid private">
<section class="span4">
<em>No private methods found</em>
</section>
<section class="span4">
<a href="../classes/Chaine.html#property_caracteres_accentues" class="">$caracteres_accentues</a><br />
<a href="../classes/Chaine.html#property_caracteres_normaux" class="">$caracteres_normaux</a><br />
</section>
<section class="span4">
<em>N/A</em>
</section>
</section>
</section>
</div>
<aside class="span4 detailsbar">
<dl>
<dt>File</dt>
<dd><a href="../files/utilitaires.Chaine.php.html"><div class="path-wrapper">utilitaires/Chaine.php</div></a></dd>
<dt>Package</dt>
<dd><div class="namespace-wrapper">\Utilitaire</div></dd>
<dt>Class hierarchy</dt>
<dd class="hierarchy">
<div class="namespace-wrapper">\Chaine</div>
</dd>
 
<dt>See also</dt>
<dd><a href="/doc/framework/"><div class="namespace-wrapper">/doc/framework/</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
category
</th>
<td>
<p>PHP 5.2</p>
</td>
</tr>
<tr>
<th>
author
</th>
<td>
<p>Jean-Pascal MILCENT <a href="mailto:jpm@tela-botanica.org">jpm@tela-botanica.org</a></p>
</td>
</tr>
<tr>
<th>
copyright
</th>
<td>
<p>Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)</p>
</td>
</tr>
<tr>
<th>
license
</th>
<td>
<p><a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a> Licence GNU-GPL-v3</p>
<p><a href="http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt">http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt</a> Licence CECILL-v2</p>
</td>
</tr>
<tr>
<th>
version
</th>
<td>
<p>$Id: Chaine.php 343 2011-06-09 14:59:36Z jpm $</p>
</td>
</tr>
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="properties" name="properties"></a>
<div class="row-fluid">
<div class="span8 content class">
<h2>Properties</h2>
</div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_caracteres_accentues" name="property_caracteres_accentues" class="anchor"></a>
<article class="property">
<h3 class="private ">$caracteres_accentues</h3>
<pre class="signature">$caracteres_accentues</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="property_caracteres_normaux" name="property_caracteres_normaux" class="anchor"></a>
<article class="property">
<h3 class="private ">$caracteres_normaux</h3>
<pre class="signature">$caracteres_normaux</pre>
<p><em></em></p>
 
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
<a id="methods" name="methods"></a>
<div class="row-fluid">
<div class="span8 content class"><h2>Methods</h2></div>
<aside class="span4 detailsbar"></aside>
</div>
 
<div class="row-fluid">
<div class="span8 content class">
<a id="method_supprimerAccents" name="method_supprimerAccents" class="anchor"></a>
<article class="method">
<h3 class="public ">supprimerAccents()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">supprimerAccents(String <span class="argument">$chaine</span>, String <span class="argument">$encodage</span>) : \la</pre>
<p><em>Supprime ou remplace les accents d&#039;une chaine en PHP.</em></p>
<p>La solution retenu, provenant du site
{@link <a href="http://www.lecoindunet.com/zone_php/scripts_utiles/remplacer-les-caracteres-accentues-dune-chaine-en-php-72">http://www.lecoindunet.com/zone_php/scripts_utiles/remplacer-les-caracteres-accentues-dune-chaine-en-php-72</a> lecoindunet.com},
consiste en deux tableaux (caractères avec et sans accents) car cela permetra éventuellement
de fournir des méthodes pour récupérer ces tableaux pour d'autres traitements.
Une autre solution aurait été d'utiliser les entités HTML comme proposé par le site
{@link <a href="http://www.weirdog.com/blog/php/supprimer-les-accents-des-caracteres-accentues.html">http://www.weirdog.com/blog/php/supprimer-les-accents-des-caracteres-accentues.html</a> weirdog.com}.</p>
 
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>String</td>
<td>$chaine</td>
<td><p>la chaine de caractères dans laquelle supprimer les accents.</p></td>
</tr>
<tr>
<td>String</td>
<td>$encodage</td>
<td><p>le code d'encodage de la chaine si ce n'est pas de l'UTF-8.</p></td>
</tr>
</table>
<h4>Returns</h4>
\la
&mdash; <p>chaine de caractères sans accent.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<span class="label label-info">static</span>
<dl>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
todo
</th>
<td>
</td>
</tr>
</table>
</aside>
</div>
 
</div>
</section>
 
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label">Chaine.php</h3>
</div>
<div class="modal-body">
<pre data-src="../files/utilitaires/Chaine.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
 
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 12th, 2014 at 15:57.
</section>
</section>
</section>
</footer>
</div>
 
</body>
</html>
/trunk/doc/PhpDoc/phpdoc-cache-40/phpdoc-cache-file_46a24be180db055ceb422ee74a0e638f.dat
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/doc/PhpDoc/phpdoc-cache-40/phpdoc-cache-file_46a24be180db055ceb422ee74a0e638f.dat
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property