mirror of
https://github.com/pierre42100/comunic
synced 2025-07-15 22:38:13 +00:00
First commit
This commit is contained in:
.gitignore.htaccessREADME.mdacceuil-aide-en.htmlacceuil-aide-fr.htmlaction.phpaide.phpamis.phpapi.phparchive_private_chat.phpindex.phpwarning_update.cssbrowserconfig.xmlchat.phpcommentaire.phpconnecter.phpconnexiondb.phpcreercompte.phpdeconnexion.php
3rdparty
RestServer
analysing_page
crypt
Licence_CeCILL_V2-en.txtLicence_CeCILL_V2-fr.txtchangelog.txtcryptographp.cfg.phpcryptographp.fct.phpcryptographp.inc.phpcryptographp.php
fonts
AOEFREE.TXTAlanden.txtAlanden_.ttfELECHA__.TTFRASCAL__.TTFSCRAWL.TTFWAVY.TTFWAVY.TXTbsurp___.ttfindex.phpluggerbu.ttfluggerbu.txtscrawl.txt
images
index.phplisezmoi.txtreadme.txtfancyapps
.gitattributesCHANGELOG.mdREADME.md
demo
lib
source
blank.giffancybox_loading.giffancybox_loading@2x.giffancybox_overlay.pngfancybox_sprite.pngfancybox_sprite@2x.png
sprite.psdhelpers
fancybox_buttons.pngjquery.fancybox-buttons.cssjquery.fancybox-buttons.jsjquery.fancybox-media.jsjquery.fancybox-thumbs.cssjquery.fancybox-thumbs.js
jquery.fancybox.cssjquery.fancybox.jsjquery.fancybox.pack.jsgestionnaire_upload
luminous
.htaccess.travis.ymlCHANGES.markdownDoxyfileLICENSEREADME.markdownapi-docs.html
client
composer.jsondocs
html
annotated.htmlbc_s.pngbdwn.pngclassLuminousEmbeddedWebScript-members.htmlclassLuminousEmbeddedWebScript.htmlclassLuminousEmbeddedWebScript__coll__graph.dotclassLuminousEmbeddedWebScript__coll__graph.md5classLuminousEmbeddedWebScript__inherit__graph.dotclassLuminousEmbeddedWebScript__inherit__graph.md5classLuminousFilters-members.htmlclassLuminousFilters.htmlclassLuminousOptions-members.htmlclassLuminousOptions.htmlclassLuminousScanner-members.htmlclassLuminousScanner.htmlclassLuminousScanner__coll__graph.dotclassLuminousScanner__coll__graph.md5classLuminousScanner__inherit__graph.dotclassLuminousScanner__inherit__graph.md5classLuminousSimpleScanner-members.htmlclassLuminousSimpleScanner.htmlclassLuminousSimpleScanner__coll__graph.dotclassLuminousSimpleScanner__coll__graph.md5classLuminousSimpleScanner__inherit__graph.dotclassLuminousSimpleScanner__inherit__graph.md5classLuminousStatefulScanner-members.htmlclassLuminousStatefulScanner.htmlclassLuminousStatefulScanner__coll__graph.dotclassLuminousStatefulScanner__coll__graph.md5classLuminousStatefulScanner__inherit__graph.dotclassLuminousStatefulScanner__inherit__graph.md5classLuminousStringSearch-members.htmlclassLuminousStringSearch.htmlclassLuminousTokenPresets-members.htmlclassLuminousTokenPresets.htmlclassLuminousUtils-members.htmlclassLuminousUtils.htmlclassScanner-members.htmlclassScanner.htmlclassScanner__inherit__graph.dotclassScanner__inherit__graph.md5classes.htmlclassluminous-members.htmlclassluminous.htmlclosed.pngdir_313caf1132e152dd9b58bea13a4052ca.htmldir_313caf1132e152dd9b58bea13a4052ca_dep.dotdir_313caf1132e152dd9b58bea13a4052ca_dep.md5dir_68267d1309a1af8e8297ef4c3efbcdba.htmldir_68267d1309a1af8e8297ef4c3efbcdba_dep.dotdir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5dir_6dd2d287d08a289e9849dd6e2f6b9333.htmldir_6dd2d287d08a289e9849dd6e2f6b9333_dep.dotdir_6dd2d287d08a289e9849dd6e2f6b9333_dep.md5dir_aebb8dcc11953d78e620bbef0b9e2183.htmldir_aebb8dcc11953d78e620bbef0b9e2183_dep.dotdir_aebb8dcc11953d78e620bbef0b9e2183_dep.md5dir_c5f232a4203c130ceb9aba0edfa2d75b.htmldir_c5f232a4203c130ceb9aba0edfa2d75b_dep.dotdir_c5f232a4203c130ceb9aba0edfa2d75b_dep.md5doxygen.cssdoxygen.pngdynsections.jsfiles.htmlftv2blank.pngftv2cl.pngftv2doc.pngftv2folderclosed.pngftv2folderopen.pngftv2lastnode.pngftv2link.pngftv2mlastnode.pngftv2mnode.pngftv2mo.pngftv2node.pngftv2ns.pngftv2plastnode.pngftv2pnode.pngftv2splitbar.pngftv2vertline.pngfunctions.htmlfunctions_func.htmlfunctions_vars.htmlgraph_legend.dotgraph_legend.htmlgraph_legend.md5hierarchy.htmlindex.htmlinherit_graph_0.dotinherit_graph_0.md5inherit_graph_1.dotinherit_graph_1.md5inherit_graph_2.dotinherit_graph_2.md5inherit_graph_3.dotinherit_graph_3.md5inherit_graph_4.dotinherit_graph_4.md5inherit_graph_5.dotinherit_graph_5.md5inherit_graph_6.dotinherit_graph_6.md5inherits.htmljquery.jsnav_f.pngnav_g.pngnav_h.pngopen.pngscanner_8class_8php.html
search
all_24.htmlall_24.jsall_5f.htmlall_5f.jsall_61.htmlall_61.jsall_62.htmlall_62.jsall_63.htmlall_63.jsall_64.htmlall_64.jsall_65.htmlall_65.jsall_66.htmlall_66.jsall_67.htmlall_67.jsall_68.htmlall_68.jsall_69.htmlall_69.jsall_6c.htmlall_6c.jsall_6d.htmlall_6d.jsall_6e.htmlall_6e.jsall_6f.htmlall_6f.jsall_70.htmlall_70.jsall_72.htmlall_72.jsall_73.htmlall_73.jsall_74.htmlall_74.jsall_75.htmlall_75.jsclasses_6c.htmlclasses_6c.jsclasses_73.htmlclasses_73.jsclose.pngfiles_73.htmlfiles_73.jsfunctions_5f.htmlfunctions_5f.jsfunctions_61.htmlfunctions_61.jsfunctions_62.htmlfunctions_62.jsfunctions_63.htmlfunctions_63.jsfunctions_64.htmlfunctions_64.jsfunctions_65.htmlfunctions_65.jsfunctions_66.htmlfunctions_66.jsfunctions_67.htmlfunctions_67.jsfunctions_68.htmlfunctions_68.jsfunctions_69.htmlfunctions_69.jsfunctions_6c.htmlfunctions_6c.jsfunctions_6d.htmlfunctions_6d.jsfunctions_6e.htmlfunctions_6e.jsfunctions_6f.htmlfunctions_6f.jsfunctions_70.htmlfunctions_70.jsfunctions_72.htmlfunctions_72.jsfunctions_73.htmlfunctions_73.jsfunctions_74.htmlfunctions_74.jsfunctions_75.htmlfunctions_75.jsmag_sel.pngnomatches.htmlsearch.csssearch.jssearch_l.pngsearch_m.pngsearch_r.pngvariables_24.htmlvariables_24.js
sync_off.pngsync_on.pngtab_a.pngtab_b.pngtab_h.pngtab_s.pngtabs.csssite
examples
index.htmllanguages
.htaccessada.phpas.phpbash.phpbnf.phpcpp.phpcsharp.phpcss.phpdiff.phpecmascript.phperlang.phpgo.phpgroovy.phphaskell.phphtml.phpidentity.php
luminous.phpinclude
c_func_list.phpcsharp_list.phpecma.phphaskell.phpjava_func_list.phpmatlab_func_list.phpphp_func_list.phpsql.phpvb.phpvim_list.php
java.phpjavascript.phpjson.phplatex.phplolcode.phpmatlab.phpperl.phpphp.phppython.phprails.phpruby.phpscala.phpscss.phpsql.phpvb.phpvim.phpxml.phpsrc
.htaccess
cache
cli.phpcore
debug.phpdoxygen.phpformatters
load_scanners.phpluminous.phpoptions.class.phpscanners.class.phputils
style
.htaccessgeonyx.cssgithub.css
supported.phpversioncheck.phpicons
kimono.cssluminous.cssluminous.scssluminous_dark.cssluminous_light.cssluminous_print.cssparadise.csssoft.csszenophilia.csspdf.js
.gitattributes.gitignore.gitmodules.jshintignore.jshintrc.travis.ymlAUTHORSCONTRIBUTING.mdLICENSEREADME.md
docs
examples
acroforms
components
helloworld
learning
node
svgviewer
text-only
extensions
b2g
images
div_line_left.pngdiv_line_left@1.5x.pngdiv_line_left@2x.pngdiv_line_right.pngdiv_line_right@1.5x.pngdiv_line_right@2x.pngdocument_bg.pngicon_next_page.pngicon_next_page@1.5x.pngicon_previous_page.pngicon_previous_page@1.5x.pngicon_zoom_in.pngicon_zoom_in@1.5x.pngicon_zoom_out.pngicon_zoom_out@1.5x.pngspinner.pngtoolbar_background.png
viewer.cssviewer.htmlchromium
.gitignorechrome.tabs.executeScriptInFrame.jscontentscript.jscontentstyle.cssextension-router.jsfeature-detect.jsicon128.pngicon16.pngicon19.pngicon38.pngicon48.pngmanifest.json
options
pageAction
pdfHandler-v2.jspdfHandler-vcros.jspdfHandler.htmlpdfHandler.jspreferences_schema.jsonpreserve-referer.jsfirefox
.gitignoreREADME.mozillabootstrap.jschrome-mozcentral.manifestchrome.manifest
chrome
content
PdfJs-stub.jsmPdfJs.jsmPdfJsTelemetry-addon.jsmPdfJsTelemetry.jsmPdfRedirector.jsmPdfStreamConverter.jsmPdfjsChromeUtils.jsmPdfjsContentUtils.jsmpdfjschildbootstrap.js
icon.pngicon64.pnginstall.rdftools
update.rdfexternal
.gitignore
bcmaps
.gitattributes78-EUC-H.bcmap78-EUC-V.bcmap78-H.bcmap78-RKSJ-H.bcmap78-RKSJ-V.bcmap78-V.bcmap78ms-RKSJ-H.bcmap78ms-RKSJ-V.bcmap83pv-RKSJ-H.bcmap90ms-RKSJ-H.bcmap90ms-RKSJ-V.bcmap90msp-RKSJ-H.bcmap90msp-RKSJ-V.bcmap90pv-RKSJ-H.bcmap90pv-RKSJ-V.bcmapAdd-H.bcmapAdd-RKSJ-H.bcmapAdd-RKSJ-V.bcmapAdd-V.bcmapAdobe-CNS1-0.bcmapAdobe-CNS1-1.bcmapAdobe-CNS1-2.bcmapAdobe-CNS1-3.bcmapAdobe-CNS1-4.bcmapAdobe-CNS1-5.bcmapAdobe-CNS1-6.bcmapAdobe-CNS1-UCS2.bcmapAdobe-GB1-0.bcmapAdobe-GB1-1.bcmapAdobe-GB1-2.bcmapAdobe-GB1-3.bcmapAdobe-GB1-4.bcmapAdobe-GB1-5.bcmapAdobe-GB1-UCS2.bcmapAdobe-Japan1-0.bcmapAdobe-Japan1-1.bcmapAdobe-Japan1-2.bcmapAdobe-Japan1-3.bcmapAdobe-Japan1-4.bcmapAdobe-Japan1-5.bcmapAdobe-Japan1-6.bcmapAdobe-Japan1-UCS2.bcmapAdobe-Korea1-0.bcmapAdobe-Korea1-1.bcmapAdobe-Korea1-2.bcmapAdobe-Korea1-UCS2.bcmapB5-H.bcmapB5-V.bcmapB5pc-H.bcmapB5pc-V.bcmapCNS-EUC-H.bcmapCNS-EUC-V.bcmapCNS1-H.bcmapCNS1-V.bcmapCNS2-H.bcmapCNS2-V.bcmapETHK-B5-H.bcmapETHK-B5-V.bcmapETen-B5-H.bcmapETen-B5-V.bcmapETenms-B5-H.bcmapETenms-B5-V.bcmapEUC-H.bcmapEUC-V.bcmapExt-H.bcmapExt-RKSJ-H.bcmapExt-RKSJ-V.bcmapExt-V.bcmapGB-EUC-H.bcmapGB-EUC-V.bcmapGB-H.bcmapGB-V.bcmapGBK-EUC-H.bcmapGBK-EUC-V.bcmapGBK2K-H.bcmapGBK2K-V.bcmapGBKp-EUC-H.bcmapGBKp-EUC-V.bcmapGBT-EUC-H.bcmapGBT-EUC-V.bcmapGBT-H.bcmapGBT-V.bcmapGBTpc-EUC-H.bcmapGBTpc-EUC-V.bcmapGBpc-EUC-H.bcmapGBpc-EUC-V.bcmapH.bcmapHKdla-B5-H.bcmapHKdla-B5-V.bcmapHKdlb-B5-H.bcmapHKdlb-B5-V.bcmapHKgccs-B5-H.bcmapHKgccs-B5-V.bcmapHKm314-B5-H.bcmapHKm314-B5-V.bcmapHKm471-B5-H.bcmapHKm471-B5-V.bcmapHKscs-B5-H.bcmapHKscs-B5-V.bcmapHankaku.bcmapHiragana.bcmapKSC-EUC-H.bcmapKSC-EUC-V.bcmapKSC-H.bcmapKSC-Johab-H.bcmapKSC-Johab-V.bcmapKSC-V.bcmapKSCms-UHC-H.bcmapKSCms-UHC-HW-H.bcmapKSCms-UHC-HW-V.bcmapKSCms-UHC-V.bcmapKSCpc-EUC-H.bcmapKSCpc-EUC-V.bcmapKatakana.bcmapLICENSENWP-H.bcmapNWP-V.bcmapRKSJ-H.bcmapRKSJ-V.bcmapRoman.bcmapUniCNS-UCS2-H.bcmapUniCNS-UCS2-V.bcmapUniCNS-UTF16-H.bcmapUniCNS-UTF16-V.bcmapUniCNS-UTF32-H.bcmapUniCNS-UTF32-V.bcmapUniCNS-UTF8-H.bcmapUniCNS-UTF8-V.bcmapUniGB-UCS2-H.bcmapUniGB-UCS2-V.bcmapUniGB-UTF16-H.bcmapUniGB-UTF16-V.bcmapUniGB-UTF32-H.bcmapUniGB-UTF32-V.bcmapUniGB-UTF8-H.bcmapUniGB-UTF8-V.bcmapUniJIS-UCS2-H.bcmapUniJIS-UCS2-HW-H.bcmapUniJIS-UCS2-HW-V.bcmapUniJIS-UCS2-V.bcmapUniJIS-UTF16-H.bcmapUniJIS-UTF16-V.bcmapUniJIS-UTF32-H.bcmapUniJIS-UTF32-V.bcmapUniJIS-UTF8-H.bcmapUniJIS-UTF8-V.bcmapUniJIS2004-UTF16-H.bcmapUniJIS2004-UTF16-V.bcmapUniJIS2004-UTF32-H.bcmapUniJIS2004-UTF32-V.bcmapUniJIS2004-UTF8-H.bcmapUniJIS2004-UTF8-V.bcmapUniJISPro-UCS2-HW-V.bcmapUniJISPro-UCS2-V.bcmapUniJISPro-UTF8-V.bcmapUniJISX0213-UTF32-H.bcmapUniJISX0213-UTF32-V.bcmapUniJISX02132004-UTF32-H.bcmapUniJISX02132004-UTF32-V.bcmapUniKS-UCS2-H.bcmapUniKS-UCS2-V.bcmapUniKS-UTF16-H.bcmapUniKS-UTF16-V.bcmapUniKS-UTF32-H.bcmapUniKS-UTF32-V.bcmapUniKS-UTF8-H.bcmapUniKS-UTF8-V.bcmapV.bcmapWP-Symbol.bcmap
builder
cmapscompress
crlfchecker
dist
importL10n
jasmine
webL10n
l10n
README.md
make.jspackage.jsonpdfjs.configach
af
ak
an
ar
as
ast
az
be
bg
bn-BD
bn-IN
br
bs
ca
cs
csb
cy
da
de
el
en-GB
en-US
en-ZA
eo
es-AR
es-CL
es-ES
es-MX
et
eu
fa
ff
fi
fr
fy-NL
ga-IE
gd
gl
gu-IN
he
hi-IN
hr
hu
hy-AM
id
is
it
ja
ka
kk
km
kn
ko
ku
lg
lij
lt
lv
mai
mk
ml
mn
mr
ms
my
nb-NO
nl
nn-NO
nso
oc
or
pa-IN
pl
pt-BR
pt-PT
rm
ro
ru
rw
sah
si
sk
sl
son
sq
sr
sv-SE
sw
ta-LK
ta
te
th
tl
tn
tr
uk
ur
vi
wo
xh
zh-CN
zh-TW
zu
src
core
annotation.jsarithmetic_decoder.jsbidi.jscharsets.jschunked_stream.jscmap.jscolorspace.jscore.jscrypto.jsevaluator.jsfont_renderer.jsfonts.jsfunction.jsglyphlist.jsimage.jsjbig2.jsjpg.jsjpx.jsmetrics.jsmurmurhash3.jsnetwork.jsobj.jsparser.jspattern.jspdf_manager.jsps_parser.jsstream.jsworker.js
display
doc_helper.jsimages
pdf.jsshared
worker_loader.jstest
.gitignoredownloadutils.jsdriver.js
viewer.phpfeatures
font
font_core_spec.jsfont_fpgm_spec.jsfont_os2_spec.jsfont_post_spec.jsfont_test.htmlfontutils.jsttxdriver.js
mozcentral
Makefile.inbrowser.inibrowser_pdfjs_main.jsbrowser_pdfjs_savedialog.jsbrowser_pdfjs_views.jsfile_pdfjs_test.pdfmoz.build
pdfs
.gitattributes.gitignore20130226130259.pdf.linkArabicCIDTrueType.pdfDiwanProfile.pdf.linkJST2007-5.pdf.linkP020121130574743273239.pdf.linkS2.pdfSFAA_Japanese.pdf.linkTAMReview.pdfTaroUTR50SortedList112.pdf.linkThuluthFeatures.pdfZapfDingbats.pdfaboutstacks.pdf.linkalphatrans.pdfannotation-as.pdf.linkarial_unicode_ab_cidfont.pdfarial_unicode_en_cidfont.pdfartofwar.pdf.linkasciihexdecode.pdfbasicapi.pdfbpl13210.pdf.linkbug1011159.pdfbug1027533.pdfbug1028735.pdfbug1046314.pdfbug1050040.pdfbug1064894.pdf.linkbug1065245.pdfbug1072164.pdf.linkbug1077808.pdf.linkbug1108301.pdfbug1108753.pdf.linkbug1140761.pdf.linkbug1142033.pdf.linkbug1157493.pdfbug766138.pdf.linkbug808084.pdf.linkbug847420.pdfbug850854.pdfbug859204.pdfbug860632.pdfbug864847.pdfbug865858.pdf.linkbug866395.pdfbug867484.pdf.linkbug868745.pdfbug878026.pdfbug878194.pdf.linkbug887152.pdf.linkbug888437.pdf.linkbug889327.pdf.linkbug893730.pdfbug894572.pdfbug900822.pdfbug903856.pdfbug911034.pdfbug921760.pdf.linkbug946506.pdfcable.pdf.linkcanvas.pdfclose-path-bug.pdfcmykjpeg.pdfcomplex_ttf_font.pdfdevicen.pdfecma262.pdf.linkendchar.pdfextgstate.pdff1040.pdf.linkfilled-background.pdffips197.pdf.linkfit11-talk.pdf.linkfranz.pdffreeculture.pdfgeothermal.pdf.linkgerman-umlaut.pdf.linkgesamt.pdf.linkglyph_accent.pdfgradientfill.pdfhelloworld-bad.pdfhmm.pdf.linkhtml5checker.pdf.linkhudsonsurvey.pdf.linki9.pdf.linkibwa-bad.pdf.linkichiji.pdf.linkintelisa.pdf.linkissue1002.pdfissue1010.pdf.linkissue1015.pdf.linkissue1049.pdf.linkissue1055.pdf.linkissue1096.pdf.linkissue1127.pdf.linkissue1133.pdf.linkissue1155.pdf.linkissue1169.pdf.linkissue1171.pdfissue1233.pdf.linkissue1243.pdf.linkissue1249.pdfissue1257.pdf.linkissue1293.pdf.linkissue1309.pdf.linkissue1317.pdf.linkissue1350.pdfissue1419.pdf.linkissue1466.pdf.linkissue1512.pdf.linkissue1597.pdf.linkissue1629.pdf.linkissue1655.pdf.linkissue1658.pdf.linkissue1685.pdf.linkissue1687.pdf.linkissue1709.pdf.linkissue1721.pdf.linkissue1729.pdf.linkissue1796.pdf.linkissue1810.pdf.linkissue1878.pdf.linkissue1905.pdfissue1912.pdf.linkissue1936.pdf.linkissue1998.pdf.linkissue2006.pdf.linkissue2074.pdfissue2099-1.pdfissue2128.pdf.linkissue2129.pdf.linkissue2139.pdf.linkissue2386.pdf.linkissue2391-1.pdfissue2391-2.pdfissue2442.pdf.linkissue2531.pdf.linkissue2537.pdf.linkissue2537r.pdfissue2627.pdf.linkissue2642.pdf.linkissue2770.pdf.linkissue2799.pdf.linkissue2829.pdf.linkissue2833.pdfissue2840.pdfissue2853.pdf.linkissue2881.pdf.linkissue2931.pdfissue2956.pdfissue2984.pdf.linkissue3025.pdfissue3062.pdf.linkissue3064.pdf.linkissue3115.pdf.linkissue3205.pdf.linkissue3207.pdf.linkissue3263.pdf.linkissue3323.pdfissue3371.pdfissue3384.pdf.linkissue3405.pdf.linkissue3427.pdf.linkissue3438.pdfissue3591.pdf.linkissue3666.pdf.linkissue3848.pdf.linkissue3879.pdf.linkissue3885.pdfissue3903.pdf.linkissue3925.pdf.linkissue3999.pdf.linkissue4061.pdfissue4246.pdfissue4304.pdfissue4379.pdfissue4436.pdf.linkissue4461.pdfissue4550.pdfissue4573.pdfissue4630.pdfissue4650.pdfissue4668.pdfissue4722.pdfissue4800.pdfissue4801.pdfissue4875.pdfissue4881.pdfissue4883.pdf.linkissue4926.pdf.linkissue4934.pdfissue5010.pdfissue5039.pdfissue5070.pdfissue5202.pdfissue5238.pdfissue5244.pdfissue5280.pdfissue5291.pdfissue5334.pdfissue5421.pdfissue5470.pdfissue5475.pdfissue5481.pdfissue5501.pdfissue5509.pdf.linkissue5549.pdfissue5567.pdfissue5592.pdf.linkissue5599.pdfissue5644.pdf.linkissue5701.pdfissue5704.pdfissue5726.pdf.linkissue5734.pdfissue5747.pdfissue5751.pdfissue5801.pdfissue5874.pdfissue5896.pdfissue5909.pdfissue5939.pdf.linkissue5954.pdfissue5972.pdfissue5994.pdfissue6010_1.pdfissue6010_2.pdfissue6068.pdfissue6081.pdfissue6099.pdfissue6117.pdf.linkissue818.pdf.linkissue840.pdfissue845.pdf.linkissue918.pdfissue919.pdf.linkissue925.pdfjai.pdf.linkjavauninstall-7.pdf.linkkdchart.pdf.linklink-annotation-border.pdf.linkliveprogramming.pdf.linkmao.pdf.linkmixedfonts.pdfmmtype1.pdfnoembed-eucjp.pdfnoembed-identity-2.pdfnoembed-identity.pdfnoembed-jis7.pdfnoembed-sjis.pdfocs.pdf.linkohkubo-SS04.pdf.linkpal-o47.pdf.linkpdf.pdf.linkpdfjsbad1586.pdfpdfkit_compressed.pdfpdkids.pdf.linkpersonwithdog.pdfpiperine.pdf.linkpreistabelle.pdf.linkprotectip.pdf.linkrotated.pdfrotation.pdfscan-bad.pdfshading_extend.pdfshavian.pdf.linksimpletype3font.pdfsizes.pdfsmaskdim.pdftcpdf_033.pdf.linktracemonkey.pdftutorial.pdf.linktxt2pdf.pdf.linktype4psfunc.pdfunix01.pdf.linkusmanm-bad.pdf.linkvertical.pdfvesta.pdf.linkwdsg_fitc.pdf.linkwnv_chinese.pdf.linkyo01.pdf.linkzerowidthline.pdf
resources
stats
test.jstest_manifest.jsontest_slave.htmltestutils.jsttx
unit
api_spec.jscmap_spec.jscrypto_spec.jsevaluator_spec.jsfont_spec.jsfunction_spec.jsmetadata_spec.jsobj_spec.jsparser_spec.jsstream_spec.jstestreporter.jsui_utils_spec.jsunit_test.htmlutil_spec.js
webbrowser.jswebserver.jsweb
.gitignoreannotations_layer_builder.jschromecom.jscompatibility.jscompressed.tracemonkey-pldi-09.pdfdebugger.jsdefault_preferences.jsdownload_manager.jsfirefoxcom.jsgrab_to_pan.jshand_tool.js
images
annotation-check.svgannotation-comment.svgannotation-help.svgannotation-insert.svgannotation-key.svgannotation-newparagraph.svgannotation-noicon.svgannotation-note.svgannotation-paragraph.svgfindbarButton-next-rtl.pngfindbarButton-next-rtl@2x.pngfindbarButton-next.pngfindbarButton-next@2x.pngfindbarButton-previous-rtl.pngfindbarButton-previous-rtl@2x.pngfindbarButton-previous.pngfindbarButton-previous@2x.pnggrab.curgrabbing.curloading-icon.gifloading-small.pngloading-small@2x.pngsecondaryToolbarButton-documentProperties.pngsecondaryToolbarButton-documentProperties@2x.pngsecondaryToolbarButton-firstPage.pngsecondaryToolbarButton-firstPage@2x.pngsecondaryToolbarButton-handTool.pngsecondaryToolbarButton-handTool@2x.pngsecondaryToolbarButton-lastPage.pngsecondaryToolbarButton-lastPage@2x.pngsecondaryToolbarButton-rotateCcw.pngsecondaryToolbarButton-rotateCcw@2x.pngsecondaryToolbarButton-rotateCw.pngsecondaryToolbarButton-rotateCw@2x.pngshadow.pngtexture.pngtoolbarButton-bookmark.pngtoolbarButton-bookmark@2x.pngtoolbarButton-download.pngtoolbarButton-download@2x.pngtoolbarButton-menuArrows.pngtoolbarButton-menuArrows@2x.pngtoolbarButton-openFile.pngtoolbarButton-openFile@2x.pngtoolbarButton-pageDown-rtl.pngtoolbarButton-pageDown-rtl@2x.pngtoolbarButton-pageDown.pngtoolbarButton-pageDown@2x.pngtoolbarButton-pageUp-rtl.pngtoolbarButton-pageUp-rtl@2x.pngtoolbarButton-pageUp.pngtoolbarButton-pageUp@2x.pngtoolbarButton-presentationMode.pngtoolbarButton-presentationMode@2x.pngtoolbarButton-print.pngtoolbarButton-print@2x.pngtoolbarButton-search.pngtoolbarButton-search@2x.pngtoolbarButton-secondaryToolbarToggle-rtl.pngtoolbarButton-secondaryToolbarToggle-rtl@2x.pngtoolbarButton-secondaryToolbarToggle.pngtoolbarButton-secondaryToolbarToggle@2x.pngtoolbarButton-sidebarToggle-rtl.pngtoolbarButton-sidebarToggle-rtl@2x.pngtoolbarButton-sidebarToggle.pngtoolbarButton-sidebarToggle@2x.pngtoolbarButton-viewAttachments.pngtoolbarButton-viewAttachments@2x.pngtoolbarButton-viewOutline-rtl.pngtoolbarButton-viewOutline-rtl@2x.pngtoolbarButton-viewOutline.pngtoolbarButton-viewOutline@2x.pngtoolbarButton-viewThumbnail.pngtoolbarButton-viewThumbnail@2x.pngtoolbarButton-zoomIn.pngtoolbarButton-zoomIn@2x.pngtoolbarButton-zoomOut.pngtoolbarButton-zoomOut@2x.png
interfaces.jsmozPrintCallback_polyfill.jsoverlay_manager.jspassword_prompt.jspdf_attachment_view.jspdf_document_properties.jspdf_find_bar.jspdf_find_controller.jspdf_history.jspdf_link_service.jspdf_outline_view.jspdf_page_view.jspdf_presentation_mode.jspdf_rendering_queue.jspdf_thumbnail_view.jspdf_thumbnail_viewer.jspdf_viewer.component.jspdf_viewer.csspdf_viewer.jspreferences.jssecondary_toolbar.jstext_layer_builder.csstext_layer_builder.jsui_utils.jsview_history.jsviewer-snippet-chrome-extension.htmlviewer-snippet-firefox-extension.htmlviewer-snippet-minified.htmlviewer-snippet-mozPrintCallback-polyfill.htmlviewer-snippet.htmlviewer.cssviewer.htmlviewer.jsphpmailer
.gitignore.scrutinizer.yml.travis.ymlLICENSEPHPMailerAutoload.phpREADME.mdchangelog.mdclass.phpmailer.phpclass.pop3.phpclass.smtp.phpcomposer.json
docs
Callback_function_notes.txtDomainKeys_notes.txtNote_for_SMTP_debugging.txtextending.htmlfaq.htmlgeneratedocs.shpop3_article.txt
examples
LGPLv3.txtcode_generator.phpscontents.htmlexceptions.phpsgmail.phps
images
index.htmlmail.phpsmailing_list.phpspop_before_smtp.phpsscripts
sendmail.phpssmtp.phpssmtp_no_auth.phpsstyles
shCore.cssshCoreDefault.cssshCoreDjango.cssshCoreEclipse.cssshCoreEmacs.cssshCoreFadeToGrey.cssshCoreMDUltra.cssshCoreMidnight.cssshCoreRDark.cssshThemeAppleScript.cssshThemeDefault.cssshThemeDjango.cssshThemeEclipse.cssshThemeEmacs.cssshThemeFadeToGrey.cssshThemeMDUltra.cssshThemeMidnight.cssshThemeRDark.cssshThemeVisualStudio.csswrapping.png
extras
language
phpmailer.lang-ar.phpphpmailer.lang-be.phpphpmailer.lang-br.phpphpmailer.lang-ca.phpphpmailer.lang-ch.phpphpmailer.lang-cz.phpphpmailer.lang-de.phpphpmailer.lang-dk.phpphpmailer.lang-el.phpphpmailer.lang-eo.phpphpmailer.lang-es.phpphpmailer.lang-et.phpphpmailer.lang-fa.phpphpmailer.lang-fi.phpphpmailer.lang-fo.phpphpmailer.lang-fr.phpphpmailer.lang-gl.phpphpmailer.lang-he.phpphpmailer.lang-hr.phpphpmailer.lang-hu.phpphpmailer.lang-it.phpphpmailer.lang-ja.phpphpmailer.lang-ka.phpphpmailer.lang-lt.phpphpmailer.lang-lv.phpphpmailer.lang-nl.phpphpmailer.lang-no.phpphpmailer.lang-pl.phpphpmailer.lang-pt.phpphpmailer.lang-ro.phpphpmailer.lang-ru.phpphpmailer.lang-se.phpphpmailer.lang-sk.phpphpmailer.lang-sr.phpphpmailer.lang-tr.phpphpmailer.lang-uk.phpphpmailer.lang-vi.phpphpmailer.lang-zh.phpphpmailer.lang-zh_cn.php
test
bootstrap.phpfakepopserver.shfakesendmail.shphpmailerLangTest.phpphpmailerTest.phprunfakepopserver.shtest_callback.phptestbootstrap-dist.php
travis.phpunit.xml.disttcpdf
CHANGELOG.TXTLICENSE.TXTREADME.TXTcomposer.jsontcpdf.phptcpdf_autoconfig.phptcpdf_barcodes_1d.phptcpdf_barcodes_2d.phptcpdf_import.phptcpdf_parser.php
config
examples
barcodes
example_1d_html.phpexample_1d_png.phpexample_1d_svg.phpexample_1d_svgi.phpexample_2d_datamatrix_html.phpexample_2d_datamatrix_png.phpexample_2d_datamatrix_svg.phpexample_2d_datamatrix_svgi.phpexample_2d_pdf417_html.phpexample_2d_pdf417_png.phpexample_2d_pdf417_svg.phpexample_2d_pdf417_svgi.phpexample_2d_qrcode_html.phpexample_2d_qrcode_png.phpexample_2d_qrcode_svg.phpexample_2d_qrcode_svgi.phptcpdf_barcodes_1d_include.phptcpdf_barcodes_2d_include.php
config
data
example_001.phpexample_002.phpexample_003.phpexample_004.phpexample_005.phpexample_006.phpexample_007.phpexample_008.phpexample_009.phpexample_010.phpexample_011.phpexample_012.pdfexample_012.phpexample_013.phpexample_014.phpexample_015.phpexample_016.phpexample_017.phpexample_018.phpexample_019.phpexample_020.phpexample_021.phpexample_022.phpexample_023.phpexample_024.phpexample_025.phpexample_026.phpexample_027.phpexample_028.phpexample_029.phpexample_030.phpexample_031.phpexample_032.phpexample_033.phpexample_034.phpexample_035.phpexample_036.phpexample_037.phpexample_038.phpexample_039.phpexample_040.phpexample_041.phpexample_042.phpexample_043.phpexample_044.phpexample_045.phpexample_046.phpexample_047.phpexample_048.phpexample_049.phpexample_050.phpexample_051.phpexample_052.phpexample_053.phpexample_054.phpexample_055.phpexample_056.phpexample_057.phpexample_058.phpexample_059.phpexample_060.phpexample_061.phpexample_062.phpexample_063.phpexample_064.phpexample_065.phpimages
_blank.pngalpha.pngbug.epsimage_demo.jpgimage_with_alpha.pngimg.pnglogo_example.giflogo_example.jpglogo_example.pngpelican.aitcpdf_cell.pngtcpdf_logo.jpgtcpdf_signature.pngtestsvg.svgtiger.aitux.svg
index.phplang
afr.phpara.phpaze.phpbel.phpbra.phpbul.phpcat.phpces.phpchi.phpcym.phpdan.phpeng.phpest.phpeus.phpfar.phpfra.phpger.phpgle.phpglg.phphat.phpheb.phphrv.phphun.phphye.phpind.phpita.phpjpn.phpkat.phpkor.phpmkd.phpmlt.phpmsa.phpnld.phpnob.phppol.phppor.phpron.phprus.phpslv.phpspa.phpsqi.phpsrp.phpswa.phpswe.phpukr.phpurd.phpyid.phpzho.php
tcpdf_include.phpfonts
ae_fonts_2.0
aealarabiya.ctg.zaealarabiya.phpaealarabiya.zaefurat.ctg.zaefurat.phpaefurat.zcid0cs.phpcid0ct.phpcid0jp.phpcid0kr.phpcourier.phpcourierb.phpcourierbi.phpcourieri.phpdejavu-fonts-ttf-2.33
dejavusans.ctg.zdejavusans.phpdejavusans.zdejavusansb.ctg.zdejavusansb.phpdejavusansb.zdejavusansbi.ctg.zdejavusansbi.phpdejavusansbi.zdejavusanscondensed.ctg.zdejavusanscondensed.phpdejavusanscondensed.zdejavusanscondensedb.ctg.zdejavusanscondensedb.phpdejavusanscondensedb.zdejavusanscondensedbi.ctg.zdejavusanscondensedbi.phpdejavusanscondensedbi.zdejavusanscondensedi.ctg.zdejavusanscondensedi.phpdejavusanscondensedi.zdejavusansextralight.ctg.zdejavusansextralight.phpdejavusansextralight.zdejavusansi.ctg.zdejavusansi.phpdejavusansi.zdejavusansmono.ctg.zdejavusansmono.phpdejavusansmono.zdejavusansmonob.ctg.zdejavusansmonob.phpdejavusansmonob.zdejavusansmonobi.ctg.zdejavusansmonobi.phpdejavusansmonobi.zdejavusansmonoi.ctg.zdejavusansmonoi.phpdejavusansmonoi.zdejavuserif.ctg.zdejavuserif.phpdejavuserif.zdejavuserifb.ctg.zdejavuserifb.phpdejavuserifb.zdejavuserifbi.ctg.zdejavuserifbi.phpdejavuserifbi.zdejavuserifcondensed.ctg.zdejavuserifcondensed.phpdejavuserifcondensed.zdejavuserifcondensedb.ctg.zdejavuserifcondensedb.phpdejavuserifcondensedb.zdejavuserifcondensedbi.ctg.zdejavuserifcondensedbi.phpdejavuserifcondensedbi.zdejavuserifcondensedi.ctg.zdejavuserifcondensedi.phpdejavuserifcondensedi.zdejavuserifi.ctg.zdejavuserifi.phpdejavuserifi.zfreefont-20120503
freemono.ctg.zfreemono.phpfreemono.zfreemonob.ctg.zfreemonob.phpfreemonob.zfreemonobi.ctg.zfreemonobi.phpfreemonobi.zfreemonoi.ctg.zfreemonoi.phpfreemonoi.zfreesans.ctg.zfreesans.phpfreesans.zfreesansb.ctg.zfreesansb.phpfreesansb.zfreesansbi.ctg.zfreesansbi.phpfreesansbi.zfreesansi.ctg.zfreesansi.phpfreesansi.zfreeserif.ctg.zfreeserif.phpfreeserif.zfreeserifb.ctg.zfreeserifb.phpfreeserifb.zfreeserifbi.ctg.zfreeserifbi.phpfreeserifbi.zfreeserifi.ctg.zfreeserifi.phpfreeserifi.zhelvetica.phphelveticab.phphelveticabi.phphelveticai.phphysmyeongjostdmedium.phpkozgopromedium.phpkozminproregular.phpmsungstdlight.phppdfacourier.phppdfacourier.zpdfacourierb.phppdfacourierb.zpdfacourierbi.phppdfacourierbi.zpdfacourieri.phppdfacourieri.zpdfahelvetica.phppdfahelvetica.zpdfahelveticab.phppdfahelveticab.zpdfahelveticabi.phppdfahelveticabi.zpdfahelveticai.phppdfahelveticai.zpdfasymbol.phppdfasymbol.zpdfatimes.phppdfatimes.zpdfatimesb.phppdfatimesb.zpdfatimesbi.phppdfatimesbi.zpdfatimesi.phppdfatimesi.zpdfazapfdingbats.phppdfazapfdingbats.zstsongstdlight.phpsymbol.phptimes.phptimesb.phptimesbi.phptimesi.phpuni2cid_ac15.phpuni2cid_ag15.phpuni2cid_aj16.phpuni2cid_ak12.phpzapfdingbats.phpinclude
barcodes
sRGB.icctcpdf_colors.phptcpdf_filters.phptcpdf_font_data.phptcpdf_fonts.phptcpdf_images.phptcpdf_static.phptools
video_js
assets
audio
css
SpryMenuBar
SpryMenuBar.jsSpryMenuBarDown.gifSpryMenuBarDownHover.gifSpryMenuBarHorizontal.cssSpryMenuBarRight.gifSpryMenuBarRightHover.gifindex.php
SpryTabbedPanels.cssSpryTooltip.cssSpryValidationTextField.csschat.cssglobal.cssglobal.phpglobal_notifications.cssgrand_dialogue_smiley.cssheader_global.cssiconFont_2.cssie.cssimgareaselect
border-anim-h.gifborder-anim-v.gifborder-h.gifborder-v.gifimgareaselect-animated.cssimgareaselect-default.cssimgareaselect-deprecated.css
index.phpjquery.mobile-1.3.0.min.cssless
metro-bootstrap-responsive_2.cssmetro-bootstrap_2.cssmetro-icons_3.cssmetro_3.cssminifyURL.cssmobile-metro.cssmobile.cssprivate_chat_contener.cssprivatechat.cssthemes
base
images
index.phpui-bg_flat_0_aaaaaa_40x100.pngui-bg_flat_75_ffffff_40x100.pngui-bg_glass_55_fbf9ee_1x400.pngui-bg_glass_65_ffffff_1x400.pngui-bg_glass_75_dadada_1x400.pngui-bg_glass_75_e6e6e6_1x400.pngui-bg_glass_95_fef1ec_1x400.pngui-bg_highlight-soft_75_cccccc_1x100.pngui-icons_222222_256x240.pngui-icons_2e83ff_256x240.pngui-icons_454545_256x240.pngui-icons_888888_256x240.pngui-icons_cd0a0a_256x240.png
index.phpjquery-ui.cssjquery.ui.accordion.cssjquery.ui.all.cssjquery.ui.autocomplete.cssjquery.ui.base.cssjquery.ui.button.cssjquery.ui.core.cssjquery.ui.datepicker.cssjquery.ui.dialog.cssjquery.ui.menu.cssjquery.ui.progressbar.cssjquery.ui.resizable.cssjquery.ui.selectable.cssjquery.ui.slider.cssjquery.ui.spinner.cssjquery.ui.tabs.cssjquery.ui.theme.cssjquery.ui.tooltip.cssminified
images
index.phpui-bg_flat_0_aaaaaa_40x100.pngui-bg_flat_75_ffffff_40x100.pngui-bg_glass_55_fbf9ee_1x400.pngui-bg_glass_65_ffffff_1x400.pngui-bg_glass_75_dadada_1x400.pngui-bg_glass_75_e6e6e6_1x400.pngui-bg_glass_95_fef1ec_1x400.pngui-bg_highlight-soft_75_cccccc_1x100.pngui-icons_222222_256x240.pngui-icons_2e83ff_256x240.pngui-icons_454545_256x240.pngui-icons_888888_256x240.pngui-icons_cd0a0a_256x240.png
index.phpjquery-ui.min.cssjquery.ui.accordion.min.cssjquery.ui.autocomplete.min.cssjquery.ui.button.min.cssjquery.ui.core.min.cssjquery.ui.datepicker.min.cssjquery.ui.dialog.min.cssjquery.ui.menu.min.cssjquery.ui.progressbar.min.cssjquery.ui.resizable.min.cssjquery.ui.selectable.min.cssjquery.ui.slider.min.cssjquery.ui.spinner.min.cssjquery.ui.tabs.min.cssjquery.ui.theme.min.cssjquery.ui.tooltip.min.cssfonts
iconFont.dev.svgiconFont.eoticonFont.jsoniconFont.svgiconFont.ttficonFont.woffindex.phpmetro.eotmetro.svgmetro.ttfmetro.woffmetroSysIcons.svgmetroSysIcons.ttfmetroSysIcons.woff
themes.googleusercontent.com
html
img
accepte_webcam.jpgaccepte_webcam_vide.jpg
acceuil
index.phproute_1280x1278_light.jpgroute_1920x1080_light.jpgroute_1920x1200.jpgroute_1920x1200_light.jpgroute_3543x2358.jpgroute_512x700_light.jpg
activer_webcam.pngadd_text.gifaime.pngaime_vide.pngaimeplus.pngbannercucc.gifbullet_arrow_right.pngbyethost.pngcapatcha.pngchargement.gifclose.gifcomments.pngcomunic_share_small_button_fr.jpgdelete.pngdelete_user.pngdiscover_comunic_modifie.pngdiscover_comunic_vierge.pngdiscover_private_chat.pngdisponible.pngecranvide.pngecranvide_old.pngedit.pngemail.pngensembles
erreur.pngexclamation.pngfancybox
blank.giffancybox_loading.giffancybox_loading@2x.giffancybox_overlay.pngfancybox_sprite.pngfancybox_sprite@2x.png
favicon.icofavicon_64.icofile_extension_pdf.pngformulaire_recherche.pngfrance.pnghelp.pnghelp_big.pnghome_login_background.pngimage_delete.pngimage_edit.pngimg_actualite
index.phpindisponible.pnginterrogation.pnglock.pnglogo-facebook.pnglogo-youtube.pnglogo_comunic.pnglogo_comunic_services.pnglogoacceuil.jpglogomoderne.jpgmail_green.pngmini_logo_comunic.pngnew.pngnotification_old.pngnouveaute_user.pngpage_add.pngprendre_photo.pngpresentationrapide.pngpresentationrapide_old.pngprive.pngps
raspberry-pi-logo.pngrefresh.pngsafe.pngsearch_accounts.pngset_password.pngshare.pngsharecomunic.pngsmall
arrow_down.pngarrow_up.pngbin_closed.pngcog.pngcomment_add.pngcross.pngdate_delete.pngimage.pngindex.phpworld.png
smiley
anchor.pngandroid.pngapple.pngattach.pngaward_star_gold_green.pngbad.gifbeer.pngbell.pngbomb.pngbook.pngbook_open.pngbug.pngbus.pngcake.pngcamera_black.pngcd.pngcomputer.pngdevil_smile.gifemail.pngemotion_bigsmile.pngemotion_party.png
succes.pngsupp.pngtext_list_numbers.pngthumb_up.pngtick.pngflag
flag_afghanistan.pngflag_albania.pngflag_algeria.pngflag_american_samoa.pngflag_andorra.pngflag_angola.pngflag_anguilla.pngflag_antigua_and_barbuda.pngflag_argentina.pngflag_armenia.pngflag_aruba.pngflag_australia.pngflag_austria.pngflag_azerbaijan.pngflag_bahamas.pngflag_bahrain.pngflag_bangladesh.pngflag_barbados.pngflag_belarus.pngflag_belgium.pngflag_belize.pngflag_benin.pngflag_bermuda.pngflag_bhutan.pngflag_bolivia.pngflag_bosnia.pngflag_botswana.pngflag_boy_scout.pngflag_brazil.pngflag_british_indian_ocean.pngflag_british_virgin_islands.pngflag_brunei.pngflag_bulgaria.pngflag_burkina_faso.pngflag_burma.pngflag_burundi.pngflag_cambodia.pngflag_cameroon.pngflag_canada.pngflag_cape_verde.pngflag_cayman_islands.pngflag_central_african_republic.pngflag_chad.pngflag_chile.pngflag_china.pngflag_colombia.pngflag_comoros.pngflag_congo_democratic_republic.pngflag_congo_republic.pngflag_cook_islands.pngflag_costa_rica.pngflag_cote_divoire.pngflag_croatia.pngflag_cuba.pngflag_cyprus.pngflag_czech_republic.pngflag_denmark.pngflag_djibouti.pngflag_dominica.pngflag_dominican_republic.pngflag_east_timor.pngflag_egypt.pngflag_el_salvador.pngflag_england.pngflag_equador.pngflag_equatorial_guinea.pngflag_eritrea.pngflag_estonia.pngflag_ethiopia.pngflag_european_union.pngflag_falkland_islands.pngflag_faroe_islands.pngflag_fiji.pngflag_finish.pngflag_finland.pngflag_france.pngflag_french_polynesia.pngflag_gabon.pngflag_gambia.pngflag_georgia.pngflag_germany.pngflag_ghana.pngflag_gibraltar.pngflag_great_britain.pngflag_greece.pngflag_greenland.pngflag_grenada.pngflag_guam.pngflag_guatemala.pngflag_guernsey.pngflag_guinea.pngflag_guinea_bissau.pngflag_guyana.pngflag_haiti.pngflag_honduras.pngflag_hong_kong.pngflag_hot.pngflag_hungary.pngflag_iceland.pngflag_india.pngflag_indonesia.pngflag_iran.pngflag_iraq.pngflag_ireland.pngflag_isle_of_man.pngflag_israel.pngflag_italy.pngflag_jamaica.pngflag_japan.pngflag_jersey.pngflag_jordan.pngflag_kazakhstan.pngflag_kenya.pngflag_kiribati.pngflag_kuwait.pngflag_kyrgyzstan.pngflag_laos.pngflag_latvia.pngflag_lebanon.pngflag_lesotho.pngflag_liberia.pngflag_libya.pngflag_liechtenstein.pngflag_lithuania.pngflag_luxembourg.pngflag_macau.pngflag_macedonia.pngflag_madagascar.pngflag_malawi.pngflag_malaysia.pngflag_maledives.pngflag_mali.pngflag_malta.pngflag_marshall_islands.pngflag_martinique.pngflag_mauretania.pngflag_mauritius.pngflag_mexico.pngflag_micronesia.pngflag_moldova.pngflag_monaco.pngflag_mongolia.pngflag_montserrat.pngflag_morocco.pngflag_mozambique.pngflag_namibia.pngflag_nato.pngflag_nauru.pngflag_nepal.pngflag_netherlands.pngflag_netherlands_antilles.pngflag_new.pngflag_new_zealand.pngflag_nicaragua.pngflag_niger.pngflag_nigeria.pngflag_niue.pngflag_norfolk_islands.pngflag_north_korea.pngflag_northern_mariana_islands.pngflag_norway.pngflag_olympic.pngflag_oman.pngflag_pakistan.pngflag_palau.pngflag_panama.pngflag_papua_new_guinea.pngflag_paraquay.pngflag_peru.pngflag_philippines.pngflag_pitcairn_islands.pngflag_poland.pngflag_portugal.pngflag_puerto_rico.pngflag_qatar.pngflag_red_cross.pngflag_red_dull.pngflag_romania.pngflag_russia.pngflag_rwanda.pngflag_saint_helena.pngflag_saint_kitts_and_nevis.pngflag_saint_lucia.pngflag_saint_pierre_and_miquelon.pngflag_saint_vincent_and_grenadines.pngflag_samoa.pngflag_san_marino.pngflag_sao_tome_and_principe.pngflag_saudi_arabia.pngflag_scotland.pngflag_senegal.pngflag_serbia_montenegro.pngflag_seychelles.pngflag_sierra_leone.pngflag_singapore.pngflag_slovakia.pngflag_slovenia.pngflag_solomon_islands.pngflag_somalia.pngflag_south_africa.pngflag_south_georgia.pngflag_south_korea.pngflag_spain.pngflag_sri_lanka.pngflag_sudan.pngflag_suriname.pngflag_swaziland.pngflag_sweden.pngflag_switzerland.pngflag_syria.pngflag_taiwan.pngflag_tajikistan.pngflag_tanzania.pngflag_thailand.pngflag_tibet.pngflag_togo.pngflag_tonga.pngflag_trinidad_and_tobago.pngflag_tunisia.pngflag_turkey.pngflag_turkmenistan.pngflag_turks_and_caicos_islands.pngflag_tuvalu.pngflag_uganda.pngflag_ukraine.pngflag_unesco.pngflag_united_arab_emirates.pngflag_united_nations.pngflag_uruquay.pngflag_usa.pngflag_uzbekistan.pngflag_vanuatu.pngflag_vatican_city.pngflag_venezuela.pngflag_vietnam.pngflag_virgin_islands.pngflag_wales.pngflag_wallis_and_futuna.pngflag_wto.pngflag_wwf.pngflag_yemen.pngflag_zambia.pngflag_zimbabwe.png
flower.pnggood.gifheart.pngheart_break.pngindex.phplaptop.pnglogo_comunic.pnglogo_smiley.pngmap.pngmicrophone.pngmoney_dollar.pngmovies.pngmusic.pngphone.pngpizza.pngrain.pngsmile.gifsmile_gris.gifsmiley-cool.gifsmiley-cry.gifsmiley-laughing.gifsmiley-sealed.gifsmiley-surprised.gifsmiley-tongue-out.gifsmiley-yell.gifstar.pngsun.pngtea_cup.pngteddy_bear.pngtick.pngtime.pngtree.pngubuntu.pnguser.pnguser_king.pngvlc.pngwhat.pngtuile
1dca413a-3e97-4339-8fa2-55739d0d87cf.zipREADME.txtbrowserconfig.xmlcode.txtlarge.pngsquare.pngtiny.pngwide.png
usa.pnguser.pnguser_add.pngusers_3.pngusers_5.pngvoir.pngwait.gifwarning_update.pngwebcam.pngworld.pngjs
SpryTabbedPanels.jsSpryTooltip.jsSpryValidationTextField.jsaide_smiley.jsajoutevolue.jsajoutsimple.jsamisajax.jsavertissement_console.jschat.jscommentairesmobile.jsconfirmdeleteaccount.jscountdown.jscountdown_countdown.js.jsglobal.jsglobal.phpglobal_ie.jsgrand_dialogue_smiley.jsgroupes.jsheader_global.jsindex.phpindex.phpjquery-1.8.3.jsjquery-1.8.3.min.jsjquery-1.9.1.jsjquery-ui-1.9.2.custom.jsjquery.ui.autocomplete.jsjquery.ui.core.jsjquery.ui.dialog.jsjquery.ui.draggable.jsjquery.ui.menu.jsjquery.ui.mouse.jsjquery.ui.position.jsjquery.ui.tabs.jsjquery.ui.widget.jstiny_mce.jstiny_mce_popup.jstiny_mce_src.jswebrtc_main.js
holder
imgareaselect
index.phpinitialise_fancybox.jsipwEditor
fckeditor
editor
images
index.php
index.phpsmiley
index.php
msn
angel_smile.gifangry_smile.gifbroken_heart.gifcake.gifconfused_smile.gifcry_smile.gifdevil_smile.gifembaressed_smile.gifenvelope.gifheart.gifindex.phpkiss.giflightbulb.gifomg_smile.gifregular_smile.gifsad_smile.gifshades_smile.gifteeth_smile.gifthumbs_down.gifthumbs_up.giftounge_smile.gifwhatchutalkingabout_smile.gifwink_smile.gif
jquery
liste_smile.jsload-metro_2.jsmetro
README.mdmetro-accordion.jsmetro-button-set.jsmetro-calendar.jsmetro-carousel.jsmetro-core.jsmetro-countdown.jsmetro-date-format.jsmetro-datepicker.jsmetro-dialog.jsmetro-drag-tile.jsmetro-dropdown.jsmetro-fluentmenu.jsmetro-global.jsmetro-hint.jsmetro-initiator.jsmetro-input-control.jsmetro-listview.jsmetro-live-tile.jsmetro-loader.jsmetro-locale.jsmetro-notify.jsmetro-panel.jsmetro-plugin-template.jsmetro-progressbar.jsmetro-pull.jsmetro-rating.jsmetro-scroll.jsmetro-slider.jsmetro-stepper.jsmetro-streamer.jsmetro-tab-control.jsmetro-table.jsmetro-tile-transform.jsmetro-times.jsmetro-touch-handler.jsmetro-treeview.jsmetro-wizard.js
metro_2.min.jsmetro_3.jspanneau_private_chat.jspostcommentaire.jsprettify
lang-apollo.jslang-basic.jslang-clj.jslang-css.jslang-dart.jslang-erlang.jslang-go.jslang-hs.jslang-lisp.jslang-llvm.jslang-lua.jslang-matlab.jslang-ml.jslang-mumps.jslang-n.jslang-pascal.jslang-proto.jslang-r.jslang-rd.jslang-scala.jslang-sql.jslang-tcl.jslang-tex.jslang-vb.jslang-vhdl.jslang-wiki.jslang-xq.jslang-yaml.jsprettify.cssprettify.jsrun_prettify.js
private_chat.jstiny_mce
langs
license.txtplugins
advhr
advimage
advlink
advlist
autolink
autoresize
autosave
bbcode
contextmenu
directionality
emotions
editor_plugin.jseditor_plugin_src.jsemotions.htm
img
smiley-cool.gifsmiley-cry.gifsmiley-embarassed.gifsmiley-foot-in-mouth.gifsmiley-frown.gifsmiley-innocent.gifsmiley-kiss.gifsmiley-laughing.gifsmiley-money-mouth.gifsmiley-sealed.gifsmiley-smile.gifsmiley-surprised.gifsmiley-tongue-out.gifsmiley-undecided.gifsmiley-wink.gifsmiley-yell.gif
js
langs
example
example_dependency
fullpage
fullscreen
iespell
inlinepopups
insertdatetime
layer
legacyoutput
lists
media
nonbreaking
noneditable
pagebreak
paste
preview
print
save
searchreplace
spellchecker
style
tabfocus
table
template
visualblocks
visualchars
wordcount
xhtmlxtras
themes
advanced
about.htmanchor.htmcharmap.htmcolor_picker.htmeditor_template.jseditor_template_src.jsimage.htmsource_editor.htm
img
colorpicker.jpgflash.gificons.gififrame.gifpagebreak.gifquicktime.gifrealmedia.gifshockwave.giftrans.gifvideo.gifwindowsmedia.gif
js
langs
link.htmshortcuts.htmskins
default
highcontrast
o2k7
simple
utils
legal
developer
.htaccessCHANGELOG.mdCONTRIBUTING.mdLICENSE.txtREADME.mdautoload.phpCHANGELOG.mdLICENSEREADME.md
assets
backup
bin
composer.jsoncomposer.lockimages
index.phplogs
robots.txtsystem
assets
blueprints
config
pages
default.yamlexternal.yamlmodular.yamlmodular_new.yamlmodular_raw.yamlmove.yamlnew.yamlnew_folder.yamlraw.yaml
user
config
defines.phpimages
media
languages
ar.yamlca.yamlcs.yamlda.yamlde.yamlel.yamlen.yamles.yamlfi.yamlfr.yamlhr.yamlhu.yamlit.yamlja.yamllt.yamlnb.yamlnl.yamlno.yamlpl.yamlpt.yamlro.yamlru.yamlsk.yamlsv.yamlth.yamltr.yamluk.yamlvi.yaml
pages
src
Grav
Common
Assets.php
Backup
Browser.phpCache.phpComposer.phpConfig
CompiledBase.phpCompiledBlueprints.phpCompiledConfig.phpCompiledLanguages.phpConfig.phpConfigFileFinder.phpLanguages.phpSetup.php
Data
Blueprint.phpBlueprintSchema.phpBlueprints.phpData.phpDataInterface.phpValidation.phpValidationException.php
Debugger.phpErrors
File
Filesystem
GPM
Getters.phpGrav.phpGravTrait.phpHelpers
Inflector.phpIterator.phpLanguage
Markdown
Page
Collection.phpHeader.phpMedia.php
Plugin.phpPlugins.phpMedium
AudioMedium.phpImageFile.phpImageMedium.phpLink.phpMedium.phpMediumFactory.phpParsedownHtmlTrait.phpRenderableInterface.phpStaticImageMedium.phpStaticResizeTrait.phpThumbnailImageMedium.phpVideoMedium.php
Page.phpPages.phpTypes.phpProcessors
AssetsProcessor.phpConfigurationProcessor.phpDebuggerAssetsProcessor.phpDebuggerInitProcessor.phpErrorsProcessor.phpInitializeProcessor.phpPagesProcessor.phpPluginsProcessor.phpProcessorBase.phpProcessorInterface.phpRenderProcessor.phpSiteSetupProcessor.phpTasksProcessor.phpThemesProcessor.phpTwigProcessor.php
Service
AssetsServiceProvider.phpConfigServiceProvider.phpErrorServiceProvider.phpLoggerServiceProvider.phpOutputServiceProvider.phpPageServiceProvider.phpStreamsServiceProvider.phpTaskServiceProvider.php
Session.phpTaxonomy.phpTheme.phpThemes.phpTwig
Uri.phpUser
Utils.phpConsole
Cli
BackupCommand.phpCleanCommand.phpClearCacheCommand.phpComposerCommand.phpInstallCommand.phpNewProjectCommand.phpSandboxCommand.php
ConsoleCommand.phpConsoleTrait.phpGpm
IndexCommand.phpInfoCommand.phpInstallCommand.phpSelfupgradeCommand.phpUninstallCommand.phpUpdateCommand.phpVersionCommand.php
TerminalObjects
tmp
user
accounts
config
data
pages
plugins
.gitkeep
error
markdown-notices
problems
themes
.gitkeep
antimatter
CHANGELOG.mdLICENSEREADME.mdantimatter.phpantimatter.yamlnucleus.scss
assets
blueprints.yamlblueprints
css-compiled
css
fonts
FontAwesome.otffontawesome-webfont.eotfontawesome-webfont.svgfontawesome-webfont.ttffontawesome-webfont.wofffontawesome-webfont.woff2
googleFonts
-_Ctzj9b56b8RgXW8FAriRsxEYwM7FgeyaSgU71cLG0.woffBjAYBlHtW3CJxDcjzrnZCIbN6UDyHWBl620a-IRfuBk.woffIczWvq5y_Cwwv_rBjOtT0w.woffcss.cssxkvoNo9fC8O2RDydKj12bxsxEYwM7FgeyaSgU71cLG0.woffzhcz-_WihjSQC0oHJ9TCYBsxEYwM7FgeyaSgU71cLG0.woff
images
js
antimatter.jshtml5shiv-printshiv.min.jsmodernizr.custom.71422.jssinglePageNav.min.jsslidebars.min.js
languages.yamlscreenshot.jpgscss.shscss
configuration
nucleus
template
nucleus
particles.scsstemplate.scsstemplate
_blog.scss_bullets.scss_buttons.scss_core.scss_custom.scss_errors.scss_extensions.scss_fonts.scss_footer.scss_forms.scss_header.scss_panel.scss_simplesearch.scss_tables.scss_typography.scss
modular
modules
vendor
bourbon
_bourbon-deprecated-upcoming.scss_bourbon.scss
addons
_button.scss_clearfix.scss_directional-values.scss_ellipsis.scss_font-family.scss_hide-text.scss_html5-input-types.scss_position.scss_prefixer.scss_rem.scss_retina-image.scss_size.scss_timing-functions.scss_triangle.scss_word-wrap.scss
css3
_animation.scss_appearance.scss_backface-visibility.scss_background-image.scss_background.scss_border-image.scss_border-radius.scss_box-sizing.scss_calc.scss_columns.scss_filter.scss_flex-box.scss_font-face.scss_font-feature-settings.scss_hidpi-media-query.scss_hyphens.scss_image-rendering.scss_keyframes.scss_linear-gradient.scss_perspective.scss_placeholder.scss_radial-gradient.scss_transform.scss_transition.scss_user-select.scss
functions
_assign.scss_color-lightness.scss_flex-grid.scss_golden-ratio.scss_grid-width.scss_modular-scale.scss_px-to-em.scss_px-to-rem.scss_strip-units.scss_tint-shade.scss_transition-property-name.scss_unpack.scss
helpers
_convert-units.scss_gradient-positions-parser.scss_is-num.scss_linear-angle-parser.scss_linear-gradient-parser.scss_linear-positions-parser.scss_linear-side-corner-parser.scss_radial-arg-parser.scss_radial-gradient-parser.scss_radial-positions-parser.scss_render-gradients.scss_shape-size-stripper.scss_str-to-num.scss
settings
color-schemer
templates
blog.html.twigdefault.html.twigerror.html.twigform.html.twigitem.html.twig
thumbnail.jpgmacros
modular.html.twigmodular
partials
vendor
antoligy
dom-string-iterators
composer
ClassLoader.phpLICENSEautoload_classmap.phpautoload_files.phpautoload_namespaces.phpautoload_psr4.phpautoload_real.phpautoload_static.phpinstalled.json
doctrine
cache
LICENSEREADME.mdUPGRADE.md
lib
Doctrine
Common
Cache
ApcCache.phpApcuCache.phpArrayCache.phpCache.phpCacheProvider.phpChainCache.phpClearableCache.phpCouchbaseCache.phpFileCache.phpFilesystemCache.phpFlushableCache.phpMemcacheCache.phpMemcachedCache.phpMongoDBCache.phpMultiGetCache.phpMultiPutCache.phpPhpFileCache.phpPredisCache.phpRedisCache.phpRiakCache.phpSQLite3Cache.phpVersion.phpVoidCache.phpWinCacheCache.phpXcacheCache.phpZendDataCache.php
donatj
phpuseragentparser
erusev
filp
whoops
CHANGELOG.mdLICENSE.md
src
Whoops
gregwar
cache
image
league
climate
CHANGELOG.mdCONDUCT.mdCONTRIBUTING.mdLICENSE.mdREADME.md
src
ASCII
Argument
CLImate.phpDecorator
Settings
TerminalObject
Basic
BasicTerminalObject.phpBasicTerminalObjectInterface.phpBorder.phpBr.phpClear.phpColumns.phpDraw.phpDump.phpFlank.phpInline.phpJson.phpOut.phpRepeatable.phpTab.phpTable.php
Dynamic
Animation.php
Animation
Checkbox
Checkboxes.phpConfirm.phpDynamicTerminalObject.phpDynamicTerminalObjectInterface.phpInput.phpInputAbstract.phpPadding.phpPassword.phpProgress.phpRadio.phpHelper
Router
Util
matthiasmullie
maximebf
debugbar
LICENSE
src
DebugBar
Bridge
CacheCacheCollector.phpDoctrineCollector.phpMonologCollector.phpPropel2Collector.phpPropelCollector.phpSlimCollector.php
SwiftMailer
Twig
DataCollector
AggregatedCollector.phpAssetProvider.phpConfigCollector.phpDataCollector.phpDataCollectorInterface.phpExceptionsCollector.phpLocalizationCollector.phpMemoryCollector.phpMessagesAggregateInterface.phpMessagesCollector.php
PDO
PhpInfoCollector.phpRenderable.phpRequestDataCollector.phpTimeDataCollector.phpDataFormatter
DebugBar.phpDebugBarException.phpHttpDriverInterface.phpJavascriptRenderer.phpOpenHandler.phpPhpHttpDriver.phpRequestIdGenerator.phpRequestIdGeneratorInterface.phpResources
StandardDebugBar.phpStorage
monolog
monolog
.php_csCHANGELOG.mdownLICENSEREADME.mdown
src
Monolog
ErrorHandler.php
Formatter
ChromePHPFormatter.phpElasticaFormatter.phpFlowdockFormatter.phpFluentdFormatter.phpFormatterInterface.phpGelfMessageFormatter.phpHtmlFormatter.phpJsonFormatter.phpLineFormatter.phpLogglyFormatter.phpLogstashFormatter.phpMongoDBFormatter.phpNormalizerFormatter.phpScalarFormatter.phpWildfireFormatter.php
Handler
AbstractHandler.phpAbstractProcessingHandler.phpAbstractSyslogHandler.phpAmqpHandler.phpBrowserConsoleHandler.phpBufferHandler.phpChromePHPHandler.phpCouchDBHandler.phpCubeHandler.php
Logger.phpCurl
DeduplicationHandler.phpDoctrineCouchDBHandler.phpDynamoDbHandler.phpElasticSearchHandler.phpErrorLogHandler.phpFilterHandler.phpFingersCrossed
FingersCrossedHandler.phpFirePHPHandler.phpFleepHookHandler.phpFlowdockHandler.phpGelfHandler.phpGroupHandler.phpHandlerInterface.phpHandlerWrapper.phpHipChatHandler.phpIFTTTHandler.phpLogEntriesHandler.phpLogglyHandler.phpMailHandler.phpMandrillHandler.phpMissingExtensionException.phpMongoDBHandler.phpNativeMailerHandler.phpNewRelicHandler.phpNullHandler.phpPHPConsoleHandler.phpPsrHandler.phpPushoverHandler.phpRavenHandler.phpRedisHandler.phpRollbarHandler.phpRotatingFileHandler.phpSamplingHandler.phpSlackHandler.phpSocketHandler.phpStreamHandler.phpSwiftMailerHandler.phpSyslogHandler.phpSyslogUdp
SyslogUdpHandler.phpTestHandler.phpWhatFailureGroupHandler.phpZendMonitorHandler.phpProcessor
GitProcessor.phpIntrospectionProcessor.phpMemoryPeakUsageProcessor.phpMemoryProcessor.phpMemoryUsageProcessor.phpProcessIdProcessor.phpPsrLogMessageProcessor.phpTagProcessor.phpUidProcessor.phpWebProcessor.php
Registry.phppimple
psr
log
rockettheme
toolbox
ArrayTraits
src
Blueprints
src
tests
BlueprintFormTest.phpBlueprintSchemaTest.phphelper.php
data
blueprint
form
input
schema
defaults
extra
init
merge
state
DI
Event
File
src
ResourceLocator
src
RecursiveUniformResourceIterator.phpResourceLocatorInterface.phpUniformResourceIterator.phpUniformResourceLocator.php
tests
Session
StreamWrapper
seld
cli-prompt
symfony
console
Application.phpCHANGELOG.md
Command
ConsoleEvents.phpDescriptor
ApplicationDescription.phpDescriptor.phpDescriptorInterface.phpJsonDescriptor.phpMarkdownDescriptor.phpTextDescriptor.phpXmlDescriptor.php
Event
Exception
CommandNotFoundException.phpExceptionInterface.phpInvalidArgumentException.phpInvalidOptionException.phpLogicException.phpRuntimeException.php
Formatter
OutputFormatter.phpOutputFormatterInterface.phpOutputFormatterStyle.phpOutputFormatterStyleInterface.phpOutputFormatterStyleStack.php
Helper
DebugFormatterHelper.phpDescriptorHelper.phpDialogHelper.phpFormatterHelper.phpHelper.phpHelperInterface.phpHelperSet.phpInputAwareHelper.phpProcessHelper.phpProgressBar.phpProgressHelper.phpProgressIndicator.phpQuestionHelper.phpSymfonyQuestionHelper.phpTable.phpTableCell.phpTableHelper.phpTableSeparator.phpTableStyle.php
Input
ArgvInput.phpArrayInput.phpInput.phpInputArgument.phpInputAwareInterface.phpInputDefinition.phpInputInterface.phpInputOption.phpStringInput.php
LICENSELogger
Output
BufferedOutput.phpConsoleOutput.phpConsoleOutputInterface.phpNullOutput.phpOutput.phpOutputInterface.phpStreamOutput.php
Question
README.mdResources
Shell.phpStyle
event-dispatcher
CHANGELOG.mdContainerAwareEventDispatcher.php
Debug
DependencyInjection
Event.phpEventDispatcher.phpEventDispatcherInterface.phpEventSubscriberInterface.phpGenericEvent.phpImmutableEventDispatcher.phpLICENSEREADME.mdpolyfill-iconv
Iconv.phpLICENSEREADME.mdbootstrap.php
Resources
charset
from.big5.phpfrom.cp037.phpfrom.cp1006.phpfrom.cp1026.phpfrom.cp424.phpfrom.cp437.phpfrom.cp500.phpfrom.cp737.phpfrom.cp775.phpfrom.cp850.phpfrom.cp852.phpfrom.cp855.phpfrom.cp856.phpfrom.cp857.phpfrom.cp860.phpfrom.cp861.phpfrom.cp862.phpfrom.cp863.phpfrom.cp864.phpfrom.cp865.phpfrom.cp866.phpfrom.cp869.phpfrom.cp874.phpfrom.cp875.phpfrom.cp932.phpfrom.cp936.phpfrom.cp949.phpfrom.cp950.phpfrom.iso-8859-1.phpfrom.iso-8859-10.phpfrom.iso-8859-11.phpfrom.iso-8859-13.phpfrom.iso-8859-14.phpfrom.iso-8859-15.phpfrom.iso-8859-16.phpfrom.iso-8859-2.phpfrom.iso-8859-3.phpfrom.iso-8859-4.phpfrom.iso-8859-5.phpfrom.iso-8859-6.phpfrom.iso-8859-7.phpfrom.iso-8859-8.phpfrom.iso-8859-9.phpfrom.koi8-r.phpfrom.koi8-u.phpfrom.us-ascii.phpfrom.windows-1250.phpfrom.windows-1251.phpfrom.windows-1252.phpfrom.windows-1253.phpfrom.windows-1254.phpfrom.windows-1255.phpfrom.windows-1256.phpfrom.windows-1257.phpfrom.windows-1258.phptranslit.php
polyfill-mbstring
var-dumper
CHANGELOG.mdVarDumper.php
Caster
AmqpCaster.phpCaster.phpConstStub.phpCutArrayStub.phpCutStub.phpDOMCaster.phpDoctrineCaster.phpEnumStub.phpExceptionCaster.phpFrameStub.phpMongoCaster.phpPdoCaster.phpPgSqlCaster.phpReflectionCaster.phpResourceCaster.phpSplCaster.phpStubCaster.phpTraceStub.phpXmlResourceCaster.php
Cloner
Dumper
Exception
LICENSEREADME.mdResources
functions
yaml
twig
twig
CHANGELOGLICENSEREADME.rst
lib
Twig
Autoloader.phpBaseNodeVisitor.php
Cache
CacheInterface.phpCompiler.phpCompilerInterface.phpEnvironment.phpError.phpError
ExistsLoaderInterface.phpExpressionParser.phpExtension.phpExtension
Core.phpDebug.phpEscaper.phpGlobalsInterface.phpInitRuntimeInterface.phpOptimizer.phpProfiler.phpSandbox.phpStaging.phpStringLoader.php
ExtensionInterface.phpFileExtensionEscapingStrategy.phpFilter.phpFilter
FilterCallableInterface.phpFilterInterface.phpFunction.phpFunction
FunctionCallableInterface.phpFunctionInterface.phpLexer.phpLexerInterface.phpLoader
LoaderInterface.phpMarkup.phpNode.phpNode
AutoEscape.phpBlock.phpBlockReference.phpBody.phpCheckSecurity.phpDo.phpEmbed.phpExpression.php
NodeInterface.phpNodeOutputInterface.phpNodeTraverser.phpExpression
Array.phpAssignName.phpBinary.php
Flush.phpFor.phpForLoop.phpIf.phpImport.phpInclude.phpMacro.phpModule.phpPrint.phpSandbox.phpSandboxedPrint.phpSet.phpSetTemp.phpSpaceless.phpText.phpBinary
Add.phpAnd.phpBitwiseAnd.phpBitwiseOr.phpBitwiseXor.phpConcat.phpDiv.phpEndsWith.phpEqual.phpFloorDiv.phpGreater.phpGreaterEqual.phpIn.phpLess.phpLessEqual.phpMatches.phpMod.phpMul.phpNotEqual.phpNotIn.phpOr.phpPower.phpRange.phpStartsWith.phpSub.php
BlockReference.phpCall.phpConditional.phpConstant.phpExtensionReference.phpFilter.phpFilter
Function.phpGetAttr.phpMethodCall.phpName.phpNullCoalesce.phpParent.phpTempName.phpTest.phpTest
Unary.phpUnary
NodeVisitor
NodeVisitorInterface.phpParser.phpParserInterface.phpProfiler
Sandbox
SecurityError.phpSecurityNotAllowedFilterError.phpSecurityNotAllowedFunctionError.phpSecurityNotAllowedTagError.phpSecurityPolicy.phpSecurityPolicyInterface.php
SimpleFilter.phpSimpleFunction.phpSimpleTest.phpTemplate.phpTemplateInterface.phpTest.phpTest
TestCallableInterface.phpTestInterface.phpToken.phpTokenParser.phpTokenParser
AutoEscape.phpBlock.phpDo.phpEmbed.phpExtends.phpFilter.phpFlush.phpFor.phpFrom.phpIf.phpImport.phpInclude.phpMacro.phpSandbox.phpSet.phpSpaceless.phpUse.php
TokenParserBroker.phpTokenParserBrokerInterface.phpTokenParserInterface.phpTokenStream.phpUtil
webserver-configs
doc
exportdonnees.phpgalerie_videos.phpgalerieimages.phpimgcommentaire.phpinc
.htaccess404.htmlaccount_created.phpadd_comunic_as_search_engine.phpajax_search_users.phpprivate_chat.phpshow_hide_private_chat_contener.phpsmile_javascript.phpsupp_commentaire_id.htmlsupp_commentaire_id.phpupload_video.phpupload_video_suite.phpvideo_type_allowed_list.phpvote_sondage.php
index.phplisteamis.phpmessagerie.phpapi
change_avatar_webcam.phpchange_hauteur_chat.phpchange_niveau_visibilite_post.phpcode_session_private_chat.phpconfig
conversations_private_chat.phpcore
delete_avatar_img_background.phpdelete_old_notifications.phpdelete_request_become_friend.phpedit_commentaire.htmledit_niveau_visibilite.htmledit_nom_video.htmleffectuer_maintenance_account.phpenvoi_mail.phpfunctions
generate_pdf.phpgere_abonnement_ami.phpgestion_piwik.phpheader_page.phphelpers
index.phpinitPage.phplang
like_comment.phplike_external_page.phplike_texte_page.phpliste_descriptions.phpliste_smile.phpload.htmlloading.htmllogout_with_roundcube.htmlmanage_flux.htmlmenu_contextuel.phpmessage_fil_vu.phpmessage_update.htmlnettoyage_automatique_notifications.phpouvre_ferme_session_chat.phppages
about
common
contact
homeLogout
homeUser
addPost
addpost.inc.php
controllers
checkFriendAllowance.inc.phppostEvent.inc.phppostPDF.inc.phppostSurvey.inc.phppostTextImage.inc.phppostVideo.inc.phppostWebLink.inc.phppostYouTube.inc.php
views
editPost
homeUser.inc.phpviewTexts
improveForum
openUsers
searchUser
settings
appearance.inc.phpavatar.inc.phpavatarVisibility.inc.phpbackgroundImg.inc.phpchat.inc.phpcleanAccount.inc.phperror.inc.phpexportData.inc.phpgeneral.inc.phpgroupePersonnes.inc.phpmultiLogin.inc.phpnotifications.inc.phppages.inc.phppassword.inc.phppiwik.inc.phprepertoire.inc.phprss.inc.phpsettingsList.phpsettingsMenu.inc.php
share
webmail
whatIsComunic
minifyurl
notification.phpnotification_old.phpparametres.phpprivatechat.phpr.phprobots.txtrss.phpsecurite.phpsitemap.xmlsolvepassword.phpsuppcompte.phptools
3rdparty
metrouicss
css
fonts
googleFonts
assets
index.phpmenu.phpnobin
README.md
css
data
img
index.phpjs
base64.jshighlight.pack.js
highlight.styles
jquery.jsrawdeflate.jsrawinflate.jssjcl.jszerobin-fr.jszerobin.jslib
tmp
tpl
speaker
.DS_Storeindex.php
js
mespeak.full.jsmespeak.jsmsie_flashFallback
voices
svgedit
browser-not-supported.htmlbrowser.js
canvg
config-sample.jscontextmenu.jscontextmenu
coords.jsdraw.jsembedapi-dom.jsembedapi.htmlembedapi.jsextensions
allowedMimeTypes.phpclosepath_icons.svgext-arrows.jsext-closepath.jsext-connector.jsext-eyedropper.jsext-foreignobject.jsext-grid.jsext-helloworld.jsext-imagelib.jsext-imagelib.xmlext-markers.jsext-mathjax.jsext-overview_window.jsext-panning.jsext-panning.xmlext-php_savefile.jsext-polygon.jsext-server_moinsave.jsext-server_opensave.jsext-shapes.jsext-shapes.xmlext-star.jsext-storage.jsext-webappfind.jsext-xdomain-messaging.jseyedropper-icon.xmleyedropper.pngfileopen.phpfilesave.phpforeignobject-icons.xmlgrid-icon.xmlhelloworld-icon.xml
history.jsimagelib
markers-icons.xmlmathjax-icons.xmlpolygon-icons.svgsavefile.phpshapelib
animal.jsonarrow.jsondialog_balloon.jsonelectronics.jsonflowchart.jsongame.jsonmath.jsonmisc.jsonmusic.jsonobject.jsonraphael.txtraphael_1.jsonraphael_2.jsonsymbol.json
star-icons.svgwebappfind-icon.svgimages
README.txtalign-bottom.pngalign-bottom.svgalign-center.pngalign-center.svgalign-left.pngalign-left.svgalign-middle.pngalign-middle.svgalign-right.pngalign-right.svgalign-top.pngalign-top.svgbold.pngcancel.pngcircle.pngclear.pngclone.pngconn.svgcopy.pngcut.pngdelete.pngdocument-properties.pngdropdown.gifellipse.pngeye.pngfhpath.pngflyouth.pngflyup.giffreehand-circle.pngfreehand-square.pnggo-down.pnggo-up.pngimage.pngitalic.pngline.pnglink_controls.pnglogo.pnglogo.svgmove_bottom.pngmove_top.pngnode_clone.pngnode_delete.pngnone.pngopen.pngpaste.pngpath.pngpolygon.pngpolygon.svgrect.pngredo.pngreorient.pngrotate.pngsave.pngselect.pngselect_node.pngsep.pngshape_group_elements.pngshape_ungroup.pngsource.pngspinbtn_updn_big.pngsquare.pngsvg_edit_icons.svgsvg_edit_icons.svgztext.pngtext.svgto_path.pngundo.pngview-refresh.pngwave.pngwireframe.pngzoom.png
index.phpjgraduate
LICENSEREADME
jquery-svg.jscss
images
AlphaBar.pngBars.pngMaps.pngNoColor.pngbar-opacity.pngmap-opacity.pngmappoint.gifmappoint_c.pngmappoint_f.pngpicker.gifpreview-opacity.pngrangearrows.gifrangearrows2.gif
jpicker.jsjpicker.min.jsjquery.jgraduate.jsjquery.jgraduate.min.jsjquery-ui
jquery.jsjquerybbq
js-hotkeys
jspdf
locale
README.txtlang.af.jslang.ar.jslang.az.jslang.be.jslang.bg.jslang.ca.jslang.cs.jslang.cy.jslang.da.jslang.de.jslang.el.jslang.en.jslang.es.jslang.et.jslang.fa.jslang.fi.jslang.fr.jslang.fy.jslang.ga.jslang.gl.jslang.he.jslang.hi.jslang.hr.jslang.hu.jslang.hy.jslang.id.jslang.is.jslang.it.jslang.ja.jslang.ko.jslang.lt.jslang.lv.jslang.mk.jslang.ms.jslang.mt.jslang.nl.jslang.no.jslang.pl.jslang.pt-BR.jslang.pt-PT.jslang.ro.jslang.ru.jslang.sk.jslang.sl.jslang.sq.jslang.sr.jslang.sv.jslang.sw.jslang.test.jslang.th.jslang.tl.jslang.tr.jslang.uk.jslang.vi.jslang.yi.jslang.zh-CN.jslang.zh-HK.jslang.zh-TW.jslocale.js
math.jspath.jspathseg.jsrecalculate.jssanitize.jsselect.jsspinbtn
svg-editor.csssvg-editor.htmlsvg-editor.jssvg-editor.manifestsvgcanvas.jssvgedit.jssvgicons
svgtransformlist.jssvgutils.jstouch.jsunits.js
118
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ApcCache.php
vendored
Normal file
118
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ApcCache.php
vendored
Normal file
@ -0,0 +1,118 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the MIT license. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
/**
|
||||
* APC cache provider.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
* @deprecated since version 1.6, use ApcuCache instead
|
||||
* @since 2.0
|
||||
* @author Benjamin Eberlei <kontakt@beberlei.de>
|
||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
||||
* @author Jonathan Wage <jonwage@gmail.com>
|
||||
* @author Roman Borschel <roman@code-factory.org>
|
||||
* @author David Abdemoulaie <dave@hobodave.com>
|
||||
*/
|
||||
class ApcCache extends CacheProvider
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
return apc_fetch($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
return apc_exists($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
return apc_store($id, $data, $lifeTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
// apc_delete returns false if the id does not exist
|
||||
return apc_delete($id) || ! apc_exists($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
return apc_clear_cache() && apc_clear_cache('user');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetchMultiple(array $keys)
|
||||
{
|
||||
return apc_fetch($keys);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)
|
||||
{
|
||||
$result = apc_store($keysAndValues, null, $lifetime);
|
||||
|
||||
return empty($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
$info = apc_cache_info('', true);
|
||||
$sma = apc_sma_info();
|
||||
|
||||
// @TODO - Temporary fix @see https://github.com/krakjoe/apcu/pull/42
|
||||
if (PHP_VERSION_ID >= 50500) {
|
||||
$info['num_hits'] = isset($info['num_hits']) ? $info['num_hits'] : $info['nhits'];
|
||||
$info['num_misses'] = isset($info['num_misses']) ? $info['num_misses'] : $info['nmisses'];
|
||||
$info['start_time'] = isset($info['start_time']) ? $info['start_time'] : $info['stime'];
|
||||
}
|
||||
|
||||
return array(
|
||||
Cache::STATS_HITS => $info['num_hits'],
|
||||
Cache::STATS_MISSES => $info['num_misses'],
|
||||
Cache::STATS_UPTIME => $info['start_time'],
|
||||
Cache::STATS_MEMORY_USAGE => $info['mem_size'],
|
||||
Cache::STATS_MEMORY_AVAILABLE => $sma['avail_mem'],
|
||||
);
|
||||
}
|
||||
}
|
106
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ApcuCache.php
vendored
Normal file
106
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ApcuCache.php
vendored
Normal file
@ -0,0 +1,106 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the MIT license. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
/**
|
||||
* APCu cache provider.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
* @since 1.6
|
||||
* @author Kévin Dunglas <dunglas@gmail.com>
|
||||
*/
|
||||
class ApcuCache extends CacheProvider
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
return apcu_fetch($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
return apcu_exists($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
return apcu_store($id, $data, $lifeTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
// apcu_delete returns false if the id does not exist
|
||||
return apcu_delete($id) || ! apcu_exists($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
return apcu_clear_cache();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetchMultiple(array $keys)
|
||||
{
|
||||
return apcu_fetch($keys);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)
|
||||
{
|
||||
$result = apcu_store($keysAndValues, null, $lifetime);
|
||||
|
||||
return empty($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
$info = apcu_cache_info(true);
|
||||
$sma = apcu_sma_info();
|
||||
|
||||
return array(
|
||||
Cache::STATS_HITS => $info['num_hits'],
|
||||
Cache::STATS_MISSES => $info['num_misses'],
|
||||
Cache::STATS_UPTIME => $info['start_time'],
|
||||
Cache::STATS_MEMORY_USAGE => $info['mem_size'],
|
||||
Cache::STATS_MEMORY_AVAILABLE => $sma['avail_mem'],
|
||||
);
|
||||
}
|
||||
}
|
142
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ArrayCache.php
vendored
Normal file
142
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ArrayCache.php
vendored
Normal file
@ -0,0 +1,142 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the MIT license. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
/**
|
||||
* Array cache driver.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
* @since 2.0
|
||||
* @author Benjamin Eberlei <kontakt@beberlei.de>
|
||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
||||
* @author Jonathan Wage <jonwage@gmail.com>
|
||||
* @author Roman Borschel <roman@code-factory.org>
|
||||
* @author David Abdemoulaie <dave@hobodave.com>
|
||||
*/
|
||||
class ArrayCache extends CacheProvider
|
||||
{
|
||||
/**
|
||||
* @var array[] $data each element being a tuple of [$data, $expiration], where the expiration is int|bool
|
||||
*/
|
||||
private $data = [];
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $hitsCount = 0;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $missesCount = 0;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $upTime;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->upTime = time();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
if (! $this->doContains($id)) {
|
||||
$this->missesCount += 1;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->hitsCount += 1;
|
||||
|
||||
return $this->data[$id][0];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
if (! isset($this->data[$id])) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$expiration = $this->data[$id][1];
|
||||
|
||||
if ($expiration && $expiration < time()) {
|
||||
$this->doDelete($id);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
$this->data[$id] = [$data, $lifeTime ? time() + $lifeTime : false];
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
unset($this->data[$id]);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
$this->data = [];
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
return [
|
||||
Cache::STATS_HITS => $this->hitsCount,
|
||||
Cache::STATS_MISSES => $this->missesCount,
|
||||
Cache::STATS_UPTIME => $this->upTime,
|
||||
Cache::STATS_MEMORY_USAGE => null,
|
||||
Cache::STATS_MEMORY_AVAILABLE => null,
|
||||
];
|
||||
}
|
||||
}
|
116
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/Cache.php
vendored
Normal file
116
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/Cache.php
vendored
Normal file
@ -0,0 +1,116 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the MIT license. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
/**
|
||||
* Interface for cache drivers.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
* @since 2.0
|
||||
* @author Benjamin Eberlei <kontakt@beberlei.de>
|
||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
||||
* @author Jonathan Wage <jonwage@gmail.com>
|
||||
* @author Roman Borschel <roman@code-factory.org>
|
||||
* @author Fabio B. Silva <fabio.bat.silva@gmail.com>
|
||||
* @author Kévin Dunglas <dunglas@gmail.com>
|
||||
*/
|
||||
interface Cache
|
||||
{
|
||||
const STATS_HITS = 'hits';
|
||||
const STATS_MISSES = 'misses';
|
||||
const STATS_UPTIME = 'uptime';
|
||||
const STATS_MEMORY_USAGE = 'memory_usage';
|
||||
const STATS_MEMORY_AVAILABLE = 'memory_available';
|
||||
/**
|
||||
* Only for backward compatibility (may be removed in next major release)
|
||||
*
|
||||
* @deprecated
|
||||
*/
|
||||
const STATS_MEMORY_AVAILIABLE = 'memory_available';
|
||||
|
||||
/**
|
||||
* Fetches an entry from the cache.
|
||||
*
|
||||
* @param string $id The id of the cache entry to fetch.
|
||||
*
|
||||
* @return mixed The cached data or FALSE, if no cache entry exists for the given id.
|
||||
*/
|
||||
public function fetch($id);
|
||||
|
||||
/**
|
||||
* Tests if an entry exists in the cache.
|
||||
*
|
||||
* @param string $id The cache id of the entry to check for.
|
||||
*
|
||||
* @return bool TRUE if a cache entry exists for the given cache id, FALSE otherwise.
|
||||
*/
|
||||
public function contains($id);
|
||||
|
||||
/**
|
||||
* Puts data into the cache.
|
||||
*
|
||||
* If a cache entry with the given id already exists, its data will be replaced.
|
||||
*
|
||||
* @param string $id The cache id.
|
||||
* @param mixed $data The cache entry/data.
|
||||
* @param int $lifeTime The lifetime in number of seconds for this cache entry.
|
||||
* If zero (the default), the entry never expires (although it may be deleted from the cache
|
||||
* to make place for other entries).
|
||||
*
|
||||
* @return bool TRUE if the entry was successfully stored in the cache, FALSE otherwise.
|
||||
*/
|
||||
public function save($id, $data, $lifeTime = 0);
|
||||
|
||||
/**
|
||||
* Deletes a cache entry.
|
||||
*
|
||||
* @param string $id The cache id.
|
||||
*
|
||||
* @return bool TRUE if the cache entry was successfully deleted, FALSE otherwise.
|
||||
* Deleting a non-existing entry is considered successful.
|
||||
*/
|
||||
public function delete($id);
|
||||
|
||||
/**
|
||||
* Retrieves cached information from the data store.
|
||||
*
|
||||
* The server's statistics array has the following values:
|
||||
*
|
||||
* - <b>hits</b>
|
||||
* Number of keys that have been requested and found present.
|
||||
*
|
||||
* - <b>misses</b>
|
||||
* Number of items that have been requested and not found.
|
||||
*
|
||||
* - <b>uptime</b>
|
||||
* Time that the server is running.
|
||||
*
|
||||
* - <b>memory_usage</b>
|
||||
* Memory used by this server to store items.
|
||||
*
|
||||
* - <b>memory_available</b>
|
||||
* Memory allowed to use for storage.
|
||||
*
|
||||
* @since 2.2
|
||||
*
|
||||
* @return array|null An associative array with server's statistics if available, NULL otherwise.
|
||||
*/
|
||||
public function getStats();
|
||||
}
|
312
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/CacheProvider.php
vendored
Normal file
312
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/CacheProvider.php
vendored
Normal file
@ -0,0 +1,312 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the MIT license. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
/**
|
||||
* Base class for cache provider implementations.
|
||||
*
|
||||
* @since 2.2
|
||||
* @author Benjamin Eberlei <kontakt@beberlei.de>
|
||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
||||
* @author Jonathan Wage <jonwage@gmail.com>
|
||||
* @author Roman Borschel <roman@code-factory.org>
|
||||
* @author Fabio B. Silva <fabio.bat.silva@gmail.com>
|
||||
*/
|
||||
abstract class CacheProvider implements Cache, FlushableCache, ClearableCache, MultiGetCache, MultiPutCache
|
||||
{
|
||||
const DOCTRINE_NAMESPACE_CACHEKEY = 'DoctrineNamespaceCacheKey[%s]';
|
||||
|
||||
/**
|
||||
* The namespace to prefix all cache ids with.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $namespace = '';
|
||||
|
||||
/**
|
||||
* The namespace version.
|
||||
*
|
||||
* @var integer|null
|
||||
*/
|
||||
private $namespaceVersion;
|
||||
|
||||
/**
|
||||
* Sets the namespace to prefix all cache ids with.
|
||||
*
|
||||
* @param string $namespace
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setNamespace($namespace)
|
||||
{
|
||||
$this->namespace = (string) $namespace;
|
||||
$this->namespaceVersion = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the namespace that prefixes all cache ids.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getNamespace()
|
||||
{
|
||||
return $this->namespace;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function fetch($id)
|
||||
{
|
||||
return $this->doFetch($this->getNamespacedId($id));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function fetchMultiple(array $keys)
|
||||
{
|
||||
if (empty($keys)) {
|
||||
return array();
|
||||
}
|
||||
|
||||
// note: the array_combine() is in place to keep an association between our $keys and the $namespacedKeys
|
||||
$namespacedKeys = array_combine($keys, array_map(array($this, 'getNamespacedId'), $keys));
|
||||
$items = $this->doFetchMultiple($namespacedKeys);
|
||||
$foundItems = array();
|
||||
|
||||
// no internal array function supports this sort of mapping: needs to be iterative
|
||||
// this filters and combines keys in one pass
|
||||
foreach ($namespacedKeys as $requestedKey => $namespacedKey) {
|
||||
if (isset($items[$namespacedKey]) || array_key_exists($namespacedKey, $items)) {
|
||||
$foundItems[$requestedKey] = $items[$namespacedKey];
|
||||
}
|
||||
}
|
||||
|
||||
return $foundItems;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function saveMultiple(array $keysAndValues, $lifetime = 0)
|
||||
{
|
||||
$namespacedKeysAndValues = array();
|
||||
foreach ($keysAndValues as $key => $value) {
|
||||
$namespacedKeysAndValues[$this->getNamespacedId($key)] = $value;
|
||||
}
|
||||
|
||||
return $this->doSaveMultiple($namespacedKeysAndValues, $lifetime);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function contains($id)
|
||||
{
|
||||
return $this->doContains($this->getNamespacedId($id));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function save($id, $data, $lifeTime = 0)
|
||||
{
|
||||
return $this->doSave($this->getNamespacedId($id), $data, $lifeTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function delete($id)
|
||||
{
|
||||
return $this->doDelete($this->getNamespacedId($id));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getStats()
|
||||
{
|
||||
return $this->doGetStats();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function flushAll()
|
||||
{
|
||||
return $this->doFlush();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function deleteAll()
|
||||
{
|
||||
$namespaceCacheKey = $this->getNamespaceCacheKey();
|
||||
$namespaceVersion = $this->getNamespaceVersion() + 1;
|
||||
|
||||
if ($this->doSave($namespaceCacheKey, $namespaceVersion)) {
|
||||
$this->namespaceVersion = $namespaceVersion;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prefixes the passed id with the configured namespace value.
|
||||
*
|
||||
* @param string $id The id to namespace.
|
||||
*
|
||||
* @return string The namespaced id.
|
||||
*/
|
||||
private function getNamespacedId($id)
|
||||
{
|
||||
$namespaceVersion = $this->getNamespaceVersion();
|
||||
|
||||
return sprintf('%s[%s][%s]', $this->namespace, $id, $namespaceVersion);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the namespace cache key.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private function getNamespaceCacheKey()
|
||||
{
|
||||
return sprintf(self::DOCTRINE_NAMESPACE_CACHEKEY, $this->namespace);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the namespace version.
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
private function getNamespaceVersion()
|
||||
{
|
||||
if (null !== $this->namespaceVersion) {
|
||||
return $this->namespaceVersion;
|
||||
}
|
||||
|
||||
$namespaceCacheKey = $this->getNamespaceCacheKey();
|
||||
$this->namespaceVersion = $this->doFetch($namespaceCacheKey) ?: 1;
|
||||
|
||||
return $this->namespaceVersion;
|
||||
}
|
||||
|
||||
/**
|
||||
* Default implementation of doFetchMultiple. Each driver that supports multi-get should owerwrite it.
|
||||
*
|
||||
* @param array $keys Array of keys to retrieve from cache
|
||||
* @return array Array of values retrieved for the given keys.
|
||||
*/
|
||||
protected function doFetchMultiple(array $keys)
|
||||
{
|
||||
$returnValues = array();
|
||||
|
||||
foreach ($keys as $key) {
|
||||
if (false !== ($item = $this->doFetch($key)) || $this->doContains($key)) {
|
||||
$returnValues[$key] = $item;
|
||||
}
|
||||
}
|
||||
|
||||
return $returnValues;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches an entry from the cache.
|
||||
*
|
||||
* @param string $id The id of the cache entry to fetch.
|
||||
*
|
||||
* @return mixed|false The cached data or FALSE, if no cache entry exists for the given id.
|
||||
*/
|
||||
abstract protected function doFetch($id);
|
||||
|
||||
/**
|
||||
* Tests if an entry exists in the cache.
|
||||
*
|
||||
* @param string $id The cache id of the entry to check for.
|
||||
*
|
||||
* @return bool TRUE if a cache entry exists for the given cache id, FALSE otherwise.
|
||||
*/
|
||||
abstract protected function doContains($id);
|
||||
|
||||
/**
|
||||
* Default implementation of doSaveMultiple. Each driver that supports multi-put should override it.
|
||||
*
|
||||
* @param array $keysAndValues Array of keys and values to save in cache
|
||||
* @param int $lifetime The lifetime. If != 0, sets a specific lifetime for these
|
||||
* cache entries (0 => infinite lifeTime).
|
||||
*
|
||||
* @return bool TRUE if the operation was successful, FALSE if it wasn't.
|
||||
*/
|
||||
protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)
|
||||
{
|
||||
$success = true;
|
||||
|
||||
foreach ($keysAndValues as $key => $value) {
|
||||
if (!$this->doSave($key, $value, $lifetime)) {
|
||||
$success = false;
|
||||
}
|
||||
}
|
||||
|
||||
return $success;
|
||||
}
|
||||
|
||||
/**
|
||||
* Puts data into the cache.
|
||||
*
|
||||
* @param string $id The cache id.
|
||||
* @param string $data The cache entry/data.
|
||||
* @param int $lifeTime The lifetime. If != 0, sets a specific lifetime for this
|
||||
* cache entry (0 => infinite lifeTime).
|
||||
*
|
||||
* @return bool TRUE if the entry was successfully stored in the cache, FALSE otherwise.
|
||||
*/
|
||||
abstract protected function doSave($id, $data, $lifeTime = 0);
|
||||
|
||||
/**
|
||||
* Deletes a cache entry.
|
||||
*
|
||||
* @param string $id The cache id.
|
||||
*
|
||||
* @return bool TRUE if the cache entry was successfully deleted, FALSE otherwise.
|
||||
*/
|
||||
abstract protected function doDelete($id);
|
||||
|
||||
/**
|
||||
* Flushes all cache entries.
|
||||
*
|
||||
* @return bool TRUE if the cache entries were successfully flushed, FALSE otherwise.
|
||||
*/
|
||||
abstract protected function doFlush();
|
||||
|
||||
/**
|
||||
* Retrieves cached information from the data store.
|
||||
*
|
||||
* @since 2.2
|
||||
*
|
||||
* @return array|null An associative array with server's statistics if available, NULL otherwise.
|
||||
*/
|
||||
abstract protected function doGetStats();
|
||||
}
|
147
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ChainCache.php
vendored
Normal file
147
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ChainCache.php
vendored
Normal file
@ -0,0 +1,147 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the MIT license. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
/**
|
||||
* Cache provider that allows to easily chain multiple cache providers
|
||||
*
|
||||
* @author Michaël Gallego <mic.gallego@gmail.com>
|
||||
*/
|
||||
class ChainCache extends CacheProvider
|
||||
{
|
||||
/**
|
||||
* @var CacheProvider[]
|
||||
*/
|
||||
private $cacheProviders = array();
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param CacheProvider[] $cacheProviders
|
||||
*/
|
||||
public function __construct($cacheProviders = array())
|
||||
{
|
||||
$this->cacheProviders = $cacheProviders;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function setNamespace($namespace)
|
||||
{
|
||||
parent::setNamespace($namespace);
|
||||
|
||||
foreach ($this->cacheProviders as $cacheProvider) {
|
||||
$cacheProvider->setNamespace($namespace);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
foreach ($this->cacheProviders as $key => $cacheProvider) {
|
||||
if ($cacheProvider->doContains($id)) {
|
||||
$value = $cacheProvider->doFetch($id);
|
||||
|
||||
// We populate all the previous cache layers (that are assumed to be faster)
|
||||
for ($subKey = $key - 1 ; $subKey >= 0 ; $subKey--) {
|
||||
$this->cacheProviders[$subKey]->doSave($id, $value);
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
foreach ($this->cacheProviders as $cacheProvider) {
|
||||
if ($cacheProvider->doContains($id)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
$stored = true;
|
||||
|
||||
foreach ($this->cacheProviders as $cacheProvider) {
|
||||
$stored = $cacheProvider->doSave($id, $data, $lifeTime) && $stored;
|
||||
}
|
||||
|
||||
return $stored;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
$deleted = true;
|
||||
|
||||
foreach ($this->cacheProviders as $cacheProvider) {
|
||||
$deleted = $cacheProvider->doDelete($id) && $deleted;
|
||||
}
|
||||
|
||||
return $deleted;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
$flushed = true;
|
||||
|
||||
foreach ($this->cacheProviders as $cacheProvider) {
|
||||
$flushed = $cacheProvider->doFlush() && $flushed;
|
||||
}
|
||||
|
||||
return $flushed;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
// We return all the stats from all adapters
|
||||
$stats = array();
|
||||
|
||||
foreach ($this->cacheProviders as $cacheProvider) {
|
||||
$stats[] = $cacheProvider->doGetStats();
|
||||
}
|
||||
|
||||
return $stats;
|
||||
}
|
||||
}
|
40
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ClearableCache.php
vendored
Normal file
40
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ClearableCache.php
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the MIT license. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
/**
|
||||
* Interface for cache that can be flushed.
|
||||
*
|
||||
* Intended to be used for partial clearing of a cache namespace. For a more
|
||||
* global "flushing", see {@see FlushableCache}.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
* @since 1.4
|
||||
* @author Adirelle <adirelle@gmail.com>
|
||||
*/
|
||||
interface ClearableCache
|
||||
{
|
||||
/**
|
||||
* Deletes all cache entries in the current cache namespace.
|
||||
*
|
||||
* @return bool TRUE if the cache entries were successfully deleted, FALSE otherwise.
|
||||
*/
|
||||
public function deleteAll();
|
||||
}
|
121
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/CouchbaseCache.php
vendored
Normal file
121
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/CouchbaseCache.php
vendored
Normal file
@ -0,0 +1,121 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the MIT license. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use \Couchbase;
|
||||
|
||||
/**
|
||||
* Couchbase cache provider.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
* @since 2.4
|
||||
* @author Michael Nitschinger <michael@nitschinger.at>
|
||||
*/
|
||||
class CouchbaseCache extends CacheProvider
|
||||
{
|
||||
/**
|
||||
* @var Couchbase|null
|
||||
*/
|
||||
private $couchbase;
|
||||
|
||||
/**
|
||||
* Sets the Couchbase instance to use.
|
||||
*
|
||||
* @param Couchbase $couchbase
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setCouchbase(Couchbase $couchbase)
|
||||
{
|
||||
$this->couchbase = $couchbase;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the Couchbase instance used by the cache.
|
||||
*
|
||||
* @return Couchbase|null
|
||||
*/
|
||||
public function getCouchbase()
|
||||
{
|
||||
return $this->couchbase;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
return $this->couchbase->get($id) ?: false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
return (null !== $this->couchbase->get($id));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
if ($lifeTime > 30 * 24 * 3600) {
|
||||
$lifeTime = time() + $lifeTime;
|
||||
}
|
||||
return $this->couchbase->set($id, $data, (int) $lifeTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
return $this->couchbase->delete($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
return $this->couchbase->flush();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
$stats = $this->couchbase->getStats();
|
||||
$servers = $this->couchbase->getServers();
|
||||
$server = explode(":", $servers[0]);
|
||||
$key = $server[0] . ":" . "11210";
|
||||
$stats = $stats[$key];
|
||||
return array(
|
||||
Cache::STATS_HITS => $stats['get_hits'],
|
||||
Cache::STATS_MISSES => $stats['get_misses'],
|
||||
Cache::STATS_UPTIME => $stats['uptime'],
|
||||
Cache::STATS_MEMORY_USAGE => $stats['bytes'],
|
||||
Cache::STATS_MEMORY_AVAILABLE => $stats['limit_maxbytes'],
|
||||
);
|
||||
}
|
||||
}
|
286
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/FileCache.php
vendored
Normal file
286
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/FileCache.php
vendored
Normal file
@ -0,0 +1,286 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the MIT license. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
/**
|
||||
* Base file cache driver.
|
||||
*
|
||||
* @since 2.3
|
||||
* @author Fabio B. Silva <fabio.bat.silva@gmail.com>
|
||||
* @author Tobias Schultze <http://tobion.de>
|
||||
*/
|
||||
abstract class FileCache extends CacheProvider
|
||||
{
|
||||
/**
|
||||
* The cache directory.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $directory;
|
||||
|
||||
/**
|
||||
* The cache file extension.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $extension;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $umask;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $directoryStringLength;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $extensionStringLength;
|
||||
|
||||
/**
|
||||
* @var bool
|
||||
*/
|
||||
private $isRunningOnWindows;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param string $directory The cache directory.
|
||||
* @param string $extension The cache file extension.
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*/
|
||||
public function __construct($directory, $extension = '', $umask = 0002)
|
||||
{
|
||||
// YES, this needs to be *before* createPathIfNeeded()
|
||||
if ( ! is_int($umask)) {
|
||||
throw new \InvalidArgumentException(sprintf(
|
||||
'The umask parameter is required to be integer, was: %s',
|
||||
gettype($umask)
|
||||
));
|
||||
}
|
||||
$this->umask = $umask;
|
||||
|
||||
if ( ! $this->createPathIfNeeded($directory)) {
|
||||
throw new \InvalidArgumentException(sprintf(
|
||||
'The directory "%s" does not exist and could not be created.',
|
||||
$directory
|
||||
));
|
||||
}
|
||||
|
||||
if ( ! is_writable($directory)) {
|
||||
throw new \InvalidArgumentException(sprintf(
|
||||
'The directory "%s" is not writable.',
|
||||
$directory
|
||||
));
|
||||
}
|
||||
|
||||
// YES, this needs to be *after* createPathIfNeeded()
|
||||
$this->directory = realpath($directory);
|
||||
$this->extension = (string) $extension;
|
||||
|
||||
$this->directoryStringLength = strlen($this->directory);
|
||||
$this->extensionStringLength = strlen($this->extension);
|
||||
$this->isRunningOnWindows = defined('PHP_WINDOWS_VERSION_BUILD');
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the cache directory.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getDirectory()
|
||||
{
|
||||
return $this->directory;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the cache file extension.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getExtension()
|
||||
{
|
||||
return $this->extension;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $id
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getFilename($id)
|
||||
{
|
||||
$hash = hash('sha256', $id);
|
||||
|
||||
// This ensures that the filename is unique and that there are no invalid chars in it.
|
||||
if (
|
||||
'' === $id
|
||||
|| ((strlen($id) * 2 + $this->extensionStringLength) > 255)
|
||||
|| ($this->isRunningOnWindows && ($this->directoryStringLength + 4 + strlen($id) * 2 + $this->extensionStringLength) > 258)
|
||||
) {
|
||||
// Most filesystems have a limit of 255 chars for each path component. On Windows the the whole path is limited
|
||||
// to 260 chars (including terminating null char). Using long UNC ("\\?\" prefix) does not work with the PHP API.
|
||||
// And there is a bug in PHP (https://bugs.php.net/bug.php?id=70943) with path lengths of 259.
|
||||
// So if the id in hex representation would surpass the limit, we use the hash instead. The prefix prevents
|
||||
// collisions between the hash and bin2hex.
|
||||
$filename = '_' . $hash;
|
||||
} else {
|
||||
$filename = bin2hex($id);
|
||||
}
|
||||
|
||||
return $this->directory
|
||||
. DIRECTORY_SEPARATOR
|
||||
. substr($hash, 0, 2)
|
||||
. DIRECTORY_SEPARATOR
|
||||
. $filename
|
||||
. $this->extension;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
$filename = $this->getFilename($id);
|
||||
|
||||
return @unlink($filename) || ! file_exists($filename);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
foreach ($this->getIterator() as $name => $file) {
|
||||
if ($file->isDir()) {
|
||||
// Remove the intermediate directories which have been created to balance the tree. It only takes effect
|
||||
// if the directory is empty. If several caches share the same directory but with different file extensions,
|
||||
// the other ones are not removed.
|
||||
@rmdir($name);
|
||||
} elseif ($this->isFilenameEndingWithExtension($name)) {
|
||||
// If an extension is set, only remove files which end with the given extension.
|
||||
// If no extension is set, we have no other choice than removing everything.
|
||||
@unlink($name);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
$usage = 0;
|
||||
foreach ($this->getIterator() as $name => $file) {
|
||||
if (! $file->isDir() && $this->isFilenameEndingWithExtension($name)) {
|
||||
$usage += $file->getSize();
|
||||
}
|
||||
}
|
||||
|
||||
$free = disk_free_space($this->directory);
|
||||
|
||||
return array(
|
||||
Cache::STATS_HITS => null,
|
||||
Cache::STATS_MISSES => null,
|
||||
Cache::STATS_UPTIME => null,
|
||||
Cache::STATS_MEMORY_USAGE => $usage,
|
||||
Cache::STATS_MEMORY_AVAILABLE => $free,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create path if needed.
|
||||
*
|
||||
* @param string $path
|
||||
* @return bool TRUE on success or if path already exists, FALSE if path cannot be created.
|
||||
*/
|
||||
private function createPathIfNeeded($path)
|
||||
{
|
||||
if ( ! is_dir($path)) {
|
||||
if (false === @mkdir($path, 0777 & (~$this->umask), true) && !is_dir($path)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes a string content to file in an atomic way.
|
||||
*
|
||||
* @param string $filename Path to the file where to write the data.
|
||||
* @param string $content The content to write
|
||||
*
|
||||
* @return bool TRUE on success, FALSE if path cannot be created, if path is not writable or an any other error.
|
||||
*/
|
||||
protected function writeFile($filename, $content)
|
||||
{
|
||||
$filepath = pathinfo($filename, PATHINFO_DIRNAME);
|
||||
|
||||
if ( ! $this->createPathIfNeeded($filepath)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( ! is_writable($filepath)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$tmpFile = tempnam($filepath, 'swap');
|
||||
@chmod($tmpFile, 0666 & (~$this->umask));
|
||||
|
||||
if (file_put_contents($tmpFile, $content) !== false) {
|
||||
if (@rename($tmpFile, $filename)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@unlink($tmpFile);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \Iterator
|
||||
*/
|
||||
private function getIterator()
|
||||
{
|
||||
return new \RecursiveIteratorIterator(
|
||||
new \RecursiveDirectoryIterator($this->directory, \FilesystemIterator::SKIP_DOTS),
|
||||
\RecursiveIteratorIterator::CHILD_FIRST
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name The filename
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
private function isFilenameEndingWithExtension($name)
|
||||
{
|
||||
return '' === $this->extension
|
||||
|| strrpos($name, $this->extension) === (strlen($name) - $this->extensionStringLength);
|
||||
}
|
||||
}
|
111
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/FilesystemCache.php
vendored
Normal file
111
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/FilesystemCache.php
vendored
Normal file
@ -0,0 +1,111 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the MIT license. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
/**
|
||||
* Filesystem cache driver.
|
||||
*
|
||||
* @since 2.3
|
||||
* @author Fabio B. Silva <fabio.bat.silva@gmail.com>
|
||||
*/
|
||||
class FilesystemCache extends FileCache
|
||||
{
|
||||
const EXTENSION = '.doctrinecache.data';
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function __construct($directory, $extension = self::EXTENSION, $umask = 0002)
|
||||
{
|
||||
parent::__construct($directory, $extension, $umask);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
$data = '';
|
||||
$lifetime = -1;
|
||||
$filename = $this->getFilename($id);
|
||||
|
||||
if ( ! is_file($filename)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$resource = fopen($filename, "r");
|
||||
|
||||
if (false !== ($line = fgets($resource))) {
|
||||
$lifetime = (int) $line;
|
||||
}
|
||||
|
||||
if ($lifetime !== 0 && $lifetime < time()) {
|
||||
fclose($resource);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
while (false !== ($line = fgets($resource))) {
|
||||
$data .= $line;
|
||||
}
|
||||
|
||||
fclose($resource);
|
||||
|
||||
return unserialize($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
$lifetime = -1;
|
||||
$filename = $this->getFilename($id);
|
||||
|
||||
if ( ! is_file($filename)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$resource = fopen($filename, "r");
|
||||
|
||||
if (false !== ($line = fgets($resource))) {
|
||||
$lifetime = (int) $line;
|
||||
}
|
||||
|
||||
fclose($resource);
|
||||
|
||||
return $lifetime === 0 || $lifetime > time();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
if ($lifeTime > 0) {
|
||||
$lifeTime = time() + $lifeTime;
|
||||
}
|
||||
|
||||
$data = serialize($data);
|
||||
$filename = $this->getFilename($id);
|
||||
|
||||
return $this->writeFile($filename, $lifeTime . PHP_EOL . $data);
|
||||
}
|
||||
}
|
37
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/FlushableCache.php
vendored
Normal file
37
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/FlushableCache.php
vendored
Normal file
@ -0,0 +1,37 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the MIT license. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
/**
|
||||
* Interface for cache that can be flushed.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
* @since 1.4
|
||||
* @author Adirelle <adirelle@gmail.com>
|
||||
*/
|
||||
interface FlushableCache
|
||||
{
|
||||
/**
|
||||
* Flushes all cache entries, globally.
|
||||
*
|
||||
* @return bool TRUE if the cache entries were successfully flushed, FALSE otherwise.
|
||||
*/
|
||||
public function flushAll();
|
||||
}
|
126
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MemcacheCache.php
vendored
Normal file
126
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MemcacheCache.php
vendored
Normal file
@ -0,0 +1,126 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the MIT license. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use \Memcache;
|
||||
|
||||
/**
|
||||
* Memcache cache provider.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
* @since 2.0
|
||||
* @author Benjamin Eberlei <kontakt@beberlei.de>
|
||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
||||
* @author Jonathan Wage <jonwage@gmail.com>
|
||||
* @author Roman Borschel <roman@code-factory.org>
|
||||
* @author David Abdemoulaie <dave@hobodave.com>
|
||||
*/
|
||||
class MemcacheCache extends CacheProvider
|
||||
{
|
||||
/**
|
||||
* @var Memcache|null
|
||||
*/
|
||||
private $memcache;
|
||||
|
||||
/**
|
||||
* Sets the memcache instance to use.
|
||||
*
|
||||
* @param Memcache $memcache
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setMemcache(Memcache $memcache)
|
||||
{
|
||||
$this->memcache = $memcache;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the memcache instance used by the cache.
|
||||
*
|
||||
* @return Memcache|null
|
||||
*/
|
||||
public function getMemcache()
|
||||
{
|
||||
return $this->memcache;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
return $this->memcache->get($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
$flags = null;
|
||||
$this->memcache->get($id, $flags);
|
||||
|
||||
//if memcache has changed the value of "flags", it means the value exists
|
||||
return ($flags !== null);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
if ($lifeTime > 30 * 24 * 3600) {
|
||||
$lifeTime = time() + $lifeTime;
|
||||
}
|
||||
return $this->memcache->set($id, $data, 0, (int) $lifeTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
// Memcache::delete() returns false if entry does not exist
|
||||
return $this->memcache->delete($id) || ! $this->doContains($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
return $this->memcache->flush();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
$stats = $this->memcache->getStats();
|
||||
return array(
|
||||
Cache::STATS_HITS => $stats['get_hits'],
|
||||
Cache::STATS_MISSES => $stats['get_misses'],
|
||||
Cache::STATS_UPTIME => $stats['uptime'],
|
||||
Cache::STATS_MEMORY_USAGE => $stats['bytes'],
|
||||
Cache::STATS_MEMORY_AVAILABLE => $stats['limit_maxbytes'],
|
||||
);
|
||||
}
|
||||
}
|
146
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MemcachedCache.php
vendored
Normal file
146
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MemcachedCache.php
vendored
Normal file
@ -0,0 +1,146 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the MIT license. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use \Memcached;
|
||||
|
||||
/**
|
||||
* Memcached cache provider.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
* @since 2.2
|
||||
* @author Benjamin Eberlei <kontakt@beberlei.de>
|
||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
||||
* @author Jonathan Wage <jonwage@gmail.com>
|
||||
* @author Roman Borschel <roman@code-factory.org>
|
||||
* @author David Abdemoulaie <dave@hobodave.com>
|
||||
*/
|
||||
class MemcachedCache extends CacheProvider
|
||||
{
|
||||
/**
|
||||
* @var Memcached|null
|
||||
*/
|
||||
private $memcached;
|
||||
|
||||
/**
|
||||
* Sets the memcache instance to use.
|
||||
*
|
||||
* @param Memcached $memcached
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setMemcached(Memcached $memcached)
|
||||
{
|
||||
$this->memcached = $memcached;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the memcached instance used by the cache.
|
||||
*
|
||||
* @return Memcached|null
|
||||
*/
|
||||
public function getMemcached()
|
||||
{
|
||||
return $this->memcached;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
return $this->memcached->get($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetchMultiple(array $keys)
|
||||
{
|
||||
return $this->memcached->getMulti($keys);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)
|
||||
{
|
||||
if ($lifetime > 30 * 24 * 3600) {
|
||||
$lifetime = time() + $lifetime;
|
||||
}
|
||||
|
||||
return $this->memcached->setMulti($keysAndValues, null, $lifetime);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
return false !== $this->memcached->get($id)
|
||||
|| $this->memcached->getResultCode() !== Memcached::RES_NOTFOUND;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
if ($lifeTime > 30 * 24 * 3600) {
|
||||
$lifeTime = time() + $lifeTime;
|
||||
}
|
||||
return $this->memcached->set($id, $data, (int) $lifeTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
return $this->memcached->delete($id)
|
||||
|| $this->memcached->getResultCode() === Memcached::RES_NOTFOUND;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
return $this->memcached->flush();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
$stats = $this->memcached->getStats();
|
||||
$servers = $this->memcached->getServerList();
|
||||
$key = $servers[0]['host'] . ':' . $servers[0]['port'];
|
||||
$stats = $stats[$key];
|
||||
return array(
|
||||
Cache::STATS_HITS => $stats['get_hits'],
|
||||
Cache::STATS_MISSES => $stats['get_misses'],
|
||||
Cache::STATS_UPTIME => $stats['uptime'],
|
||||
Cache::STATS_MEMORY_USAGE => $stats['bytes'],
|
||||
Cache::STATS_MEMORY_AVAILABLE => $stats['limit_maxbytes'],
|
||||
);
|
||||
}
|
||||
}
|
197
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MongoDBCache.php
vendored
Normal file
197
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MongoDBCache.php
vendored
Normal file
@ -0,0 +1,197 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the MIT license. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use MongoBinData;
|
||||
use MongoCollection;
|
||||
use MongoCursorException;
|
||||
use MongoDate;
|
||||
|
||||
/**
|
||||
* MongoDB cache provider.
|
||||
*
|
||||
* @since 1.1
|
||||
* @author Jeremy Mikola <jmikola@gmail.com>
|
||||
*/
|
||||
class MongoDBCache extends CacheProvider
|
||||
{
|
||||
/**
|
||||
* The data field will store the serialized PHP value.
|
||||
*/
|
||||
const DATA_FIELD = 'd';
|
||||
|
||||
/**
|
||||
* The expiration field will store a MongoDate value indicating when the
|
||||
* cache entry should expire.
|
||||
*
|
||||
* With MongoDB 2.2+, entries can be automatically deleted by MongoDB by
|
||||
* indexing this field with the "expireAfterSeconds" option equal to zero.
|
||||
* This will direct MongoDB to regularly query for and delete any entries
|
||||
* whose date is older than the current time. Entries without a date value
|
||||
* in this field will be ignored.
|
||||
*
|
||||
* The cache provider will also check dates on its own, in case expired
|
||||
* entries are fetched before MongoDB's TTLMonitor pass can expire them.
|
||||
*
|
||||
* @see http://docs.mongodb.org/manual/tutorial/expire-data/
|
||||
*/
|
||||
const EXPIRATION_FIELD = 'e';
|
||||
|
||||
/**
|
||||
* @var MongoCollection
|
||||
*/
|
||||
private $collection;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* This provider will default to the write concern and read preference
|
||||
* options set on the MongoCollection instance (or inherited from MongoDB or
|
||||
* MongoClient). Using an unacknowledged write concern (< 1) may make the
|
||||
* return values of delete() and save() unreliable. Reading from secondaries
|
||||
* may make contain() and fetch() unreliable.
|
||||
*
|
||||
* @see http://www.php.net/manual/en/mongo.readpreferences.php
|
||||
* @see http://www.php.net/manual/en/mongo.writeconcerns.php
|
||||
* @param MongoCollection $collection
|
||||
*/
|
||||
public function __construct(MongoCollection $collection)
|
||||
{
|
||||
$this->collection = $collection;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
$document = $this->collection->findOne(array('_id' => $id), array(self::DATA_FIELD, self::EXPIRATION_FIELD));
|
||||
|
||||
if ($document === null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($this->isExpired($document)) {
|
||||
$this->doDelete($id);
|
||||
return false;
|
||||
}
|
||||
|
||||
return unserialize($document[self::DATA_FIELD]->bin);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
$document = $this->collection->findOne(array('_id' => $id), array(self::EXPIRATION_FIELD));
|
||||
|
||||
if ($document === null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($this->isExpired($document)) {
|
||||
$this->doDelete($id);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
try {
|
||||
$result = $this->collection->update(
|
||||
array('_id' => $id),
|
||||
array('$set' => array(
|
||||
self::EXPIRATION_FIELD => ($lifeTime > 0 ? new MongoDate(time() + $lifeTime) : null),
|
||||
self::DATA_FIELD => new MongoBinData(serialize($data), MongoBinData::BYTE_ARRAY),
|
||||
)),
|
||||
array('upsert' => true, 'multiple' => false)
|
||||
);
|
||||
} catch (MongoCursorException $e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return isset($result['ok']) ? $result['ok'] == 1 : true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
$result = $this->collection->remove(array('_id' => $id));
|
||||
|
||||
return isset($result['ok']) ? $result['ok'] == 1 : true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
// Use remove() in lieu of drop() to maintain any collection indexes
|
||||
$result = $this->collection->remove();
|
||||
|
||||
return isset($result['ok']) ? $result['ok'] == 1 : true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
$serverStatus = $this->collection->db->command(array(
|
||||
'serverStatus' => 1,
|
||||
'locks' => 0,
|
||||
'metrics' => 0,
|
||||
'recordStats' => 0,
|
||||
'repl' => 0,
|
||||
));
|
||||
|
||||
$collStats = $this->collection->db->command(array('collStats' => 1));
|
||||
|
||||
return array(
|
||||
Cache::STATS_HITS => null,
|
||||
Cache::STATS_MISSES => null,
|
||||
Cache::STATS_UPTIME => (isset($serverStatus['uptime']) ? (int) $serverStatus['uptime'] : null),
|
||||
Cache::STATS_MEMORY_USAGE => (isset($collStats['size']) ? (int) $collStats['size'] : null),
|
||||
Cache::STATS_MEMORY_AVAILABLE => null,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the document is expired.
|
||||
*
|
||||
* @param array $document
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
private function isExpired(array $document)
|
||||
{
|
||||
return isset($document[self::EXPIRATION_FIELD]) &&
|
||||
$document[self::EXPIRATION_FIELD] instanceof MongoDate &&
|
||||
$document[self::EXPIRATION_FIELD]->sec < time();
|
||||
}
|
||||
}
|
39
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MultiGetCache.php
vendored
Normal file
39
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MultiGetCache.php
vendored
Normal file
@ -0,0 +1,39 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the MIT license. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
/**
|
||||
* Interface for cache drivers that allows to get many items at once.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
* @since 1.4
|
||||
* @author Asmir Mustafic <goetas@gmail.com>
|
||||
*/
|
||||
interface MultiGetCache
|
||||
{
|
||||
/**
|
||||
* Returns an associative array of values for keys is found in cache.
|
||||
*
|
||||
* @param string[] $keys Array of keys to retrieve from cache
|
||||
* @return mixed[] Array of retrieved values, indexed by the specified keys.
|
||||
* Values that couldn't be retrieved are not contained in this array.
|
||||
*/
|
||||
function fetchMultiple(array $keys);
|
||||
}
|
41
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MultiPutCache.php
vendored
Normal file
41
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MultiPutCache.php
vendored
Normal file
@ -0,0 +1,41 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the MIT license. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
/**
|
||||
* Interface for cache drivers that allows to put many items at once.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
* @since 1.6
|
||||
* @author Daniel Gorgan <danut007ro@gmail.com>
|
||||
*/
|
||||
interface MultiPutCache
|
||||
{
|
||||
/**
|
||||
* Returns a boolean value indicating if the operation succeeded.
|
||||
*
|
||||
* @param array $keysAndValues Array of keys and values to save in cache
|
||||
* @param int $lifetime The lifetime. If != 0, sets a specific lifetime for these
|
||||
* cache entries (0 => infinite lifeTime).
|
||||
*
|
||||
* @return bool TRUE if the operation was successful, FALSE if it wasn't.
|
||||
*/
|
||||
function saveMultiple(array $keysAndValues, $lifetime = 0);
|
||||
}
|
120
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/PhpFileCache.php
vendored
Normal file
120
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/PhpFileCache.php
vendored
Normal file
@ -0,0 +1,120 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the MIT license. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
/**
|
||||
* Php file cache driver.
|
||||
*
|
||||
* @since 2.3
|
||||
* @author Fabio B. Silva <fabio.bat.silva@gmail.com>
|
||||
*/
|
||||
class PhpFileCache extends FileCache
|
||||
{
|
||||
const EXTENSION = '.doctrinecache.php';
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function __construct($directory, $extension = self::EXTENSION, $umask = 0002)
|
||||
{
|
||||
parent::__construct($directory, $extension, $umask);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
$value = $this->includeFileForId($id);
|
||||
|
||||
if (! $value) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($value['lifetime'] !== 0 && $value['lifetime'] < time()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return $value['data'];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
$value = $this->includeFileForId($id);
|
||||
|
||||
if (! $value) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return $value['lifetime'] === 0 || $value['lifetime'] > time();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
if ($lifeTime > 0) {
|
||||
$lifeTime = time() + $lifeTime;
|
||||
}
|
||||
|
||||
if (is_object($data) && ! method_exists($data, '__set_state')) {
|
||||
throw new \InvalidArgumentException(
|
||||
"Invalid argument given, PhpFileCache only allows objects that implement __set_state() " .
|
||||
"and fully support var_export(). You can use the FilesystemCache to save arbitrary object " .
|
||||
"graphs using serialize()/deserialize()."
|
||||
);
|
||||
}
|
||||
|
||||
$filename = $this->getFilename($id);
|
||||
|
||||
$value = array(
|
||||
'lifetime' => $lifeTime,
|
||||
'data' => $data
|
||||
);
|
||||
|
||||
$value = var_export($value, true);
|
||||
$code = sprintf('<?php return %s;', $value);
|
||||
|
||||
return $this->writeFile($filename, $code);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $id
|
||||
*
|
||||
* @return array|false
|
||||
*/
|
||||
private function includeFileForId($id)
|
||||
{
|
||||
$fileName = $this->getFilename($id);
|
||||
|
||||
// note: error suppression is still faster than `file_exists`, `is_file` and `is_readable`
|
||||
$value = @include $fileName;
|
||||
|
||||
if (! isset($value['lifetime'])) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
}
|
136
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/PredisCache.php
vendored
Normal file
136
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/PredisCache.php
vendored
Normal file
@ -0,0 +1,136 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use Predis\ClientInterface;
|
||||
|
||||
/**
|
||||
* Predis cache provider.
|
||||
*
|
||||
* @author othillo <othillo@othillo.nl>
|
||||
*/
|
||||
class PredisCache extends CacheProvider
|
||||
{
|
||||
/**
|
||||
* @var ClientInterface
|
||||
*/
|
||||
private $client;
|
||||
|
||||
/**
|
||||
* @param ClientInterface $client
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(ClientInterface $client)
|
||||
{
|
||||
$this->client = $client;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
$result = $this->client->get($id);
|
||||
if (null === $result) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return unserialize($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetchMultiple(array $keys)
|
||||
{
|
||||
$fetchedItems = call_user_func_array(array($this->client, 'mget'), $keys);
|
||||
|
||||
return array_map('unserialize', array_filter(array_combine($keys, $fetchedItems)));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)
|
||||
{
|
||||
if ($lifetime) {
|
||||
$success = true;
|
||||
|
||||
// Keys have lifetime, use SETEX for each of them
|
||||
foreach ($keysAndValues as $key => $value) {
|
||||
$response = $this->client->setex($key, $lifetime, serialize($value));
|
||||
|
||||
if ((string) $response != 'OK') {
|
||||
$success = false;
|
||||
}
|
||||
}
|
||||
|
||||
return $success;
|
||||
}
|
||||
|
||||
// No lifetime, use MSET
|
||||
$response = $this->client->mset(array_map(function ($value) {
|
||||
return serialize($value);
|
||||
}, $keysAndValues));
|
||||
|
||||
return (string) $response == 'OK';
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
return $this->client->exists($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
$data = serialize($data);
|
||||
if ($lifeTime > 0) {
|
||||
$response = $this->client->setex($id, $lifeTime, $data);
|
||||
} else {
|
||||
$response = $this->client->set($id, $data);
|
||||
}
|
||||
|
||||
return $response === true || $response == 'OK';
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
return $this->client->del($id) >= 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
$response = $this->client->flushdb();
|
||||
|
||||
return $response === true || $response == 'OK';
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
$info = $this->client->info();
|
||||
|
||||
return array(
|
||||
Cache::STATS_HITS => $info['Stats']['keyspace_hits'],
|
||||
Cache::STATS_MISSES => $info['Stats']['keyspace_misses'],
|
||||
Cache::STATS_UPTIME => $info['Server']['uptime_in_seconds'],
|
||||
Cache::STATS_MEMORY_USAGE => $info['Memory']['used_memory'],
|
||||
Cache::STATS_MEMORY_AVAILABLE => false
|
||||
);
|
||||
}
|
||||
}
|
175
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/RedisCache.php
vendored
Normal file
175
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/RedisCache.php
vendored
Normal file
@ -0,0 +1,175 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the MIT license. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use Redis;
|
||||
|
||||
/**
|
||||
* Redis cache provider.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
* @since 2.2
|
||||
* @author Osman Ungur <osmanungur@gmail.com>
|
||||
*/
|
||||
class RedisCache extends CacheProvider
|
||||
{
|
||||
/**
|
||||
* @var Redis|null
|
||||
*/
|
||||
private $redis;
|
||||
|
||||
/**
|
||||
* Sets the redis instance to use.
|
||||
*
|
||||
* @param Redis $redis
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setRedis(Redis $redis)
|
||||
{
|
||||
$redis->setOption(Redis::OPT_SERIALIZER, $this->getSerializerValue());
|
||||
$this->redis = $redis;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the redis instance used by the cache.
|
||||
*
|
||||
* @return Redis|null
|
||||
*/
|
||||
public function getRedis()
|
||||
{
|
||||
return $this->redis;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
return $this->redis->get($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetchMultiple(array $keys)
|
||||
{
|
||||
$fetchedItems = array_combine($keys, $this->redis->mget($keys));
|
||||
|
||||
// Redis mget returns false for keys that do not exist. So we need to filter those out unless it's the real data.
|
||||
$foundItems = array();
|
||||
|
||||
foreach ($fetchedItems as $key => $value) {
|
||||
if (false !== $value || $this->redis->exists($key)) {
|
||||
$foundItems[$key] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return $foundItems;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)
|
||||
{
|
||||
if ($lifetime) {
|
||||
$success = true;
|
||||
|
||||
// Keys have lifetime, use SETEX for each of them
|
||||
foreach ($keysAndValues as $key => $value) {
|
||||
if (!$this->redis->setex($key, $lifetime, $value)) {
|
||||
$success = false;
|
||||
}
|
||||
}
|
||||
|
||||
return $success;
|
||||
}
|
||||
|
||||
// No lifetime, use MSET
|
||||
return (bool) $this->redis->mset($keysAndValues);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
return $this->redis->exists($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
if ($lifeTime > 0) {
|
||||
return $this->redis->setex($id, $lifeTime, $data);
|
||||
}
|
||||
|
||||
return $this->redis->set($id, $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
return $this->redis->delete($id) >= 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
return $this->redis->flushDB();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
$info = $this->redis->info();
|
||||
return array(
|
||||
Cache::STATS_HITS => $info['keyspace_hits'],
|
||||
Cache::STATS_MISSES => $info['keyspace_misses'],
|
||||
Cache::STATS_UPTIME => $info['uptime_in_seconds'],
|
||||
Cache::STATS_MEMORY_USAGE => $info['used_memory'],
|
||||
Cache::STATS_MEMORY_AVAILABLE => false
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the serializer constant to use. If Redis is compiled with
|
||||
* igbinary support, that is used. Otherwise the default PHP serializer is
|
||||
* used.
|
||||
*
|
||||
* @return integer One of the Redis::SERIALIZER_* constants
|
||||
*/
|
||||
protected function getSerializerValue()
|
||||
{
|
||||
if (defined('HHVM_VERSION')) {
|
||||
return Redis::SERIALIZER_PHP;
|
||||
}
|
||||
return defined('Redis::SERIALIZER_IGBINARY') ? Redis::SERIALIZER_IGBINARY : Redis::SERIALIZER_PHP;
|
||||
}
|
||||
}
|
250
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/RiakCache.php
vendored
Normal file
250
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/RiakCache.php
vendored
Normal file
@ -0,0 +1,250 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the MIT license. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use Riak\Bucket;
|
||||
use Riak\Connection;
|
||||
use Riak\Input;
|
||||
use Riak\Exception;
|
||||
use Riak\Object;
|
||||
|
||||
/**
|
||||
* Riak cache provider.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
* @since 1.1
|
||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
||||
*/
|
||||
class RiakCache extends CacheProvider
|
||||
{
|
||||
const EXPIRES_HEADER = 'X-Riak-Meta-Expires';
|
||||
|
||||
/**
|
||||
* @var \Riak\Bucket
|
||||
*/
|
||||
private $bucket;
|
||||
|
||||
/**
|
||||
* Sets the riak bucket instance to use.
|
||||
*
|
||||
* @param \Riak\Bucket $bucket
|
||||
*/
|
||||
public function __construct(Bucket $bucket)
|
||||
{
|
||||
$this->bucket = $bucket;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
try {
|
||||
$response = $this->bucket->get($id);
|
||||
|
||||
// No objects found
|
||||
if ( ! $response->hasObject()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Check for attempted siblings
|
||||
$object = ($response->hasSiblings())
|
||||
? $this->resolveConflict($id, $response->getVClock(), $response->getObjectList())
|
||||
: $response->getFirstObject();
|
||||
|
||||
// Check for expired object
|
||||
if ($this->isExpired($object)) {
|
||||
$this->bucket->delete($object);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return unserialize($object->getContent());
|
||||
} catch (Exception\RiakException $e) {
|
||||
// Covers:
|
||||
// - Riak\ConnectionException
|
||||
// - Riak\CommunicationException
|
||||
// - Riak\UnexpectedResponseException
|
||||
// - Riak\NotFoundException
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
try {
|
||||
// We only need the HEAD, not the entire object
|
||||
$input = new Input\GetInput();
|
||||
|
||||
$input->setReturnHead(true);
|
||||
|
||||
$response = $this->bucket->get($id, $input);
|
||||
|
||||
// No objects found
|
||||
if ( ! $response->hasObject()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$object = $response->getFirstObject();
|
||||
|
||||
// Check for expired object
|
||||
if ($this->isExpired($object)) {
|
||||
$this->bucket->delete($object);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
} catch (Exception\RiakException $e) {
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
try {
|
||||
$object = new Object($id);
|
||||
|
||||
$object->setContent(serialize($data));
|
||||
|
||||
if ($lifeTime > 0) {
|
||||
$object->addMetadata(self::EXPIRES_HEADER, (string) (time() + $lifeTime));
|
||||
}
|
||||
|
||||
$this->bucket->put($object);
|
||||
|
||||
return true;
|
||||
} catch (Exception\RiakException $e) {
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
try {
|
||||
$this->bucket->delete($id);
|
||||
|
||||
return true;
|
||||
} catch (Exception\BadArgumentsException $e) {
|
||||
// Key did not exist on cluster already
|
||||
} catch (Exception\RiakException $e) {
|
||||
// Covers:
|
||||
// - Riak\Exception\ConnectionException
|
||||
// - Riak\Exception\CommunicationException
|
||||
// - Riak\Exception\UnexpectedResponseException
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
try {
|
||||
$keyList = $this->bucket->getKeyList();
|
||||
|
||||
foreach ($keyList as $key) {
|
||||
$this->bucket->delete($key);
|
||||
}
|
||||
|
||||
return true;
|
||||
} catch (Exception\RiakException $e) {
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
// Only exposed through HTTP stats API, not Protocol Buffers API
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a given Riak Object have expired.
|
||||
*
|
||||
* @param \Riak\Object $object
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
private function isExpired(Object $object)
|
||||
{
|
||||
$metadataMap = $object->getMetadataMap();
|
||||
|
||||
return isset($metadataMap[self::EXPIRES_HEADER])
|
||||
&& $metadataMap[self::EXPIRES_HEADER] < time();
|
||||
}
|
||||
|
||||
/**
|
||||
* On-read conflict resolution. Applied approach here is last write wins.
|
||||
* Specific needs may override this method to apply alternate conflict resolutions.
|
||||
*
|
||||
* {@internal Riak does not attempt to resolve a write conflict, and store
|
||||
* it as sibling of conflicted one. By following this approach, it is up to
|
||||
* the next read to resolve the conflict. When this happens, your fetched
|
||||
* object will have a list of siblings (read as a list of objects).
|
||||
* In our specific case, we do not care about the intermediate ones since
|
||||
* they are all the same read from storage, and we do apply a last sibling
|
||||
* (last write) wins logic.
|
||||
* If by any means our resolution generates another conflict, it'll up to
|
||||
* next read to properly solve it.}
|
||||
*
|
||||
* @param string $id
|
||||
* @param string $vClock
|
||||
* @param array $objectList
|
||||
*
|
||||
* @return \Riak\Object
|
||||
*/
|
||||
protected function resolveConflict($id, $vClock, array $objectList)
|
||||
{
|
||||
// Our approach here is last-write wins
|
||||
$winner = $objectList[count($objectList)];
|
||||
|
||||
$putInput = new Input\PutInput();
|
||||
$putInput->setVClock($vClock);
|
||||
|
||||
$mergedObject = new Object($id);
|
||||
$mergedObject->setContent($winner->getContent());
|
||||
|
||||
$this->bucket->put($mergedObject, $putInput);
|
||||
|
||||
return $mergedObject;
|
||||
}
|
||||
}
|
220
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/SQLite3Cache.php
vendored
Normal file
220
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/SQLite3Cache.php
vendored
Normal file
@ -0,0 +1,220 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the MIT license. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use SQLite3;
|
||||
use SQLite3Result;
|
||||
|
||||
/**
|
||||
* SQLite3 cache provider.
|
||||
*
|
||||
* @since 1.4
|
||||
* @author Jake Bell <jake@theunraveler.com>
|
||||
*/
|
||||
class SQLite3Cache extends CacheProvider
|
||||
{
|
||||
/**
|
||||
* The ID field will store the cache key.
|
||||
*/
|
||||
const ID_FIELD = 'k';
|
||||
|
||||
/**
|
||||
* The data field will store the serialized PHP value.
|
||||
*/
|
||||
const DATA_FIELD = 'd';
|
||||
|
||||
/**
|
||||
* The expiration field will store a date value indicating when the
|
||||
* cache entry should expire.
|
||||
*/
|
||||
const EXPIRATION_FIELD = 'e';
|
||||
|
||||
/**
|
||||
* @var SQLite3
|
||||
*/
|
||||
private $sqlite;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $table;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* Calling the constructor will ensure that the database file and table
|
||||
* exist and will create both if they don't.
|
||||
*
|
||||
* @param SQLite3 $sqlite
|
||||
* @param string $table
|
||||
*/
|
||||
public function __construct(SQLite3 $sqlite, $table)
|
||||
{
|
||||
$this->sqlite = $sqlite;
|
||||
$this->table = (string) $table;
|
||||
|
||||
list($id, $data, $exp) = $this->getFields();
|
||||
|
||||
return $this->sqlite->exec(sprintf(
|
||||
'CREATE TABLE IF NOT EXISTS %s(%s TEXT PRIMARY KEY NOT NULL, %s BLOB, %s INTEGER)',
|
||||
$table,
|
||||
$id,
|
||||
$data,
|
||||
$exp
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
if ($item = $this->findById($id)) {
|
||||
return unserialize($item[self::DATA_FIELD]);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
return null !== $this->findById($id, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
$statement = $this->sqlite->prepare(sprintf(
|
||||
'INSERT OR REPLACE INTO %s (%s) VALUES (:id, :data, :expire)',
|
||||
$this->table,
|
||||
implode(',', $this->getFields())
|
||||
));
|
||||
|
||||
$statement->bindValue(':id', $id);
|
||||
$statement->bindValue(':data', serialize($data), SQLITE3_BLOB);
|
||||
$statement->bindValue(':expire', $lifeTime > 0 ? time() + $lifeTime : null);
|
||||
|
||||
return $statement->execute() instanceof SQLite3Result;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
list($idField) = $this->getFields();
|
||||
|
||||
$statement = $this->sqlite->prepare(sprintf(
|
||||
'DELETE FROM %s WHERE %s = :id',
|
||||
$this->table,
|
||||
$idField
|
||||
));
|
||||
|
||||
$statement->bindValue(':id', $id);
|
||||
|
||||
return $statement->execute() instanceof SQLite3Result;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
return $this->sqlite->exec(sprintf('DELETE FROM %s', $this->table));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
// no-op.
|
||||
}
|
||||
|
||||
/**
|
||||
* Find a single row by ID.
|
||||
*
|
||||
* @param mixed $id
|
||||
* @param bool $includeData
|
||||
*
|
||||
* @return array|null
|
||||
*/
|
||||
private function findById($id, $includeData = true)
|
||||
{
|
||||
list($idField) = $fields = $this->getFields();
|
||||
|
||||
if (!$includeData) {
|
||||
$key = array_search(static::DATA_FIELD, $fields);
|
||||
unset($fields[$key]);
|
||||
}
|
||||
|
||||
$statement = $this->sqlite->prepare(sprintf(
|
||||
'SELECT %s FROM %s WHERE %s = :id LIMIT 1',
|
||||
implode(',', $fields),
|
||||
$this->table,
|
||||
$idField
|
||||
));
|
||||
|
||||
$statement->bindValue(':id', $id, SQLITE3_TEXT);
|
||||
|
||||
$item = $statement->execute()->fetchArray(SQLITE3_ASSOC);
|
||||
|
||||
if ($item === false) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if ($this->isExpired($item)) {
|
||||
$this->doDelete($id);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
return $item;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets an array of the fields in our table.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
private function getFields()
|
||||
{
|
||||
return array(static::ID_FIELD, static::DATA_FIELD, static::EXPIRATION_FIELD);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the item is expired.
|
||||
*
|
||||
* @param array $item
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
private function isExpired(array $item)
|
||||
{
|
||||
return isset($item[static::EXPIRATION_FIELD]) &&
|
||||
$item[self::EXPIRATION_FIELD] !== null &&
|
||||
$item[self::EXPIRATION_FIELD] < time();
|
||||
}
|
||||
}
|
25
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/Version.php
vendored
Normal file
25
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/Version.php
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the MIT license. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
class Version
|
||||
{
|
||||
const VERSION = '1.6.0';
|
||||
}
|
78
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/VoidCache.php
vendored
Normal file
78
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/VoidCache.php
vendored
Normal file
@ -0,0 +1,78 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the MIT license. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
/**
|
||||
* Void cache driver. The cache could be of use in tests where you don`t need to cache anything.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
* @since 1.5
|
||||
* @author Kotlyar Maksim <kotlyar.maksim@gmail.com>
|
||||
*/
|
||||
class VoidCache extends CacheProvider
|
||||
{
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
109
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/WinCacheCache.php
vendored
Normal file
109
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/WinCacheCache.php
vendored
Normal file
@ -0,0 +1,109 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the MIT license. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
/**
|
||||
* WinCache cache provider.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
* @since 2.2
|
||||
* @author Benjamin Eberlei <kontakt@beberlei.de>
|
||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
||||
* @author Jonathan Wage <jonwage@gmail.com>
|
||||
* @author Roman Borschel <roman@code-factory.org>
|
||||
* @author David Abdemoulaie <dave@hobodave.com>
|
||||
*/
|
||||
class WinCacheCache extends CacheProvider
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
return wincache_ucache_get($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
return wincache_ucache_exists($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
return wincache_ucache_set($id, $data, $lifeTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
return wincache_ucache_delete($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
return wincache_ucache_clear();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetchMultiple(array $keys)
|
||||
{
|
||||
return wincache_ucache_get($keys);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)
|
||||
{
|
||||
$result = wincache_ucache_set($keysAndValues, null, $lifetime);
|
||||
|
||||
return empty($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
$info = wincache_ucache_info();
|
||||
$meminfo = wincache_ucache_meminfo();
|
||||
|
||||
return array(
|
||||
Cache::STATS_HITS => $info['total_hit_count'],
|
||||
Cache::STATS_MISSES => $info['total_miss_count'],
|
||||
Cache::STATS_UPTIME => $info['total_cache_uptime'],
|
||||
Cache::STATS_MEMORY_USAGE => $meminfo['memory_total'],
|
||||
Cache::STATS_MEMORY_AVAILABLE => $meminfo['memory_free'],
|
||||
);
|
||||
}
|
||||
}
|
112
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/XcacheCache.php
vendored
Normal file
112
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/XcacheCache.php
vendored
Normal file
@ -0,0 +1,112 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the MIT license. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
/**
|
||||
* Xcache cache driver.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
* @since 2.0
|
||||
* @author Benjamin Eberlei <kontakt@beberlei.de>
|
||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
||||
* @author Jonathan Wage <jonwage@gmail.com>
|
||||
* @author Roman Borschel <roman@code-factory.org>
|
||||
* @author David Abdemoulaie <dave@hobodave.com>
|
||||
*/
|
||||
class XcacheCache extends CacheProvider
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
return $this->doContains($id) ? unserialize(xcache_get($id)) : false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
return xcache_isset($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
return xcache_set($id, serialize($data), (int) $lifeTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
return xcache_unset($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
$this->checkAuthorization();
|
||||
|
||||
xcache_clear_cache(XC_TYPE_VAR);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks that xcache.admin.enable_auth is Off.
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @throws \BadMethodCallException When xcache.admin.enable_auth is On.
|
||||
*/
|
||||
protected function checkAuthorization()
|
||||
{
|
||||
if (ini_get('xcache.admin.enable_auth')) {
|
||||
throw new \BadMethodCallException(
|
||||
'To use all features of \Doctrine\Common\Cache\XcacheCache, '
|
||||
. 'you must set "xcache.admin.enable_auth" to "Off" in your php.ini.'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
$this->checkAuthorization();
|
||||
|
||||
$info = xcache_info(XC_TYPE_VAR, 0);
|
||||
return array(
|
||||
Cache::STATS_HITS => $info['hits'],
|
||||
Cache::STATS_MISSES => $info['misses'],
|
||||
Cache::STATS_UPTIME => null,
|
||||
Cache::STATS_MEMORY_USAGE => $info['size'],
|
||||
Cache::STATS_MEMORY_AVAILABLE => $info['avail'],
|
||||
);
|
||||
}
|
||||
}
|
83
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ZendDataCache.php
vendored
Normal file
83
developer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ZendDataCache.php
vendored
Normal file
@ -0,0 +1,83 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the MIT license. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
/**
|
||||
* Zend Data Cache cache driver.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
* @since 2.0
|
||||
* @author Ralph Schindler <ralph.schindler@zend.com>
|
||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
||||
*/
|
||||
class ZendDataCache extends CacheProvider
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
return zend_shm_cache_fetch($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
return (false !== zend_shm_cache_fetch($id));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
return zend_shm_cache_store($id, $data, $lifeTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
return zend_shm_cache_delete($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
$namespace = $this->getNamespace();
|
||||
if (empty($namespace)) {
|
||||
return zend_shm_cache_clear();
|
||||
}
|
||||
return zend_shm_cache_clear($namespace);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user