').css({position:"absolute",visibility:"hidden",whiteSpace:"pre",fontFamily:e.css("font-family"),fontSize:e.css("font-size"),fontStyle:e.css("font-style"),fontVariant:e.css("font-variant"),fontWeight:e.css("font-weight"),wordSpacing:e.css("word-spacing"),letterSpacing:e.css("letter-spacing"),textIndent:e.css("text-indent"),textRendering:e.css("text-rendering"),textTransform:e.css("text-transform")}).insertAfter(e)}function r(t,e){return n.normalizeQuery(t)===n.normalizeQuery(e)}function s(t){return t.altKey||t.ctrlKey||t.metaKey||t.shiftKey}var o;return o={9:"tab",27:"esc",37:"left",39:"right",13:"enter",38:"up",40:"down"},n.normalizeQuery=function(t){return(t||"").replace(/^\s*/g,"").replace(/\s{2,}/g," ")},e.mixin(n.prototype,d,{_onBlur:function(){this.resetInputValue(),this.trigger("blurred")},_onFocus:function(){this.trigger("focused")},_onKeydown:function(t){var e=o[t.which||t.keyCode];this._managePreventDefault(e,t),e&&this._shouldTrigger(e,t)&&this.trigger(e+"Keyed",t)},_onInput:function(){this._checkInputValue()},_managePreventDefault:function(t,e){var n,i,r;switch(t){case"tab":i=this.getHint(),r=this.getInputValue(),n=i&&i!==r&&!s(e);break;case"up":case"down":n=!s(e);break;default:n=!1}n&&e.preventDefault()},_shouldTrigger:function(t,e){var n;switch(t){case"tab":n=!s(e);break;default:n=!0}return n},_checkInputValue:function(){var t,e,n;t=this.getInputValue(),e=r(t,this.query),n=e?this.query.length!==t.length:!1,this.query=t,e?n&&this.trigger("whitespaceChanged",this.query):this.trigger("queryChanged",this.query)},focus:function(){this.$input.focus()},blur:function(){this.$input.blur()},getQuery:function(){return this.query},setQuery:function(t){this.query=t},getInputValue:function(){return this.$input.val()},setInputValue:function(t,e){this.$input.val(t),e?this.clearHint():this._checkInputValue()},resetInputValue:function(){this.setInputValue(this.query,!0)},getHint:function(){return this.$hint.val()},setHint:function(t){this.$hint.val(t)},clearHint:function(){this.setHint("")},clearHintIfInvalid:function(){var t,e,n,i;t=this.getInputValue(),e=this.getHint(),n=t!==e&&0===e.indexOf(t),i=""!==t&&n&&!this.hasOverflow(),!i&&this.clearHint()},getLanguageDirection:function(){return(this.$input.css("direction")||"ltr").toLowerCase()},hasOverflow:function(){var t=this.$input.width()-2;return this.$overflowHelper.text(this.getInputValue()),this.$overflowHelper.width()>=t},isCursorAtEnd:function(){var t,n,i;return t=this.$input.val().length,n=this.$input[0].selectionStart,e.isNumber(n)?n===t:document.selection?(i=document.selection.createRange(),i.moveStart("character",-t),t===i.text.length):!0},destroy:function(){this.$hint.off(".tt"),this.$input.off(".tt"),this.$hint=this.$input=this.$overflowHelper=null}}),n}(),g=function(){"use strict";function n(n){n=n||{},n.templates=n.templates||{},n.source||t.error("missing source"),n.name&&!s(n.name)&&t.error("invalid dataset name: "+n.name),this.query=null,this.highlight=!!n.highlight,this.name=n.name||e.getUniqueId(),this.source=n.source,this.displayFn=i(n.display||n.displayKey),this.templates=r(n.templates,this.displayFn),this.$el=t(c.dataset.replace("%CLASS%",this.name))}function i(t){function n(e){return e[t]}return t=t||"value",e.isFunction(t)?t:n}function r(t,n){function i(t){return""+n(t)+"
"}return{empty:t.empty&&e.templatify(t.empty),header:t.header&&e.templatify(t.header),footer:t.footer&&e.templatify(t.footer),suggestion:t.suggestion||i}}function s(t){return/^[_a-zA-Z0-9-]+$/.test(t)}var o="ttDataset",u="ttValue",a="ttDatum";return n.extractDatasetName=function(e){return t(e).data(o)},n.extractValue=function(e){return t(e).data(u)},n.extractDatum=function(e){return t(e).data(a)},e.mixin(n.prototype,d,{_render:function(n,i){function r(){return g.templates.empty({query:n,isEmpty:!0})}function s(){function r(e){var n;return n=t(c.suggestion).append(g.templates.suggestion(e)).data(o,g.name).data(u,g.displayFn(e)).data(a,e),n.children().each(function(){t(this).css(h.suggestionChild)}),n}var s,l;return s=t(c.suggestions).css(h.suggestions),l=e.map(i,r),s.append.apply(s,l),g.highlight&&p({className:"tt-highlight",node:s[0],pattern:n}),s}function l(){return g.templates.header({query:n,isEmpty:!f})}function d(){return g.templates.footer({query:n,isEmpty:!f})}if(this.$el){var f,g=this;this.$el.empty(),f=i&&i.length,!f&&this.templates.empty?this.$el.html(r()).prepend(g.templates.header?l():null).append(g.templates.footer?d():null):f&&this.$el.html(s()).prepend(g.templates.header?l():null).append(g.templates.footer?d():null),this.trigger("rendered")}},getRoot:function(){return this.$el},update:function(t){function e(e){n.canceled||t!==n.query||n._render(t,e)}var n=this;this.query=t,this.canceled=!1,this.source(t,e)},cancel:function(){this.canceled=!0},clear:function(){this.cancel(),this.$el.empty(),this.trigger("rendered")},isEmpty:function(){return this.$el.is(":empty")},destroy:function(){this.$el=null}}),n}(),m=function(){"use strict";function n(n){var r,s,o,u=this;n=n||{},n.menu||t.error("menu is required"),this.isOpen=!1,this.isEmpty=!0,this.datasets=e.map(n.datasets,i),r=e.bind(this._onSuggestionClick,this),s=e.bind(this._onSuggestionMouseEnter,this),o=e.bind(this._onSuggestionMouseLeave,this),this.$menu=t(n.menu).on("click.tt",".tt-suggestion",r).on("mouseenter.tt",".tt-suggestion",s).on("mouseleave.tt",".tt-suggestion",o),e.each(this.datasets,function(t){u.$menu.append(t.getRoot()),t.onSync("rendered",u._onRendered,u)})}function i(t){return new g(t)}return e.mixin(n.prototype,d,{_onSuggestionClick:function(e){this.trigger("suggestionClicked",t(e.currentTarget))},_onSuggestionMouseEnter:function(e){this._removeCursor(),this._setCursor(t(e.currentTarget),!0)},_onSuggestionMouseLeave:function(){this._removeCursor()},_onRendered:function(){function t(t){return t.isEmpty()}this.isEmpty=e.every(this.datasets,t),this.isEmpty?this._hide():this.isOpen&&this._show(),this.trigger("datasetRendered")},_hide:function(){this.$menu.hide()},_show:function(){this.$menu.css("display","block")},_getSuggestions:function(){return this.$menu.find(".tt-suggestion")},_getCursor:function(){return this.$menu.find(".tt-cursor").first()},_setCursor:function(t,e){t.first().addClass("tt-cursor"),!e&&this.trigger("cursorMoved")},_removeCursor:function(){this._getCursor().removeClass("tt-cursor")},_moveCursor:function(t){var e,n,i,r;if(this.isOpen){if(n=this._getCursor(),e=this._getSuggestions(),this._removeCursor(),i=e.index(n)+t,i=(i+1)%(e.length+1)-1,-1===i)return void this.trigger("cursorRemoved");-1>i&&(i=e.length-1),this._setCursor(r=e.eq(i)),this._ensureVisible(r)}},_ensureVisible:function(t){var e,n,i,r;e=t.position().top,n=e+t.outerHeight(!0),i=this.$menu.scrollTop(),r=this.$menu.height()+parseInt(this.$menu.css("paddingTop"),10)+parseInt(this.$menu.css("paddingBottom"),10),0>e?this.$menu.scrollTop(i+e):n>r&&this.$menu.scrollTop(i+(n-r))},close:function(){this.isOpen&&(this.isOpen=!1,this._removeCursor(),this._hide(),this.trigger("closed"))},open:function(){this.isOpen||(this.isOpen=!0,!this.isEmpty&&this._show(),this.trigger("opened"))},setLanguageDirection:function(t){this.$menu.css("ltr"===t?h.ltr:h.rtl)},moveCursorUp:function(){this._moveCursor(-1)},moveCursorDown:function(){this._moveCursor(1)},getDatumForSuggestion:function(t){var e=null;return t.length&&(e={raw:g.extractDatum(t),value:g.extractValue(t),datasetName:g.extractDatasetName(t)}),e},getDatumForCursor:function(){return this.getDatumForSuggestion(this._getCursor().first())},getDatumForTopSuggestion:function(){return this.getDatumForSuggestion(this._getSuggestions().first())},update:function(t){function n(e){e.update(t)}e.each(this.datasets,n)},empty:function(){function t(t){t.clear()}e.each(this.datasets,t),this.isEmpty=!0},isVisible:function(){return this.isOpen&&!this.isEmpty},destroy:function(){function t(t){t.destroy()}this.$menu.off(".tt"),this.$menu=null,e.each(this.datasets,t)}}),n}(),y=function(){"use strict";function n(n){var r,s,o;n=n||{},n.input||t.error("missing input"),this.isActivated=!1,this.autoselect=!!n.autoselect,this.minLength=e.isNumber(n.minLength)?n.minLength:1,this.$node=i(n.input,n.withHint),r=this.$node.find(".tt-dropdown-menu"),s=this.$node.find(".tt-input"),o=this.$node.find(".tt-hint"),s.on("blur.tt",function(t){var n,i,o;n=document.activeElement,i=r.is(n),o=r.has(n).length>0,e.isMsie()&&(i||o)&&(t.preventDefault(),t.stopImmediatePropagation(),e.defer(function(){s.focus()}))}),r.on("mousedown.tt",function(t){t.preventDefault()}),this.eventBus=n.eventBus||new l({el:s}),this.dropdown=new m({menu:r,datasets:n.datasets}).onSync("suggestionClicked",this._onSuggestionClicked,this).onSync("cursorMoved",this._onCursorMoved,this).onSync("cursorRemoved",this._onCursorRemoved,this).onSync("opened",this._onOpened,this).onSync("closed",this._onClosed,this).onAsync("datasetRendered",this._onDatasetRendered,this),this.input=new f({input:s,hint:o}).onSync("focused",this._onFocused,this).onSync("blurred",this._onBlurred,this).onSync("enterKeyed",this._onEnterKeyed,this).onSync("tabKeyed",this._onTabKeyed,this).onSync("escKeyed",this._onEscKeyed,this).onSync("upKeyed",this._onUpKeyed,this).onSync("downKeyed",this._onDownKeyed,this).onSync("leftKeyed",this._onLeftKeyed,this).onSync("rightKeyed",this._onRightKeyed,this).onSync("queryChanged",this._onQueryChanged,this).onSync("whitespaceChanged",this._onWhitespaceChanged,this),this._setLanguageDirection()}function i(e,n){var i,s,u,a;i=t(e),s=t(c.wrapper).css(h.wrapper),u=t(c.dropdown).css(h.dropdown),a=i.clone().css(h.hint).css(r(i)),a.val("").removeData().addClass("tt-hint").removeAttr("id name placeholder required").prop("readonly",!0).attr({autocomplete:"off",spellcheck:"false",tabindex:-1}),i.data(o,{dir:i.attr("dir"),autocomplete:i.attr("autocomplete"),spellcheck:i.attr("spellcheck"),style:i.attr("style")}),i.addClass("tt-input").attr({autocomplete:"off",spellcheck:!1}).css(n?h.input:h.inputWithNoHint);try{!i.attr("dir")&&i.attr("dir","auto")}catch(l){}return i.wrap(s).parent().prepend(n?a:null).append(u)}function r(t){return{backgroundAttachment:t.css("background-attachment"),backgroundClip:t.css("background-clip"),backgroundColor:t.css("background-color"),backgroundImage:t.css("background-image"),backgroundOrigin:t.css("background-origin"),backgroundPosition:t.css("background-position"),backgroundRepeat:t.css("background-repeat"),backgroundSize:t.css("background-size")}}function s(t){var n=t.find(".tt-input");e.each(n.data(o),function(t,i){e.isUndefined(t)?n.removeAttr(i):n.attr(i,t)}),n.detach().removeData(o).removeClass("tt-input").insertAfter(t),t.remove()}var o="ttAttrs";return e.mixin(n.prototype,{_onSuggestionClicked:function(t,e){var n;(n=this.dropdown.getDatumForSuggestion(e))&&this._select(n)},_onCursorMoved:function(){var t=this.dropdown.getDatumForCursor();this.input.setInputValue(t.value,!0),this.eventBus.trigger("cursorchanged",t.raw,t.datasetName)},_onCursorRemoved:function(){this.input.resetInputValue(),this._updateHint()},_onDatasetRendered:function(){this._updateHint()},_onOpened:function(){this._updateHint(),this.eventBus.trigger("opened")},_onClosed:function(){this.input.clearHint(),this.eventBus.trigger("closed")},_onFocused:function(){this.isActivated=!0,this.dropdown.open()},_onBlurred:function(){this.isActivated=!1,this.dropdown.empty(),this.dropdown.close()},_onEnterKeyed:function(t,e){var n,i;n=this.dropdown.getDatumForCursor(),i=this.dropdown.getDatumForTopSuggestion(),n?(this._select(n),e.preventDefault()):this.autoselect&&i&&(this._select(i),e.preventDefault())},_onTabKeyed:function(t,e){var n;(n=this.dropdown.getDatumForCursor())?(this._select(n),e.preventDefault()):this._autocomplete(!0)},_onEscKeyed:function(){this.dropdown.close(),this.input.resetInputValue()},_onUpKeyed:function(){var t=this.input.getQuery();this.dropdown.isEmpty&&t.length>=this.minLength?this.dropdown.update(t):this.dropdown.moveCursorUp(),this.dropdown.open()},_onDownKeyed:function(){var t=this.input.getQuery();this.dropdown.isEmpty&&t.length>=this.minLength?this.dropdown.update(t):this.dropdown.moveCursorDown(),this.dropdown.open()},_onLeftKeyed:function(){"rtl"===this.dir&&this._autocomplete()},_onRightKeyed:function(){"ltr"===this.dir&&this._autocomplete()},_onQueryChanged:function(t,e){this.input.clearHintIfInvalid(),e.length>=this.minLength?this.dropdown.update(e):this.dropdown.empty(),this.dropdown.open(),this._setLanguageDirection()},_onWhitespaceChanged:function(){this._updateHint(),this.dropdown.open()},_setLanguageDirection:function(){var t;this.dir!==(t=this.input.getLanguageDirection())&&(this.dir=t,this.$node.css("direction",t),this.dropdown.setLanguageDirection(t))},_updateHint:function(){var t,n,i,r,s,o;t=this.dropdown.getDatumForTopSuggestion(),t&&this.dropdown.isVisible()&&!this.input.hasOverflow()?(n=this.input.getInputValue(),i=f.normalizeQuery(n),r=e.escapeRegExChars(i),s=new RegExp("^(?:"+r+")(.+$)","i"),o=s.exec(t.value),o?this.input.setHint(n+o[1]):this.input.clearHint()):this.input.clearHint()},_autocomplete:function(t){var e,n,i,r;e=this.input.getHint(),n=this.input.getQuery(),i=t||this.input.isCursorAtEnd(),e&&n!==e&&i&&(r=this.dropdown.getDatumForTopSuggestion(),r&&this.input.setInputValue(r.value),this.eventBus.trigger("autocompleted",r.raw,r.datasetName))},_select:function(t){this.input.setQuery(t.value),this.input.setInputValue(t.value,!0),this._setLanguageDirection(),this.eventBus.trigger("selected",t.raw,t.datasetName),this.dropdown.close(),e.defer(e.bind(this.dropdown.empty,this.dropdown))},open:function(){this.dropdown.open()},close:function(){this.dropdown.close()},setVal:function(t){t=e.toStr(t),this.isActivated?this.input.setInputValue(t):(this.input.setQuery(t),this.input.setInputValue(t,!0)),this._setLanguageDirection()},getVal:function(){return this.input.getQuery()},destroy:function(){this.input.destroy(),this.dropdown.destroy(),s(this.$node),this.$node=null}}),n}();!function(){"use strict";var n,i,r;n=t.fn.typeahead,i="ttTypeahead",r={initialize:function(n,r){function s(){var s,o,u=t(this);e.each(r,function(t){t.highlight=!!n.highlight}),o=new y({input:u,eventBus:s=new l({el:u}),withHint:e.isUndefined(n.hint)?!0:!!n.hint,minLength:n.minLength,autoselect:n.autoselect,datasets:r}),u.data(i,o)}return r=e.isArray(r)?r:[].slice.call(arguments,1),n=n||{},this.each(s)},open:function(){function e(){var e,n=t(this);(e=n.data(i))&&e.open()}return this.each(e)},close:function(){function e(){var e,n=t(this);(e=n.data(i))&&e.close()}return this.each(e)},val:function(e){function n(){var n,r=t(this);(n=r.data(i))&&n.setVal(e)}function r(t){var e,n;return(e=t.data(i))&&(n=e.getVal()),n}return arguments.length?this.each(n):r(this.first())},destroy:function(){function e(){var e,n=t(this);(e=n.data(i))&&(e.destroy(),n.removeData(i))}return this.each(e)}},t.fn.typeahead=function(e){var n;return r[e]&&"initialize"!==e?(n=this.filter(function(){return!!t(this).data(i)}),r[e].apply(n,[].slice.call(arguments,1))):r.initialize.apply(this,arguments)},t.fn.typeahead.noConflict=function(){return t.fn.typeahead=n,this}}()}(window.jQuery);
diff --git a/classes-docs/master/namespaces.html b/classes-docs/master/namespaces.html
new file mode 100644
index 0000000..6df2848
--- /dev/null
+++ b/classes-docs/master/namespaces.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+ Namespaces | Php Toolkit Classes Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes-docs/master/opensearch.xml b/classes-docs/master/opensearch.xml
new file mode 100644
index 0000000..e69de29
diff --git a/classes-docs/master/renderer.index b/classes-docs/master/renderer.index
new file mode 100644
index 0000000..b673252
--- /dev/null
+++ b/classes-docs/master/renderer.index
@@ -0,0 +1 @@
+C:19:"Sami\Renderer\Index":6959:{a:3:{i:0;a:74:{s:19:"Toolkit\ArrUtil\Arr";s:40:"be05472ed0db912ecb0540bd148f4e7e7b11eb3c";s:27:"Toolkit\ArrUtil\ArrayHelper";s:40:"3ac94d1d22ea11658f540835736783e67fe21069";s:25:"Toolkit\ArrUtil\AryBuffer";s:40:"d6a32988542b3cba006fb2d1f957ee0cc18d4262";s:29:"Toolkit\Collection\ActiveData";s:40:"1a661318769bbf1967c9e7522d707484e9a5bef8";s:29:"Toolkit\Collection\Collection";s:40:"5460560ab5b2de719c76911aa83cce9126cd260b";s:38:"Toolkit\Collection\CollectionInterface";s:40:"be214057cc9d3a854f14b30fc0e8f19563cda99d";s:32:"Toolkit\Collection\Configuration";s:40:"af9b3d9f267ba50c84ef55cbbba8ac6938d0ce4f";s:29:"Toolkit\Collection\FixedArray";s:40:"fb2e042346c02ffefa40da43ff2ffbcb785f15a1";s:30:"Toolkit\Collection\JsonMessage";s:40:"326bf3923acc32669e8cad032b9d32d9594a245a";s:27:"Toolkit\Collection\Language";s:40:"c70dd9d8abf2de1c9e05170b40839f6e73bf7d55";s:33:"Toolkit\Collection\LiteCollection";s:40:"d03d65c99be2864547020838d5c39040b4fc17d5";s:35:"Toolkit\Collection\SimpleCollection";s:40:"073364aebaac837cb849f3a1b356c0c3ea74c799";s:27:"Toolkit\DI\CallableResolver";s:40:"1f70011627287b518d717e85559b6f9c68cfd93d";s:37:"Toolkit\DI\CallableResolverAwareTrait";s:40:"d3167f6de472cb87a61c176e82501d8ee25fa7b8";s:20:"Toolkit\DI\Container";s:40:"fdb1369dbf0a2cbfcd5de47634c4986bc67e7e15";s:20:"Toolkit\DI\DIManager";s:40:"2f7efd656780eedc2ee51630c6914207d3651a91";s:50:"Toolkit\DI\Exception\DependencyResolutionException";s:40:"0caaab038df5dadf1d7ce4bd6aca8eae4bd788be";s:38:"Toolkit\DI\Exception\NotFoundException";s:40:"f1ff377b4c33e61d47a112db9c7a3ed72ee0994b";s:25:"Toolkit\DI\NameAliasTrait";s:40:"7d1ec95f1f7fe6d898cfa2ab1d7ffeb99124d998";s:18:"Toolkit\DI\Service";s:40:"b00c494589f44492f1187da0506312f0d63b1931";s:35:"Toolkit\DI\ServiceProviderInterface";s:40:"269e238d340d67c4281a3dc1335f76caf3d041a2";s:39:"Toolkit\DataParser\DataParserAwareTrait";s:40:"d7d414f7788a9a0fc05815f90fc5fcc6b6218580";s:29:"Toolkit\DataParser\JsonParser";s:40:"0ec019e2d9d0a5d3c8017c90a3d3f8ef6cf56068";s:32:"Toolkit\DataParser\MsgPackParser";s:40:"5e0857b7bc2a571e216835814d5b7c80eb458aec";s:34:"Toolkit\DataParser\ParserInterface";s:40:"2d1ceafa89bd52f602c329b1dfb7fc3da8fbf0c6";s:28:"Toolkit\DataParser\PhpParser";s:40:"9211f51906c5a5c1c1a16192dec7b73ee2a78aef";s:31:"Toolkit\DataParser\SwooleParser";s:40:"70d511217d5b5a021fb3b6e9f7d1ad490d69dd20";s:33:"Toolkit\Dev\Console\DevController";s:40:"6fc01cda0edc2b53fe8448616916c741ed8e92b8";s:26:"Toolkit\FileUtil\Directory";s:40:"30891254ecfa2cdd79cb92db4820b9b7eed53039";s:48:"Toolkit\FileUtil\Exception\FileNotFoundException";s:40:"4833071231c2b5f53c2b2731942bb0d313335073";s:44:"Toolkit\FileUtil\Exception\FileReadException";s:40:"1b353281da8dce317f90897f949a76430dcc34ae";s:46:"Toolkit\FileUtil\Exception\FileSystemException";s:40:"00b6c9878951e71dda0005e4731cad8184780c57";s:38:"Toolkit\FileUtil\Exception\IOException";s:40:"39b46c8674f27cc8efbd094d8fb6c85af0a6f766";s:21:"Toolkit\FileUtil\File";s:40:"69c404612dd806b01da79f953011476b19808d42";s:27:"Toolkit\FileUtil\FileFinder";s:40:"3fda65e28de4a39235513894d9725f9a844b9cd9";s:27:"Toolkit\FileUtil\FileSystem";s:40:"1041ac5b71cc86c8866b30b820f657af7685bc09";s:30:"Toolkit\FileUtil\ModifyWatcher";s:40:"d32ff188ffbd354cdc898fd5109e2695b0287155";s:26:"Toolkit\FileUtil\ReadTrait";s:40:"8b299e9cadb23a24c526be83daf25593c5aca5a7";s:46:"Toolkit\ObjUtil\Exception\GetPropertyException";s:40:"15cf1f29018c8db0f209732c50445074d24eb8b5";s:43:"Toolkit\ObjUtil\Exception\PropertyException";s:40:"08d06db543631b171fcfc6e02a307fb450f8deee";s:46:"Toolkit\ObjUtil\Exception\SetPropertyException";s:40:"a28debf05b968ab3fa35a26634ac83ea95ef1d4e";s:19:"Toolkit\ObjUtil\Obj";s:40:"95eb20874c07f2253341d5c6b2f87ca95eda5949";s:28:"Toolkit\ObjUtil\ObjectHelper";s:40:"9bc6ef85a726cc093579aa97373ab0d3c27061fa";s:29:"Toolkit\ObjUtil\ObjectStorage";s:40:"3d8730f6c32feb77c98bc13e0efbd50c70845d13";s:53:"Toolkit\ObjUtil\Traits\ArrayAccessByGetterSetterTrait";s:40:"26c32067c51e7e4f3c4d342ed8a4906ed4f847db";s:49:"Toolkit\ObjUtil\Traits\ArrayAccessByPropertyTrait";s:40:"e3dddbdb120d06b4c4b6dcc60abd1041e8da3374";s:38:"Toolkit\ObjUtil\Traits\ObjectPoolTrait";s:40:"99263f2ba7fae0b110bbdea83d895576a552a2b2";s:56:"Toolkit\ObjUtil\Traits\PropertyAccessByGetterSetterTrait";s:40:"ef62b3ce01b323de233cc356008ccdccdd07c7d6";s:37:"Toolkit\ObjUtil\Traits\SingletonTrait";s:40:"609b8a8c94ef83437775b9b29554d97bd5f63e9c";s:37:"Toolkit\ObjUtil\Traits\StdObjectTrait";s:40:"ba03c85999838f2bb25a9f437785d7d92ca92d94";s:26:"Toolkit\PhpUtil\AutoLoader";s:40:"61f345423a31cb7e6eaa166b6ab1c16e0f89cb2d";s:19:"Toolkit\PhpUtil\Php";s:40:"801656fcf1193a8b6597eac6138734ed6d196788";s:22:"Toolkit\PhpUtil\PhpEnv";s:40:"f82dd14d90dd362ba0ae8c5c316953af9afbb50e";s:24:"Toolkit\PhpUtil\PhpError";s:40:"fa50f691ca74c998e00923ea7efc60b52deae301";s:28:"Toolkit\PhpUtil\PhpException";s:40:"8ee7237404c14a8d0065d00b2f9178edacf11383";s:25:"Toolkit\PhpUtil\PhpHelper";s:40:"f3a47083a1d49a288d7ad1f17f7c8e06a81a2d29";s:26:"Toolkit\StrUtil\HtmlHelper";s:40:"effb87d1107ac34e7acec6c79aa1086a7d5e7790";s:20:"Toolkit\StrUtil\Json";s:40:"bdce73809bfa51070f94744ec0dcdc0fe016a8da";s:26:"Toolkit\StrUtil\JsonHelper";s:40:"2155d93f0b9cf13d5682d0806535b880f7f81870";s:19:"Toolkit\StrUtil\Str";s:40:"335bddca78dc26180460dfdac9147cd42ca8039b";s:25:"Toolkit\StrUtil\StrBuffer";s:40:"59b848e887cfc2441037742036ab1eb6bcbfbf37";s:28:"Toolkit\StrUtil\StringHelper";s:40:"1da16db4d9fdcb87602a83ed5b2459243e60b8dd";s:25:"Toolkit\StrUtil\UrlHelper";s:40:"9ad20a8dfcce75f9d9303072d3c8b140f003f85f";s:19:"Toolkit\SysUtil\Cli";s:40:"78bbb4caffb45282b4b0123f3df242bc3b6b80ce";s:27:"Toolkit\SysUtil\ProcessUtil";s:40:"defd36050b8fc254582d524f221e2458ea3d7388";s:19:"Toolkit\SysUtil\Sys";s:40:"7a5c821f1b51db5195ccb01a2a6700465ea3d703";s:22:"Toolkit\SysUtil\SysEnv";s:40:"b018c0d84601aa3f84266c5e58c305c149a2e784";s:21:"Toolkit\Util\AopProxy";s:40:"907452eb9da3bb35a3113e7ab52547f65d10de2b";s:22:"Toolkit\Util\DataProxy";s:40:"747e754517b36fccf49f7e30b5fd1a148de1adee";s:23:"Toolkit\Util\DataResult";s:40:"48345549b2671145e123e7a4fe9df885ea418ea8";s:29:"Toolkit\Util\DeferredCallable";s:40:"e319943606e3bd5e3a3fafe68a9eb041ff5de72e";s:22:"Toolkit\Util\PhpDotEnv";s:40:"69f594b723490cd134a7304922f6441c2e12501a";s:21:"Toolkit\Util\Pipeline";s:40:"40b32126c91cbbe7101493045c9070f493c18966";s:38:"Toolkit\Util\Traits\AopProxyAwareTrait";s:40:"b9a9798b97258580442e3e18eba56569b2787c38";}i:1;a:1:{i:0;s:6:"master";}i:2;a:18:{i:0;s:7:"Toolkit";i:1;s:15:"Toolkit\ArrUtil";i:2;s:18:"Toolkit\Collection";i:3;s:10:"Toolkit\DI";i:4;s:20:"Toolkit\DI\Exception";i:5;s:18:"Toolkit\DataParser";i:6;s:11:"Toolkit\Dev";i:7;s:19:"Toolkit\Dev\Console";i:8;s:16:"Toolkit\FileUtil";i:9;s:26:"Toolkit\FileUtil\Exception";i:10;s:15:"Toolkit\ObjUtil";i:11;s:25:"Toolkit\ObjUtil\Exception";i:12;s:22:"Toolkit\ObjUtil\Traits";i:13;s:15:"Toolkit\PhpUtil";i:14;s:15:"Toolkit\StrUtil";i:15;s:15:"Toolkit\SysUtil";i:16;s:12:"Toolkit\Util";i:17;s:19:"Toolkit\Util\Traits";}}}
\ No newline at end of file
diff --git a/classes-docs/master/sami.js b/classes-docs/master/sami.js
new file mode 100644
index 0000000..30630b1
--- /dev/null
+++ b/classes-docs/master/sami.js
@@ -0,0 +1,1030 @@
+
+window.projectVersion = 'master';
+
+(function(root) {
+
+ var bhIndex = null;
+ var rootPath = '';
+ var treeHtml = ' ';
+
+ var searchTypeClasses = {
+ 'Namespace': 'label-default',
+ 'Class': 'label-info',
+ 'Interface': 'label-primary',
+ 'Trait': 'label-success',
+ 'Method': 'label-danger',
+ '_': 'label-warning'
+ };
+
+ var searchIndex = [
+
+ {"type": "Namespace", "link": "Toolkit.html", "name": "Toolkit", "doc": "Namespace Toolkit"},{"type": "Namespace", "link": "Toolkit/ArrUtil.html", "name": "Toolkit\\ArrUtil", "doc": "Namespace Toolkit\\ArrUtil"},{"type": "Namespace", "link": "Toolkit/Collection.html", "name": "Toolkit\\Collection", "doc": "Namespace Toolkit\\Collection"},{"type": "Namespace", "link": "Toolkit/DI.html", "name": "Toolkit\\DI", "doc": "Namespace Toolkit\\DI"},{"type": "Namespace", "link": "Toolkit/DI/Exception.html", "name": "Toolkit\\DI\\Exception", "doc": "Namespace Toolkit\\DI\\Exception"},{"type": "Namespace", "link": "Toolkit/DataParser.html", "name": "Toolkit\\DataParser", "doc": "Namespace Toolkit\\DataParser"},{"type": "Namespace", "link": "Toolkit/Dev.html", "name": "Toolkit\\Dev", "doc": "Namespace Toolkit\\Dev"},{"type": "Namespace", "link": "Toolkit/Dev/Console.html", "name": "Toolkit\\Dev\\Console", "doc": "Namespace Toolkit\\Dev\\Console"},{"type": "Namespace", "link": "Toolkit/FileUtil.html", "name": "Toolkit\\FileUtil", "doc": "Namespace Toolkit\\FileUtil"},{"type": "Namespace", "link": "Toolkit/FileUtil/Exception.html", "name": "Toolkit\\FileUtil\\Exception", "doc": "Namespace Toolkit\\FileUtil\\Exception"},{"type": "Namespace", "link": "Toolkit/ObjUtil.html", "name": "Toolkit\\ObjUtil", "doc": "Namespace Toolkit\\ObjUtil"},{"type": "Namespace", "link": "Toolkit/ObjUtil/Exception.html", "name": "Toolkit\\ObjUtil\\Exception", "doc": "Namespace Toolkit\\ObjUtil\\Exception"},{"type": "Namespace", "link": "Toolkit/ObjUtil/Traits.html", "name": "Toolkit\\ObjUtil\\Traits", "doc": "Namespace Toolkit\\ObjUtil\\Traits"},{"type": "Namespace", "link": "Toolkit/PhpUtil.html", "name": "Toolkit\\PhpUtil", "doc": "Namespace Toolkit\\PhpUtil"},{"type": "Namespace", "link": "Toolkit/StrUtil.html", "name": "Toolkit\\StrUtil", "doc": "Namespace Toolkit\\StrUtil"},{"type": "Namespace", "link": "Toolkit/SysUtil.html", "name": "Toolkit\\SysUtil", "doc": "Namespace Toolkit\\SysUtil"},{"type": "Namespace", "link": "Toolkit/Util.html", "name": "Toolkit\\Util", "doc": "Namespace Toolkit\\Util"},{"type": "Namespace", "link": "Toolkit/Util/Traits.html", "name": "Toolkit\\Util\\Traits", "doc": "Namespace Toolkit\\Util\\Traits"},
+ {"type": "Interface", "fromName": "Toolkit\\Collection", "fromLink": "Toolkit/Collection.html", "link": "Toolkit/Collection/CollectionInterface.html", "name": "Toolkit\\Collection\\CollectionInterface", "doc": ""Collection Interface""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\CollectionInterface", "fromLink": "Toolkit/Collection/CollectionInterface.html", "link": "Toolkit/Collection/CollectionInterface.html#method_set", "name": "Toolkit\\Collection\\CollectionInterface::set", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\CollectionInterface", "fromLink": "Toolkit/Collection/CollectionInterface.html", "link": "Toolkit/Collection/CollectionInterface.html#method_get", "name": "Toolkit\\Collection\\CollectionInterface::get", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\CollectionInterface", "fromLink": "Toolkit/Collection/CollectionInterface.html", "link": "Toolkit/Collection/CollectionInterface.html#method_replace", "name": "Toolkit\\Collection\\CollectionInterface::replace", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\CollectionInterface", "fromLink": "Toolkit/Collection/CollectionInterface.html", "link": "Toolkit/Collection/CollectionInterface.html#method_all", "name": "Toolkit\\Collection\\CollectionInterface::all", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\CollectionInterface", "fromLink": "Toolkit/Collection/CollectionInterface.html", "link": "Toolkit/Collection/CollectionInterface.html#method_has", "name": "Toolkit\\Collection\\CollectionInterface::has", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\CollectionInterface", "fromLink": "Toolkit/Collection/CollectionInterface.html", "link": "Toolkit/Collection/CollectionInterface.html#method_remove", "name": "Toolkit\\Collection\\CollectionInterface::remove", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\CollectionInterface", "fromLink": "Toolkit/Collection/CollectionInterface.html", "link": "Toolkit/Collection/CollectionInterface.html#method_clear", "name": "Toolkit\\Collection\\CollectionInterface::clear", "doc": ""clear all data""},
+
+ {"type": "Interface", "fromName": "Toolkit\\DI", "fromLink": "Toolkit/DI.html", "link": "Toolkit/DI/ServiceProviderInterface.html", "name": "Toolkit\\DI\\ServiceProviderInterface", "doc": ""Interface InterfaceServiceProvider""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\ServiceProviderInterface", "fromLink": "Toolkit/DI/ServiceProviderInterface.html", "link": "Toolkit/DI/ServiceProviderInterface.html#method_register", "name": "Toolkit\\DI\\ServiceProviderInterface::register", "doc": ""\u6ce8\u518c\u4e00\u9879\u670d\u52a1(\u53ef\u80fd\u542b\u6709\u591a\u4e2a\u670d\u52a1)\u63d0\u4f9b\u8005\u5230\u5bb9\u5668\u4e2d""},
+
+ {"type": "Interface", "fromName": "Toolkit\\DataParser", "fromLink": "Toolkit/DataParser.html", "link": "Toolkit/DataParser/ParserInterface.html", "name": "Toolkit\\DataParser\\ParserInterface", "doc": ""Interface ParserInterface""},
+ {"type": "Method", "fromName": "Toolkit\\DataParser\\ParserInterface", "fromLink": "Toolkit/DataParser/ParserInterface.html", "link": "Toolkit/DataParser/ParserInterface.html#method_encode", "name": "Toolkit\\DataParser\\ParserInterface::encode", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DataParser\\ParserInterface", "fromLink": "Toolkit/DataParser/ParserInterface.html", "link": "Toolkit/DataParser/ParserInterface.html#method_decode", "name": "Toolkit\\DataParser\\ParserInterface::decode", "doc": """"},
+
+
+ {"type": "Class", "fromName": "Toolkit\\ArrUtil", "fromLink": "Toolkit/ArrUtil.html", "link": "Toolkit/ArrUtil/Arr.html", "name": "Toolkit\\ArrUtil\\Arr", "doc": ""Class Arr\n alias of the StringHelper""},
+
+ {"type": "Class", "fromName": "Toolkit\\ArrUtil", "fromLink": "Toolkit/ArrUtil.html", "link": "Toolkit/ArrUtil/ArrayHelper.html", "name": "Toolkit\\ArrUtil\\ArrayHelper", "doc": ""Class ArrayHelper""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_accessible", "name": "Toolkit\\ArrUtil\\ArrayHelper::accessible", "doc": ""Determine whether the given value is array accessible.""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_isAssoc", "name": "Toolkit\\ArrUtil\\ArrayHelper::isAssoc", "doc": ""Determines if an array is associative.""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_toIterator", "name": "Toolkit\\ArrUtil\\ArrayHelper::toIterator", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_toObject", "name": "Toolkit\\ArrUtil\\ArrayHelper::toObject", "doc": ""array data to object""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_gets", "name": "Toolkit\\ArrUtil\\ArrayHelper::gets", "doc": ""Get Multi - \u83b7\u53d6\u591a\u4e2a, \u53ef\u4ee5\u8bbe\u7f6e\u9ed8\u8ba4\u503c""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_merge", "name": "Toolkit\\ArrUtil\\ArrayHelper::merge", "doc": ""\u9012\u5f52\u5408\u5e76\u4e24\u4e2a\u591a\u7ef4\u6570\u7ec4,\u540e\u9762\u7684\u503c\u5c06\u4f1a\u9012\u5f52\u8986\u76d6\u539f\u6765\u7684\u503c""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_merge2", "name": "Toolkit\\ArrUtil\\ArrayHelper::merge2", "doc": ""\u9012\u5f52\u5408\u5e76\u591a\u4e2a\u591a\u7ef4\u6570\u7ec4,""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_valueTrim", "name": "Toolkit\\ArrUtil\\ArrayHelper::valueTrim", "doc": ""\u6e05\u7406\u6570\u7ec4\u503c\u7684\u7a7a\u767d""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_keyExists", "name": "Toolkit\\ArrUtil\\ArrayHelper::keyExists", "doc": ""\u4e0d\u533a\u5206\u5927\u5c0f\u5199\u68c0\u6d4b\u6570\u636e\u952e\u540d\u662f\u5426\u5b58\u5728""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_valueToLower", "name": "Toolkit\\ArrUtil\\ArrayHelper::valueToLower", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_valueToUpper", "name": "Toolkit\\ArrUtil\\ArrayHelper::valueToUpper", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_changeValueCase", "name": "Toolkit\\ArrUtil\\ArrayHelper::changeValueCase", "doc": ""\u5c06\u6570\u7ec4\u4e2d\u7684\u503c\u5168\u90e8\u8f6c\u4e3a\u5927\u5199\u6216\u5c0f\u5199""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_valueExistsAll", "name": "Toolkit\\ArrUtil\\ArrayHelper::valueExistsAll", "doc": ""******* \u68c0\u67e5 \u4e00\u4e2a\u6216\u591a\u4e2a\u503c\u662f\u5426\u5168\u90e8\u5b58\u5728\u6570\u7ec4\u4e2d *******\n\u6709\u4e00\u4e2a\u4e0d\u5b58\u5728\u5373\u8fd4\u56de false""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_valueExistsOne", "name": "Toolkit\\ArrUtil\\ArrayHelper::valueExistsOne", "doc": ""******* \u68c0\u67e5 \u4e00\u4e2a\u6216\u591a\u4e2a\u503c\u662f\u5426\u5b58\u5728\u6570\u7ec4\u4e2d *******\n\u6709\u4e00\u4e2a\u5b58\u5728\u5c31\u8fd4\u56de true \u90fd\u4e0d\u5b58\u5728 return false""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_existsAll", "name": "Toolkit\\ArrUtil\\ArrayHelper::existsAll", "doc": ""******* \u4e0d\u533a\u5206\u5927\u5c0f\u5199\uff0c\u68c0\u67e5 \u4e00\u4e2a\u6216\u591a\u4e2a\u503c\u662f\u5426 \u5168\u5b58\u5728\u6570\u7ec4\u4e2d *******\n\u6709\u4e00\u4e2a\u4e0d\u5b58\u5728\u5373\u8fd4\u56de false""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_existsOne", "name": "Toolkit\\ArrUtil\\ArrayHelper::existsOne", "doc": ""******* \u4e0d\u533a\u5206\u5927\u5c0f\u5199\uff0c\u68c0\u67e5 \u4e00\u4e2a\u6216\u591a\u4e2a\u503c\u662f\u5426\u5b58\u5728\u6570\u7ec4\u4e2d *******\n\u6709\u4e00\u4e2a\u5b58\u5728\u5c31\u8fd4\u56de true \u90fd\u4e0d\u5b58\u5728 return false""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_getKeyMaxWidth", "name": "Toolkit\\ArrUtil\\ArrayHelper::getKeyMaxWidth", "doc": ""get key Max Width""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_getByPath", "name": "Toolkit\\ArrUtil\\ArrayHelper::getByPath", "doc": ""Get data from array or object by path.""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_setByPath", "name": "Toolkit\\ArrUtil\\ArrayHelper::setByPath", "doc": ""setByPath""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_collapse", "name": "Toolkit\\ArrUtil\\ArrayHelper::collapse", "doc": ""Collapse an array of arrays into a single array.""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_crossJoin", "name": "Toolkit\\ArrUtil\\ArrayHelper::crossJoin", "doc": ""Cross join the given arrays, returning all possible permutations.""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_divide", "name": "Toolkit\\ArrUtil\\ArrayHelper::divide", "doc": ""Divide an array into two arrays. One with keys and the other with values.""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_dot", "name": "Toolkit\\ArrUtil\\ArrayHelper::dot", "doc": ""Flatten a multi-dimensional associative array with dots.""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_except", "name": "Toolkit\\ArrUtil\\ArrayHelper::except", "doc": ""Get all of the given array except for a specified array of items.""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_exists", "name": "Toolkit\\ArrUtil\\ArrayHelper::exists", "doc": ""Determine if the given key exists in the provided array.""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_add", "name": "Toolkit\\ArrUtil\\ArrayHelper::add", "doc": ""Add an element to an array using \"dot\" notation if it doesn't exist.""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_get", "name": "Toolkit\\ArrUtil\\ArrayHelper::get", "doc": ""Get an item from an array using \"dot\" notation.""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_set", "name": "Toolkit\\ArrUtil\\ArrayHelper::set", "doc": ""Set an array item to a given value using \"dot\" notation.""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_flatten", "name": "Toolkit\\ArrUtil\\ArrayHelper::flatten", "doc": ""Flatten a multi-dimensional array into a single level.""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_forget", "name": "Toolkit\\ArrUtil\\ArrayHelper::forget", "doc": ""Remove one or many array items from a given array using \"dot\" notation.""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_has", "name": "Toolkit\\ArrUtil\\ArrayHelper::has", "doc": ""Check if an item or items exist in an array using \"dot\" notation.""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_prepend", "name": "Toolkit\\ArrUtil\\ArrayHelper::prepend", "doc": ""Push an item onto the beginning of an array.""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_remove", "name": "Toolkit\\ArrUtil\\ArrayHelper::remove", "doc": ""remove the $key of the $arr, and return value.""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_pull", "name": "Toolkit\\ArrUtil\\ArrayHelper::pull", "doc": ""Get a value from the array, and remove it.""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_only", "name": "Toolkit\\ArrUtil\\ArrayHelper::only", "doc": ""Get a subset of the items from the given array.""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_shuffle", "name": "Toolkit\\ArrUtil\\ArrayHelper::shuffle", "doc": ""Shuffle the given array and return the result.""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_where", "name": "Toolkit\\ArrUtil\\ArrayHelper::where", "doc": ""Filter the array using the given callback.""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_wrap", "name": "Toolkit\\ArrUtil\\ArrayHelper::wrap", "doc": ""If the given value is not an array, wrap it in one.""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_toString", "name": "Toolkit\\ArrUtil\\ArrayHelper::toString", "doc": ""array \u9012\u5f52 \u8f6c\u6362\u6210 \u5b57\u7b26\u4e32""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_toStringNoKey", "name": "Toolkit\\ArrUtil\\ArrayHelper::toStringNoKey", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_toFormatString", "name": "Toolkit\\ArrUtil\\ArrayHelper::toFormatString", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\ArrayHelper", "fromLink": "Toolkit/ArrUtil/ArrayHelper.html", "link": "Toolkit/ArrUtil/ArrayHelper.html#method_toLimitOut", "name": "Toolkit\\ArrUtil\\ArrayHelper::toLimitOut", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\ArrUtil", "fromLink": "Toolkit/ArrUtil.html", "link": "Toolkit/ArrUtil/AryBuffer.html", "name": "Toolkit\\ArrUtil\\AryBuffer", "doc": ""Class ArrBuffer""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\AryBuffer", "fromLink": "Toolkit/ArrUtil/AryBuffer.html", "link": "Toolkit/ArrUtil/AryBuffer.html#method___construct", "name": "Toolkit\\ArrUtil\\AryBuffer::__construct", "doc": ""constructor.""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\AryBuffer", "fromLink": "Toolkit/ArrUtil/AryBuffer.html", "link": "Toolkit/ArrUtil/AryBuffer.html#method_write", "name": "Toolkit\\ArrUtil\\AryBuffer::write", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\AryBuffer", "fromLink": "Toolkit/ArrUtil/AryBuffer.html", "link": "Toolkit/ArrUtil/AryBuffer.html#method_append", "name": "Toolkit\\ArrUtil\\AryBuffer::append", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\AryBuffer", "fromLink": "Toolkit/ArrUtil/AryBuffer.html", "link": "Toolkit/ArrUtil/AryBuffer.html#method_prepend", "name": "Toolkit\\ArrUtil\\AryBuffer::prepend", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\AryBuffer", "fromLink": "Toolkit/ArrUtil/AryBuffer.html", "link": "Toolkit/ArrUtil/AryBuffer.html#method_clear", "name": "Toolkit\\ArrUtil\\AryBuffer::clear", "doc": ""clear""},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\AryBuffer", "fromLink": "Toolkit/ArrUtil/AryBuffer.html", "link": "Toolkit/ArrUtil/AryBuffer.html#method_getBody", "name": "Toolkit\\ArrUtil\\AryBuffer::getBody", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\AryBuffer", "fromLink": "Toolkit/ArrUtil/AryBuffer.html", "link": "Toolkit/ArrUtil/AryBuffer.html#method_setBody", "name": "Toolkit\\ArrUtil\\AryBuffer::setBody", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\AryBuffer", "fromLink": "Toolkit/ArrUtil/AryBuffer.html", "link": "Toolkit/ArrUtil/AryBuffer.html#method_toString", "name": "Toolkit\\ArrUtil\\AryBuffer::toString", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\AryBuffer", "fromLink": "Toolkit/ArrUtil/AryBuffer.html", "link": "Toolkit/ArrUtil/AryBuffer.html#method___toString", "name": "Toolkit\\ArrUtil\\AryBuffer::__toString", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\AryBuffer", "fromLink": "Toolkit/ArrUtil/AryBuffer.html", "link": "Toolkit/ArrUtil/AryBuffer.html#method_getDelimiter", "name": "Toolkit\\ArrUtil\\AryBuffer::getDelimiter", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ArrUtil\\AryBuffer", "fromLink": "Toolkit/ArrUtil/AryBuffer.html", "link": "Toolkit/ArrUtil/AryBuffer.html#method_setDelimiter", "name": "Toolkit\\ArrUtil\\AryBuffer::setDelimiter", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\Collection", "fromLink": "Toolkit/Collection.html", "link": "Toolkit/Collection/ActiveData.html", "name": "Toolkit\\Collection\\ActiveData", "doc": ""Class ActiveData""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\ActiveData", "fromLink": "Toolkit/Collection/ActiveData.html", "link": "Toolkit/Collection/ActiveData.html#method_create", "name": "Toolkit\\Collection\\ActiveData::create", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\ActiveData", "fromLink": "Toolkit/Collection/ActiveData.html", "link": "Toolkit/Collection/ActiveData.html#method___construct", "name": "Toolkit\\Collection\\ActiveData::__construct", "doc": ""ActiveData constructor.""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\ActiveData", "fromLink": "Toolkit/Collection/ActiveData.html", "link": "Toolkit/Collection/ActiveData.html#method_load", "name": "Toolkit\\Collection\\ActiveData::load", "doc": ""\u521d\u59cb\u5316\uff0c\u8f7d\u5165\u6570\u636e""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\ActiveData", "fromLink": "Toolkit/Collection/ActiveData.html", "link": "Toolkit/Collection/ActiveData.html#method_isStrict", "name": "Toolkit\\Collection\\ActiveData::isStrict", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\ActiveData", "fromLink": "Toolkit/Collection/ActiveData.html", "link": "Toolkit/Collection/ActiveData.html#method_all", "name": "Toolkit\\Collection\\ActiveData::all", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\ActiveData", "fromLink": "Toolkit/Collection/ActiveData.html", "link": "Toolkit/Collection/ActiveData.html#method_get", "name": "Toolkit\\Collection\\ActiveData::get", "doc": ""\u4ee5\u70b9\u8fde\u63a5 \u5feb\u901f\u83b7\u53d6\u5b50\u7ea7\u8282\u70b9\u7684\u503c""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\ActiveData", "fromLink": "Toolkit/Collection/ActiveData.html", "link": "Toolkit/Collection/ActiveData.html#method_getIterator", "name": "Toolkit\\Collection\\ActiveData::getIterator", "doc": ""Defined by IteratorAggregate interface\nReturns an iterator for this object, for use with foreach""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\ActiveData", "fromLink": "Toolkit/Collection/ActiveData.html", "link": "Toolkit/Collection/ActiveData.html#method_offsetExists", "name": "Toolkit\\Collection\\ActiveData::offsetExists", "doc": ""Checks whether an offset exists in the iterator.""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\ActiveData", "fromLink": "Toolkit/Collection/ActiveData.html", "link": "Toolkit/Collection/ActiveData.html#method_offsetGet", "name": "Toolkit\\Collection\\ActiveData::offsetGet", "doc": ""Gets an offset in the iterator.""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\ActiveData", "fromLink": "Toolkit/Collection/ActiveData.html", "link": "Toolkit/Collection/ActiveData.html#method_offsetSet", "name": "Toolkit\\Collection\\ActiveData::offsetSet", "doc": ""Sets an offset in the iterator.""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\ActiveData", "fromLink": "Toolkit/Collection/ActiveData.html", "link": "Toolkit/Collection/ActiveData.html#method_offsetUnset", "name": "Toolkit\\Collection\\ActiveData::offsetUnset", "doc": ""Unset an offset in the iterator.""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\ActiveData", "fromLink": "Toolkit/Collection/ActiveData.html", "link": "Toolkit/Collection/ActiveData.html#method___isset", "name": "Toolkit\\Collection\\ActiveData::__isset", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\ActiveData", "fromLink": "Toolkit/Collection/ActiveData.html", "link": "Toolkit/Collection/ActiveData.html#method___set", "name": "Toolkit\\Collection\\ActiveData::__set", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\ActiveData", "fromLink": "Toolkit/Collection/ActiveData.html", "link": "Toolkit/Collection/ActiveData.html#method___get", "name": "Toolkit\\Collection\\ActiveData::__get", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\Collection", "fromLink": "Toolkit/Collection.html", "link": "Toolkit/Collection/Collection.html", "name": "Toolkit\\Collection\\Collection", "doc": ""Class DataCollector - \u6570\u636e\u6536\u96c6\u5668 (\u6570\u636e\u5b58\u50a8\u5668 - DataStorage) complex deep""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method___construct", "name": "Toolkit\\Collection\\Collection::__construct", "doc": ""__construct""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method_make", "name": "Toolkit\\Collection\\Collection::make", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method_set", "name": "Toolkit\\Collection\\Collection::set", "doc": ""set config value by path""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method_get", "name": "Toolkit\\Collection\\Collection::get", "doc": ""get value by path""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method_exists", "name": "Toolkit\\Collection\\Collection::exists", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method_has", "name": "Toolkit\\Collection\\Collection::has", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method_reset", "name": "Toolkit\\Collection\\Collection::reset", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method_clear", "name": "Toolkit\\Collection\\Collection::clear", "doc": ""Clear all data.""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method_toObject", "name": "Toolkit\\Collection\\Collection::toObject", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method_getSeparator", "name": "Toolkit\\Collection\\Collection::getSeparator", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method_setSeparator", "name": "Toolkit\\Collection\\Collection::setSeparator", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method_getFormats", "name": "Toolkit\\Collection\\Collection::getFormats", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method_setName", "name": "Toolkit\\Collection\\Collection::setName", "doc": ""setName""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method_getName", "name": "Toolkit\\Collection\\Collection::getName", "doc": ""getName""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method_load", "name": "Toolkit\\Collection\\Collection::load", "doc": ""load""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method_read", "name": "Toolkit\\Collection\\Collection::read", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method_loadYaml", "name": "Toolkit\\Collection\\Collection::loadYaml", "doc": ""load data form yml file""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method_loadArray", "name": "Toolkit\\Collection\\Collection::loadArray", "doc": ""load data form php file or array""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method_loadObject", "name": "Toolkit\\Collection\\Collection::loadObject", "doc": ""load data form php file or array""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method_loadIni", "name": "Toolkit\\Collection\\Collection::loadIni", "doc": ""load data form ini file""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method_loadJson", "name": "Toolkit\\Collection\\Collection::loadJson", "doc": ""load data form json file""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method_bindData", "name": "Toolkit\\Collection\\Collection::bindData", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method_getKeys", "name": "Toolkit\\Collection\\Collection::getKeys", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method_getIterator", "name": "Toolkit\\Collection\\Collection::getIterator", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method_offsetUnset", "name": "Toolkit\\Collection\\Collection::offsetUnset", "doc": ""Unset an offset in the iterator.""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method___clone", "name": "Toolkit\\Collection\\Collection::__clone", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method_parseIni", "name": "Toolkit\\Collection\\Collection::parseIni", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method_parseJson", "name": "Toolkit\\Collection\\Collection::parseJson", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Collection", "fromLink": "Toolkit/Collection/Collection.html", "link": "Toolkit/Collection/Collection.html#method_parseYaml", "name": "Toolkit\\Collection\\Collection::parseYaml", "doc": ""parse YAML""},
+
+ {"type": "Class", "fromName": "Toolkit\\Collection", "fromLink": "Toolkit/Collection.html", "link": "Toolkit/Collection/CollectionInterface.html", "name": "Toolkit\\Collection\\CollectionInterface", "doc": ""Collection Interface""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\CollectionInterface", "fromLink": "Toolkit/Collection/CollectionInterface.html", "link": "Toolkit/Collection/CollectionInterface.html#method_set", "name": "Toolkit\\Collection\\CollectionInterface::set", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\CollectionInterface", "fromLink": "Toolkit/Collection/CollectionInterface.html", "link": "Toolkit/Collection/CollectionInterface.html#method_get", "name": "Toolkit\\Collection\\CollectionInterface::get", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\CollectionInterface", "fromLink": "Toolkit/Collection/CollectionInterface.html", "link": "Toolkit/Collection/CollectionInterface.html#method_replace", "name": "Toolkit\\Collection\\CollectionInterface::replace", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\CollectionInterface", "fromLink": "Toolkit/Collection/CollectionInterface.html", "link": "Toolkit/Collection/CollectionInterface.html#method_all", "name": "Toolkit\\Collection\\CollectionInterface::all", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\CollectionInterface", "fromLink": "Toolkit/Collection/CollectionInterface.html", "link": "Toolkit/Collection/CollectionInterface.html#method_has", "name": "Toolkit\\Collection\\CollectionInterface::has", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\CollectionInterface", "fromLink": "Toolkit/Collection/CollectionInterface.html", "link": "Toolkit/Collection/CollectionInterface.html#method_remove", "name": "Toolkit\\Collection\\CollectionInterface::remove", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\CollectionInterface", "fromLink": "Toolkit/Collection/CollectionInterface.html", "link": "Toolkit/Collection/CollectionInterface.html#method_clear", "name": "Toolkit\\Collection\\CollectionInterface::clear", "doc": ""clear all data""},
+
+ {"type": "Class", "fromName": "Toolkit\\Collection", "fromLink": "Toolkit/Collection.html", "link": "Toolkit/Collection/Configuration.html", "name": "Toolkit\\Collection\\Configuration", "doc": ""Class Configuration - \u914d\u7f6e\u6570\u636e\u7ba1\u7406""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Configuration", "fromLink": "Toolkit/Collection/Configuration.html", "link": "Toolkit/Collection/Configuration.html#method___construct", "name": "Toolkit\\Collection\\Configuration::__construct", "doc": ""__construct""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Configuration", "fromLink": "Toolkit/Collection/Configuration.html", "link": "Toolkit/Collection/Configuration.html#method_set", "name": "Toolkit\\Collection\\Configuration::set", "doc": ""set config value by path""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Configuration", "fromLink": "Toolkit/Collection/Configuration.html", "link": "Toolkit/Collection/Configuration.html#method_get", "name": "Toolkit\\Collection\\Configuration::get", "doc": ""get value by path""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Configuration", "fromLink": "Toolkit/Collection/Configuration.html", "link": "Toolkit/Collection/Configuration.html#method_getMode", "name": "Toolkit\\Collection\\Configuration::getMode", "doc": ""get Mode""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Configuration", "fromLink": "Toolkit/Collection/Configuration.html", "link": "Toolkit/Collection/Configuration.html#method_setMode", "name": "Toolkit\\Collection\\Configuration::setMode", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Configuration", "fromLink": "Toolkit/Collection/Configuration.html", "link": "Toolkit/Collection/Configuration.html#method_setReadonly", "name": "Toolkit\\Collection\\Configuration::setReadonly", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Configuration", "fromLink": "Toolkit/Collection/Configuration.html", "link": "Toolkit/Collection/Configuration.html#method_isReadonly", "name": "Toolkit\\Collection\\Configuration::isReadonly", "doc": ""data is Readonly""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Configuration", "fromLink": "Toolkit/Collection/Configuration.html", "link": "Toolkit/Collection/Configuration.html#method_getFormat", "name": "Toolkit\\Collection\\Configuration::getFormat", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Configuration", "fromLink": "Toolkit/Collection/Configuration.html", "link": "Toolkit/Collection/Configuration.html#method_setFormat", "name": "Toolkit\\Collection\\Configuration::setFormat", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Configuration", "fromLink": "Toolkit/Collection/Configuration.html", "link": "Toolkit/Collection/Configuration.html#method_getFolderPath", "name": "Toolkit\\Collection\\Configuration::getFolderPath", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Configuration", "fromLink": "Toolkit/Collection/Configuration.html", "link": "Toolkit/Collection/Configuration.html#method_setFolderPath", "name": "Toolkit\\Collection\\Configuration::setFolderPath", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\Collection", "fromLink": "Toolkit/Collection.html", "link": "Toolkit/Collection/FixedArray.html", "name": "Toolkit\\Collection\\FixedArray", "doc": ""Class FixedArray\n fixed size array implements, and support string key.""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\FixedArray", "fromLink": "Toolkit/Collection/FixedArray.html", "link": "Toolkit/Collection/FixedArray.html#method___construct", "name": "Toolkit\\Collection\\FixedArray::__construct", "doc": ""FixedArray constructor.""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\FixedArray", "fromLink": "Toolkit/Collection/FixedArray.html", "link": "Toolkit/Collection/FixedArray.html#method_reset", "name": "Toolkit\\Collection\\FixedArray::reset", "doc": ""reset""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\FixedArray", "fromLink": "Toolkit/Collection/FixedArray.html", "link": "Toolkit/Collection/FixedArray.html#method___isset", "name": "Toolkit\\Collection\\FixedArray::__isset", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\FixedArray", "fromLink": "Toolkit/Collection/FixedArray.html", "link": "Toolkit/Collection/FixedArray.html#method___set", "name": "Toolkit\\Collection\\FixedArray::__set", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\FixedArray", "fromLink": "Toolkit/Collection/FixedArray.html", "link": "Toolkit/Collection/FixedArray.html#method___get", "name": "Toolkit\\Collection\\FixedArray::__get", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\FixedArray", "fromLink": "Toolkit/Collection/FixedArray.html", "link": "Toolkit/Collection/FixedArray.html#method_getSize", "name": "Toolkit\\Collection\\FixedArray::getSize", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\FixedArray", "fromLink": "Toolkit/Collection/FixedArray.html", "link": "Toolkit/Collection/FixedArray.html#method_getKeyIndex", "name": "Toolkit\\Collection\\FixedArray::getKeyIndex", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\FixedArray", "fromLink": "Toolkit/Collection/FixedArray.html", "link": "Toolkit/Collection/FixedArray.html#method_getKeys", "name": "Toolkit\\Collection\\FixedArray::getKeys", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\FixedArray", "fromLink": "Toolkit/Collection/FixedArray.html", "link": "Toolkit/Collection/FixedArray.html#method_setKeys", "name": "Toolkit\\Collection\\FixedArray::setKeys", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\FixedArray", "fromLink": "Toolkit/Collection/FixedArray.html", "link": "Toolkit/Collection/FixedArray.html#method_getValues", "name": "Toolkit\\Collection\\FixedArray::getValues", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\FixedArray", "fromLink": "Toolkit/Collection/FixedArray.html", "link": "Toolkit/Collection/FixedArray.html#method_setValues", "name": "Toolkit\\Collection\\FixedArray::setValues", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\FixedArray", "fromLink": "Toolkit/Collection/FixedArray.html", "link": "Toolkit/Collection/FixedArray.html#method_getIterator", "name": "Toolkit\\Collection\\FixedArray::getIterator", "doc": ""Defined by IteratorAggregate interface\nReturns an iterator for this object, for use with foreach""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\FixedArray", "fromLink": "Toolkit/Collection/FixedArray.html", "link": "Toolkit/Collection/FixedArray.html#method_offsetExists", "name": "Toolkit\\Collection\\FixedArray::offsetExists", "doc": ""Checks whether an offset exists in the iterator.""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\FixedArray", "fromLink": "Toolkit/Collection/FixedArray.html", "link": "Toolkit/Collection/FixedArray.html#method_offsetGet", "name": "Toolkit\\Collection\\FixedArray::offsetGet", "doc": ""Gets an offset in the iterator.""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\FixedArray", "fromLink": "Toolkit/Collection/FixedArray.html", "link": "Toolkit/Collection/FixedArray.html#method_offsetSet", "name": "Toolkit\\Collection\\FixedArray::offsetSet", "doc": ""Sets an offset in the iterator.""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\FixedArray", "fromLink": "Toolkit/Collection/FixedArray.html", "link": "Toolkit/Collection/FixedArray.html#method_offsetUnset", "name": "Toolkit\\Collection\\FixedArray::offsetUnset", "doc": ""Unset an offset in the iterator.""},
+
+ {"type": "Class", "fromName": "Toolkit\\Collection", "fromLink": "Toolkit/Collection.html", "link": "Toolkit/Collection/JsonMessage.html", "name": "Toolkit\\Collection\\JsonMessage", "doc": ""Class JsonMessage""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\JsonMessage", "fromLink": "Toolkit/Collection/JsonMessage.html", "link": "Toolkit/Collection/JsonMessage.html#method_make", "name": "Toolkit\\Collection\\JsonMessage::make", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\JsonMessage", "fromLink": "Toolkit/Collection/JsonMessage.html", "link": "Toolkit/Collection/JsonMessage.html#method___construct", "name": "Toolkit\\Collection\\JsonMessage::__construct", "doc": ""JsonMessage constructor.""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\JsonMessage", "fromLink": "Toolkit/Collection/JsonMessage.html", "link": "Toolkit/Collection/JsonMessage.html#method_isSuccess", "name": "Toolkit\\Collection\\JsonMessage::isSuccess", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\JsonMessage", "fromLink": "Toolkit/Collection/JsonMessage.html", "link": "Toolkit/Collection/JsonMessage.html#method_isFailure", "name": "Toolkit\\Collection\\JsonMessage::isFailure", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\JsonMessage", "fromLink": "Toolkit/Collection/JsonMessage.html", "link": "Toolkit/Collection/JsonMessage.html#method_code", "name": "Toolkit\\Collection\\JsonMessage::code", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\JsonMessage", "fromLink": "Toolkit/Collection/JsonMessage.html", "link": "Toolkit/Collection/JsonMessage.html#method_msg", "name": "Toolkit\\Collection\\JsonMessage::msg", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\JsonMessage", "fromLink": "Toolkit/Collection/JsonMessage.html", "link": "Toolkit/Collection/JsonMessage.html#method_add", "name": "Toolkit\\Collection\\JsonMessage::add", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\JsonMessage", "fromLink": "Toolkit/Collection/JsonMessage.html", "link": "Toolkit/Collection/JsonMessage.html#method_data", "name": "Toolkit\\Collection\\JsonMessage::data", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\JsonMessage", "fromLink": "Toolkit/Collection/JsonMessage.html", "link": "Toolkit/Collection/JsonMessage.html#method_all", "name": "Toolkit\\Collection\\JsonMessage::all", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\JsonMessage", "fromLink": "Toolkit/Collection/JsonMessage.html", "link": "Toolkit/Collection/JsonMessage.html#method_toArray", "name": "Toolkit\\Collection\\JsonMessage::toArray", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\JsonMessage", "fromLink": "Toolkit/Collection/JsonMessage.html", "link": "Toolkit/Collection/JsonMessage.html#method___toString", "name": "Toolkit\\Collection\\JsonMessage::__toString", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\JsonMessage", "fromLink": "Toolkit/Collection/JsonMessage.html", "link": "Toolkit/Collection/JsonMessage.html#method___isset", "name": "Toolkit\\Collection\\JsonMessage::__isset", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\JsonMessage", "fromLink": "Toolkit/Collection/JsonMessage.html", "link": "Toolkit/Collection/JsonMessage.html#method___set", "name": "Toolkit\\Collection\\JsonMessage::__set", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\JsonMessage", "fromLink": "Toolkit/Collection/JsonMessage.html", "link": "Toolkit/Collection/JsonMessage.html#method___get", "name": "Toolkit\\Collection\\JsonMessage::__get", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\Collection", "fromLink": "Toolkit/Collection.html", "link": "Toolkit/Collection/Language.html", "name": "Toolkit\\Collection\\Language", "doc": ""Class Language""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_init", "name": "Toolkit\\Collection\\Language::init", "doc": ""{@inheritDoc}""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_t", "name": "Toolkit\\Collection\\Language::t", "doc": ""{@inheritdoc}""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_tl", "name": "Toolkit\\Collection\\Language::tl", "doc": ""{@inheritdoc}""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_trans", "name": "Toolkit\\Collection\\Language::trans", "doc": ""{@inheritdoc}""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_translate", "name": "Toolkit\\Collection\\Language::translate", "doc": ""how to use language translate ? please see '\/doc\/language.md'""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_set", "name": "Toolkit\\Collection\\Language::set", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_has", "name": "Toolkit\\Collection\\Language::has", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_findTranslationText", "name": "Toolkit\\Collection\\Language::findTranslationText", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_transByFallbackLang", "name": "Toolkit\\Collection\\Language::transByFallbackLang", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_buildLangFilePath", "name": "Toolkit\\Collection\\Language::buildLangFilePath", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_getLangFile", "name": "Toolkit\\Collection\\Language::getLangFile", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_hasLangFile", "name": "Toolkit\\Collection\\Language::hasLangFile", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_addLangFile", "name": "Toolkit\\Collection\\Language::addLangFile", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_hasLangFileData", "name": "Toolkit\\Collection\\Language::hasLangFileData", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_hasLang", "name": "Toolkit\\Collection\\Language::hasLang", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_isLang", "name": "Toolkit\\Collection\\Language::isLang", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method___get", "name": "Toolkit\\Collection\\Language::__get", "doc": ""Allow quick access default file translate by <code>$lang->key<\/code>,\nis equals to <code>$lang->tl('key')<\/code>.""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method___isset", "name": "Toolkit\\Collection\\Language::__isset", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method___set", "name": "Toolkit\\Collection\\Language::__set", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method___call", "name": "Toolkit\\Collection\\Language::__call", "doc": ""Allow quick access default file translate by <code>$lang->key()<\/code>,\nis equals to <code>$lang->tl('key')<\/code>.""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_getLang", "name": "Toolkit\\Collection\\Language::getLang", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_setLang", "name": "Toolkit\\Collection\\Language::setLang", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_getLangs", "name": "Toolkit\\Collection\\Language::getLangs", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_setLangs", "name": "Toolkit\\Collection\\Language::setLangs", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_getBasePath", "name": "Toolkit\\Collection\\Language::getBasePath", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_setBasePath", "name": "Toolkit\\Collection\\Language::setBasePath", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_getData", "name": "Toolkit\\Collection\\Language::getData", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_getLangFiles", "name": "Toolkit\\Collection\\Language::getLangFiles", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_setLangFiles", "name": "Toolkit\\Collection\\Language::setLangFiles", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_getDefaultFile", "name": "Toolkit\\Collection\\Language::getDefaultFile", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_getFallbackLang", "name": "Toolkit\\Collection\\Language::getFallbackLang", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_setFallbackLang", "name": "Toolkit\\Collection\\Language::setFallbackLang", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_getFallbackData", "name": "Toolkit\\Collection\\Language::getFallbackData", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_getFormat", "name": "Toolkit\\Collection\\Language::getFormat", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_setFormat", "name": "Toolkit\\Collection\\Language::setFormat", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_getSeparator", "name": "Toolkit\\Collection\\Language::getSeparator", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_setSeparator", "name": "Toolkit\\Collection\\Language::setSeparator", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_getLoadedFiles", "name": "Toolkit\\Collection\\Language::getLoadedFiles", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_isIgnoreError", "name": "Toolkit\\Collection\\Language::isIgnoreError", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_setIgnoreError", "name": "Toolkit\\Collection\\Language::setIgnoreError", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_getIterator", "name": "Toolkit\\Collection\\Language::getIterator", "doc": ""Retrieve an external iterator""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_offsetExists", "name": "Toolkit\\Collection\\Language::offsetExists", "doc": ""Whether a offset exists""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_offsetGet", "name": "Toolkit\\Collection\\Language::offsetGet", "doc": ""Offset to retrieve""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_offsetSet", "name": "Toolkit\\Collection\\Language::offsetSet", "doc": ""Offset to set""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_offsetUnset", "name": "Toolkit\\Collection\\Language::offsetUnset", "doc": ""Offset to unset""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\Language", "fromLink": "Toolkit/Collection/Language.html", "link": "Toolkit/Collection/Language.html#method_count", "name": "Toolkit\\Collection\\Language::count", "doc": ""Count elements of an object""},
+
+ {"type": "Class", "fromName": "Toolkit\\Collection", "fromLink": "Toolkit/Collection.html", "link": "Toolkit/Collection/LiteCollection.html", "name": "Toolkit\\Collection\\LiteCollection", "doc": ""Class LiteCollection""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\LiteCollection", "fromLink": "Toolkit/Collection/LiteCollection.html", "link": "Toolkit/Collection/LiteCollection.html#method_make", "name": "Toolkit\\Collection\\LiteCollection::make", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\LiteCollection", "fromLink": "Toolkit/Collection/LiteCollection.html", "link": "Toolkit/Collection/LiteCollection.html#method___construct", "name": "Toolkit\\Collection\\LiteCollection::__construct", "doc": ""Create new collection""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\LiteCollection", "fromLink": "Toolkit/Collection/LiteCollection.html", "link": "Toolkit/Collection/LiteCollection.html#method_get", "name": "Toolkit\\Collection\\LiteCollection::get", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\LiteCollection", "fromLink": "Toolkit/Collection/LiteCollection.html", "link": "Toolkit/Collection/LiteCollection.html#method_add", "name": "Toolkit\\Collection\\LiteCollection::add", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\LiteCollection", "fromLink": "Toolkit/Collection/LiteCollection.html", "link": "Toolkit/Collection/LiteCollection.html#method_set", "name": "Toolkit\\Collection\\LiteCollection::set", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\LiteCollection", "fromLink": "Toolkit/Collection/LiteCollection.html", "link": "Toolkit/Collection/LiteCollection.html#method_replace", "name": "Toolkit\\Collection\\LiteCollection::replace", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\LiteCollection", "fromLink": "Toolkit/Collection/LiteCollection.html", "link": "Toolkit/Collection/LiteCollection.html#method_reject", "name": "Toolkit\\Collection\\LiteCollection::reject", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\LiteCollection", "fromLink": "Toolkit/Collection/LiteCollection.html", "link": "Toolkit/Collection/LiteCollection.html#method_map", "name": "Toolkit\\Collection\\LiteCollection::map", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\LiteCollection", "fromLink": "Toolkit/Collection/LiteCollection.html", "link": "Toolkit/Collection/LiteCollection.html#method_implode", "name": "Toolkit\\Collection\\LiteCollection::implode", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\LiteCollection", "fromLink": "Toolkit/Collection/LiteCollection.html", "link": "Toolkit/Collection/LiteCollection.html#method_all", "name": "Toolkit\\Collection\\LiteCollection::all", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\LiteCollection", "fromLink": "Toolkit/Collection/LiteCollection.html", "link": "Toolkit/Collection/LiteCollection.html#method_has", "name": "Toolkit\\Collection\\LiteCollection::has", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\LiteCollection", "fromLink": "Toolkit/Collection/LiteCollection.html", "link": "Toolkit/Collection/LiteCollection.html#method_remove", "name": "Toolkit\\Collection\\LiteCollection::remove", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\LiteCollection", "fromLink": "Toolkit/Collection/LiteCollection.html", "link": "Toolkit/Collection/LiteCollection.html#method_clear", "name": "Toolkit\\Collection\\LiteCollection::clear", "doc": ""clear all data""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\LiteCollection", "fromLink": "Toolkit/Collection/LiteCollection.html", "link": "Toolkit/Collection/LiteCollection.html#method_jsonSerialize", "name": "Toolkit\\Collection\\LiteCollection::jsonSerialize", "doc": ""Specify data which should be serialized to JSON""},
+
+ {"type": "Class", "fromName": "Toolkit\\Collection", "fromLink": "Toolkit/Collection.html", "link": "Toolkit/Collection/SimpleCollection.html", "name": "Toolkit\\Collection\\SimpleCollection", "doc": ""Collection\nThis class provides a common interface used by many other\nclasses in a Inhere\\Library application that manage \"collections\"\nof data that must be inspected and\/or manipulated""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method_make", "name": "Toolkit\\Collection\\SimpleCollection::make", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method___construct", "name": "Toolkit\\Collection\\SimpleCollection::__construct", "doc": ""Create new collection""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method___destruct", "name": "Toolkit\\Collection\\SimpleCollection::__destruct", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method_set", "name": "Toolkit\\Collection\\SimpleCollection::set", "doc": ""Set collection item""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method_add", "name": "Toolkit\\Collection\\SimpleCollection::add", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method_get", "name": "Toolkit\\Collection\\SimpleCollection::get", "doc": ""Get collection item for key""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method_replace", "name": "Toolkit\\Collection\\SimpleCollection::replace", "doc": ""Add item to collection""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method_gets", "name": "Toolkit\\Collection\\SimpleCollection::gets", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method_sets", "name": "Toolkit\\Collection\\SimpleCollection::sets", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method_reject", "name": "Toolkit\\Collection\\SimpleCollection::reject", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method_map", "name": "Toolkit\\Collection\\SimpleCollection::map", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method_implode", "name": "Toolkit\\Collection\\SimpleCollection::implode", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method_all", "name": "Toolkit\\Collection\\SimpleCollection::all", "doc": ""Get all items in collection""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method_toArray", "name": "Toolkit\\Collection\\SimpleCollection::toArray", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method_keys", "name": "Toolkit\\Collection\\SimpleCollection::keys", "doc": ""Get collection keys""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method_has", "name": "Toolkit\\Collection\\SimpleCollection::has", "doc": ""Does this collection have a given key?""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method_remove", "name": "Toolkit\\Collection\\SimpleCollection::remove", "doc": ""Remove item from collection""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method_clear", "name": "Toolkit\\Collection\\SimpleCollection::clear", "doc": ""Remove all items from collection""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method_offsetExists", "name": "Toolkit\\Collection\\SimpleCollection::offsetExists", "doc": ""Does this collection have a given key?""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method_offsetGet", "name": "Toolkit\\Collection\\SimpleCollection::offsetGet", "doc": ""Get collection item for key""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method_offsetSet", "name": "Toolkit\\Collection\\SimpleCollection::offsetSet", "doc": ""Set collection item""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method_offsetUnset", "name": "Toolkit\\Collection\\SimpleCollection::offsetUnset", "doc": ""Remove item from collection""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method_count", "name": "Toolkit\\Collection\\SimpleCollection::count", "doc": ""Get number of items in collection""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method_jsonSerialize", "name": "Toolkit\\Collection\\SimpleCollection::jsonSerialize", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method_serialize", "name": "Toolkit\\Collection\\SimpleCollection::serialize", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method_unserialize", "name": "Toolkit\\Collection\\SimpleCollection::unserialize", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method_getIterator", "name": "Toolkit\\Collection\\SimpleCollection::getIterator", "doc": ""Get collection iterator""},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method___get", "name": "Toolkit\\Collection\\SimpleCollection::__get", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method___set", "name": "Toolkit\\Collection\\SimpleCollection::__set", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Collection\\SimpleCollection", "fromLink": "Toolkit/Collection/SimpleCollection.html", "link": "Toolkit/Collection/SimpleCollection.html#method___isset", "name": "Toolkit\\Collection\\SimpleCollection::__isset", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\DI", "fromLink": "Toolkit/DI.html", "link": "Toolkit/DI/CallableResolver.html", "name": "Toolkit\\DI\\CallableResolver", "doc": ""This class resolves a string of the format 'class:method' into a closure\nthat can be dispatched.""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\CallableResolver", "fromLink": "Toolkit/DI/CallableResolver.html", "link": "Toolkit/DI/CallableResolver.html#method___construct", "name": "Toolkit\\DI\\CallableResolver::__construct", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DI\\CallableResolver", "fromLink": "Toolkit/DI/CallableResolver.html", "link": "Toolkit/DI/CallableResolver.html#method_resolve", "name": "Toolkit\\DI\\CallableResolver::resolve", "doc": ""Resolve toResolve into a closure that that the router can dispatch.""},
+
+ {"type": "Trait", "fromName": "Toolkit\\DI", "fromLink": "Toolkit/DI.html", "link": "Toolkit/DI/CallableResolverAwareTrait.html", "name": "Toolkit\\DI\\CallableResolverAwareTrait", "doc": ""ResolveCallable""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\CallableResolverAwareTrait", "fromLink": "Toolkit/DI/CallableResolverAwareTrait.html", "link": "Toolkit/DI/CallableResolverAwareTrait.html#method_resolveCallable", "name": "Toolkit\\DI\\CallableResolverAwareTrait::resolveCallable", "doc": ""Resolve a string of the format 'class:method' into a closure that the\nrouter can dispatch.""},
+
+ {"type": "Class", "fromName": "Toolkit\\DI", "fromLink": "Toolkit/DI.html", "link": "Toolkit/DI/Container.html", "name": "Toolkit\\DI\\Container", "doc": ""Class Container""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method___construct", "name": "Toolkit\\DI\\Container::__construct", "doc": ""Container constructor.""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method___destruct", "name": "Toolkit\\DI\\Container::__destruct", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_set", "name": "Toolkit\\DI\\Container::set", "doc": ""\u5728\u5bb9\u5668\u6ce8\u518c\u670d\u52a1(\u8be6\u7ec6\u7684\u53c2\u6570\u4fe1\u606f\u8bf7\u67e5\u770bREADME.md)""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_sets", "name": "Toolkit\\DI\\Container::sets", "doc": ""\u901a\u8fc7\u8bbe\u7f6e\u914d\u7f6e\u7684\u591a\u7ef4\u6570\u7ec4 \u6ce8\u518c\u591a\u4e2a\u670d\u52a1. \u670d\u52a1\u8be6\u7ec6\u8bbe\u7f6e\u8bf7\u770b{see self::set()}""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_protect", "name": "Toolkit\\DI\\Container::protect", "doc": ""\u6ce8\u518c\u53d7\u4fdd\u62a4\u7684\u670d\u52a1 alias of the lock()""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_lock", "name": "Toolkit\\DI\\Container::lock", "doc": ""(\u6ce8\u518c)\u9501\u5b9a\u7684\u670d\u52a1\uff0c\u4e5f\u53ef\u5728\u6ce8\u518c\u540e\u9501\u5b9a,\u9632\u6b62 getNew() \u5f3a\u5236\u91cd\u8f7d""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_registerServiceProvider", "name": "Toolkit\\DI\\Container::registerServiceProvider", "doc": ""\u6ce8\u518c\u670d\u52a1\u63d0\u4f9b\u8005(\u53ef\u80fd\u542b\u6709\u591a\u4e2a\u670d\u52a1)""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_registerServiceProviders", "name": "Toolkit\\DI\\Container::registerServiceProviders", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_createCallback", "name": "Toolkit\\DI\\Container::createCallback", "doc": ""\u521b\u5efa(\u7c7b\u5b9e\u4f8b\/\u7c7b\u7684\u65b9\u6cd5)\u56de\u8c03""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_get", "name": "Toolkit\\DI\\Container::get", "doc": ""get \u83b7\u53d6\u5df2\u6ce8\u518c\u7684\u670d\u52a1\u7ec4\u4ef6\u5b9e\u4f8b\n - (\u5355\u4f8b)\u5171\u4eab\u670d\u52a1\u603b\u662f\u83b7\u53d6\u5df2\u5b58\u50a8\u7684\u5b9e\u4f8b\n - \u5176\u4ed6\u7684\u5219\u603b\u662f\u8fd4\u56de\u65b0\u7684\u5b9e\u4f8b""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_getNew", "name": "Toolkit\\DI\\Container::getNew", "doc": ""\u5f3a\u5236\u83b7\u53d6\u670d\u52a1\u7684\u65b0\u5b9e\u4f8b\uff0c\u9488\u5bf9\u5171\u4eab\u670d\u52a1""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_new", "name": "Toolkit\\DI\\Container::new", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_getIfExist", "name": "Toolkit\\DI\\Container::getIfExist", "doc": ""\u82e5\u5b58\u5728\u670d\u52a1\u5219\u8fd4\u56de \u5426\u5219\u8fd4\u56de null""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_raw", "name": "Toolkit\\DI\\Container::raw", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_del", "name": "Toolkit\\DI\\Container::del", "doc": ""\u5220\u9664\u670d\u52a1""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_getInstance", "name": "Toolkit\\DI\\Container::getInstance", "doc": ""get \u83b7\u53d6\u5df2\u6ce8\u518c\u7684\u670d\u52a1\u7ec4\u4ef6\u5b9e\u4f8b""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_getService", "name": "Toolkit\\DI\\Container::getService", "doc": ""\u83b7\u53d6\u67d0\u4e00\u4e2a\u670d\u52a1\u7684\u4fe1\u606f""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_resolveAlias", "name": "Toolkit\\DI\\Container::resolveAlias", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_clear", "name": "Toolkit\\DI\\Container::clear", "doc": ""clear""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_getServices", "name": "Toolkit\\DI\\Container::getServices", "doc": ""\u83b7\u53d6\u5168\u90e8\u670d\u52a1\u4fe1\u606f""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_setParent", "name": "Toolkit\\DI\\Container::setParent", "doc": ""Method to set property parent""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_getIds", "name": "Toolkit\\DI\\Container::getIds", "doc": ""\u83b7\u53d6\u5168\u90e8\u670d\u52a1id""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_isShared", "name": "Toolkit\\DI\\Container::isShared", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_isLocked", "name": "Toolkit\\DI\\Container::isLocked", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_has", "name": "Toolkit\\DI\\Container::has", "doc": ""\u662f\u5df2\u6ce8\u518c\u7684\u670d\u52a1""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_exists", "name": "Toolkit\\DI\\Container::exists", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method___isset", "name": "Toolkit\\DI\\Container::__isset", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method___set", "name": "Toolkit\\DI\\Container::__set", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method___get", "name": "Toolkit\\DI\\Container::__get", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_count", "name": "Toolkit\\DI\\Container::count", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_getIterator", "name": "Toolkit\\DI\\Container::getIterator", "doc": ""Defined by IteratorAggregate interface\nReturns an iterator for this object, for use with foreach""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_offsetExists", "name": "Toolkit\\DI\\Container::offsetExists", "doc": ""Checks whether an offset exists in the iterator.""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_offsetGet", "name": "Toolkit\\DI\\Container::offsetGet", "doc": ""Gets an offset in the iterator.""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_offsetSet", "name": "Toolkit\\DI\\Container::offsetSet", "doc": ""Sets an offset in the iterator.""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Container", "fromLink": "Toolkit/DI/Container.html", "link": "Toolkit/DI/Container.html#method_offsetUnset", "name": "Toolkit\\DI\\Container::offsetUnset", "doc": ""Unset an offset in the iterator.""},
+
+ {"type": "Class", "fromName": "Toolkit\\DI", "fromLink": "Toolkit/DI.html", "link": "Toolkit/DI/DIManager.html", "name": "Toolkit\\DI\\DIManager", "doc": ""Class DIManager - Container Manager""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\DIManager", "fromLink": "Toolkit/DI/DIManager.html", "link": "Toolkit/DI/DIManager.html#method_getDefault", "name": "Toolkit\\DI\\DIManager::getDefault", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DI\\DIManager", "fromLink": "Toolkit/DI/DIManager.html", "link": "Toolkit/DI/DIManager.html#method_getContainer", "name": "Toolkit\\DI\\DIManager::getContainer", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DI\\DIManager", "fromLink": "Toolkit/DI/DIManager.html", "link": "Toolkit/DI/DIManager.html#method_make", "name": "Toolkit\\DI\\DIManager::make", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DI\\DIManager", "fromLink": "Toolkit/DI/DIManager.html", "link": "Toolkit/DI/DIManager.html#method_setDefaultGroup", "name": "Toolkit\\DI\\DIManager::setDefaultGroup", "doc": ""setProfile""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\DIManager", "fromLink": "Toolkit/DI/DIManager.html", "link": "Toolkit/DI/DIManager.html#method_getDefaultGroup", "name": "Toolkit\\DI\\DIManager::getDefaultGroup", "doc": ""Method to get property Profile""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\DIManager", "fromLink": "Toolkit/DI/DIManager.html", "link": "Toolkit/DI/DIManager.html#method_reset", "name": "Toolkit\\DI\\DIManager::reset", "doc": ""reset""},
+
+ {"type": "Class", "fromName": "Toolkit\\DI\\Exception", "fromLink": "Toolkit/DI/Exception.html", "link": "Toolkit/DI/Exception/DependencyResolutionException.html", "name": "Toolkit\\DI\\Exception\\DependencyResolutionException", "doc": ""Class DependencyResolutionException""},
+
+ {"type": "Class", "fromName": "Toolkit\\DI\\Exception", "fromLink": "Toolkit/DI/Exception.html", "link": "Toolkit/DI/Exception/NotFoundException.html", "name": "Toolkit\\DI\\Exception\\NotFoundException", "doc": ""Class NotFoundException""},
+
+ {"type": "Trait", "fromName": "Toolkit\\DI", "fromLink": "Toolkit/DI.html", "link": "Toolkit/DI/NameAliasTrait.html", "name": "Toolkit\\DI\\NameAliasTrait", "doc": ""Class NameAliasTrait""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\NameAliasTrait", "fromLink": "Toolkit/DI/NameAliasTrait.html", "link": "Toolkit/DI/NameAliasTrait.html#method_alias", "name": "Toolkit\\DI\\NameAliasTrait::alias", "doc": ""set\/get name alias""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\NameAliasTrait", "fromLink": "Toolkit/DI/NameAliasTrait.html", "link": "Toolkit/DI/NameAliasTrait.html#method_resolveAlias", "name": "Toolkit\\DI\\NameAliasTrait::resolveAlias", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DI\\NameAliasTrait", "fromLink": "Toolkit/DI/NameAliasTrait.html", "link": "Toolkit/DI/NameAliasTrait.html#method_hasAlias", "name": "Toolkit\\DI\\NameAliasTrait::hasAlias", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DI\\NameAliasTrait", "fromLink": "Toolkit/DI/NameAliasTrait.html", "link": "Toolkit/DI/NameAliasTrait.html#method_getAliases", "name": "Toolkit\\DI\\NameAliasTrait::getAliases", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DI\\NameAliasTrait", "fromLink": "Toolkit/DI/NameAliasTrait.html", "link": "Toolkit/DI/NameAliasTrait.html#method_setAliases", "name": "Toolkit\\DI\\NameAliasTrait::setAliases", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\DI", "fromLink": "Toolkit/DI.html", "link": "Toolkit/DI/Service.html", "name": "Toolkit\\DI\\Service", "doc": ""Class Service""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Service", "fromLink": "Toolkit/DI/Service.html", "link": "Toolkit/DI/Service.html#method___construct", "name": "Toolkit\\DI\\Service::__construct", "doc": ""Service constructor.""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Service", "fromLink": "Toolkit/DI/Service.html", "link": "Toolkit/DI/Service.html#method___destruct", "name": "Toolkit\\DI\\Service::__destruct", "doc": ""__destruct""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Service", "fromLink": "Toolkit/DI/Service.html", "link": "Toolkit/DI/Service.html#method_get", "name": "Toolkit\\DI\\Service::get", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Service", "fromLink": "Toolkit/DI/Service.html", "link": "Toolkit/DI/Service.html#method_getCallback", "name": "Toolkit\\DI\\Service::getCallback", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Service", "fromLink": "Toolkit/DI/Service.html", "link": "Toolkit/DI/Service.html#method_setCallback", "name": "Toolkit\\DI\\Service::setCallback", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Service", "fromLink": "Toolkit/DI/Service.html", "link": "Toolkit/DI/Service.html#method_getArguments", "name": "Toolkit\\DI\\Service::getArguments", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Service", "fromLink": "Toolkit/DI/Service.html", "link": "Toolkit/DI/Service.html#method_setArguments", "name": "Toolkit\\DI\\Service::setArguments", "doc": ""\u7ed9\u670d\u52a1\u8bbe\u7f6e\u53c2\u6570\uff0c\u5728\u83b7\u53d6\u670d\u52a1\u5b9e\u4f8b\u524d""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Service", "fromLink": "Toolkit/DI/Service.html", "link": "Toolkit/DI/Service.html#method_getInstance", "name": "Toolkit\\DI\\Service::getInstance", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Service", "fromLink": "Toolkit/DI/Service.html", "link": "Toolkit/DI/Service.html#method_isLocked", "name": "Toolkit\\DI\\Service::isLocked", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Service", "fromLink": "Toolkit/DI/Service.html", "link": "Toolkit/DI/Service.html#method_setLocked", "name": "Toolkit\\DI\\Service::setLocked", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Service", "fromLink": "Toolkit/DI/Service.html", "link": "Toolkit/DI/Service.html#method_isShared", "name": "Toolkit\\DI\\Service::isShared", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DI\\Service", "fromLink": "Toolkit/DI/Service.html", "link": "Toolkit/DI/Service.html#method_setShared", "name": "Toolkit\\DI\\Service::setShared", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\DI", "fromLink": "Toolkit/DI.html", "link": "Toolkit/DI/ServiceProviderInterface.html", "name": "Toolkit\\DI\\ServiceProviderInterface", "doc": ""Interface InterfaceServiceProvider""},
+ {"type": "Method", "fromName": "Toolkit\\DI\\ServiceProviderInterface", "fromLink": "Toolkit/DI/ServiceProviderInterface.html", "link": "Toolkit/DI/ServiceProviderInterface.html#method_register", "name": "Toolkit\\DI\\ServiceProviderInterface::register", "doc": ""\u6ce8\u518c\u4e00\u9879\u670d\u52a1(\u53ef\u80fd\u542b\u6709\u591a\u4e2a\u670d\u52a1)\u63d0\u4f9b\u8005\u5230\u5bb9\u5668\u4e2d""},
+
+ {"type": "Trait", "fromName": "Toolkit\\DataParser", "fromLink": "Toolkit/DataParser.html", "link": "Toolkit/DataParser/DataParserAwareTrait.html", "name": "Toolkit\\DataParser\\DataParserAwareTrait", "doc": ""Class DataParserAwareTrait""},
+ {"type": "Method", "fromName": "Toolkit\\DataParser\\DataParserAwareTrait", "fromLink": "Toolkit/DataParser/DataParserAwareTrait.html", "link": "Toolkit/DataParser/DataParserAwareTrait.html#method_getParser", "name": "Toolkit\\DataParser\\DataParserAwareTrait::getParser", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DataParser\\DataParserAwareTrait", "fromLink": "Toolkit/DataParser/DataParserAwareTrait.html", "link": "Toolkit/DataParser/DataParserAwareTrait.html#method_setParser", "name": "Toolkit\\DataParser\\DataParserAwareTrait::setParser", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\DataParser", "fromLink": "Toolkit/DataParser.html", "link": "Toolkit/DataParser/JsonParser.html", "name": "Toolkit\\DataParser\\JsonParser", "doc": ""Class JsonParser""},
+ {"type": "Method", "fromName": "Toolkit\\DataParser\\JsonParser", "fromLink": "Toolkit/DataParser/JsonParser.html", "link": "Toolkit/DataParser/JsonParser.html#method___construct", "name": "Toolkit\\DataParser\\JsonParser::__construct", "doc": ""JsonParser constructor.""},
+ {"type": "Method", "fromName": "Toolkit\\DataParser\\JsonParser", "fromLink": "Toolkit/DataParser/JsonParser.html", "link": "Toolkit/DataParser/JsonParser.html#method_decode", "name": "Toolkit\\DataParser\\JsonParser::decode", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DataParser\\JsonParser", "fromLink": "Toolkit/DataParser/JsonParser.html", "link": "Toolkit/DataParser/JsonParser.html#method_encode", "name": "Toolkit\\DataParser\\JsonParser::encode", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DataParser\\JsonParser", "fromLink": "Toolkit/DataParser/JsonParser.html", "link": "Toolkit/DataParser/JsonParser.html#method_isAssoc", "name": "Toolkit\\DataParser\\JsonParser::isAssoc", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DataParser\\JsonParser", "fromLink": "Toolkit/DataParser/JsonParser.html", "link": "Toolkit/DataParser/JsonParser.html#method_setAssoc", "name": "Toolkit\\DataParser\\JsonParser::setAssoc", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\DataParser", "fromLink": "Toolkit/DataParser.html", "link": "Toolkit/DataParser/MsgPackParser.html", "name": "Toolkit\\DataParser\\MsgPackParser", "doc": ""Class MsgPackParser""},
+ {"type": "Method", "fromName": "Toolkit\\DataParser\\MsgPackParser", "fromLink": "Toolkit/DataParser/MsgPackParser.html", "link": "Toolkit/DataParser/MsgPackParser.html#method___construct", "name": "Toolkit\\DataParser\\MsgPackParser::__construct", "doc": ""class constructor.""},
+ {"type": "Method", "fromName": "Toolkit\\DataParser\\MsgPackParser", "fromLink": "Toolkit/DataParser/MsgPackParser.html", "link": "Toolkit/DataParser/MsgPackParser.html#method_encode", "name": "Toolkit\\DataParser\\MsgPackParser::encode", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DataParser\\MsgPackParser", "fromLink": "Toolkit/DataParser/MsgPackParser.html", "link": "Toolkit/DataParser/MsgPackParser.html#method_decode", "name": "Toolkit\\DataParser\\MsgPackParser::decode", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\DataParser", "fromLink": "Toolkit/DataParser.html", "link": "Toolkit/DataParser/ParserInterface.html", "name": "Toolkit\\DataParser\\ParserInterface", "doc": ""Interface ParserInterface""},
+ {"type": "Method", "fromName": "Toolkit\\DataParser\\ParserInterface", "fromLink": "Toolkit/DataParser/ParserInterface.html", "link": "Toolkit/DataParser/ParserInterface.html#method_encode", "name": "Toolkit\\DataParser\\ParserInterface::encode", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DataParser\\ParserInterface", "fromLink": "Toolkit/DataParser/ParserInterface.html", "link": "Toolkit/DataParser/ParserInterface.html#method_decode", "name": "Toolkit\\DataParser\\ParserInterface::decode", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\DataParser", "fromLink": "Toolkit/DataParser.html", "link": "Toolkit/DataParser/PhpParser.html", "name": "Toolkit\\DataParser\\PhpParser", "doc": ""Class PhpParser""},
+ {"type": "Method", "fromName": "Toolkit\\DataParser\\PhpParser", "fromLink": "Toolkit/DataParser/PhpParser.html", "link": "Toolkit/DataParser/PhpParser.html#method_encode", "name": "Toolkit\\DataParser\\PhpParser::encode", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DataParser\\PhpParser", "fromLink": "Toolkit/DataParser/PhpParser.html", "link": "Toolkit/DataParser/PhpParser.html#method_decode", "name": "Toolkit\\DataParser\\PhpParser::decode", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\DataParser", "fromLink": "Toolkit/DataParser.html", "link": "Toolkit/DataParser/SwooleParser.html", "name": "Toolkit\\DataParser\\SwooleParser", "doc": ""Class SwooleParser""},
+ {"type": "Method", "fromName": "Toolkit\\DataParser\\SwooleParser", "fromLink": "Toolkit/DataParser/SwooleParser.html", "link": "Toolkit/DataParser/SwooleParser.html#method___construct", "name": "Toolkit\\DataParser\\SwooleParser::__construct", "doc": ""class constructor.""},
+ {"type": "Method", "fromName": "Toolkit\\DataParser\\SwooleParser", "fromLink": "Toolkit/DataParser/SwooleParser.html", "link": "Toolkit/DataParser/SwooleParser.html#method_encode", "name": "Toolkit\\DataParser\\SwooleParser::encode", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\DataParser\\SwooleParser", "fromLink": "Toolkit/DataParser/SwooleParser.html", "link": "Toolkit/DataParser/SwooleParser.html#method_decode", "name": "Toolkit\\DataParser\\SwooleParser::decode", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\Dev\\Console", "fromLink": "Toolkit/Dev/Console.html", "link": "Toolkit/Dev/Console/DevController.html", "name": "Toolkit\\Dev\\Console\\DevController", "doc": ""Internal tool for toolkit development""},
+ {"type": "Method", "fromName": "Toolkit\\Dev\\Console\\DevController", "fromLink": "Toolkit/Dev/Console/DevController.html", "link": "Toolkit/Dev/Console/DevController.html#method_listCommand", "name": "Toolkit\\Dev\\Console\\DevController::listCommand", "doc": ""List all swoft component names in the php-toolkit\/toolkit""},
+ {"type": "Method", "fromName": "Toolkit\\Dev\\Console\\DevController", "fromLink": "Toolkit/Dev/Console/DevController.html", "link": "Toolkit/Dev/Console/DevController.html#method_addCommand", "name": "Toolkit\\Dev\\Console\\DevController::addCommand", "doc": ""Add component directory code from git repo by 'git subtree add'""},
+ {"type": "Method", "fromName": "Toolkit\\Dev\\Console\\DevController", "fromLink": "Toolkit/Dev/Console/DevController.html", "link": "Toolkit/Dev/Console/DevController.html#method_pullCommand", "name": "Toolkit\\Dev\\Console\\DevController::pullCommand", "doc": ""Update component directory code from git repo by 'git subtree pull'""},
+ {"type": "Method", "fromName": "Toolkit\\Dev\\Console\\DevController", "fromLink": "Toolkit/Dev/Console/DevController.html", "link": "Toolkit/Dev/Console/DevController.html#method_pushCommand", "name": "Toolkit\\Dev\\Console\\DevController::pushCommand", "doc": ""Push component[s] directory code to component's repo by 'git subtree push'""},
+ {"type": "Method", "fromName": "Toolkit\\Dev\\Console\\DevController", "fromLink": "Toolkit/Dev/Console/DevController.html", "link": "Toolkit/Dev/Console/DevController.html#method_runGitSubtree", "name": "Toolkit\\Dev\\Console\\DevController::runGitSubtree", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Dev\\Console\\DevController", "fromLink": "Toolkit/Dev/Console/DevController.html", "link": "Toolkit/Dev/Console/DevController.html#method_genApiCommand", "name": "Toolkit\\Dev\\Console\\DevController::genApiCommand", "doc": ""Generate classes API documents by 'sami\/sami'""},
+
+ {"type": "Class", "fromName": "Toolkit\\FileUtil", "fromLink": "Toolkit/FileUtil.html", "link": "Toolkit/FileUtil/Directory.html", "name": "Toolkit\\FileUtil\\Directory", "doc": ""Class Directory""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\Directory", "fromLink": "Toolkit/FileUtil/Directory.html", "link": "Toolkit/FileUtil/Directory.html#method_getRecursiveIterator", "name": "Toolkit\\FileUtil\\Directory::getRecursiveIterator", "doc": ""```php\n$filter = function ($current, $key, $iterator) {\n \/\/ \\SplFileInfo $current\n \/\/ Skip hidden files and directories.""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\Directory", "fromLink": "Toolkit/FileUtil/Directory.html", "link": "Toolkit/FileUtil/Directory.html#method_isEmpty", "name": "Toolkit\\FileUtil\\Directory::isEmpty", "doc": ""\u5224\u65ad\u6587\u4ef6\u5939\u662f\u5426\u4e3a\u7a7a""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\Directory", "fromLink": "Toolkit/FileUtil/Directory.html", "link": "Toolkit/FileUtil/Directory.html#method_ls", "name": "Toolkit\\FileUtil\\Directory::ls", "doc": ""\u67e5\u770b\u4e00\u4e2a\u76ee\u5f55\u4e2d\u7684\u6240\u6709\u6587\u4ef6\u548c\u5b50\u76ee\u5f55""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\Directory", "fromLink": "Toolkit/FileUtil/Directory.html", "link": "Toolkit/FileUtil/Directory.html#method_getList", "name": "Toolkit\\FileUtil\\Directory::getList", "doc": ""\u53ea\u83b7\u5f97\u76ee\u5f55\u7ed3\u6784""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\Directory", "fromLink": "Toolkit/FileUtil/Directory.html", "link": "Toolkit/FileUtil/Directory.html#method_getDirs", "name": "Toolkit\\FileUtil\\Directory::getDirs", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\Directory", "fromLink": "Toolkit/FileUtil/Directory.html", "link": "Toolkit/FileUtil/Directory.html#method_simpleInfo", "name": "Toolkit\\FileUtil\\Directory::simpleInfo", "doc": ""\u83b7\u5f97\u76ee\u5f55\u4e0b\u7684\u6587\u4ef6\uff0c\u53ef\u9009\u62e9\u7c7b\u578b\u3001\u662f\u5426\u904d\u5386\u5b50\u6587\u4ef6\u5939""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\Directory", "fromLink": "Toolkit/FileUtil/Directory.html", "link": "Toolkit/FileUtil/Directory.html#method_getFiles", "name": "Toolkit\\FileUtil\\Directory::getFiles", "doc": ""\u83b7\u5f97\u76ee\u5f55\u4e0b\u7684\u6587\u4ef6\uff0c\u53ef\u9009\u62e9\u7c7b\u578b\u3001\u662f\u5426\u904d\u5386\u5b50\u6587\u4ef6\u5939""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\Directory", "fromLink": "Toolkit/FileUtil/Directory.html", "link": "Toolkit/FileUtil/Directory.html#method_getFilesInfo", "name": "Toolkit\\FileUtil\\Directory::getFilesInfo", "doc": ""\u83b7\u5f97\u76ee\u5f55\u4e0b\u7684\u6587\u4ef6\u4ee5\u53ca\u8be6\u7ec6\u4fe1\u606f\uff0c\u53ef\u9009\u62e9\u7c7b\u578b\u3001\u662f\u5426\u904d\u5386\u5b50\u6587\u4ef6\u5939""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\Directory", "fromLink": "Toolkit/FileUtil/Directory.html", "link": "Toolkit/FileUtil/Directory.html#method_create", "name": "Toolkit\\FileUtil\\Directory::create", "doc": ""\u652f\u6301\u5c42\u7ea7\u76ee\u5f55\u7684\u521b\u5efa""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\Directory", "fromLink": "Toolkit/FileUtil/Directory.html", "link": "Toolkit/FileUtil/Directory.html#method_copy", "name": "Toolkit\\FileUtil\\Directory::copy", "doc": ""\u590d\u5236\u76ee\u5f55\u5185\u5bb9""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\Directory", "fromLink": "Toolkit/FileUtil/Directory.html", "link": "Toolkit/FileUtil/Directory.html#method_delete", "name": "Toolkit\\FileUtil\\Directory::delete", "doc": ""\u5220\u9664\u76ee\u5f55\u53ca\u91cc\u9762\u7684\u6587\u4ef6""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\Directory", "fromLink": "Toolkit/FileUtil/Directory.html", "link": "Toolkit/FileUtil/Directory.html#method_comparePath", "name": "Toolkit\\FileUtil\\Directory::comparePath", "doc": ""\u6bd4\u8f83\u6587\u4ef6\u8def\u5f84""},
+
+ {"type": "Class", "fromName": "Toolkit\\FileUtil\\Exception", "fromLink": "Toolkit/FileUtil/Exception.html", "link": "Toolkit/FileUtil/Exception/FileNotFoundException.html", "name": "Toolkit\\FileUtil\\Exception\\FileNotFoundException", "doc": ""Class FileNotFoundException""},
+
+ {"type": "Class", "fromName": "Toolkit\\FileUtil\\Exception", "fromLink": "Toolkit/FileUtil/Exception.html", "link": "Toolkit/FileUtil/Exception/FileReadException.html", "name": "Toolkit\\FileUtil\\Exception\\FileReadException", "doc": ""Class FileReadException""},
+
+ {"type": "Class", "fromName": "Toolkit\\FileUtil\\Exception", "fromLink": "Toolkit/FileUtil/Exception.html", "link": "Toolkit/FileUtil/Exception/FileSystemException.html", "name": "Toolkit\\FileUtil\\Exception\\FileSystemException", "doc": ""Class FileSystemException""},
+
+ {"type": "Class", "fromName": "Toolkit\\FileUtil\\Exception", "fromLink": "Toolkit/FileUtil/Exception.html", "link": "Toolkit/FileUtil/Exception/IOException.html", "name": "Toolkit\\FileUtil\\Exception\\IOException", "doc": ""Class IOException""},
+
+ {"type": "Class", "fromName": "Toolkit\\FileUtil", "fromLink": "Toolkit/FileUtil.html", "link": "Toolkit/FileUtil/File.html", "name": "Toolkit\\FileUtil\\File", "doc": ""Class File""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\File", "fromLink": "Toolkit/FileUtil/File.html", "link": "Toolkit/FileUtil/File.html#method_getName", "name": "Toolkit\\FileUtil\\File::getName", "doc": ""\u83b7\u5f97\u6587\u4ef6\u540d\u79f0""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\File", "fromLink": "Toolkit/FileUtil/File.html", "link": "Toolkit/FileUtil/File.html#method_getSuffix", "name": "Toolkit\\FileUtil\\File::getSuffix", "doc": ""\u83b7\u5f97\u6587\u4ef6\u6269\u5c55\u540d\u3001\u540e\u7f00\u540d""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\File", "fromLink": "Toolkit/FileUtil/File.html", "link": "Toolkit/FileUtil/File.html#method_getExtension", "name": "Toolkit\\FileUtil\\File::getExtension", "doc": ""\u83b7\u5f97\u6587\u4ef6\u6269\u5c55\u540d\u3001\u540e\u7f00\u540d""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\File", "fromLink": "Toolkit/FileUtil/File.html", "link": "Toolkit/FileUtil/File.html#method_mimeType", "name": "Toolkit\\FileUtil\\File::mimeType", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\File", "fromLink": "Toolkit/FileUtil/File.html", "link": "Toolkit/FileUtil/File.html#method_info", "name": "Toolkit\\FileUtil\\File::info", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\File", "fromLink": "Toolkit/FileUtil/File.html", "link": "Toolkit/FileUtil/File.html#method_getStat", "name": "Toolkit\\FileUtil\\File::getStat", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\File", "fromLink": "Toolkit/FileUtil/File.html", "link": "Toolkit/FileUtil/File.html#method_save", "name": "Toolkit\\FileUtil\\File::save", "doc": ""save description""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\File", "fromLink": "Toolkit/FileUtil/File.html", "link": "Toolkit/FileUtil/File.html#method_write", "name": "Toolkit\\FileUtil\\File::write", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\File", "fromLink": "Toolkit/FileUtil/File.html", "link": "Toolkit/FileUtil/File.html#method_openHandler", "name": "Toolkit\\FileUtil\\File::openHandler", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\File", "fromLink": "Toolkit/FileUtil/File.html", "link": "Toolkit/FileUtil/File.html#method_writeToFile", "name": "Toolkit\\FileUtil\\File::writeToFile", "doc": ""Attempts to write $content to the file specified by $handler. $path is used for printing exceptions.""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\File", "fromLink": "Toolkit/FileUtil/File.html", "link": "Toolkit/FileUtil/File.html#method_createAndWrite", "name": "Toolkit\\FileUtil\\File::createAndWrite", "doc": ""********************** \u521b\u5efa\u591a\u7ea7\u76ee\u5f55\u548c\u591a\u4e2a\u6587\u4ef6 **********************\n\u7ed3\u5408\u4e0a\u4e24\u4e2a\u51fd\u6570""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\File", "fromLink": "Toolkit/FileUtil/File.html", "link": "Toolkit/FileUtil/File.html#method_getContents", "name": "Toolkit\\FileUtil\\File::getContents", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\File", "fromLink": "Toolkit/FileUtil/File.html", "link": "Toolkit/FileUtil/File.html#method_move", "name": "Toolkit\\FileUtil\\File::move", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\File", "fromLink": "Toolkit/FileUtil/File.html", "link": "Toolkit/FileUtil/File.html#method_delete", "name": "Toolkit\\FileUtil\\File::delete", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\File", "fromLink": "Toolkit/FileUtil/File.html", "link": "Toolkit/FileUtil/File.html#method_copy", "name": "Toolkit\\FileUtil\\File::copy", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\File", "fromLink": "Toolkit/FileUtil/File.html", "link": "Toolkit/FileUtil/File.html#method_combine", "name": "Toolkit\\FileUtil\\File::combine", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\File", "fromLink": "Toolkit/FileUtil/File.html", "link": "Toolkit/FileUtil/File.html#method_stripPhpCode", "name": "Toolkit\\FileUtil\\File::stripPhpCode", "doc": ""Removes whitespace from a PHP source string while preserving line numbers.""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\File", "fromLink": "Toolkit/FileUtil/File.html", "link": "Toolkit/FileUtil/File.html#method_downBigFile", "name": "Toolkit\\FileUtil\\File::downBigFile", "doc": ""If you want to download files from a linux server with\na filesize bigger than 2GB you can use the following""},
+
+ {"type": "Class", "fromName": "Toolkit\\FileUtil", "fromLink": "Toolkit/FileUtil.html", "link": "Toolkit/FileUtil/FileFinder.html", "name": "Toolkit\\FileUtil\\FileFinder", "doc": ""Class FileFinder""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_create", "name": "Toolkit\\FileUtil\\FileFinder::create", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_fromArray", "name": "Toolkit\\FileUtil\\FileFinder::fromArray", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method___construct", "name": "Toolkit\\FileUtil\\FileFinder::__construct", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_directories", "name": "Toolkit\\FileUtil\\FileFinder::directories", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_dirs", "name": "Toolkit\\FileUtil\\FileFinder::dirs", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_files", "name": "Toolkit\\FileUtil\\FileFinder::files", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_name", "name": "Toolkit\\FileUtil\\FileFinder::name", "doc": ""$finder->name('*.php')\n$finder->name('test.php')""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_addNames", "name": "Toolkit\\FileUtil\\FileFinder::addNames", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_notName", "name": "Toolkit\\FileUtil\\FileFinder::notName", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_addNotNames", "name": "Toolkit\\FileUtil\\FileFinder::addNotNames", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_path", "name": "Toolkit\\FileUtil\\FileFinder::path", "doc": ""$finder->path('some\/special\/dir')""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_addPaths", "name": "Toolkit\\FileUtil\\FileFinder::addPaths", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_notPath", "name": "Toolkit\\FileUtil\\FileFinder::notPath", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_addNotPaths", "name": "Toolkit\\FileUtil\\FileFinder::addNotPaths", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_exclude", "name": "Toolkit\\FileUtil\\FileFinder::exclude", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_ignoreVCS", "name": "Toolkit\\FileUtil\\FileFinder::ignoreVCS", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_ignoreDotFiles", "name": "Toolkit\\FileUtil\\FileFinder::ignoreDotFiles", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_followLinks", "name": "Toolkit\\FileUtil\\FileFinder::followLinks", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_filter", "name": "Toolkit\\FileUtil\\FileFinder::filter", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_in", "name": "Toolkit\\FileUtil\\FileFinder::in", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_inDir", "name": "Toolkit\\FileUtil\\FileFinder::inDir", "doc": ""alias of the <code>in()<\/code>""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_append", "name": "Toolkit\\FileUtil\\FileFinder::append", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_count", "name": "Toolkit\\FileUtil\\FileFinder::count", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_isFollowLinks", "name": "Toolkit\\FileUtil\\FileFinder::isFollowLinks", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_getIterator", "name": "Toolkit\\FileUtil\\FileFinder::getIterator", "doc": ""Retrieve an external iterator""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_current", "name": "Toolkit\\FileUtil\\FileFinder::current", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_getChildren", "name": "Toolkit\\FileUtil\\FileFinder::getChildren", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_rewind", "name": "Toolkit\\FileUtil\\FileFinder::rewind", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileFinder", "fromLink": "Toolkit/FileUtil/FileFinder.html", "link": "Toolkit/FileUtil/FileFinder.html#method_isRewindable", "name": "Toolkit\\FileUtil\\FileFinder::isRewindable", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\FileUtil", "fromLink": "Toolkit/FileUtil.html", "link": "Toolkit/FileUtil/FileSystem.html", "name": "Toolkit\\FileUtil\\FileSystem", "doc": ""Class FileSystem""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileSystem", "fromLink": "Toolkit/FileUtil/FileSystem.html", "link": "Toolkit/FileUtil/FileSystem.html#method_isAbsPath", "name": "Toolkit\\FileUtil\\FileSystem::isAbsPath", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileSystem", "fromLink": "Toolkit/FileUtil/FileSystem.html", "link": "Toolkit/FileUtil/FileSystem.html#method_isAbsolutePath", "name": "Toolkit\\FileUtil\\FileSystem::isAbsolutePath", "doc": ""Returns whether the file path is an absolute path.""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileSystem", "fromLink": "Toolkit/FileUtil/FileSystem.html", "link": "Toolkit/FileUtil/FileSystem.html#method_pathFormat", "name": "Toolkit\\FileUtil\\FileSystem::pathFormat", "doc": ""\u8f6c\u6362\u4e3a\u6807\u51c6\u7684\u8def\u5f84\u7ed3\u6784""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileSystem", "fromLink": "Toolkit/FileUtil/FileSystem.html", "link": "Toolkit/FileUtil/FileSystem.html#method_clearPharPath", "name": "Toolkit\\FileUtil\\FileSystem::clearPharPath", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileSystem", "fromLink": "Toolkit/FileUtil/FileSystem.html", "link": "Toolkit/FileUtil/FileSystem.html#method_exists", "name": "Toolkit\\FileUtil\\FileSystem::exists", "doc": ""\u68c0\u67e5\u6587\u4ef6\/\u5939\/\u94fe\u63a5\u662f\u5426\u5b58\u5728""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileSystem", "fromLink": "Toolkit/FileUtil/FileSystem.html", "link": "Toolkit/FileUtil/FileSystem.html#method_check", "name": "Toolkit\\FileUtil\\FileSystem::check", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileSystem", "fromLink": "Toolkit/FileUtil/FileSystem.html", "link": "Toolkit/FileUtil/FileSystem.html#method_rename", "name": "Toolkit\\FileUtil\\FileSystem::rename", "doc": ""Renames a file or a directory.""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileSystem", "fromLink": "Toolkit/FileUtil/FileSystem.html", "link": "Toolkit/FileUtil/FileSystem.html#method_isReadable", "name": "Toolkit\\FileUtil\\FileSystem::isReadable", "doc": ""Tells whether a file exists and is readable.""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileSystem", "fromLink": "Toolkit/FileUtil/FileSystem.html", "link": "Toolkit/FileUtil/FileSystem.html#method_mkdir", "name": "Toolkit\\FileUtil\\FileSystem::mkdir", "doc": ""Creates a directory recursively.""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileSystem", "fromLink": "Toolkit/FileUtil/FileSystem.html", "link": "Toolkit/FileUtil/FileSystem.html#method_chmod", "name": "Toolkit\\FileUtil\\FileSystem::chmod", "doc": ""Change mode for an array of files or directories.""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileSystem", "fromLink": "Toolkit/FileUtil/FileSystem.html", "link": "Toolkit/FileUtil/FileSystem.html#method_chown", "name": "Toolkit\\FileUtil\\FileSystem::chown", "doc": ""Change the owner of an array of files or directories.""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileSystem", "fromLink": "Toolkit/FileUtil/FileSystem.html", "link": "Toolkit/FileUtil/FileSystem.html#method_getIterator", "name": "Toolkit\\FileUtil\\FileSystem::getIterator", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileSystem", "fromLink": "Toolkit/FileUtil/FileSystem.html", "link": "Toolkit/FileUtil/FileSystem.html#method_chmodDir", "name": "Toolkit\\FileUtil\\FileSystem::chmodDir", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileSystem", "fromLink": "Toolkit/FileUtil/FileSystem.html", "link": "Toolkit/FileUtil/FileSystem.html#method_availableSpace", "name": "Toolkit\\FileUtil\\FileSystem::availableSpace", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileSystem", "fromLink": "Toolkit/FileUtil/FileSystem.html", "link": "Toolkit/FileUtil/FileSystem.html#method_countSpace", "name": "Toolkit\\FileUtil\\FileSystem::countSpace", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\FileSystem", "fromLink": "Toolkit/FileUtil/FileSystem.html", "link": "Toolkit/FileUtil/FileSystem.html#method_pathModeInfo", "name": "Toolkit\\FileUtil\\FileSystem::pathModeInfo", "doc": ""\u6587\u4ef6\u6216\u76ee\u5f55\u6743\u9650\u68c0\u67e5\u51fd\u6570""},
+
+ {"type": "Class", "fromName": "Toolkit\\FileUtil", "fromLink": "Toolkit/FileUtil.html", "link": "Toolkit/FileUtil/ModifyWatcher.html", "name": "Toolkit\\FileUtil\\ModifyWatcher", "doc": ""Class FilesWatcher - Check Dir's files modified by md5_file()""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ModifyWatcher", "fromLink": "Toolkit/FileUtil/ModifyWatcher.html", "link": "Toolkit/FileUtil/ModifyWatcher.html#method___construct", "name": "Toolkit\\FileUtil\\ModifyWatcher::__construct", "doc": ""ModifyWatcher constructor.""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ModifyWatcher", "fromLink": "Toolkit/FileUtil/ModifyWatcher.html", "link": "Toolkit/FileUtil/ModifyWatcher.html#method_setIdFile", "name": "Toolkit\\FileUtil\\ModifyWatcher::setIdFile", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ModifyWatcher", "fromLink": "Toolkit/FileUtil/ModifyWatcher.html", "link": "Toolkit/FileUtil/ModifyWatcher.html#method_name", "name": "Toolkit\\FileUtil\\ModifyWatcher::name", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ModifyWatcher", "fromLink": "Toolkit/FileUtil/ModifyWatcher.html", "link": "Toolkit/FileUtil/ModifyWatcher.html#method_notName", "name": "Toolkit\\FileUtil\\ModifyWatcher::notName", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ModifyWatcher", "fromLink": "Toolkit/FileUtil/ModifyWatcher.html", "link": "Toolkit/FileUtil/ModifyWatcher.html#method_exclude", "name": "Toolkit\\FileUtil\\ModifyWatcher::exclude", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ModifyWatcher", "fromLink": "Toolkit/FileUtil/ModifyWatcher.html", "link": "Toolkit/FileUtil/ModifyWatcher.html#method_ignoreDotDirs", "name": "Toolkit\\FileUtil\\ModifyWatcher::ignoreDotDirs", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ModifyWatcher", "fromLink": "Toolkit/FileUtil/ModifyWatcher.html", "link": "Toolkit/FileUtil/ModifyWatcher.html#method_ignoreDotFiles", "name": "Toolkit\\FileUtil\\ModifyWatcher::ignoreDotFiles", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ModifyWatcher", "fromLink": "Toolkit/FileUtil/ModifyWatcher.html", "link": "Toolkit/FileUtil/ModifyWatcher.html#method_watch", "name": "Toolkit\\FileUtil\\ModifyWatcher::watch", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ModifyWatcher", "fromLink": "Toolkit/FileUtil/ModifyWatcher.html", "link": "Toolkit/FileUtil/ModifyWatcher.html#method_watchDir", "name": "Toolkit\\FileUtil\\ModifyWatcher::watchDir", "doc": ""alias of the watch()""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ModifyWatcher", "fromLink": "Toolkit/FileUtil/ModifyWatcher.html", "link": "Toolkit/FileUtil/ModifyWatcher.html#method_isModified", "name": "Toolkit\\FileUtil\\ModifyWatcher::isModified", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ModifyWatcher", "fromLink": "Toolkit/FileUtil/ModifyWatcher.html", "link": "Toolkit/FileUtil/ModifyWatcher.html#method_isChanged", "name": "Toolkit\\FileUtil\\ModifyWatcher::isChanged", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ModifyWatcher", "fromLink": "Toolkit/FileUtil/ModifyWatcher.html", "link": "Toolkit/FileUtil/ModifyWatcher.html#method_getMd5ByIdFile", "name": "Toolkit\\FileUtil\\ModifyWatcher::getMd5ByIdFile", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ModifyWatcher", "fromLink": "Toolkit/FileUtil/ModifyWatcher.html", "link": "Toolkit/FileUtil/ModifyWatcher.html#method_calcMd5Hash", "name": "Toolkit\\FileUtil\\ModifyWatcher::calcMd5Hash", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ModifyWatcher", "fromLink": "Toolkit/FileUtil/ModifyWatcher.html", "link": "Toolkit/FileUtil/ModifyWatcher.html#method_getIdFile", "name": "Toolkit\\FileUtil\\ModifyWatcher::getIdFile", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ModifyWatcher", "fromLink": "Toolkit/FileUtil/ModifyWatcher.html", "link": "Toolkit/FileUtil/ModifyWatcher.html#method_getWatchDir", "name": "Toolkit\\FileUtil\\ModifyWatcher::getWatchDir", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ModifyWatcher", "fromLink": "Toolkit/FileUtil/ModifyWatcher.html", "link": "Toolkit/FileUtil/ModifyWatcher.html#method_getDirMd5", "name": "Toolkit\\FileUtil\\ModifyWatcher::getDirMd5", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ModifyWatcher", "fromLink": "Toolkit/FileUtil/ModifyWatcher.html", "link": "Toolkit/FileUtil/ModifyWatcher.html#method_getFileCounter", "name": "Toolkit\\FileUtil\\ModifyWatcher::getFileCounter", "doc": """"},
+
+ {"type": "Trait", "fromName": "Toolkit\\FileUtil", "fromLink": "Toolkit/FileUtil.html", "link": "Toolkit/FileUtil/ReadTrait.html", "name": "Toolkit\\FileUtil\\ReadTrait", "doc": ""Class Read""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ReadTrait", "fromLink": "Toolkit/FileUtil/ReadTrait.html", "link": "Toolkit/FileUtil/ReadTrait.html#method_load", "name": "Toolkit\\FileUtil\\ReadTrait::load", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ReadTrait", "fromLink": "Toolkit/FileUtil/ReadTrait.html", "link": "Toolkit/FileUtil/ReadTrait.html#method_loadPhp", "name": "Toolkit\\FileUtil\\ReadTrait::loadPhp", "doc": ""load array data form file.""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ReadTrait", "fromLink": "Toolkit/FileUtil/ReadTrait.html", "link": "Toolkit/FileUtil/ReadTrait.html#method_loadJson", "name": "Toolkit\\FileUtil\\ReadTrait::loadJson", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ReadTrait", "fromLink": "Toolkit/FileUtil/ReadTrait.html", "link": "Toolkit/FileUtil/ReadTrait.html#method_loadIni", "name": "Toolkit\\FileUtil\\ReadTrait::loadIni", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ReadTrait", "fromLink": "Toolkit/FileUtil/ReadTrait.html", "link": "Toolkit/FileUtil/ReadTrait.html#method_loadYml", "name": "Toolkit\\FileUtil\\ReadTrait::loadYml", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ReadTrait", "fromLink": "Toolkit/FileUtil/ReadTrait.html", "link": "Toolkit/FileUtil/ReadTrait.html#method_readAllLine", "name": "Toolkit\\FileUtil\\ReadTrait::readAllLine", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ReadTrait", "fromLink": "Toolkit/FileUtil/ReadTrait.html", "link": "Toolkit/FileUtil/ReadTrait.html#method_readLines", "name": "Toolkit\\FileUtil\\ReadTrait::readLines", "doc": ""getLines \u83b7\u53d6\u6587\u4ef6\u4e00\u5b9a\u8303\u56f4\u5185\u7684\u5185\u5bb9""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ReadTrait", "fromLink": "Toolkit/FileUtil/ReadTrait.html", "link": "Toolkit/FileUtil/ReadTrait.html#method_readSymmetry", "name": "Toolkit\\FileUtil\\ReadTrait::readSymmetry", "doc": ""symmetry \u5f97\u5230\u5f53\u524d\u884c\u5bf9\u79f0\u4e0a\u4e0b\u51e0($lineNum)\u884c\u7684\u5185\u5bb9""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ReadTrait", "fromLink": "Toolkit/FileUtil/ReadTrait.html", "link": "Toolkit/FileUtil/ReadTrait.html#method_readRangeLines", "name": "Toolkit\\FileUtil\\ReadTrait::readRangeLines", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ReadTrait", "fromLink": "Toolkit/FileUtil/ReadTrait.html", "link": "Toolkit/FileUtil/ReadTrait.html#method_getLines5u3d", "name": "Toolkit\\FileUtil\\ReadTrait::getLines5u3d", "doc": ""\u5f97\u5230\u57fa\u51c6\u884c\u6570\u4e0a5\u884c\u4e0b3\u884c\u7684\u5185\u5bb9\uff0c lines up and down""},
+ {"type": "Method", "fromName": "Toolkit\\FileUtil\\ReadTrait", "fromLink": "Toolkit/FileUtil/ReadTrait.html", "link": "Toolkit/FileUtil/ReadTrait.html#method_tail", "name": "Toolkit\\FileUtil\\ReadTrait::tail", "doc": ""\u8bfb\u53d6\u6587\u4ef6\u7684\u6700\u540e\u51e0\u884c\uff08\u652f\u6301\u5927\u6587\u4ef6\u8bfb\u53d6\uff09""},
+
+ {"type": "Class", "fromName": "Toolkit\\ObjUtil\\Exception", "fromLink": "Toolkit/ObjUtil/Exception.html", "link": "Toolkit/ObjUtil/Exception/GetPropertyException.html", "name": "Toolkit\\ObjUtil\\Exception\\GetPropertyException", "doc": ""Class GetPropertyException""},
+
+ {"type": "Class", "fromName": "Toolkit\\ObjUtil\\Exception", "fromLink": "Toolkit/ObjUtil/Exception.html", "link": "Toolkit/ObjUtil/Exception/PropertyException.html", "name": "Toolkit\\ObjUtil\\Exception\\PropertyException", "doc": ""Class PropertyException""},
+
+ {"type": "Class", "fromName": "Toolkit\\ObjUtil\\Exception", "fromLink": "Toolkit/ObjUtil/Exception.html", "link": "Toolkit/ObjUtil/Exception/SetPropertyException.html", "name": "Toolkit\\ObjUtil\\Exception\\SetPropertyException", "doc": ""Class SetPropertyException""},
+
+ {"type": "Class", "fromName": "Toolkit\\ObjUtil", "fromLink": "Toolkit/ObjUtil.html", "link": "Toolkit/ObjUtil/Obj.html", "name": "Toolkit\\ObjUtil\\Obj", "doc": ""Class Obj\n alias of the ObjectHelper""},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Obj", "fromLink": "Toolkit/ObjUtil/Obj.html", "link": "Toolkit/ObjUtil/Obj.html#method_singleton", "name": "Toolkit\\ObjUtil\\Obj::singleton", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Obj", "fromLink": "Toolkit/ObjUtil/Obj.html", "link": "Toolkit/ObjUtil/Obj.html#method_factory", "name": "Toolkit\\ObjUtil\\Obj::factory", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Obj", "fromLink": "Toolkit/ObjUtil/Obj.html", "link": "Toolkit/ObjUtil/Obj.html#method_isArrayable", "name": "Toolkit\\ObjUtil\\Obj::isArrayable", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\ObjUtil", "fromLink": "Toolkit/ObjUtil.html", "link": "Toolkit/ObjUtil/ObjectHelper.html", "name": "Toolkit\\ObjUtil\\ObjectHelper", "doc": ""Class ObjectHelper""},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\ObjectHelper", "fromLink": "Toolkit/ObjUtil/ObjectHelper.html", "link": "Toolkit/ObjUtil/ObjectHelper.html#method_smartConfigure", "name": "Toolkit\\ObjUtil\\ObjectHelper::smartConfigure", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\ObjectHelper", "fromLink": "Toolkit/ObjUtil/ObjectHelper.html", "link": "Toolkit/ObjUtil/ObjectHelper.html#method_init", "name": "Toolkit\\ObjUtil\\ObjectHelper::init", "doc": ""\u7ed9\u5bf9\u8c61\u8bbe\u7f6e\u5c5e\u6027\u503c\n- \u4f1a\u5148\u5c1d\u8bd5\u7528 setter \u65b9\u6cd5\u8bbe\u7f6e\u5c5e\u6027\n- \u518d\u5c1d\u8bd5\u76f4\u63a5\u8bbe\u7f6e\u5c5e\u6027""},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\ObjectHelper", "fromLink": "Toolkit/ObjUtil/ObjectHelper.html", "link": "Toolkit/ObjUtil/ObjectHelper.html#method_configure", "name": "Toolkit\\ObjUtil\\ObjectHelper::configure", "doc": ""\u7ed9\u5bf9\u8c61\u8bbe\u7f6e\u5c5e\u6027\u503c""},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\ObjectHelper", "fromLink": "Toolkit/ObjUtil/ObjectHelper.html", "link": "Toolkit/ObjUtil/ObjectHelper.html#method_setAttrs", "name": "Toolkit\\ObjUtil\\ObjectHelper::setAttrs", "doc": ""\u7ed9\u5bf9\u8c61\u8bbe\u7f6e\u5c5e\u6027\u503c""},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\ObjectHelper", "fromLink": "Toolkit/ObjUtil/ObjectHelper.html", "link": "Toolkit/ObjUtil/ObjectHelper.html#method_encode", "name": "Toolkit\\ObjUtil\\ObjectHelper::encode", "doc": ""\u5b9a\u4e49\u4e00\u4e2a\u7528\u6765\u5e8f\u5217\u5316\u6570\u636e\u7684\u51fd\u6570""},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\ObjectHelper", "fromLink": "Toolkit/ObjUtil/ObjectHelper.html", "link": "Toolkit/ObjUtil/ObjectHelper.html#method_decode", "name": "Toolkit\\ObjUtil\\ObjectHelper::decode", "doc": ""\u53cd\u5e8f\u5217\u5316""},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\ObjectHelper", "fromLink": "Toolkit/ObjUtil/ObjectHelper.html", "link": "Toolkit/ObjUtil/ObjectHelper.html#method_toArray", "name": "Toolkit\\ObjUtil\\ObjectHelper::toArray", "doc": ""php\u5bf9\u8c61\u8f6c\u6362\u6210\u4e3a\u6570\u7ec4""},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\ObjectHelper", "fromLink": "Toolkit/ObjUtil/ObjectHelper.html", "link": "Toolkit/ObjUtil/ObjectHelper.html#method_hash", "name": "Toolkit\\ObjUtil\\ObjectHelper::hash", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\ObjectHelper", "fromLink": "Toolkit/ObjUtil/ObjectHelper.html", "link": "Toolkit/ObjUtil/ObjectHelper.html#method_getMethodArgs", "name": "Toolkit\\ObjUtil\\ObjectHelper::getMethodArgs", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\ObjectHelper", "fromLink": "Toolkit/ObjUtil/ObjectHelper.html", "link": "Toolkit/ObjUtil/ObjectHelper.html#method_create", "name": "Toolkit\\ObjUtil\\ObjectHelper::create", "doc": ""\u4ece\u7c7b\u540d\u521b\u5efa\u670d\u52a1\u5b9e\u4f8b\u5bf9\u8c61\uff0c\u4f1a\u5c3d\u53ef\u80fd\u81ea\u52a8\u8865\u5b8c\u6784\u9020\u51fd\u6570\u4f9d\u8d56""},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\ObjectHelper", "fromLink": "Toolkit/ObjUtil/ObjectHelper.html", "link": "Toolkit/ObjUtil/ObjectHelper.html#method_smartCreate", "name": "Toolkit\\ObjUtil\\ObjectHelper::smartCreate", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\ObjUtil", "fromLink": "Toolkit/ObjUtil.html", "link": "Toolkit/ObjUtil/ObjectStorage.html", "name": "Toolkit\\ObjUtil\\ObjectStorage", "doc": ""Class ObjectStorage\n - \u5141\u8bb8\u4f7f\u7528\u975e\u5bf9\u8c61\u4f5c\u4e3akey\uff0c\u4f1a\u81ea\u52a8\u4f7f\u7528 \\stdClass \u8f6c\u6210\u5bf9\u8c61""},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\ObjectStorage", "fromLink": "Toolkit/ObjUtil/ObjectStorage.html", "link": "Toolkit/ObjUtil/ObjectStorage.html#method_attach", "name": "Toolkit\\ObjUtil\\ObjectStorage::attach", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\ObjectStorage", "fromLink": "Toolkit/ObjUtil/ObjectStorage.html", "link": "Toolkit/ObjUtil/ObjectStorage.html#method_detach", "name": "Toolkit\\ObjUtil\\ObjectStorage::detach", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\ObjectStorage", "fromLink": "Toolkit/ObjUtil/ObjectStorage.html", "link": "Toolkit/ObjUtil/ObjectStorage.html#method_contains", "name": "Toolkit\\ObjUtil\\ObjectStorage::contains", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\ObjectStorage", "fromLink": "Toolkit/ObjUtil/ObjectStorage.html", "link": "Toolkit/ObjUtil/ObjectStorage.html#method_has", "name": "Toolkit\\ObjUtil\\ObjectStorage::has", "doc": """"},
+
+ {"type": "Trait", "fromName": "Toolkit\\ObjUtil\\Traits", "fromLink": "Toolkit/ObjUtil/Traits.html", "link": "Toolkit/ObjUtil/Traits/ArrayAccessByGetterSetterTrait.html", "name": "Toolkit\\ObjUtil\\Traits\\ArrayAccessByGetterSetterTrait", "doc": ""Class TraitArrayAccess""},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Traits\\ArrayAccessByGetterSetterTrait", "fromLink": "Toolkit/ObjUtil/Traits/ArrayAccessByGetterSetterTrait.html", "link": "Toolkit/ObjUtil/Traits/ArrayAccessByGetterSetterTrait.html#method_offsetExists", "name": "Toolkit\\ObjUtil\\Traits\\ArrayAccessByGetterSetterTrait::offsetExists", "doc": ""Checks whether an offset exists in the iterator.""},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Traits\\ArrayAccessByGetterSetterTrait", "fromLink": "Toolkit/ObjUtil/Traits/ArrayAccessByGetterSetterTrait.html", "link": "Toolkit/ObjUtil/Traits/ArrayAccessByGetterSetterTrait.html#method_offsetGet", "name": "Toolkit\\ObjUtil\\Traits\\ArrayAccessByGetterSetterTrait::offsetGet", "doc": ""Gets an offset in the iterator.""},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Traits\\ArrayAccessByGetterSetterTrait", "fromLink": "Toolkit/ObjUtil/Traits/ArrayAccessByGetterSetterTrait.html", "link": "Toolkit/ObjUtil/Traits/ArrayAccessByGetterSetterTrait.html#method_offsetSet", "name": "Toolkit\\ObjUtil\\Traits\\ArrayAccessByGetterSetterTrait::offsetSet", "doc": ""Sets an offset in the iterator.""},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Traits\\ArrayAccessByGetterSetterTrait", "fromLink": "Toolkit/ObjUtil/Traits/ArrayAccessByGetterSetterTrait.html", "link": "Toolkit/ObjUtil/Traits/ArrayAccessByGetterSetterTrait.html#method_offsetUnset", "name": "Toolkit\\ObjUtil\\Traits\\ArrayAccessByGetterSetterTrait::offsetUnset", "doc": ""Unset an offset in the iterator.""},
+
+ {"type": "Trait", "fromName": "Toolkit\\ObjUtil\\Traits", "fromLink": "Toolkit/ObjUtil/Traits.html", "link": "Toolkit/ObjUtil/Traits/ArrayAccessByPropertyTrait.html", "name": "Toolkit\\ObjUtil\\Traits\\ArrayAccessByPropertyTrait", "doc": ""Class TraitArrayAccess""},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Traits\\ArrayAccessByPropertyTrait", "fromLink": "Toolkit/ObjUtil/Traits/ArrayAccessByPropertyTrait.html", "link": "Toolkit/ObjUtil/Traits/ArrayAccessByPropertyTrait.html#method_offsetExists", "name": "Toolkit\\ObjUtil\\Traits\\ArrayAccessByPropertyTrait::offsetExists", "doc": ""Checks whether an offset exists in the iterator.""},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Traits\\ArrayAccessByPropertyTrait", "fromLink": "Toolkit/ObjUtil/Traits/ArrayAccessByPropertyTrait.html", "link": "Toolkit/ObjUtil/Traits/ArrayAccessByPropertyTrait.html#method_offsetGet", "name": "Toolkit\\ObjUtil\\Traits\\ArrayAccessByPropertyTrait::offsetGet", "doc": ""Gets an offset in the iterator.""},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Traits\\ArrayAccessByPropertyTrait", "fromLink": "Toolkit/ObjUtil/Traits/ArrayAccessByPropertyTrait.html", "link": "Toolkit/ObjUtil/Traits/ArrayAccessByPropertyTrait.html#method_offsetSet", "name": "Toolkit\\ObjUtil\\Traits\\ArrayAccessByPropertyTrait::offsetSet", "doc": ""Sets an offset in the iterator.""},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Traits\\ArrayAccessByPropertyTrait", "fromLink": "Toolkit/ObjUtil/Traits/ArrayAccessByPropertyTrait.html", "link": "Toolkit/ObjUtil/Traits/ArrayAccessByPropertyTrait.html#method_offsetUnset", "name": "Toolkit\\ObjUtil\\Traits\\ArrayAccessByPropertyTrait::offsetUnset", "doc": ""Unset an offset in the iterator.""},
+
+ {"type": "Trait", "fromName": "Toolkit\\ObjUtil\\Traits", "fromLink": "Toolkit/ObjUtil/Traits.html", "link": "Toolkit/ObjUtil/Traits/ObjectPoolTrait.html", "name": "Toolkit\\ObjUtil\\Traits\\ObjectPoolTrait", "doc": ""Class ObjectPoolTrait""},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Traits\\ObjectPoolTrait", "fromLink": "Toolkit/ObjUtil/Traits/ObjectPoolTrait.html", "link": "Toolkit/ObjUtil/Traits/ObjectPoolTrait.html#method_get", "name": "Toolkit\\ObjUtil\\Traits\\ObjectPoolTrait::get", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Traits\\ObjectPoolTrait", "fromLink": "Toolkit/ObjUtil/Traits/ObjectPoolTrait.html", "link": "Toolkit/ObjUtil/Traits/ObjectPoolTrait.html#method_put", "name": "Toolkit\\ObjUtil\\Traits\\ObjectPoolTrait::put", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Traits\\ObjectPoolTrait", "fromLink": "Toolkit/ObjUtil/Traits/ObjectPoolTrait.html", "link": "Toolkit/ObjUtil/Traits/ObjectPoolTrait.html#method_use", "name": "Toolkit\\ObjUtil\\Traits\\ObjectPoolTrait::use", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Traits\\ObjectPoolTrait", "fromLink": "Toolkit/ObjUtil/Traits/ObjectPoolTrait.html", "link": "Toolkit/ObjUtil/Traits/ObjectPoolTrait.html#method_getStack", "name": "Toolkit\\ObjUtil\\Traits\\ObjectPoolTrait::getStack", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Traits\\ObjectPoolTrait", "fromLink": "Toolkit/ObjUtil/Traits/ObjectPoolTrait.html", "link": "Toolkit/ObjUtil/Traits/ObjectPoolTrait.html#method_count", "name": "Toolkit\\ObjUtil\\Traits\\ObjectPoolTrait::count", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Traits\\ObjectPoolTrait", "fromLink": "Toolkit/ObjUtil/Traits/ObjectPoolTrait.html", "link": "Toolkit/ObjUtil/Traits/ObjectPoolTrait.html#method_destroy", "name": "Toolkit\\ObjUtil\\Traits\\ObjectPoolTrait::destroy", "doc": """"},
+
+ {"type": "Trait", "fromName": "Toolkit\\ObjUtil\\Traits", "fromLink": "Toolkit/ObjUtil/Traits.html", "link": "Toolkit/ObjUtil/Traits/PropertyAccessByGetterSetterTrait.html", "name": "Toolkit\\ObjUtil\\Traits\\PropertyAccessByGetterSetterTrait", "doc": ""trait PropertyAccessByGetterSetterTrait""},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Traits\\PropertyAccessByGetterSetterTrait", "fromLink": "Toolkit/ObjUtil/Traits/PropertyAccessByGetterSetterTrait.html", "link": "Toolkit/ObjUtil/Traits/PropertyAccessByGetterSetterTrait.html#method___isset", "name": "Toolkit\\ObjUtil\\Traits\\PropertyAccessByGetterSetterTrait::__isset", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Traits\\PropertyAccessByGetterSetterTrait", "fromLink": "Toolkit/ObjUtil/Traits/PropertyAccessByGetterSetterTrait.html", "link": "Toolkit/ObjUtil/Traits/PropertyAccessByGetterSetterTrait.html#method___unset", "name": "Toolkit\\ObjUtil\\Traits\\PropertyAccessByGetterSetterTrait::__unset", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Traits\\PropertyAccessByGetterSetterTrait", "fromLink": "Toolkit/ObjUtil/Traits/PropertyAccessByGetterSetterTrait.html", "link": "Toolkit/ObjUtil/Traits/PropertyAccessByGetterSetterTrait.html#method___set", "name": "Toolkit\\ObjUtil\\Traits\\PropertyAccessByGetterSetterTrait::__set", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Traits\\PropertyAccessByGetterSetterTrait", "fromLink": "Toolkit/ObjUtil/Traits/PropertyAccessByGetterSetterTrait.html", "link": "Toolkit/ObjUtil/Traits/PropertyAccessByGetterSetterTrait.html#method___get", "name": "Toolkit\\ObjUtil\\Traits\\PropertyAccessByGetterSetterTrait::__get", "doc": """"},
+
+ {"type": "Trait", "fromName": "Toolkit\\ObjUtil\\Traits", "fromLink": "Toolkit/ObjUtil/Traits.html", "link": "Toolkit/ObjUtil/Traits/SingletonTrait.html", "name": "Toolkit\\ObjUtil\\Traits\\SingletonTrait", "doc": ""Trait SingletonTrait""},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Traits\\SingletonTrait", "fromLink": "Toolkit/ObjUtil/Traits/SingletonTrait.html", "link": "Toolkit/ObjUtil/Traits/SingletonTrait.html#method_own", "name": "Toolkit\\ObjUtil\\Traits\\SingletonTrait::own", "doc": """"},
+
+ {"type": "Trait", "fromName": "Toolkit\\ObjUtil\\Traits", "fromLink": "Toolkit/ObjUtil/Traits.html", "link": "Toolkit/ObjUtil/Traits/StdObjectTrait.html", "name": "Toolkit\\ObjUtil\\Traits\\StdObjectTrait", "doc": ""Class StdObjectTrait""},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Traits\\StdObjectTrait", "fromLink": "Toolkit/ObjUtil/Traits/StdObjectTrait.html", "link": "Toolkit/ObjUtil/Traits/StdObjectTrait.html#method_fullName", "name": "Toolkit\\ObjUtil\\Traits\\StdObjectTrait::fullName", "doc": ""get called class full name""},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Traits\\StdObjectTrait", "fromLink": "Toolkit/ObjUtil/Traits/StdObjectTrait.html", "link": "Toolkit/ObjUtil/Traits/StdObjectTrait.html#method_spaceName", "name": "Toolkit\\ObjUtil\\Traits\\StdObjectTrait::spaceName", "doc": ""get called class namespace""},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Traits\\StdObjectTrait", "fromLink": "Toolkit/ObjUtil/Traits/StdObjectTrait.html", "link": "Toolkit/ObjUtil/Traits/StdObjectTrait.html#method_className", "name": "Toolkit\\ObjUtil\\Traits\\StdObjectTrait::className", "doc": ""get called class name""},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Traits\\StdObjectTrait", "fromLink": "Toolkit/ObjUtil/Traits/StdObjectTrait.html", "link": "Toolkit/ObjUtil/Traits/StdObjectTrait.html#method___construct", "name": "Toolkit\\ObjUtil\\Traits\\StdObjectTrait::__construct", "doc": ""StdObject constructor.""},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Traits\\StdObjectTrait", "fromLink": "Toolkit/ObjUtil/Traits/StdObjectTrait.html", "link": "Toolkit/ObjUtil/Traits/StdObjectTrait.html#method_init", "name": "Toolkit\\ObjUtil\\Traits\\StdObjectTrait::init", "doc": ""init""},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Traits\\StdObjectTrait", "fromLink": "Toolkit/ObjUtil/Traits/StdObjectTrait.html", "link": "Toolkit/ObjUtil/Traits/StdObjectTrait.html#method___call", "name": "Toolkit\\ObjUtil\\Traits\\StdObjectTrait::__call", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\ObjUtil\\Traits\\StdObjectTrait", "fromLink": "Toolkit/ObjUtil/Traits/StdObjectTrait.html", "link": "Toolkit/ObjUtil/Traits/StdObjectTrait.html#method___callStatic", "name": "Toolkit\\ObjUtil\\Traits\\StdObjectTrait::__callStatic", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\PhpUtil", "fromLink": "Toolkit/PhpUtil.html", "link": "Toolkit/PhpUtil/AutoLoader.html", "name": "Toolkit\\PhpUtil\\AutoLoader", "doc": ""Class AutoLoader""},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\AutoLoader", "fromLink": "Toolkit/PhpUtil/AutoLoader.html", "link": "Toolkit/PhpUtil/AutoLoader.html#method_getLoader", "name": "Toolkit\\PhpUtil\\AutoLoader::getLoader", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\AutoLoader", "fromLink": "Toolkit/PhpUtil/AutoLoader.html", "link": "Toolkit/PhpUtil/AutoLoader.html#method_getFiles", "name": "Toolkit\\PhpUtil\\AutoLoader::getFiles", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\AutoLoader", "fromLink": "Toolkit/PhpUtil/AutoLoader.html", "link": "Toolkit/PhpUtil/AutoLoader.html#method_setFiles", "name": "Toolkit\\PhpUtil\\AutoLoader::setFiles", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\AutoLoader", "fromLink": "Toolkit/PhpUtil/AutoLoader.html", "link": "Toolkit/PhpUtil/AutoLoader.html#method_addFiles", "name": "Toolkit\\PhpUtil\\AutoLoader::addFiles", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\AutoLoader", "fromLink": "Toolkit/PhpUtil/AutoLoader.html", "link": "Toolkit/PhpUtil/AutoLoader.html#method_addPsr0", "name": "Toolkit\\PhpUtil\\AutoLoader::addPsr0", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\AutoLoader", "fromLink": "Toolkit/PhpUtil/AutoLoader.html", "link": "Toolkit/PhpUtil/AutoLoader.html#method_addPsr0Map", "name": "Toolkit\\PhpUtil\\AutoLoader::addPsr0Map", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\AutoLoader", "fromLink": "Toolkit/PhpUtil/AutoLoader.html", "link": "Toolkit/PhpUtil/AutoLoader.html#method_addPsr4", "name": "Toolkit\\PhpUtil\\AutoLoader::addPsr4", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\AutoLoader", "fromLink": "Toolkit/PhpUtil/AutoLoader.html", "link": "Toolkit/PhpUtil/AutoLoader.html#method_addPsr4Map", "name": "Toolkit\\PhpUtil\\AutoLoader::addPsr4Map", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\AutoLoader", "fromLink": "Toolkit/PhpUtil/AutoLoader.html", "link": "Toolkit/PhpUtil/AutoLoader.html#method_getPsr4Map", "name": "Toolkit\\PhpUtil\\AutoLoader::getPsr4Map", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\AutoLoader", "fromLink": "Toolkit/PhpUtil/AutoLoader.html", "link": "Toolkit/PhpUtil/AutoLoader.html#method_setPsr4Map", "name": "Toolkit\\PhpUtil\\AutoLoader::setPsr4Map", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\AutoLoader", "fromLink": "Toolkit/PhpUtil/AutoLoader.html", "link": "Toolkit/PhpUtil/AutoLoader.html#method_getClassMap", "name": "Toolkit\\PhpUtil\\AutoLoader::getClassMap", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\AutoLoader", "fromLink": "Toolkit/PhpUtil/AutoLoader.html", "link": "Toolkit/PhpUtil/AutoLoader.html#method_setClassMap", "name": "Toolkit\\PhpUtil\\AutoLoader::setClassMap", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\AutoLoader", "fromLink": "Toolkit/PhpUtil/AutoLoader.html", "link": "Toolkit/PhpUtil/AutoLoader.html#method_addClassMap", "name": "Toolkit\\PhpUtil\\AutoLoader::addClassMap", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\AutoLoader", "fromLink": "Toolkit/PhpUtil/AutoLoader.html", "link": "Toolkit/PhpUtil/AutoLoader.html#method_register", "name": "Toolkit\\PhpUtil\\AutoLoader::register", "doc": ""Registers this instance as an autoloader.""},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\AutoLoader", "fromLink": "Toolkit/PhpUtil/AutoLoader.html", "link": "Toolkit/PhpUtil/AutoLoader.html#method_unRegister", "name": "Toolkit\\PhpUtil\\AutoLoader::unRegister", "doc": ""Un-registers this instance as an autoloader.""},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\AutoLoader", "fromLink": "Toolkit/PhpUtil/AutoLoader.html", "link": "Toolkit/PhpUtil/AutoLoader.html#method_loadClass", "name": "Toolkit\\PhpUtil\\AutoLoader::loadClass", "doc": ""Loads the given class or interface.""},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\AutoLoader", "fromLink": "Toolkit/PhpUtil/AutoLoader.html", "link": "Toolkit/PhpUtil/AutoLoader.html#method_findFile", "name": "Toolkit\\PhpUtil\\AutoLoader::findFile", "doc": ""Finds the path to the file where the class is defined.""},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\AutoLoader", "fromLink": "Toolkit/PhpUtil/AutoLoader.html", "link": "Toolkit/PhpUtil/AutoLoader.html#method_getMissingClasses", "name": "Toolkit\\PhpUtil\\AutoLoader::getMissingClasses", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\PhpUtil", "fromLink": "Toolkit/PhpUtil.html", "link": "Toolkit/PhpUtil/Php.html", "name": "Toolkit\\PhpUtil\\Php", "doc": ""Class Php - alias of the class PhpHelper""},
+
+ {"type": "Class", "fromName": "Toolkit\\PhpUtil", "fromLink": "Toolkit/PhpUtil.html", "link": "Toolkit/PhpUtil/PhpEnv.html", "name": "Toolkit\\PhpUtil\\PhpEnv", "doc": ""Class PhpEnv""},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpEnv", "fromLink": "Toolkit/PhpUtil/PhpEnv.html", "link": "Toolkit/PhpUtil/PhpEnv.html#method_getVersion", "name": "Toolkit\\PhpUtil\\PhpEnv::getVersion", "doc": ""Get PHP version""},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpEnv", "fromLink": "Toolkit/PhpUtil/PhpEnv.html", "link": "Toolkit/PhpUtil/PhpEnv.html#method_isEmbed", "name": "Toolkit\\PhpUtil\\PhpEnv::isEmbed", "doc": ""isEmbed""},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpEnv", "fromLink": "Toolkit/PhpUtil/PhpEnv.html", "link": "Toolkit/PhpUtil/PhpEnv.html#method_isCgi", "name": "Toolkit\\PhpUtil\\PhpEnv::isCgi", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpEnv", "fromLink": "Toolkit/PhpUtil/PhpEnv.html", "link": "Toolkit/PhpUtil/PhpEnv.html#method_isCli", "name": "Toolkit\\PhpUtil\\PhpEnv::isCli", "doc": ""is Cli""},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpEnv", "fromLink": "Toolkit/PhpUtil/PhpEnv.html", "link": "Toolkit/PhpUtil/PhpEnv.html#method_isBuiltInServer", "name": "Toolkit\\PhpUtil\\PhpEnv::isBuiltInServer", "doc": ""is Build In Server\nrun server use like: <code>php -S 127.0.0.1:8085<\/code>""},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpEnv", "fromLink": "Toolkit/PhpUtil/PhpEnv.html", "link": "Toolkit/PhpUtil/PhpEnv.html#method_isDevServer", "name": "Toolkit\\PhpUtil\\PhpEnv::isDevServer", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpEnv", "fromLink": "Toolkit/PhpUtil/PhpEnv.html", "link": "Toolkit/PhpUtil/PhpEnv.html#method_isWeb", "name": "Toolkit\\PhpUtil\\PhpEnv::isWeb", "doc": ""isWeb""},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpEnv", "fromLink": "Toolkit/PhpUtil/PhpEnv.html", "link": "Toolkit/PhpUtil/PhpEnv.html#method_isHHVM", "name": "Toolkit\\PhpUtil\\PhpEnv::isHHVM", "doc": ""isHHVM""},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpEnv", "fromLink": "Toolkit/PhpUtil/PhpEnv.html", "link": "Toolkit/PhpUtil/PhpEnv.html#method_isPHP", "name": "Toolkit\\PhpUtil\\PhpEnv::isPHP", "doc": ""isPHP""},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpEnv", "fromLink": "Toolkit/PhpUtil/PhpEnv.html", "link": "Toolkit/PhpUtil/PhpEnv.html#method_setStrict", "name": "Toolkit\\PhpUtil\\PhpEnv::setStrict", "doc": ""setStrict""},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpEnv", "fromLink": "Toolkit/PhpUtil/PhpEnv.html", "link": "Toolkit/PhpUtil/PhpEnv.html#method_setMuted", "name": "Toolkit\\PhpUtil\\PhpEnv::setMuted", "doc": ""setMuted""},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpEnv", "fromLink": "Toolkit/PhpUtil/PhpEnv.html", "link": "Toolkit/PhpUtil/PhpEnv.html#method_hasExtension", "name": "Toolkit\\PhpUtil\\PhpEnv::hasExtension", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpEnv", "fromLink": "Toolkit/PhpUtil/PhpEnv.html", "link": "Toolkit/PhpUtil/PhpEnv.html#method_hasXDebug", "name": "Toolkit\\PhpUtil\\PhpEnv::hasXDebug", "doc": ""Returns true when the runtime used is PHP and Xdebug is loaded.""},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpEnv", "fromLink": "Toolkit/PhpUtil/PhpEnv.html", "link": "Toolkit/PhpUtil/PhpEnv.html#method_extIsLoaded", "name": "Toolkit\\PhpUtil\\PhpEnv::extIsLoaded", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpEnv", "fromLink": "Toolkit/PhpUtil/PhpEnv.html", "link": "Toolkit/PhpUtil/PhpEnv.html#method_checkExtList", "name": "Toolkit\\PhpUtil\\PhpEnv::checkExtList", "doc": ""\u68c0\u67e5\u591a\u4e2a\u6269\u5c55\u52a0\u8f7d\u60c5\u51b5""},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpEnv", "fromLink": "Toolkit/PhpUtil/PhpEnv.html", "link": "Toolkit/PhpUtil/PhpEnv.html#method_getLoadedExtension", "name": "Toolkit\\PhpUtil\\PhpEnv::getLoadedExtension", "doc": ""\u8fd4\u56de\u52a0\u8f7d\u7684\u6269\u5c55""},
+
+ {"type": "Class", "fromName": "Toolkit\\PhpUtil", "fromLink": "Toolkit/PhpUtil.html", "link": "Toolkit/PhpUtil/PhpError.html", "name": "Toolkit\\PhpUtil\\PhpError", "doc": ""Class PhpError""},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpError", "fromLink": "Toolkit/PhpUtil/PhpError.html", "link": "Toolkit/PhpUtil/PhpError.html#method_toArray", "name": "Toolkit\\PhpUtil\\PhpError::toArray", "doc": ""$lastError = error_get_last();""},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpError", "fromLink": "Toolkit/PhpUtil/PhpError.html", "link": "Toolkit/PhpUtil/PhpError.html#method_codeToString", "name": "Toolkit\\PhpUtil\\PhpError::codeToString", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\PhpUtil", "fromLink": "Toolkit/PhpUtil.html", "link": "Toolkit/PhpUtil/PhpException.html", "name": "Toolkit\\PhpUtil\\PhpException", "doc": ""Class PhpException""},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpException", "fromLink": "Toolkit/PhpUtil/PhpException.html", "link": "Toolkit/PhpUtil/PhpException.html#method_toString", "name": "Toolkit\\PhpUtil\\PhpException::toString", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpException", "fromLink": "Toolkit/PhpUtil/PhpException.html", "link": "Toolkit/PhpUtil/PhpException.html#method_toHtml", "name": "Toolkit\\PhpUtil\\PhpException::toHtml", "doc": ""Converts an exception into a simple string.""},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpException", "fromLink": "Toolkit/PhpUtil/PhpException.html", "link": "Toolkit/PhpUtil/PhpException.html#method_toArray", "name": "Toolkit\\PhpUtil\\PhpException::toArray", "doc": ""Converts an exception into a simple array.""},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpException", "fromLink": "Toolkit/PhpUtil/PhpException.html", "link": "Toolkit/PhpUtil/PhpException.html#method_toJson", "name": "Toolkit\\PhpUtil\\PhpException::toJson", "doc": ""Converts an exception into a json string.""},
+
+ {"type": "Class", "fromName": "Toolkit\\PhpUtil", "fromLink": "Toolkit/PhpUtil.html", "link": "Toolkit/PhpUtil/PhpHelper.html", "name": "Toolkit\\PhpUtil\\PhpHelper", "doc": ""Class PhpHelper""},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpHelper", "fromLink": "Toolkit/PhpUtil/PhpHelper.html", "link": "Toolkit/PhpUtil/PhpHelper.html#method_call", "name": "Toolkit\\PhpUtil\\PhpHelper::call", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpHelper", "fromLink": "Toolkit/PhpUtil/PhpHelper.html", "link": "Toolkit/PhpUtil/PhpHelper.html#method_callByArray", "name": "Toolkit\\PhpUtil\\PhpHelper::callByArray", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpHelper", "fromLink": "Toolkit/PhpUtil/PhpHelper.html", "link": "Toolkit/PhpUtil/PhpHelper.html#method_runtime", "name": "Toolkit\\PhpUtil\\PhpHelper::runtime", "doc": ""\u83b7\u53d6\u8d44\u6e90\u6d88\u8017""},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpHelper", "fromLink": "Toolkit/PhpUtil/PhpHelper.html", "link": "Toolkit/PhpUtil/PhpHelper.html#method_getMaxUploadSize", "name": "Toolkit\\PhpUtil\\PhpHelper::getMaxUploadSize", "doc": ""\u6839\u636e\u670d\u52a1\u5668\u8bbe\u7f6e\u5f97\u5230\u6587\u4ef6\u4e0a\u4f20\u5927\u5c0f\u7684\u6700\u5927\u503c""},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpHelper", "fromLink": "Toolkit/PhpUtil/PhpHelper.html", "link": "Toolkit/PhpUtil/PhpHelper.html#method_getUserConstants", "name": "Toolkit\\PhpUtil\\PhpHelper::getUserConstants", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpHelper", "fromLink": "Toolkit/PhpUtil/PhpHelper.html", "link": "Toolkit/PhpUtil/PhpHelper.html#method_dumpVars", "name": "Toolkit\\PhpUtil\\PhpHelper::dumpVars", "doc": ""dump vars""},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpHelper", "fromLink": "Toolkit/PhpUtil/PhpHelper.html", "link": "Toolkit/PhpUtil/PhpHelper.html#method_printVars", "name": "Toolkit\\PhpUtil\\PhpHelper::printVars", "doc": ""print vars""},
+ {"type": "Method", "fromName": "Toolkit\\PhpUtil\\PhpHelper", "fromLink": "Toolkit/PhpUtil/PhpHelper.html", "link": "Toolkit/PhpUtil/PhpHelper.html#method_exportVar", "name": "Toolkit\\PhpUtil\\PhpHelper::exportVar", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\StrUtil", "fromLink": "Toolkit/StrUtil.html", "link": "Toolkit/StrUtil/HtmlHelper.html", "name": "Toolkit\\StrUtil\\HtmlHelper", "doc": ""Class HtmlHelper""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\HtmlHelper", "fromLink": "Toolkit/StrUtil/HtmlHelper.html", "link": "Toolkit/StrUtil/HtmlHelper.html#method_encode", "name": "Toolkit\\StrUtil\\HtmlHelper::encode", "doc": ""Encodes special characters into HTML entities.""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\HtmlHelper", "fromLink": "Toolkit/StrUtil/HtmlHelper.html", "link": "Toolkit/StrUtil/HtmlHelper.html#method_decode", "name": "Toolkit\\StrUtil\\HtmlHelper::decode", "doc": ""This is the opposite of {@link encode()}.""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\HtmlHelper", "fromLink": "Toolkit/StrUtil/HtmlHelper.html", "link": "Toolkit/StrUtil/HtmlHelper.html#method_encodeArray", "name": "Toolkit\\StrUtil\\HtmlHelper::encodeArray", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\HtmlHelper", "fromLink": "Toolkit/StrUtil/HtmlHelper.html", "link": "Toolkit/StrUtil/HtmlHelper.html#method_escape", "name": "Toolkit\\StrUtil\\HtmlHelper::escape", "doc": ""html\u4ee3\u7801\u8f6c\u4e49\nhtmlspecialchars \u53ea\u8f6c\u5316\u8fd9\u51e0\u4e2ahtml [ & ' \" < > ] \u4ee3\u7801 --> [ & " ]\uff0c\n\u800c htmlentities \u5374\u4f1a\u8f6c\u5316\u6240\u6709\u7684html\u4ee3\u7801\uff0c\u8fde\u540c\u91cc\u9762\u7684\u5b83\u65e0\u6cd5\u8bc6\u522b\u7684\u4e2d\u6587\u5b57\u7b26\u4e5f\u4f1a\u8f6c\u5316\u3002\n\u4e00\u822c\u4f7f\u7528 htmlspecialchars \u5c31\u8db3\u591f\u4e86\uff0c\u8981\u4f7f\u7528 htmlentities \u65f6\uff0c\u8981\u6ce8\u610f\u4e3a\u7b2c\u4e09\u4e2a\u53c2\u6570\u4f20\u9012\u6b63\u786e\u7684\u7f16\u7801\u3002\n htmlentities() <--> html_entity_decode() \u2014 \u5c06\u7279\u6b8a\u7684 HTML \u5b9e\u4f53\u8f6c\u6362\u56de\u666e\u901a\u5b57\u7b26\n htmlspecialchars() <--> htmlspecialchars_decode() \u2014 \u5c06\u7279\u6b8a\u7684 HTML \u5b9e\u4f53\u8f6c\u6362\u56de\u666e\u901a\u5b57\u7b26\nENT_COMPAT ENT_QUOTES ENT_NOQUOTES ENT_HTML401 ENT_XML1 ENT_XHTML ENT_HTML5""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\HtmlHelper", "fromLink": "Toolkit/StrUtil/HtmlHelper.html", "link": "Toolkit/StrUtil/HtmlHelper.html#method_unescap", "name": "Toolkit\\StrUtil\\HtmlHelper::unescap", "doc": ""\u53bb\u6389html\u8f6c\u4e49""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\HtmlHelper", "fromLink": "Toolkit/StrUtil/HtmlHelper.html", "link": "Toolkit/StrUtil/HtmlHelper.html#method_stripImages", "name": "Toolkit\\StrUtil\\HtmlHelper::stripImages", "doc": ""Strip img-tags from string""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\HtmlHelper", "fromLink": "Toolkit/StrUtil/HtmlHelper.html", "link": "Toolkit/StrUtil/HtmlHelper.html#method_stripIframes", "name": "Toolkit\\StrUtil\\HtmlHelper::stripIframes", "doc": ""Strip iframe-tags from string""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\HtmlHelper", "fromLink": "Toolkit/StrUtil/HtmlHelper.html", "link": "Toolkit/StrUtil/HtmlHelper.html#method_stripScript", "name": "Toolkit\\StrUtil\\HtmlHelper::stripScript", "doc": ""stripScript""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\HtmlHelper", "fromLink": "Toolkit/StrUtil/HtmlHelper.html", "link": "Toolkit/StrUtil/HtmlHelper.html#method_stripStyle", "name": "Toolkit\\StrUtil\\HtmlHelper::stripStyle", "doc": ""stripStyle""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\HtmlHelper", "fromLink": "Toolkit/StrUtil/HtmlHelper.html", "link": "Toolkit/StrUtil/HtmlHelper.html#method_findImages", "name": "Toolkit\\StrUtil\\HtmlHelper::findImages", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\HtmlHelper", "fromLink": "Toolkit/StrUtil/HtmlHelper.html", "link": "Toolkit/StrUtil/HtmlHelper.html#method_minify", "name": "Toolkit\\StrUtil\\HtmlHelper::minify", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\StrUtil", "fromLink": "Toolkit/StrUtil.html", "link": "Toolkit/StrUtil/Json.html", "name": "Toolkit\\StrUtil\\Json", "doc": ""Class Json""},
+
+ {"type": "Class", "fromName": "Toolkit\\StrUtil", "fromLink": "Toolkit/StrUtil.html", "link": "Toolkit/StrUtil/JsonHelper.html", "name": "Toolkit\\StrUtil\\JsonHelper", "doc": ""Class JsonHelper""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\JsonHelper", "fromLink": "Toolkit/StrUtil/JsonHelper.html", "link": "Toolkit/StrUtil/JsonHelper.html#method_encode", "name": "Toolkit\\StrUtil\\JsonHelper::encode", "doc": ""encode data to json""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\JsonHelper", "fromLink": "Toolkit/StrUtil/JsonHelper.html", "link": "Toolkit/StrUtil/JsonHelper.html#method_parse", "name": "Toolkit\\StrUtil\\JsonHelper::parse", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\JsonHelper", "fromLink": "Toolkit/StrUtil/JsonHelper.html", "link": "Toolkit/StrUtil/JsonHelper.html#method_parseFile", "name": "Toolkit\\StrUtil\\JsonHelper::parseFile", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\JsonHelper", "fromLink": "Toolkit/StrUtil/JsonHelper.html", "link": "Toolkit/StrUtil/JsonHelper.html#method_parseString", "name": "Toolkit\\StrUtil\\JsonHelper::parseString", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\JsonHelper", "fromLink": "Toolkit/StrUtil/JsonHelper.html", "link": "Toolkit/StrUtil/JsonHelper.html#method_format", "name": "Toolkit\\StrUtil\\JsonHelper::format", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\JsonHelper", "fromLink": "Toolkit/StrUtil/JsonHelper.html", "link": "Toolkit/StrUtil/JsonHelper.html#method_saveAs", "name": "Toolkit\\StrUtil\\JsonHelper::saveAs", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\StrUtil", "fromLink": "Toolkit/StrUtil.html", "link": "Toolkit/StrUtil/Str.html", "name": "Toolkit\\StrUtil\\Str", "doc": ""Class Str\n alias of the StringHelper""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\Str", "fromLink": "Toolkit/StrUtil/Str.html", "link": "Toolkit/StrUtil/Str.html#method_optional", "name": "Toolkit\\StrUtil\\Str::optional", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\Str", "fromLink": "Toolkit/StrUtil/Str.html", "link": "Toolkit/StrUtil/Str.html#method_contains", "name": "Toolkit\\StrUtil\\Str::contains", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\Str", "fromLink": "Toolkit/StrUtil/Str.html", "link": "Toolkit/StrUtil/Str.html#method_has", "name": "Toolkit\\StrUtil\\Str::has", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\StrUtil", "fromLink": "Toolkit/StrUtil.html", "link": "Toolkit/StrUtil/StrBuffer.html", "name": "Toolkit\\StrUtil\\StrBuffer", "doc": ""Class StrBuffer""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StrBuffer", "fromLink": "Toolkit/StrUtil/StrBuffer.html", "link": "Toolkit/StrUtil/StrBuffer.html#method___construct", "name": "Toolkit\\StrUtil\\StrBuffer::__construct", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StrBuffer", "fromLink": "Toolkit/StrUtil/StrBuffer.html", "link": "Toolkit/StrUtil/StrBuffer.html#method_write", "name": "Toolkit\\StrUtil\\StrBuffer::write", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StrBuffer", "fromLink": "Toolkit/StrUtil/StrBuffer.html", "link": "Toolkit/StrUtil/StrBuffer.html#method_append", "name": "Toolkit\\StrUtil\\StrBuffer::append", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StrBuffer", "fromLink": "Toolkit/StrUtil/StrBuffer.html", "link": "Toolkit/StrUtil/StrBuffer.html#method_prepend", "name": "Toolkit\\StrUtil\\StrBuffer::prepend", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StrBuffer", "fromLink": "Toolkit/StrUtil/StrBuffer.html", "link": "Toolkit/StrUtil/StrBuffer.html#method_clear", "name": "Toolkit\\StrUtil\\StrBuffer::clear", "doc": ""clear""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StrBuffer", "fromLink": "Toolkit/StrUtil/StrBuffer.html", "link": "Toolkit/StrUtil/StrBuffer.html#method_getBody", "name": "Toolkit\\StrUtil\\StrBuffer::getBody", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StrBuffer", "fromLink": "Toolkit/StrUtil/StrBuffer.html", "link": "Toolkit/StrUtil/StrBuffer.html#method_setBody", "name": "Toolkit\\StrUtil\\StrBuffer::setBody", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StrBuffer", "fromLink": "Toolkit/StrUtil/StrBuffer.html", "link": "Toolkit/StrUtil/StrBuffer.html#method_toString", "name": "Toolkit\\StrUtil\\StrBuffer::toString", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StrBuffer", "fromLink": "Toolkit/StrUtil/StrBuffer.html", "link": "Toolkit/StrUtil/StrBuffer.html#method___toString", "name": "Toolkit\\StrUtil\\StrBuffer::__toString", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\StrUtil", "fromLink": "Toolkit/StrUtil.html", "link": "Toolkit/StrUtil/StringHelper.html", "name": "Toolkit\\StrUtil\\StringHelper", "doc": ""Class StringHelper""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_regexVerify", "name": "Toolkit\\StrUtil\\StringHelper::regexVerify", "doc": ""\u4f7f\u7528\u6b63\u5219\u9a8c\u8bc1\u6570\u636e""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_strlen", "name": "Toolkit\\StrUtil\\StringHelper::strlen", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_length", "name": "Toolkit\\StrUtil\\StringHelper::length", "doc": ""\u8ba1\u7b97\u5b57\u7b26\u957f\u5ea6""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_absLen", "name": "Toolkit\\StrUtil\\StringHelper::absLen", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_utf8SubStr", "name": "Toolkit\\StrUtil\\StringHelper::utf8SubStr", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_zhSubStr", "name": "Toolkit\\StrUtil\\StringHelper::zhSubStr", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_random", "name": "Toolkit\\StrUtil\\StringHelper::random", "doc": ""********************** \u751f\u6210\u4e00\u5b9a\u957f\u5ea6\u7684\u968f\u673a\u5b57\u7b26\u4e32\u51fd\u6570 **********************""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_genSalt", "name": "Toolkit\\StrUtil\\StringHelper::genSalt", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_genUid", "name": "Toolkit\\StrUtil\\StringHelper::genUid", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_nl2br", "name": "Toolkit\\StrUtil\\StringHelper::nl2br", "doc": ""Convert \\n and \\r\\n and \\r to <br \/>""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_strtolower", "name": "Toolkit\\StrUtil\\StringHelper::strtolower", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_strtoupper", "name": "Toolkit\\StrUtil\\StringHelper::strtoupper", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_substr", "name": "Toolkit\\StrUtil\\StringHelper::substr", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_strpos", "name": "Toolkit\\StrUtil\\StringHelper::strpos", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_strrpos", "name": "Toolkit\\StrUtil\\StringHelper::strrpos", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_ucfirst", "name": "Toolkit\\StrUtil\\StringHelper::ucfirst", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_ucwords", "name": "Toolkit\\StrUtil\\StringHelper::ucwords", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_toArray", "name": "Toolkit\\StrUtil\\StringHelper::toArray", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_str2array", "name": "Toolkit\\StrUtil\\StringHelper::str2array", "doc": ""var_dump(str2array('34,56,678, 678, 89, '));""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_split2Array", "name": "Toolkit\\StrUtil\\StringHelper::split2Array", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_truncate", "name": "Toolkit\\StrUtil\\StringHelper::truncate", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_truncate_two", "name": "Toolkit\\StrUtil\\StringHelper::truncate_two", "doc": ""\u5b57\u7b26\u622a\u65ad\u8f93\u51fa""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_truncateString", "name": "Toolkit\\StrUtil\\StringHelper::truncateString", "doc": ""Copied from CakePHP String utility file""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_toCamel", "name": "Toolkit\\StrUtil\\StringHelper::toCamel", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_toCamelCase", "name": "Toolkit\\StrUtil\\StringHelper::toCamelCase", "doc": ""Translates a string with underscores into camel case (e.g. first_name -> firstName)""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_toSnake", "name": "Toolkit\\StrUtil\\StringHelper::toSnake", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_toSnakeCase", "name": "Toolkit\\StrUtil\\StringHelper::toSnakeCase", "doc": ""Transform a CamelCase string to underscore_case string""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_nameChange", "name": "Toolkit\\StrUtil\\StringHelper::nameChange", "doc": ""\u9a7c\u5cf0\u5f0f <=> \u4e0b\u5212\u7ebf\u5f0f""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_format", "name": "Toolkit\\StrUtil\\StringHelper::format", "doc": ""[format description]""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_wordFormat", "name": "Toolkit\\StrUtil\\StringHelper::wordFormat", "doc": ""\u683c\u5f0f\u5316\uff0c\u7528\u7a7a\u683c\u5206\u9694\u5404\u4e2a\u8bcd\u7ec4""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\StringHelper", "fromLink": "Toolkit/StrUtil/StringHelper.html", "link": "Toolkit/StrUtil/StringHelper.html#method_deleteStripSpace", "name": "Toolkit\\StrUtil\\StringHelper::deleteStripSpace", "doc": ""\u7f29\u8fdb\u683c\u5f0f\u5316\u5185\u5bb9\uff0c\u53bb\u7a7a\u767d\/\u6ce8\u91ca""},
+
+ {"type": "Class", "fromName": "Toolkit\\StrUtil", "fromLink": "Toolkit/StrUtil.html", "link": "Toolkit/StrUtil/UrlHelper.html", "name": "Toolkit\\StrUtil\\UrlHelper", "doc": ""Class UrlHelper""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\UrlHelper", "fromLink": "Toolkit/StrUtil/UrlHelper.html", "link": "Toolkit/StrUtil/UrlHelper.html#method_isRelative", "name": "Toolkit\\StrUtil\\UrlHelper::isRelative", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\UrlHelper", "fromLink": "Toolkit/StrUtil/UrlHelper.html", "link": "Toolkit/StrUtil/UrlHelper.html#method_isUrl", "name": "Toolkit\\StrUtil\\UrlHelper::isUrl", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\UrlHelper", "fromLink": "Toolkit/StrUtil/UrlHelper.html", "link": "Toolkit/StrUtil/UrlHelper.html#method_isFullUrl", "name": "Toolkit\\StrUtil\\UrlHelper::isFullUrl", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\UrlHelper", "fromLink": "Toolkit/StrUtil/UrlHelper.html", "link": "Toolkit/StrUtil/UrlHelper.html#method_build", "name": "Toolkit\\StrUtil\\UrlHelper::build", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\UrlHelper", "fromLink": "Toolkit/StrUtil/UrlHelper.html", "link": "Toolkit/StrUtil/UrlHelper.html#method_canAccessed", "name": "Toolkit\\StrUtil\\UrlHelper::canAccessed", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\UrlHelper", "fromLink": "Toolkit/StrUtil/UrlHelper.html", "link": "Toolkit/StrUtil/UrlHelper.html#method_parseUrl", "name": "Toolkit\\StrUtil\\UrlHelper::parseUrl", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\UrlHelper", "fromLink": "Toolkit/StrUtil/UrlHelper.html", "link": "Toolkit/StrUtil/UrlHelper.html#method_encode", "name": "Toolkit\\StrUtil\\UrlHelper::encode", "doc": ""url_encode form urlencode(),\u4f46\u662f : \/ ? & = .""},
+ {"type": "Method", "fromName": "Toolkit\\StrUtil\\UrlHelper", "fromLink": "Toolkit/StrUtil/UrlHelper.html", "link": "Toolkit/StrUtil/UrlHelper.html#method_encode2", "name": "Toolkit\\StrUtil\\UrlHelper::encode2", "doc": ""[urlEncode \u4f1a\u5148\u8f6c\u6362\u7f16\u7801]\n$url=\"ftp:\/\/ud03:password@www.xxx.net\/\u4e2d\u6587\/\u4e2d\u6587.rar\";\n$url1 = url_encode($url);\n\/\/ftp:\/\/ud03:password@www.xxx.net\/%C3%A4%C2%B8%C2%AD%C3%A6%C2%96%C2%87\/%C3%A4%C2%B8%C2%AD%C3%A6%C2%96%C2%87.rar\n$url2 = urldecode($url);\necho $url1.PHP_EOL.$url2;""},
+
+ {"type": "Class", "fromName": "Toolkit\\SysUtil", "fromLink": "Toolkit/SysUtil.html", "link": "Toolkit/SysUtil/Cli.html", "name": "Toolkit\\SysUtil\\Cli", "doc": ""Class Cli""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\Cli", "fromLink": "Toolkit/SysUtil/Cli.html", "link": "Toolkit/SysUtil/Cli.html#method_color", "name": "Toolkit\\SysUtil\\Cli::color", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\Cli", "fromLink": "Toolkit/SysUtil/Cli.html", "link": "Toolkit/SysUtil/Cli.html#method_renderColor", "name": "Toolkit\\SysUtil\\Cli::renderColor", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\Cli", "fromLink": "Toolkit/SysUtil/Cli.html", "link": "Toolkit/SysUtil/Cli.html#method_clearColor", "name": "Toolkit\\SysUtil\\Cli::clearColor", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\Cli", "fromLink": "Toolkit/SysUtil/Cli.html", "link": "Toolkit/SysUtil/Cli.html#method_read", "name": "Toolkit\\SysUtil\\Cli::read", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\Cli", "fromLink": "Toolkit/SysUtil/Cli.html", "link": "Toolkit/SysUtil/Cli.html#method_write", "name": "Toolkit\\SysUtil\\Cli::write", "doc": ""write message to console""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\Cli", "fromLink": "Toolkit/SysUtil/Cli.html", "link": "Toolkit/SysUtil/Cli.html#method_stdout", "name": "Toolkit\\SysUtil\\Cli::stdout", "doc": ""Logs data to stdout""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\Cli", "fromLink": "Toolkit/SysUtil/Cli.html", "link": "Toolkit/SysUtil/Cli.html#method_stderr", "name": "Toolkit\\SysUtil\\Cli::stderr", "doc": ""Logs data to stderr""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\Cli", "fromLink": "Toolkit/SysUtil/Cli.html", "link": "Toolkit/SysUtil/Cli.html#method_isSupportColor", "name": "Toolkit\\SysUtil\\Cli::isSupportColor", "doc": ""Returns true if STDOUT supports colorization.""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\Cli", "fromLink": "Toolkit/SysUtil/Cli.html", "link": "Toolkit/SysUtil/Cli.html#method_parseArgv", "name": "Toolkit\\SysUtil\\Cli::parseArgv", "doc": ""Parses $GLOBALS['argv'] for parameters and assigns them to an array.""},
+
+ {"type": "Class", "fromName": "Toolkit\\SysUtil", "fromLink": "Toolkit/SysUtil.html", "link": "Toolkit/SysUtil/ProcessUtil.html", "name": "Toolkit\\SysUtil\\ProcessUtil", "doc": ""Class ProcessUtil""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\ProcessUtil", "fromLink": "Toolkit/SysUtil/ProcessUtil.html", "link": "Toolkit/SysUtil/ProcessUtil.html#method_hasPcntl", "name": "Toolkit\\SysUtil\\ProcessUtil::hasPcntl", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\ProcessUtil", "fromLink": "Toolkit/SysUtil/ProcessUtil.html", "link": "Toolkit/SysUtil/ProcessUtil.html#method_hasPosix", "name": "Toolkit\\SysUtil\\ProcessUtil::hasPosix", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\ProcessUtil", "fromLink": "Toolkit/SysUtil/ProcessUtil.html", "link": "Toolkit/SysUtil/ProcessUtil.html#method_run", "name": "Toolkit\\SysUtil\\ProcessUtil::run", "doc": ""run a command. it is support windows""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\ProcessUtil", "fromLink": "Toolkit/SysUtil/ProcessUtil.html", "link": "Toolkit/SysUtil/ProcessUtil.html#method_daemonRun", "name": "Toolkit\\SysUtil\\ProcessUtil::daemonRun", "doc": ""Daemon, detach and run in the background""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\ProcessUtil", "fromLink": "Toolkit/SysUtil/ProcessUtil.html", "link": "Toolkit/SysUtil/ProcessUtil.html#method_runInBackground", "name": "Toolkit\\SysUtil\\ProcessUtil::runInBackground", "doc": ""run a command in background""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\ProcessUtil", "fromLink": "Toolkit/SysUtil/ProcessUtil.html", "link": "Toolkit/SysUtil/ProcessUtil.html#method_multi", "name": "Toolkit\\SysUtil\\ProcessUtil::multi", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\ProcessUtil", "fromLink": "Toolkit/SysUtil/ProcessUtil.html", "link": "Toolkit/SysUtil/ProcessUtil.html#method_forks", "name": "Toolkit\\SysUtil\\ProcessUtil::forks", "doc": ""fork\/create multi child processes.""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\ProcessUtil", "fromLink": "Toolkit/SysUtil/ProcessUtil.html", "link": "Toolkit/SysUtil/ProcessUtil.html#method_create", "name": "Toolkit\\SysUtil\\ProcessUtil::create", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\ProcessUtil", "fromLink": "Toolkit/SysUtil/ProcessUtil.html", "link": "Toolkit/SysUtil/ProcessUtil.html#method_fork", "name": "Toolkit\\SysUtil\\ProcessUtil::fork", "doc": ""fork\/create a child process.""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\ProcessUtil", "fromLink": "Toolkit/SysUtil/ProcessUtil.html", "link": "Toolkit/SysUtil/ProcessUtil.html#method_wait", "name": "Toolkit\\SysUtil\\ProcessUtil::wait", "doc": ""wait child exit.""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\ProcessUtil", "fromLink": "Toolkit/SysUtil/ProcessUtil.html", "link": "Toolkit/SysUtil/ProcessUtil.html#method_stopWorkers", "name": "Toolkit\\SysUtil\\ProcessUtil::stopWorkers", "doc": ""Stops all running children""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\ProcessUtil", "fromLink": "Toolkit/SysUtil/ProcessUtil.html", "link": "Toolkit/SysUtil/ProcessUtil.html#method_kill", "name": "Toolkit\\SysUtil\\ProcessUtil::kill", "doc": ""send kill signal to the process""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\ProcessUtil", "fromLink": "Toolkit/SysUtil/ProcessUtil.html", "link": "Toolkit/SysUtil/ProcessUtil.html#method_killAndWait", "name": "Toolkit\\SysUtil\\ProcessUtil::killAndWait", "doc": ""Do shutdown process and wait it exit.""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\ProcessUtil", "fromLink": "Toolkit/SysUtil/ProcessUtil.html", "link": "Toolkit/SysUtil/ProcessUtil.html#method_killByName", "name": "Toolkit\\SysUtil\\ProcessUtil::killByName", "doc": ""\u6740\u6b7b\u6240\u6709\u8fdb\u7a0b""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\ProcessUtil", "fromLink": "Toolkit/SysUtil/ProcessUtil.html", "link": "Toolkit/SysUtil/ProcessUtil.html#method_isRunning", "name": "Toolkit\\SysUtil\\ProcessUtil::isRunning", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\ProcessUtil", "fromLink": "Toolkit/SysUtil/ProcessUtil.html", "link": "Toolkit/SysUtil/ProcessUtil.html#method_quit", "name": "Toolkit\\SysUtil\\ProcessUtil::quit", "doc": ""exit""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\ProcessUtil", "fromLink": "Toolkit/SysUtil/ProcessUtil.html", "link": "Toolkit/SysUtil/ProcessUtil.html#method_sendSignal", "name": "Toolkit\\SysUtil\\ProcessUtil::sendSignal", "doc": ""send signal to the process""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\ProcessUtil", "fromLink": "Toolkit/SysUtil/ProcessUtil.html", "link": "Toolkit/SysUtil/ProcessUtil.html#method_installSignal", "name": "Toolkit\\SysUtil\\ProcessUtil::installSignal", "doc": ""install signal""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\ProcessUtil", "fromLink": "Toolkit/SysUtil/ProcessUtil.html", "link": "Toolkit/SysUtil/ProcessUtil.html#method_dispatchSignal", "name": "Toolkit\\SysUtil\\ProcessUtil::dispatchSignal", "doc": ""dispatch signal""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\ProcessUtil", "fromLink": "Toolkit/SysUtil/ProcessUtil.html", "link": "Toolkit/SysUtil/ProcessUtil.html#method_getPid", "name": "Toolkit\\SysUtil\\ProcessUtil::getPid", "doc": ""get current process id""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\ProcessUtil", "fromLink": "Toolkit/SysUtil/ProcessUtil.html", "link": "Toolkit/SysUtil/ProcessUtil.html#method_getPidByFile", "name": "Toolkit\\SysUtil\\ProcessUtil::getPidByFile", "doc": ""get Pid from File""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\ProcessUtil", "fromLink": "Toolkit/SysUtil/ProcessUtil.html", "link": "Toolkit/SysUtil/ProcessUtil.html#method_getCurrentUser", "name": "Toolkit\\SysUtil\\ProcessUtil::getCurrentUser", "doc": ""Get unix user of current process.""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\ProcessUtil", "fromLink": "Toolkit/SysUtil/ProcessUtil.html", "link": "Toolkit/SysUtil/ProcessUtil.html#method_afterDo", "name": "Toolkit\\SysUtil\\ProcessUtil::afterDo", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\ProcessUtil", "fromLink": "Toolkit/SysUtil/ProcessUtil.html", "link": "Toolkit/SysUtil/ProcessUtil.html#method_setName", "name": "Toolkit\\SysUtil\\ProcessUtil::setName", "doc": ""Set process title.""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\ProcessUtil", "fromLink": "Toolkit/SysUtil/ProcessUtil.html", "link": "Toolkit/SysUtil/ProcessUtil.html#method_setTitle", "name": "Toolkit\\SysUtil\\ProcessUtil::setTitle", "doc": ""Set process title.""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\ProcessUtil", "fromLink": "Toolkit/SysUtil/ProcessUtil.html", "link": "Toolkit/SysUtil/ProcessUtil.html#method_changeScriptOwner", "name": "Toolkit\\SysUtil\\ProcessUtil::changeScriptOwner", "doc": ""Set unix user and group for current process script.""},
+
+ {"type": "Class", "fromName": "Toolkit\\SysUtil", "fromLink": "Toolkit/SysUtil.html", "link": "Toolkit/SysUtil/Sys.html", "name": "Toolkit\\SysUtil\\Sys", "doc": ""Class Sys""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\Sys", "fromLink": "Toolkit/SysUtil/Sys.html", "link": "Toolkit/SysUtil/Sys.html#method_execInBackground", "name": "Toolkit\\SysUtil\\Sys::execInBackground", "doc": ""run a command in background""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\Sys", "fromLink": "Toolkit/SysUtil/Sys.html", "link": "Toolkit/SysUtil/Sys.html#method_exec", "name": "Toolkit\\SysUtil\\Sys::exec", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\Sys", "fromLink": "Toolkit/SysUtil/Sys.html", "link": "Toolkit/SysUtil/Sys.html#method_runCommand", "name": "Toolkit\\SysUtil\\Sys::runCommand", "doc": ""Method to execute a command in the sys\nUses :\n1. system\n2. passthru\n3. exec\n4. shell_exec""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\Sys", "fromLink": "Toolkit/SysUtil/Sys.html", "link": "Toolkit/SysUtil/Sys.html#method_getTempDir", "name": "Toolkit\\SysUtil\\Sys::getTempDir", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\Sys", "fromLink": "Toolkit/SysUtil/Sys.html", "link": "Toolkit/SysUtil/Sys.html#method_getCpuUsage", "name": "Toolkit\\SysUtil\\Sys::getCpuUsage", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\Sys", "fromLink": "Toolkit/SysUtil/Sys.html", "link": "Toolkit/SysUtil/Sys.html#method_getMemUsage", "name": "Toolkit\\SysUtil\\Sys::getMemUsage", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\Sys", "fromLink": "Toolkit/SysUtil/Sys.html", "link": "Toolkit/SysUtil/Sys.html#method_gitCheck", "name": "Toolkit\\SysUtil\\Sys::gitCheck", "doc": ""\u652f\u6301\u67e5\u770b\u6307\u5b9a\u76ee\u5f55\uff0c\u9ed8\u8ba4\u5f53\u524d\u76ee\u5f55\nCLI:\n php test.php -d=path\n php test.php --dir=path\nWEB:\n \/test.php?dir=path""},
+
+ {"type": "Class", "fromName": "Toolkit\\SysUtil", "fromLink": "Toolkit/SysUtil.html", "link": "Toolkit/SysUtil/SysEnv.html", "name": "Toolkit\\SysUtil\\SysEnv", "doc": ""Class EnvHelper""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\SysEnv", "fromLink": "Toolkit/SysUtil/SysEnv.html", "link": "Toolkit/SysUtil/SysEnv.html#method_isUnix", "name": "Toolkit\\SysUtil\\SysEnv::isUnix", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\SysEnv", "fromLink": "Toolkit/SysUtil/SysEnv.html", "link": "Toolkit/SysUtil/SysEnv.html#method_isLinux", "name": "Toolkit\\SysUtil\\SysEnv::isLinux", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\SysEnv", "fromLink": "Toolkit/SysUtil/SysEnv.html", "link": "Toolkit/SysUtil/SysEnv.html#method_isWin", "name": "Toolkit\\SysUtil\\SysEnv::isWin", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\SysEnv", "fromLink": "Toolkit/SysUtil/SysEnv.html", "link": "Toolkit/SysUtil/SysEnv.html#method_isWindows", "name": "Toolkit\\SysUtil\\SysEnv::isWindows", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\SysEnv", "fromLink": "Toolkit/SysUtil/SysEnv.html", "link": "Toolkit/SysUtil/SysEnv.html#method_isMac", "name": "Toolkit\\SysUtil\\SysEnv::isMac", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\SysEnv", "fromLink": "Toolkit/SysUtil/SysEnv.html", "link": "Toolkit/SysUtil/SysEnv.html#method_isRoot", "name": "Toolkit\\SysUtil\\SysEnv::isRoot", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\SysEnv", "fromLink": "Toolkit/SysUtil/SysEnv.html", "link": "Toolkit/SysUtil/SysEnv.html#method_getHostname", "name": "Toolkit\\SysUtil\\SysEnv::getHostname", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\SysEnv", "fromLink": "Toolkit/SysUtil/SysEnv.html", "link": "Toolkit/SysUtil/SysEnv.html#method_getNullDevice", "name": "Toolkit\\SysUtil\\SysEnv::getNullDevice", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\SysEnv", "fromLink": "Toolkit/SysUtil/SysEnv.html", "link": "Toolkit/SysUtil/SysEnv.html#method_isSupportColor", "name": "Toolkit\\SysUtil\\SysEnv::isSupportColor", "doc": ""Returns true if STDOUT supports colorization.""},
+ {"type": "Method", "fromName": "Toolkit\\SysUtil\\SysEnv", "fromLink": "Toolkit/SysUtil/SysEnv.html", "link": "Toolkit/SysUtil/SysEnv.html#method_isInteractive", "name": "Toolkit\\SysUtil\\SysEnv::isInteractive", "doc": ""Returns if the file descriptor is an interactive terminal or not.""},
+
+ {"type": "Class", "fromName": "Toolkit\\Util", "fromLink": "Toolkit/Util.html", "link": "Toolkit/Util/AopProxy.html", "name": "Toolkit\\Util\\AopProxy", "doc": ""Class AopProxy""},
+ {"type": "Method", "fromName": "Toolkit\\Util\\AopProxy", "fromLink": "Toolkit/Util/AopProxy.html", "link": "Toolkit/Util/AopProxy.html#method___construct", "name": "Toolkit\\Util\\AopProxy::__construct", "doc": ""AopProxy constructor.""},
+
+ {"type": "Class", "fromName": "Toolkit\\Util", "fromLink": "Toolkit/Util.html", "link": "Toolkit/Util/DataProxy.html", "name": "Toolkit\\Util\\DataProxy", "doc": ""Class DataProxy""},
+ {"type": "Method", "fromName": "Toolkit\\Util\\DataProxy", "fromLink": "Toolkit/Util/DataProxy.html", "link": "Toolkit/Util/DataProxy.html#method___construct", "name": "Toolkit\\Util\\DataProxy::__construct", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Util\\DataProxy", "fromLink": "Toolkit/Util/DataProxy.html", "link": "Toolkit/Util/DataProxy.html#method___call", "name": "Toolkit\\Util\\DataProxy::__call", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Util\\DataProxy", "fromLink": "Toolkit/Util/DataProxy.html", "link": "Toolkit/Util/DataProxy.html#method_call", "name": "Toolkit\\Util\\DataProxy::call", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Util\\DataProxy", "fromLink": "Toolkit/Util/DataProxy.html", "link": "Toolkit/Util/DataProxy.html#method_add", "name": "Toolkit\\Util\\DataProxy::add", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Util\\DataProxy", "fromLink": "Toolkit/Util/DataProxy.html", "link": "Toolkit/Util/DataProxy.html#method_addProxy", "name": "Toolkit\\Util\\DataProxy::addProxy", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Util\\DataProxy", "fromLink": "Toolkit/Util/DataProxy.html", "link": "Toolkit/Util/DataProxy.html#method_setProxy", "name": "Toolkit\\Util\\DataProxy::setProxy", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Util\\DataProxy", "fromLink": "Toolkit/Util/DataProxy.html", "link": "Toolkit/Util/DataProxy.html#method_hasName", "name": "Toolkit\\Util\\DataProxy::hasName", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Util\\DataProxy", "fromLink": "Toolkit/Util/DataProxy.html", "link": "Toolkit/Util/DataProxy.html#method_addProxies", "name": "Toolkit\\Util\\DataProxy::addProxies", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Util\\DataProxy", "fromLink": "Toolkit/Util/DataProxy.html", "link": "Toolkit/Util/DataProxy.html#method_getProxies", "name": "Toolkit\\Util\\DataProxy::getProxies", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Util\\DataProxy", "fromLink": "Toolkit/Util/DataProxy.html", "link": "Toolkit/Util/DataProxy.html#method_setProxies", "name": "Toolkit\\Util\\DataProxy::setProxies", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\Util", "fromLink": "Toolkit/Util.html", "link": "Toolkit/Util/DataResult.html", "name": "Toolkit\\Util\\DataResult", "doc": ""Class DeferredResult""},
+ {"type": "Method", "fromName": "Toolkit\\Util\\DataResult", "fromLink": "Toolkit/Util/DataResult.html", "link": "Toolkit/Util/DataResult.html#method___construct", "name": "Toolkit\\Util\\DataResult::__construct", "doc": ""DeferredResult constructor.""},
+ {"type": "Method", "fromName": "Toolkit\\Util\\DataResult", "fromLink": "Toolkit/Util/DataResult.html", "link": "Toolkit/Util/DataResult.html#method_get", "name": "Toolkit\\Util\\DataResult::get", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Util\\DataResult", "fromLink": "Toolkit/Util/DataResult.html", "link": "Toolkit/Util/DataResult.html#method_getValue", "name": "Toolkit\\Util\\DataResult::getValue", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Util\\DataResult", "fromLink": "Toolkit/Util/DataResult.html", "link": "Toolkit/Util/DataResult.html#method_setValue", "name": "Toolkit\\Util\\DataResult::setValue", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\Util", "fromLink": "Toolkit/Util.html", "link": "Toolkit/Util/DeferredCallable.html", "name": "Toolkit\\Util\\DeferredCallable", "doc": ""Class DeferredCallable""},
+ {"type": "Method", "fromName": "Toolkit\\Util\\DeferredCallable", "fromLink": "Toolkit/Util/DeferredCallable.html", "link": "Toolkit/Util/DeferredCallable.html#method___construct", "name": "Toolkit\\Util\\DeferredCallable::__construct", "doc": ""DeferredMiddleware constructor.""},
+ {"type": "Method", "fromName": "Toolkit\\Util\\DeferredCallable", "fromLink": "Toolkit/Util/DeferredCallable.html", "link": "Toolkit/Util/DeferredCallable.html#method___invoke", "name": "Toolkit\\Util\\DeferredCallable::__invoke", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\Util", "fromLink": "Toolkit/Util.html", "link": "Toolkit/Util/PhpDotEnv.html", "name": "Toolkit\\Util\\PhpDotEnv", "doc": ""Class PhpDotEnv - local env read""},
+ {"type": "Method", "fromName": "Toolkit\\Util\\PhpDotEnv", "fromLink": "Toolkit/Util/PhpDotEnv.html", "link": "Toolkit/Util/PhpDotEnv.html#method_load", "name": "Toolkit\\Util\\PhpDotEnv::load", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Util\\PhpDotEnv", "fromLink": "Toolkit/Util/PhpDotEnv.html", "link": "Toolkit/Util/PhpDotEnv.html#method___construct", "name": "Toolkit\\Util\\PhpDotEnv::__construct", "doc": ""constructor.""},
+ {"type": "Method", "fromName": "Toolkit\\Util\\PhpDotEnv", "fromLink": "Toolkit/Util/PhpDotEnv.html", "link": "Toolkit/Util/PhpDotEnv.html#method_add", "name": "Toolkit\\Util\\PhpDotEnv::add", "doc": """"},
+
+ {"type": "Class", "fromName": "Toolkit\\Util", "fromLink": "Toolkit/Util.html", "link": "Toolkit/Util/Pipeline.html", "name": "Toolkit\\Util\\Pipeline", "doc": ""Class Pipeline""},
+ {"type": "Method", "fromName": "Toolkit\\Util\\Pipeline", "fromLink": "Toolkit/Util/Pipeline.html", "link": "Toolkit/Util/Pipeline.html#method___construct", "name": "Toolkit\\Util\\Pipeline::__construct", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Util\\Pipeline", "fromLink": "Toolkit/Util/Pipeline.html", "link": "Toolkit/Util/Pipeline.html#method_add", "name": "Toolkit\\Util\\Pipeline::add", "doc": ""{@inheritdoc}""},
+ {"type": "Method", "fromName": "Toolkit\\Util\\Pipeline", "fromLink": "Toolkit/Util/Pipeline.html", "link": "Toolkit/Util/Pipeline.html#method_run", "name": "Toolkit\\Util\\Pipeline::run", "doc": ""{@inheritdoc}""},
+ {"type": "Method", "fromName": "Toolkit\\Util\\Pipeline", "fromLink": "Toolkit/Util/Pipeline.html", "link": "Toolkit/Util/Pipeline.html#method___invoke", "name": "Toolkit\\Util\\Pipeline::__invoke", "doc": ""{@inheritdoc}""},
+
+ {"type": "Trait", "fromName": "Toolkit\\Util\\Traits", "fromLink": "Toolkit/Util/Traits.html", "link": "Toolkit/Util/Traits/AopProxyAwareTrait.html", "name": "Toolkit\\Util\\Traits\\AopProxyAwareTrait", "doc": ""Class AopProxyAwareTrait\n- AOP \u5207\u9762\u7f16\u7a0b""},
+ {"type": "Method", "fromName": "Toolkit\\Util\\Traits\\AopProxyAwareTrait", "fromLink": "Toolkit/Util/Traits/AopProxyAwareTrait.html", "link": "Toolkit/Util/Traits/AopProxyAwareTrait.html#method_proxy", "name": "Toolkit\\Util\\Traits\\AopProxyAwareTrait::proxy", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Util\\Traits\\AopProxyAwareTrait", "fromLink": "Toolkit/Util/Traits/AopProxyAwareTrait.html", "link": "Toolkit/Util/Traits/AopProxyAwareTrait.html#method_call", "name": "Toolkit\\Util\\Traits\\AopProxyAwareTrait::call", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Util\\Traits\\AopProxyAwareTrait", "fromLink": "Toolkit/Util/Traits/AopProxyAwareTrait.html", "link": "Toolkit/Util/Traits/AopProxyAwareTrait.html#method___call", "name": "Toolkit\\Util\\Traits\\AopProxyAwareTrait::__call", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Util\\Traits\\AopProxyAwareTrait", "fromLink": "Toolkit/Util/Traits/AopProxyAwareTrait.html", "link": "Toolkit/Util/Traits/AopProxyAwareTrait.html#method___invoke", "name": "Toolkit\\Util\\Traits\\AopProxyAwareTrait::__invoke", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Util\\Traits\\AopProxyAwareTrait", "fromLink": "Toolkit/Util/Traits/AopProxyAwareTrait.html", "link": "Toolkit/Util/Traits/AopProxyAwareTrait.html#method_findProxyCallback", "name": "Toolkit\\Util\\Traits\\AopProxyAwareTrait::findProxyCallback", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Util\\Traits\\AopProxyAwareTrait", "fromLink": "Toolkit/Util/Traits/AopProxyAwareTrait.html", "link": "Toolkit/Util/Traits/AopProxyAwareTrait.html#method_register", "name": "Toolkit\\Util\\Traits\\AopProxyAwareTrait::register", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Util\\Traits\\AopProxyAwareTrait", "fromLink": "Toolkit/Util/Traits/AopProxyAwareTrait.html", "link": "Toolkit/Util/Traits/AopProxyAwareTrait.html#method_addProxy", "name": "Toolkit\\Util\\Traits\\AopProxyAwareTrait::addProxy", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Util\\Traits\\AopProxyAwareTrait", "fromLink": "Toolkit/Util/Traits/AopProxyAwareTrait.html", "link": "Toolkit/Util/Traits/AopProxyAwareTrait.html#method_addProxies", "name": "Toolkit\\Util\\Traits\\AopProxyAwareTrait::addProxies", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Util\\Traits\\AopProxyAwareTrait", "fromLink": "Toolkit/Util/Traits/AopProxyAwareTrait.html", "link": "Toolkit/Util/Traits/AopProxyAwareTrait.html#method_getProxyPoints", "name": "Toolkit\\Util\\Traits\\AopProxyAwareTrait::getProxyPoints", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Util\\Traits\\AopProxyAwareTrait", "fromLink": "Toolkit/Util/Traits/AopProxyAwareTrait.html", "link": "Toolkit/Util/Traits/AopProxyAwareTrait.html#method_getProxyTarget", "name": "Toolkit\\Util\\Traits\\AopProxyAwareTrait::getProxyTarget", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Util\\Traits\\AopProxyAwareTrait", "fromLink": "Toolkit/Util/Traits/AopProxyAwareTrait.html", "link": "Toolkit/Util/Traits/AopProxyAwareTrait.html#method_getProxyMap", "name": "Toolkit\\Util\\Traits\\AopProxyAwareTrait::getProxyMap", "doc": """"},
+ {"type": "Method", "fromName": "Toolkit\\Util\\Traits\\AopProxyAwareTrait", "fromLink": "Toolkit/Util/Traits/AopProxyAwareTrait.html", "link": "Toolkit/Util/Traits/AopProxyAwareTrait.html#method_setProxyMap", "name": "Toolkit\\Util\\Traits\\AopProxyAwareTrait::setProxyMap", "doc": """"},
+
+
+ // Fix trailing commas in the index
+ {}
+ ];
+
+ /** Tokenizes strings by namespaces and functions */
+ function tokenizer(term) {
+ if (!term) {
+ return [];
+ }
+
+ var tokens = [term];
+ var meth = term.indexOf('::');
+
+ // Split tokens into methods if "::" is found.
+ if (meth > -1) {
+ tokens.push(term.substr(meth + 2));
+ term = term.substr(0, meth - 2);
+ }
+
+ // Split by namespace or fake namespace.
+ if (term.indexOf('\\') > -1) {
+ tokens = tokens.concat(term.split('\\'));
+ } else if (term.indexOf('_') > 0) {
+ tokens = tokens.concat(term.split('_'));
+ }
+
+ // Merge in splitting the string by case and return
+ tokens = tokens.concat(term.match(/(([A-Z]?[^A-Z]*)|([a-z]?[^a-z]*))/g).slice(0,-1));
+
+ return tokens;
+ };
+
+ root.Sami = {
+ /**
+ * Cleans the provided term. If no term is provided, then one is
+ * grabbed from the query string "search" parameter.
+ */
+ cleanSearchTerm: function(term) {
+ // Grab from the query string
+ if (typeof term === 'undefined') {
+ var name = 'search';
+ var regex = new RegExp("[\\?&]" + name + "=([^]*)");
+ var results = regex.exec(location.search);
+ if (results === null) {
+ return null;
+ }
+ term = decodeURIComponent(results[1].replace(/\+/g, " "));
+ }
+
+ return term.replace(/<(?:.|\n)*?>/gm, '');
+ },
+
+ /** Searches through the index for a given term */
+ search: function(term) {
+ // Create a new search index if needed
+ if (!bhIndex) {
+ bhIndex = new Bloodhound({
+ limit: 500,
+ local: searchIndex,
+ datumTokenizer: function (d) {
+ return tokenizer(d.name);
+ },
+ queryTokenizer: Bloodhound.tokenizers.whitespace
+ });
+ bhIndex.initialize();
+ }
+
+ results = [];
+ bhIndex.get(term, function(matches) {
+ results = matches;
+ });
+
+ if (!rootPath) {
+ return results;
+ }
+
+ // Fix the element links based on the current page depth.
+ return $.map(results, function(ele) {
+ if (ele.link.indexOf('..') > -1) {
+ return ele;
+ }
+ ele.link = rootPath + ele.link;
+ if (ele.fromLink) {
+ ele.fromLink = rootPath + ele.fromLink;
+ }
+ return ele;
+ });
+ },
+
+ /** Get a search class for a specific type */
+ getSearchClass: function(type) {
+ return searchTypeClasses[type] || searchTypeClasses['_'];
+ },
+
+ /** Add the left-nav tree to the site */
+ injectApiTree: function(ele) {
+ ele.html(treeHtml);
+ }
+ };
+
+ $(function() {
+ // Modify the HTML to work correctly based on the current depth
+ rootPath = $('body').attr('data-root-path');
+ treeHtml = treeHtml.replace(/href="/g, 'href="' + rootPath);
+ Sami.injectApiTree($('#api-tree'));
+ });
+
+ return root.Sami;
+})(window);
+
+$(function() {
+
+ // Enable the version switcher
+ $('#version-switcher').change(function() {
+ window.location = $(this).val()
+ });
+
+
+ // Toggle left-nav divs on click
+ $('#api-tree .hd span').click(function() {
+ $(this).parent().parent().toggleClass('opened');
+ });
+
+ // Expand the parent namespaces of the current page.
+ var expected = $('body').attr('data-name');
+
+ if (expected) {
+ // Open the currently selected node and its parents.
+ var container = $('#api-tree');
+ var node = $('#api-tree li[data-name="' + expected + '"]');
+ // Node might not be found when simulating namespaces
+ if (node.length > 0) {
+ node.addClass('active').addClass('opened');
+ node.parents('li').addClass('opened');
+ var scrollPos = node.offset().top - container.offset().top + container.scrollTop();
+ // Position the item nearer to the top of the screen.
+ scrollPos -= 200;
+ container.scrollTop(scrollPos);
+ }
+ }
+
+
+
+ var form = $('#search-form .typeahead');
+ form.typeahead({
+ hint: true,
+ highlight: true,
+ minLength: 1
+ }, {
+ name: 'search',
+ displayKey: 'name',
+ source: function (q, cb) {
+ cb(Sami.search(q));
+ }
+ });
+
+ // The selection is direct-linked when the user selects a suggestion.
+ form.on('typeahead:selected', function(e, suggestion) {
+ window.location = suggestion.link;
+ });
+
+ // The form is submitted when the user hits enter.
+ form.keypress(function (e) {
+ if (e.which == 13) {
+ $('#search-form').submit();
+ return true;
+ }
+ });
+
+
+});
+
+
diff --git a/classes-docs/master/search.html b/classes-docs/master/search.html
new file mode 100644
index 0000000..ad891d9
--- /dev/null
+++ b/classes-docs/master/search.html
@@ -0,0 +1,154 @@
+
+
+
+
+
+ Search | Php Toolkit Classes Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This page allows you to search through the API documentation for
+ specific terms. Enter your search words into the box below and click
+ "submit". The search will be performed on namespaces, classes, interfaces,
+ traits, functions, and methods.
+
+
+
+
Search Results
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/classes-docs/master/traits.html b/classes-docs/master/traits.html
new file mode 100644
index 0000000..f9e99e2
--- /dev/null
+++ b/classes-docs/master/traits.html
@@ -0,0 +1,171 @@
+
+
+
+
+
+ Traits | Php Toolkit Classes Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ResolveCallable
+
+
+
+
+
+ Class NameAliasTrait
+
+
+
+
+
+ Class DataParserAwareTrait
+
+
+
+
+
+
+ Class TraitArrayAccess
+
+
+
+
+
+ Class TraitArrayAccess
+
+
+
+
+
+ Class ObjectPoolTrait
+
+
+
+
+
+ trait PropertyAccessByGetterSetterTrait
+
+
+
+
+
+ Trait SingletonTrait
+
+
+
+
+
+ Class StdObjectTrait
+
+
+
+
+
+ Class AopProxyAwareTrait
+- AOP 切面编程
+
+
+
+
+
+
+
+
+
+
+
diff --git a/composer.json b/composer.json
deleted file mode 100644
index 4bd500b..0000000
--- a/composer.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "name": "toolkit/toolkit",
- "type": "library",
- "keywords": [
- "php",
- "library",
- "tools"
- ],
- "homepage": "https://github.com/php-toolkit/toolkit",
- "description": "some useful library of the php",
- "license": "MIT",
- "authors": [
- {
- "name": "inhere",
- "email": "in.798@qq.com",
- "homepage": "http://www.yzone.net/"
- }
- ],
- "require": {
- "php": ">7.1.0",
- "psr/container": "^1.0",
- "toolkit/stdlib": "^1.0"
- },
- "require-dev": {
- "inhere/console": "dev-master"
- },
- "autoload": {
- "psr-4": {
- "Toolkit\\Dev\\": "src/"
- }
- },
- "suggest": {
- "inhere/php-validate": "Very lightweight data validate tool",
- "inhere/console": "a lightweight php console application library."
- }
-}
diff --git a/docs/README.md b/docs/README.md
deleted file mode 100644
index f874ac5..0000000
--- a/docs/README.md
+++ /dev/null
@@ -1 +0,0 @@
-# toolkit
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
deleted file mode 100644
index 4977d11..0000000
--- a/phpunit.xml.dist
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- libs/*/test
-
-
-
-
-
- libs/*/src
-
-
-
diff --git a/sami.doc.inc b/sami.doc.inc
index 8819ac5..d54add3 100644
--- a/sami.doc.inc
+++ b/sami.doc.inc
@@ -5,26 +5,22 @@ use Sami\Version\GitVersionCollection;
use Symfony\Component\Finder\Finder;
$iterator = Finder::create()
- ->files()
- ->name('*.php')
- ->notName('routes.php')
- ->exclude(['test', 'example'])
- ->in([
- __DIR__ . '/libs/'
- ]);
+ ->files()
+ ->name('*.php')
+ ->notName('routes.php')
+ ->exclude(['test', 'example'])
+ ->in([
+ __DIR__ . '/libs/'
+ ]);
$versions = GitVersionCollection::create(__DIR__);
return new Sami($iterator, [
- // 'theme' => 'enhanced',
- // 'versions' => $versions,
- 'title' => 'Php Toolkit Classes Documentation',
- 'build_dir' => __DIR__ . '/classes-docs/%version%',
- 'cache_dir' => __DIR__ . '/caches/%version%',
- 'default_opened_level' => 1,
- // 'store' => new MyArrayStore,
+ // 'theme' => 'enhanced',
+ // 'versions' => $versions,
+ 'title' => 'Php Toolkit Classes Documentation',
+ 'build_dir' => __DIR__ . '/classes-docs/%version%',
+ 'cache_dir' => __DIR__ . '/caches/%version%',
+ 'default_opened_level' => 1,
+ // 'store' => new MyArrayStore,
]);
-
-/**
- * usage: php sami.phar update --force sami.doc.inc
- */
diff --git a/src/autoload.php b/src/autoload.php
deleted file mode 100644
index a0127c9..0000000
--- a/src/autoload.php
+++ /dev/null
@@ -1,49 +0,0 @@
- $lib . '/arr-utils/src',
- 'Toolkit\ArrUtilTest\\' => $lib . '/arr-utils/test',
- // cli-utils
- 'Toolkit\Cli\\' => $lib . '/cli-utils/src',
- 'Toolkit\CliTest\\' => $lib . '/cli-utils/test',
- // di
- 'Toolkit\DI\\' => $lib . '/di/src',
- 'Toolkit\DITest\\' => $lib . '/di/test',
- // collection
- 'Toolkit\CollectionTest\\' => $lib . '/collection/test',
- 'Toolkit\Collection\\' => $lib . '/collection/src',
- // file parse
- 'Toolkit\File\Parse\\' => $lib . '/file-parse/src',
- 'Toolkit\File\ParseTest\\' => $lib . '/file-parse/test',
- // file utils
- 'Toolkit\File\\' => $lib . '/file-utils/src',
- 'Toolkit\FileTest\\' => $lib . '/file-utils/test',
- // obj-utils
- 'Toolkit\ObjUtil\\' => $lib . '/obj-utils/src',
- 'Toolkit\ObjUtilTest\\' => $lib . '/obj-utils/test',
- // php utils
- 'Toolkit\PhpUtil\\' => $lib . '/php-utils/src',
- 'Toolkit\PhpUtilTest\\' => $lib . '/php-utils/test',
- // str utils
- 'Toolkit\StrUtil\\' => $lib . '/str-utils/src',
- 'Toolkit\StrUtilTest\\' => $lib . '/str-utils/test',
- // sys utils
- 'Toolkit\Sys\\' => $lib . '/sys-utils/src',
- 'Toolkit\SysTest\\' => $lib . '/sys-utils/test',
-];
-
-spl_autoload_register(function ($class) use ($map) {
- foreach ($map as $np => $dir) {
- if (0 === strpos($class, $np)) {
- $path = str_replace('\\', '/', substr($class, strlen($np)));
- $file = $dir . "/example/{$path}.php";
-
- if ($file && is_file($file)) {
- include $file;
- return;
- }
- }
- }
-});
diff --git a/src/collection/.gitignore b/src/collection/.gitignore
deleted file mode 100644
index 86318a0..0000000
--- a/src/collection/.gitignore
+++ /dev/null
@@ -1,10 +0,0 @@
-.idea/
-.phpintel/
-!README.md
-!.gitkeep
-composer.lock
-*.swp
-*.log
-*.pid
-*.patch
-.DS_Store
diff --git a/src/collection/LICENSE b/src/collection/LICENSE
deleted file mode 100644
index d839cdc..0000000
--- a/src/collection/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 inhere
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/src/collection/README.md b/src/collection/README.md
deleted file mode 100644
index 1eedbb8..0000000
--- a/src/collection/README.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# data collection
-
-[](LICENSE)
-[](https://packagist.org/packages/toolkit/collection)
-[](https://packagist.org/packages/toolkit/collection)
-
-data collection utils for php
-
-- data collection
-- language manage
-
-## Install
-
-```bash
-composer require toolkit/collection
-```
-
-## License
-
-MIT
diff --git a/src/collection/composer.json b/src/collection/composer.json
deleted file mode 100644
index 351d404..0000000
--- a/src/collection/composer.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "name": "toolkit/collection",
- "type": "library",
- "description": "some data collection tool library of the php",
- "keywords": [
- "library",
- "tool",
- "php"
- ],
- "homepage": "https://github.com/php-toolkit/collection",
- "license": "MIT",
- "authors": [
- {
- "name": "inhere",
- "email": "in.798@qq.com",
- "homepage": "http://www.yzone.net/"
- }
- ],
- "require": {
- "php": ">7.1.0",
- "toolkit/arr-utils": "~1.0",
- "toolkit/str-utils": "~1.0",
- "toolkit/obj-utils": "~1.0",
- "toolkit/file-parse": "~1.0"
- },
- "autoload": {
- "psr-4": {
- "Toolkit\\Collection\\": "src/"
- }
- }
-}
diff --git a/src/collection/phpunit.xml.dist b/src/collection/phpunit.xml.dist
deleted file mode 100644
index 26bd767..0000000
--- a/src/collection/phpunit.xml.dist
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- test/
-
-
-
-
-
- src
-
-
-
diff --git a/src/collection/src/ActiveData.php b/src/collection/src/ActiveData.php
deleted file mode 100644
index 9cd1462..0000000
--- a/src/collection/src/ActiveData.php
+++ /dev/null
@@ -1,212 +0,0 @@
-load($data, $recursive);
- }
- }
-
- /**
- * 初始化,载入数据
- *
- * @param array $data
- * @param bool $recursive
- *
- * @return $this
- */
- public function load($data, bool $recursive = false): self
- {
- foreach ($data as $name => $value) {
- $name = trim($name);
-
- if (is_numeric($name)) {
- continue;
- }
-
- $this->$name = $recursive && is_array($value) ? static::create($value, $recursive) : $value;
- }
-
- return $this;
- }
-
- public function isStrict(): bool
- {
- return false;
- }
-
- /**
- * @param bool $toArray
- *
- * @return array|ArrayIterator
- * @throws ReflectionException
- */
- public function all(bool $toArray = false)
- {
- $class = new ReflectionClass($this);
- $attrs = [];
-
- foreach ($class->getProperties() as $property) {
- if ($property->isPublic() && !$property->isStatic()) {
- $attrs[$property->getName()] = $property->getValue($this);
- }
- }
-
- //return $toArray ? $attrs : (new \ArrayObject($attrs));
- return $toArray ? $attrs : new ArrayIterator($attrs);
- }
-
- /**
- * 以点连接 快速获取子级节点的值
- *
- * @param string $name
- *
- * @return ActiveData|mixed
- */
- public function get(string $name)
- {
- if (strpos($name, '.')) {
- $names = explode('.', $name);
- $node = $this;
-
- foreach ($names as $n) {
- if ($node instanceof self && property_exists($node, $n)) {
- $node = $node->$n;
- } else {
- if ($this->isStrict()) {
- throw new RuntimeException("Stored data don't exists node '$n'");
- }
-
- $node = null;
- break;
- }
- }
-
- return $node;
- }
-
- return property_exists($this, $name) ? $this->$name : null;
- }
-
- /**
- * Defined by IteratorAggregate interface
- * Returns an iterator for this object, for use with foreach
- *
- * @return ArrayIterator
- * @throws ReflectionException
- */
- public function getIterator(): ArrayIterator
- {
- return $this->all();
- }
-
- /**
- * Checks whether an offset exists in the iterator.
- *
- * @param mixed $offset The array offset.
- *
- * @return boolean True if the offset exists, false otherwise.
- */
- public function offsetExists($offset): bool
- {
- return property_exists($this, $offset);
- }
-
- /**
- * Gets an offset in the iterator.
- *
- * @param mixed $offset The array offset.
- *
- * @return mixed The array value if it exists, null otherwise.
- */
- public function offsetGet($offset)
- {
- return $this->$offset;
- }
-
- /**
- * Sets an offset in the iterator.
- *
- * @param mixed $offset The array offset.
- * @param mixed $value The array value.
- *
- * @return void
- */
- public function offsetSet($offset, $value): void
- {
- $this->$offset = $value;
- }
-
- /**
- * Unset an offset in the iterator.
- *
- * @param mixed $offset The array offset.
- *
- * @return void
- */
- public function offsetUnset($offset): void
- {
- unset($this->$offset);
- }
-
- public function __isset($name)
- {
- return $this->offsetExists($name);
- }
-
- public function __set($name, $value)
- {
- }
-
- public function __get($name)
- {
- return $this->get($name);
- }
-}
diff --git a/src/collection/src/Collection.php b/src/collection/src/Collection.php
deleted file mode 100644
index 672afb7..0000000
--- a/src/collection/src/Collection.php
+++ /dev/null
@@ -1,473 +0,0 @@
- [
- * 'bar' => [
- * 'yoo' => 'value'
- * ]
- * ]
- * ];
- * $config = new DataCollector();
- * $config->get('foo.bar.yoo')` equals to $data['foo']['bar']['yoo'];
- * ```
- * 简单的数据对象可使用 @see SimpleCollection
- * ```
- * $config = new SimpleCollection($data)
- * $config->get('foo');
- * ```
- */
-class Collection extends SimpleCollection
-{
- /**
- * @var array
- */
- // protected $files = [];
-
- /**
- * Property separator.
- *
- * @var string
- */
- protected $separator = '.';
-
- /**
- * name
- *
- * @var string
- */
- protected $name;
-
- /**
- * formats
- *
- * @var array
- */
- protected static $formats = ['json', 'php', 'ini', 'yml'];
-
- public const FORMAT_JSON = 'json';
- public const FORMAT_PHP = 'php';
- public const FORMAT_INI = 'ini';
- public const FORMAT_YML = 'yml';
-
- /**
- * __construct
- *
- * @param mixed $data
- * @param string $format
- * @param string $name
- *
- * @throws RangeException
- */
- public function __construct($data = null, $format = 'php', $name = 'box1')
- {
- // Optionally load supplied data.
- $this->load($data, $format);
-
- parent::__construct();
-
- $this->name = $name;
- }
-
- /**
- * @param mixed $data
- * @param string $format
- * @param string $name
- *
- * @return static
- * @throws RangeException
- */
- public static function make($data = null, $format = 'php', $name = 'box1')
- {
- return new static($data, $format, $name);
- }
-
- /**
- * set config value by path
- *
- * @param string $path
- * @param mixed $value
- *
- * @return mixed
- */
- public function set($path, $value)
- {
- Arr::setByPath($this->data, $path, $value, $this->separator);
-
- return $this;
- }
-
- /**
- * get value by path
- *
- * @param string $path
- * @param string $default
- *
- * @return mixed
- */
- public function get(string $path, $default = null)
- {
- return Arr::getByPath($this->data, $path, $default, $this->separator);
- }
-
- public function exists($path): bool
- {
- return $this->get($path) !== null;
- }
-
- /**
- * @param string $path
- *
- * @return bool
- */
- public function has(string $path): bool
- {
- return $this->exists($path);
- }
-
- public function reset(): Collection
- {
- $this->data = [];
-
- return $this;
- }
-
- /**
- * Clear all data.
- */
- public function clear(): void
- {
- $this->reset();
- }
-
- /**
- * @param string $class
- *
- * @return mixed
- */
- public function toObject(string $class = stdClass::class)
- {
- return Arr::toObject($this->data, $class);
- }
-
- /**
- * @return string
- */
- public function getSeparator(): string
- {
- return $this->separator;
- }
-
- /**
- * @param string $separator
- */
- public function setSeparator($separator): void
- {
- $this->separator = $separator;
- }
-
- /**
- * @return array
- */
- public static function getFormats(): array
- {
- return static::$formats;
- }
-
- /**
- * setName
- *
- * @param string $value
- *
- * @return $this
- */
- public function setName($value): self
- {
- $this->name = $value;
-
- return $this;
- }
-
- /**
- * getName
- *
- * @return string
- */
- public function getName(): string
- {
- return $this->name;
- }
-
- /**
- * load
- *
- * @param string|array|mixed $data
- * @param string $format = 'php'
- *
- * @return static
- * @throws InvalidArgumentException
- * @throws RangeException
- */
- public function load($data, $format = 'php')
- {
- if (!$data) {
- return $this;
- }
-
- if (is_string($data) && in_array($format, static::$formats, true)) {
- switch ($format) {
- case static::FORMAT_YML:
- $this->loadYaml($data);
- break;
-
- case static::FORMAT_JSON:
- $this->loadJson($data);
- break;
-
- case static::FORMAT_INI:
- $this->loadIni($data);
- break;
-
- case static::FORMAT_PHP:
- default:
- $this->loadArray($data);
- break;
- }
-
- } elseif (is_array($data) || is_object($data)) {
- $this->bindData($this->data, $data);
- }
-
- return $this;
- }
-
- /**
- * @param $file
- * @param string $format
- *
- * @return array|mixed
- * @throws FileNotFoundException
- */
- public static function read($file, $format = self::FORMAT_PHP)
- {
- return File::load($file, $format);
- }
-
- /**
- * load data form yml file
- *
- * @param $data
- *
- * @return static
- */
- public function loadYaml($data)
- {
- return $this->bindData($this->data, static::parseYaml($data));
- }
-
- /**
- * load data form php file or array
- *
- * @param array|string $data
- *
- * @return static
- * @throws InvalidArgumentException
- */
- public function loadArray($data)
- {
- if (is_string($data) && is_file($data)) {
- $data = require $data;
- }
-
- if (!is_array($data)) {
- throw new InvalidArgumentException('param type error! must is array.');
- }
-
- return $this->bindData($this->data, $data);
- }
-
- /**
- * load data form php file or array
- *
- * @param mixed $data
- *
- * @return static
- * @throws InvalidArgumentException
- */
- public function loadObject($data)
- {
- if (!is_object($data)) {
- throw new InvalidArgumentException('param type error! must is object.');
- }
-
- return $this->bindData($this->data, $data);
- }
-
- /**
- * load data form ini file
- *
- * @param string $string
- *
- * @return static
- */
- public function loadIni($string)
- {
- return $this->bindData($this->data, self::parseIni($string));
- }
-
- /**
- * load data form json file
- *
- * @param $data
- *
- * @return Collection
- */
- public function loadJson($data): Collection
- {
- return $this->bindData($this->data, static::parseJson($data));
- }
-
- /**
- * @param $parent
- * @param $data
- * @param bool|false $raw
- *
- * @return $this
- */
- protected function bindData(&$parent, $data, $raw = false): self
- {
- // Ensure the input data is an array.
- if (!$raw) {
- $data = Obj::toArray($data);
- }
-
- foreach ($data as $key => $value) {
- if ($value === null) {
- continue;
- }
-
- if (is_array($value)) {
- if (!isset($parent[$key])) {
- $parent[$key] = [];
- }
-
- $this->bindData($parent[$key], $value);
- } else {
- $parent[$key] = $value;
- }
- }
-
- return $this;
- }
-
- /**
- * @return array
- */
- public function getKeys(): array
- {
- return array_keys($this->data);
- }
-
- /**
- * @return RecursiveArrayIterator
- */
- public function getIterator(): Traversable
- {
- return new RecursiveArrayIterator($this->data);
- }
-
- /**
- * Unset an offset in the iterator.
- *
- * @param mixed $offset The array offset.
- *
- * @return void
- */
- public function offsetUnset($offset)
- {
- $this->set($offset, null);
- }
-
- public function __clone()
- {
- $this->data = unserialize(serialize($this->data), ['allowed_classes' => self::class]);
- }
-
- //////
- ///////////////////////////// helper /////////////////////////
- //////
-
- /**
- * @param $string
- * @param bool $enhancement
- * @param callable|null $pathHandler
- * @param string $fileDir
- *
- * @return array
- */
- public static function parseIni($string, $enhancement = false, callable $pathHandler = null, $fileDir = ''): array
- {
- return IniParser::parse($string, $enhancement, $pathHandler, $fileDir);
- }
-
- /**
- * @param $data
- * @param bool $enhancement
- * @param callable|null $pathHandler
- * @param string $fileDir
- *
- * @return array
- */
- public static function parseJson($data, $enhancement = false, callable $pathHandler = null, $fileDir = ''): array
- {
- return JsonParser::parse($data, $enhancement, $pathHandler, $fileDir);
- }
-
- /**
- * parse YAML
- *
- * @param string|bool $data Waiting for the parse data
- * @param bool $enhancement Simple support import other config by tag 'import'. must is bool.
- * @param callable $pathHandler When the second param is true, this param is valid.
- * @param string $fileDir When the second param is true, this param is valid.
- *
- * @return array
- */
- public static function parseYaml($data, $enhancement = false, callable $pathHandler = null, $fileDir = ''): array
- {
- return YmlParser::parse($data, $enhancement, $pathHandler, $fileDir);
- }
-}
diff --git a/src/collection/src/CollectionInterface.php b/src/collection/src/CollectionInterface.php
deleted file mode 100644
index 7a5396b..0000000
--- a/src/collection/src/CollectionInterface.php
+++ /dev/null
@@ -1,48 +0,0 @@
-format = $format;
-
- if (is_string($data) && is_dir($data)) {
- $this->mode = self::MODE_FOLDER;
- $this->folderPath = $data;
- $data = null;
- }
-
- if ($this->mode === self::MODE_FOLDER && !is_dir($this->folderPath)) {
- throw new InvalidArgumentException("Config mode is 'folder'. the property 'folderPath' must is a folder path!");
- }
-
- parent::__construct($data, $this->format, $name);
- }
-
- /**
- * set config value by path
- *
- * @param string $path
- * @param mixed $value
- *
- * @return mixed
- * @throws InvalidArgumentException
- */
- public function set($path, $value)
- {
- // if is readonly
- if ($this->readonly && $this->has($path)) {
- throw new InvalidArgumentException("Config data have been setting readonly. don't allow change.");
- }
-
- return parent::set($path, $value);
- }
-
- /**
- * get value by path
- *
- * @param string $path
- * @param string $default
- *
- * @return mixed
- * @throws InvalidArgumentException
- */
- public function get(string $path, $default = null)
- {
- if ($this->mode === self::MODE_FOLDER) {
- $nodes = Str::toArray($path, $this->separator);
- $name = array_shift($nodes);// config file name
-
- // if config file not load. load it.
- if (!isset($this->data[$name])) {
- $file = $this->folderPath . "/{$name}.{$this->format}";
-
- if (!is_file($file)) {
- throw new InvalidArgumentException("The want get config file not exist, Name: $name, File: $file");
- }
-
- $this->data[$name] = self::read($file, $this->format);
- }
- }
-
- return parent::get($path, $default);
- }
-
- /**
- * get Mode
- *
- * @return string
- */
- public function getMode(): string
- {
- return $this->mode;
- }
-
- /**
- * @param string $mode
- */
- public function setMode(string $mode): void
- {
- $this->mode = $mode;
- }
-
- /**
- * @param bool $readonly
- */
- public function setReadonly($readonly): void
- {
- $this->readonly = (bool)$readonly;
- }
-
- /**
- * data is Readonly
- *
- * @return boolean
- */
- public function isReadonly(): bool
- {
- return $this->readonly;
- }
-
- /**
- * @return string
- */
- public function getFormat(): string
- {
- return $this->format;
- }
-
- /**
- * @param string $format
- */
- public function setFormat(string $format): void
- {
- $this->format = $format;
- }
-
- /**
- * @return string
- */
- public function getFolderPath(): string
- {
- return $this->folderPath;
- }
-
- /**
- * @param string $folderPath
- *
- * @throws InvalidArgumentException
- */
- public function setFolderPath(string $folderPath): void
- {
- if (!is_dir($folderPath)) {
- throw new InvalidArgumentException("The config files folder path is not exists! Path: $folderPath");
- }
-
- $this->folderPath = $folderPath;
- }
-}
diff --git a/src/collection/src/JsonMessage.php b/src/collection/src/JsonMessage.php
deleted file mode 100644
index 97a5dd5..0000000
--- a/src/collection/src/JsonMessage.php
+++ /dev/null
@@ -1,198 +0,0 @@
- 'success', 'code' => 23]);
- * $mg->data = [ 'key' => 'test'];
- * echo json_encode($mg);
- * response to client:
- * {
- * "code":23,
- * "msg":"success",
- * "data": {
- * "key":"value"
- * }
- * }
- */
-class JsonMessage
-{
- /**
- * @var int
- */
- public $code;
-
- /**
- * @var string
- */
- public $msg;
-
- /**
- * @var int|float
- */
- public $time;
-
- /**
- * @var array|string
- */
- public $data;
-
- public static function make($data = null, $msg = 'success', $code = 0)
- {
- return new static($data, $msg, $code);
- }
-
- /**
- * JsonMessage constructor.
- *
- * @param null $data
- * @param string $msg
- * @param int $code
- */
- public function __construct($data = null, $msg = 'success', $code = 0)
- {
- $this->data = $data;
- $this->msg = $msg;
- $this->code = $code;
- }
-
- /**
- * @return bool
- */
- public function isSuccess(): bool
- {
- return (int)$this->code === 0;
- }
-
- /**
- * @return bool
- */
- public function isFailure(): bool
- {
- return (int)$this->code !== 0;
- }
-
- /**
- * @param $code
- *
- * @return $this
- */
- public function code($code): self
- {
- $this->code = (int)$code;
-
- return $this;
- }
-
- /**
- * @param $msg
- *
- * @return $this
- */
- public function msg($msg): self
- {
- $this->msg = $msg;
-
- return $this;
- }
-
- /**
- * @param string $key
- * @param mixed $value
- */
- public function add($key, $value): void
- {
- if (null === $this->data) {
- $this->data = [];
- }
-
- $this->data[$key] = $value;
- }
-
- /**
- * @param array|string $data
- *
- * @return $this
- */
- public function data($data): self
- {
- $this->data = $data;
-
- return $this;
- }
-
- /**
- * @return array
- */
- public function all(): array
- {
- // add a new alert message
- return [
- 'code' => (int)$this->code,
- 'msg' => $this->msg,
- 'data' => (array)$this->data
- ];
- }
-
- /**
- * @return array
- */
- public function toArray(): array
- {
- return $this->all();
- }
-
- /**
- * @return string
- */
- public function __toString()
- {
- return (string)json_encode($this->all());
- }
-
- /**
- * @param string $name
- *
- * @return bool
- */
- public function __isset(string $name)
- {
- return isset($this->data[$name]);
- }
-
- /**
- * @param string $name
- * @param $value
- */
- public function __set(string $name, $value)
- {
- $this->data[$name] = $value;
- }
-
- /**
- * @param string $name
- *
- * @return mixed
- * @throws InvalidArgumentException
- */
- public function __get($name)
- {
- if (isset($this->data[$name])) {
- return $this->data[$name];
- }
-
- throw new InvalidArgumentException(sprintf('the property is not exists: %s', $name));
- }
-}
diff --git a/src/collection/src/Language.php b/src/collection/src/Language.php
deleted file mode 100644
index 87be010..0000000
--- a/src/collection/src/Language.php
+++ /dev/null
@@ -1,779 +0,0 @@
-tl('app.createPage');
- *
- * @var string
- */
- private $separator = '.';
-
- /**
- * e.g.
- * [
- * 'user' => '{basePath}/zh-CN/user.yml'
- * 'admin' => '{basePath}/zh-CN/admin.yml'
- * ]
- *
- * @var array
- */
- private $langFiles = [];
-
- /**
- * loaded language file list.
- *
- * @var array
- */
- private $loadedFiles = [];
-
- /**
- * whether ignore not exists lang file when addLangFile()
- *
- * @var bool
- */
- private $ignoreError = false;
-
- public const DEFAULT_FILE_KEY = '__default';
-
- /**
- * @param array $settings
- *
- * @throws InvalidArgumentException
- * @throws RangeException
- */
- public function __construct(array $settings = [])
- {
- Obj::init($this, $settings);
-
- $this->data = new Collection();
-
- if ($this->defaultFile) {
- $file = $this->buildLangFilePath($this->defaultFile . '.' . $this->format);
-
- if (is_file($file)) {
- $this->data->load($file, $this->format);
- }
- }
- }
-
- /**
- * {@inheritdoc}
- * @throws InvalidArgumentException
- * @see self::translate()
- */
- public function t(string $key, array $args = [], $lang = '')
- {
- return $this->translate($key, $args, $lang);
- }
-
- /**
- * {@inheritdoc}
- * @throws InvalidArgumentException
- * @see self::translate()
- */
- public function tl(string $key, array $args = [], $lang = '')
- {
- return $this->translate($key, $args, $lang);
- }
-
- /**
- * {@inheritdoc}
- * @throws InvalidArgumentException
- * @see self::translate()
- */
- public function trans(string $key, array $args = [], $lang = '')
- {
- return $this->translate($key, $args, $lang);
- }
-
- /**
- * how to use language translate ? please see '/doc/language.md'
- *
- * @param string $key
- * @param array $args
- * @param string $lang
- *
- * @return string|array
- * @throws RangeException
- * @throws InvalidArgumentException
- */
- public function translate(string $key, array $args = [], string $lang = '')
- {
- if (!is_string($key)) {
- throw new InvalidArgumentException('The translate key must be a string.');
- }
-
- $key = trim($key, ' ' . $this->separator);
- if ($key === '') { // '0' is equals False
- throw new InvalidArgumentException('Cannot translate the empty key');
- }
-
- [$lang, $key] = $this->parseKey($key, $lang);
-
- // translate form current language. if not found, translate form fallback language.
- if (($value = $this->findTranslationText($key)) === null) {
- $value = $this->transByFallbackLang($key);
-
- // no translate text
- if ((string)$value === '') {
- if (!empty($args['__default'])) {
- return $args['__default'];
- }
-
- return ucfirst(Str::toSnake(str_replace(['-', '_'], ' ', $key), ' '));
- }
- }
-
- return $args ? sprintf($value, ...$args) : $value;
- }
-
- /*********************************************************************************
- * handle current language translate
- *********************************************************************************/
-
- /**
- * @param string $key
- * @param mixed $value
- *
- * @return mixed
- */
- public function set(string $key, $value)
- {
- return $this->data->set($key, $value);
- }
-
- /**
- * @param string $key
- *
- * @return mixed
- */
- public function has(string $key)
- {
- return $this->data->has($key);
- }
-
- /**
- * @param string $key
- *
- * @return string|mixed
- */
- protected function findTranslationText(string $key)
- {
- if ($val = $this->data->get($key)) {
- return $val;
- }
-
- if (strpos($key, $this->separator)) {
- [$fileKey,] = explode($this->separator, $key);
- } else {
- $fileKey = $key;
- }
-
- // at first, load language data to collection.
- if ($file = $this->getLangFile($fileKey)) {
- $this->loadedFiles[] = $file;
- $this->data->set($fileKey, Collection::read($file, $this->format));
- return $this->data->get($key);
- }
-
- return null;
- }
-
- /*********************************************************************************
- * fallback language translate handle
- *********************************************************************************/
-
- /**
- * @param string $key
- *
- * @return string|mixed
- * @throws InvalidArgumentException
- * @throws RangeException
- */
- protected function transByFallbackLang(string $key)
- {
- if ($this->lang === $this->fallbackLang || !$this->fallbackLang) {
- return null;
- }
-
- // init fallbackData
- if (!$this->fallbackData) {
- $this->fallbackData = new Collection();
-
- if ($this->defaultFile) {
- $file = $this->buildLangFilePath($this->defaultFile . '.' . $this->format, $this->fallbackLang);
-
- if (is_file($file)) {
- $this->fallbackData->load($file, $this->format);
- }
- }
- }
-
- if ($val = $this->fallbackData->get($key)) {
- return $val;
- }
-
- if (strpos($key, $this->separator)) {
- [$fileKey,] = explode($this->separator, $key);
- } else {
- $fileKey = $key;
- }
-
- // the first times fetch, instantiate lang data
- if ($file = $this->getLangFile($fileKey)) {
- $file = str_replace("/{$this->lang}/", "/{$this->fallbackLang}/", $file);
-
- if (is_file($file)) {
- $this->loadedFiles[] = $file;
- $this->fallbackData->set($fileKey, Collection::read($file, $this->format));
-
- return $this->fallbackData->get($key);
- }
- }
-
- return null;
- }
-
- /*********************************************************************************
- * helper
- *********************************************************************************/
-
- /**
- * @param string $key
- * @param string $lang
- *
- * @return array
- */
- private function parseKey(string $key, string $lang = ''): array
- {
- if ($lang) {
- return [$lang, $key];
- }
-
- $langSep = ':';
-
- if (strpos($key, $langSep)) {
- $info = explode($langSep, $key, 2);
-
- if ($this->isLang($info[0])) {
- return $info;
- }
- }
-
- return [$this->lang, $key];
- }
-
- /**
- * @param string $filename
- * @param string $lang
- *
- * @return string
- */
- protected function buildLangFilePath(string $filename, string $lang = ''): string
- {
- $path = ($lang ?: $this->lang) . DIRECTORY_SEPARATOR . trim($filename);
-
- return $this->basePath . DIRECTORY_SEPARATOR . $path;
- }
-
- /*********************************************************************************
- * language file handle
- *********************************************************************************/
-
- /**
- * @param string $fileKey
- *
- * @return string|null
- */
- public function getLangFile(string $fileKey): ?string
- {
- return $this->langFiles[$fileKey] ?? null;
- }
-
- /**
- * @param string $fileKey
- *
- * @return bool
- */
- public function hasLangFile(string $fileKey): bool
- {
- return isset($this->langFiles[$fileKey]);
- }
-
- /**
- * @param string $file
- * @param string $fileKey
- *
- * @throws InvalidArgumentException
- */
- public function addLangFile(string $file, string $fileKey = null)
- {
- if (!FileSystem::isAbsPath($file)) {
- $file = $this->buildLangFilePath($file);
- }
-
- if (!is_file($file)) {
- if ($this->ignoreError) {
- return;
- }
-
- throw new InvalidArgumentException("The language file don't exists. FILE: $file");
- }
-
- $fileKey = $fileKey ?: basename($file, '.' . $this->format);
-
- if (!preg_match('/^[a-z][\w-]+$/i', $fileKey)) {
- throw new InvalidArgumentException("language file key [$fileKey] naming format error!!");
- }
-
- if ($this->hasLangFile($fileKey)) {
- if ($this->ignoreError) {
- return;
- }
-
- throw new InvalidArgumentException("language file key [$fileKey] have been exists, don't allow override!!");
- }
-
- $this->langFiles[$fileKey] = $file;
- }
-
- /**
- * @param string $fileKey
- *
- * @return bool
- */
- public function hasLangFileData(string $fileKey): bool
- {
- return isset($this->data[$fileKey]);
- }
-
- /*********************************************************************************
- * getter/setter
- *********************************************************************************/
-
- /**
- * @param string $lang
- *
- * @return bool
- */
- public function hasLang(string $lang): bool
- {
- return $this->isLang($lang);
- }
-
- /**
- * @param string $lang
- *
- * @return bool
- */
- public function isLang(string $lang): bool
- {
- return $lang && in_array($lang, $this->allowed, true);
- }
-
- /**
- * Allow quick access default file translate by `$lang->key`,
- * is equals to `$lang->tl('key')`.
- *
- * @param string $name
- *
- * @return mixed|string
- * @throws InvalidArgumentException
- */
- public function __get($name)
- {
- return $this->translate($name);
- }
-
- public function __isset($name)
- {
- }
-
- public function __set($name, $value)
- {
- }
-
- /**
- * Allow quick access default file translate by `$lang->key()`,
- * is equals to `$lang->tl('key')`.
- *
- * @param string $name
- * @param array $args
- *
- * @return mixed|string
- * @throws InvalidArgumentException
- */
- public function __call($name, $args)
- {
- return $this->translate($name);
- }
-
- /**
- * @return string
- */
- public function getLang(): string
- {
- return $this->lang;
- }
-
- /**
- * @param string $lang
- */
- public function setLang(string $lang)
- {
- $this->lang = trim($lang);
- }
-
- /**
- * @return string[]
- */
- public function getAllowed(): array
- {
- return $this->allowed;
- }
-
- /**
- * @param string[] $allowed
- */
- public function setAllowed(array $allowed)
- {
- $this->allowed = $allowed;
- }
-
- /**
- * @return string
- */
- public function getBasePath(): string
- {
- return $this->basePath;
- }
-
- /**
- * @param string|array $path
- *
- * @throws InvalidArgumentException
- */
- public function setBasePath(string $path)
- {
- if ($path && is_dir($path)) {
- $this->basePath = $path;
- } else {
- throw new InvalidArgumentException("The language files path: $path is not exists.");
- }
- }
-
- /**
- * @return Collection
- */
- public function getData(): Collection
- {
- return $this->data;
- }
-
- /**
- * @return array
- */
- public function getLangFiles(): array
- {
- return $this->langFiles;
- }
-
- /**
- * @param array $langFiles
- *
- * @throws InvalidArgumentException
- */
- public function setLangFiles(array $langFiles)
- {
- foreach ($langFiles as $fileKey => $file) {
- $this->addLangFile($file, is_numeric($fileKey) ? '' : $fileKey);
- }
- }
-
- /**
- * @param bool $full
- *
- * @return string
- */
- public function getDefaultFile($full = false): string
- {
- return $full ? $this->getLangFile(self::DEFAULT_FILE_KEY) : $this->defaultFile;
- }
-
- /**
- * @return string
- */
- public function getFallbackLang(): string
- {
- return $this->fallbackLang;
- }
-
- /**
- * @param string $fallbackLang
- */
- public function setFallbackLang(string $fallbackLang)
- {
- $this->fallbackLang = $fallbackLang;
- }
-
- /**
- * @return Collection
- */
- public function getFallbackData(): Collection
- {
- return $this->fallbackData;
- }
-
- /**
- * @return string
- */
- public function getFormat(): string
- {
- return $this->format;
- }
-
- /**
- * @param string $format
- */
- public function setFormat($format)
- {
- if (in_array($format, Collection::getFormats(), true)) {
- $this->format = $format;
- }
- }
-
- /**
- * @return string
- */
- public function getSeparator(): string
- {
- return $this->separator;
- }
-
- /**
- * @param string $separator
- */
- public function setSeparator($separator)
- {
- $this->separator = $separator;
- }
-
- /**
- * @return array
- */
- public function getLoadedFiles(): array
- {
- return $this->loadedFiles;
- }
-
- /**
- * @return bool
- */
- public function isIgnoreError(): bool
- {
- return $this->ignoreError;
- }
-
- /**
- * @param bool $ignoreError
- */
- public function setIgnoreError($ignoreError)
- {
- $this->ignoreError = (bool)$ignoreError;
- }
-
- /*********************************************************************************
- * interface implementing
- *********************************************************************************/
-
- /**
- * Retrieve an external iterator
- *
- * @link http://php.net/manual/en/iteratoraggregate.getiterator.php
- * @return Traversable An instance of an object implementing Iterator or
- * Traversable
- * @since 5.0.0
- */
- public function getIterator(): Traversable
- {
- return $this->data->getIterator();
- }
-
- /**
- * Whether a offset exists
- *
- * @link http://php.net/manual/en/arrayaccess.offsetexists.php
- *
- * @param mixed $offset
- * An offset to check for.
- *
- *
- * @return boolean true on success or false on failure.
- *
- *
- * The return value will be casted to boolean if non-boolean was returned.
- * @since 5.0.0
- */
- public function offsetExists($offset): bool
- {
- return $this->has($offset);
- }
-
- /**
- * Offset to retrieve
- *
- * @link http://php.net/manual/en/arrayaccess.offsetget.php
- *
- * @param mixed $offset
- * The offset to retrieve.
- *
- *
- * @return mixed Can return all value types.
- * @since 5.0.0
- * @throws InvalidArgumentException
- */
- public function offsetGet($offset)
- {
- return $this->translate($offset);
- }
-
- /**
- * Offset to set
- *
- * @link http://php.net/manual/en/arrayaccess.offsetset.php
- *
- * @param mixed $offset
- * The offset to assign the value to.
- *
- * @param mixed $value
- * The value to set.
- *
- *
- * @return void
- * @since 5.0.0
- */
- public function offsetSet($offset, $value): void
- {
- $this->set($offset, $value);
- }
-
- /**
- * Offset to unset
- *
- * @link http://php.net/manual/en/arrayaccess.offsetunset.php
- *
- * @param mixed $offset
- * The offset to unset.
- *
- *
- * @return void
- * @since 5.0.0
- */
- public function offsetUnset($offset): void
- {
- unset($this->data[$offset]);
- }
-
- /**
- * Count elements of an object
- *
- * @link http://php.net/manual/en/countable.count.php
- * @return int The custom count as an integer.
- *
- *
- * The return value is cast to an integer.
- * @since 5.1.0
- */
- public function count(): int
- {
- return count($this->data);
- }
-}
diff --git a/src/collection/src/LiteCollection.php b/src/collection/src/LiteCollection.php
deleted file mode 100644
index 90a0c42..0000000
--- a/src/collection/src/LiteCollection.php
+++ /dev/null
@@ -1,199 +0,0 @@
-replace($items);
- }
-
- /**
- * @param string $name
- * @param null|mixed $default
- *
- * @return mixed|null
- */
- public function get(string $name, $default = null)
- {
- return $this[$name] ?? $default;
- }
-
- /**
- * @param string $name
- * @param mixed $value
- *
- * @return mixed|null
- */
- public function add($name, $value)
- {
- if (isset($this[$name])) {
- return null;
- }
-
- $this[$name] = $value;
-
- return $this;
- }
-
- /**
- * @param string $name
- * @param mixed $value
- *
- * @return mixed|null
- */
- public function set($name, $value)
- {
- return $this[$name] = $value;
- }
-
- /**
- * @param array $items
- */
- public function replace(array $items)
- {
- foreach ($items as $key => $value) {
- $this->set($key, $value);
- }
- }
-
- /**
- * @param callable $filter
- *
- * @return static
- */
- public function reject(callable $filter)
- {
- $data = [];
-
- foreach ($this as $key => $value) {
- if (!$filter($value, $key)) {
- $data[$key] = $value;
- }
-
- unset($this[$key]);
- }
-
- return new static($data);
- }
-
- /**
- * @param callable $callback
- *
- * @return static
- */
- public function map(callable $callback)
- {
- $data = [];
-
- foreach ($this as $key => $value) {
- $data[$key] = $callback($value, $key);
- unset($this[$key]);
- }
-
- return new static($data);
- }
-
- /**
- * @param string $char
- *
- * @return string
- */
- public function implode($char = ','): string
- {
- // $string = '';
- //
- // foreach ($this as $key => $value) {
- // $string .= is_array($value) ? $this->implode($char, $value) : implode($char, $value);
- // $string .= implode($char, $value);
- // }
-
- return implode($char, $this->all());
- }
-
- /**
- * {@inheritDoc}
- */
- public function all(): array
- {
- return $this->getArrayCopy();
- }
-
- /**
- * {@inheritDoc}
- */
- public function has(string $key): bool
- {
- return array_key_exists($key, $this->data);
- }
-
- /**
- * {@inheritDoc}
- */
- public function remove($key)
- {
- if (isset($this[$key])) {
- $val = $this[$key];
- unset($this[$key]);
-
- return $val;
- }
-
- return null;
- }
-
- /**
- * clear all data
- */
- public function clear(): void
- {
- foreach ($this as $key) {
- unset($this[$key]);
- }
- }
-
- /**
- * Specify data which should be serialized to JSON
- *
- * @link http://php.net/manual/en/jsonserializable.jsonserialize.php
- * @return mixed data which can be serialized by json_encode ,
- * which is a value of any type other than a resource.
- * @since 5.4.0
- */
- public function jsonSerialize()
- {
- return $this->getArrayCopy();
- }
-}
diff --git a/src/collection/src/SimpleCollection.php b/src/collection/src/SimpleCollection.php
deleted file mode 100644
index 8014a02..0000000
--- a/src/collection/src/SimpleCollection.php
+++ /dev/null
@@ -1,387 +0,0 @@
-replace($items);
- }
-
- public function __destruct()
- {
- $this->clear();
- }
-
- /********************************************************************************
- * Collection interface
- *******************************************************************************/
-
- /**
- * Set collection item
- *
- * @param string $key The data key
- * @param mixed $value The data value
- *
- * @return $this
- */
- public function set($key, $value)
- {
- $this->data[$key] = $value;
-
- return $this;
- }
-
- /**
- * @param $name
- * @param $value
- *
- * @return $this
- */
- public function add($name, $value): self
- {
- if (!$this->has($name)) {
- $this->set($name, $value);
- }
-
- return $this;
- }
-
- /**
- * Get collection item for key
- *
- * @param string $key The data key
- * @param mixed $default The default value to return if data key does not exist
- *
- * @return mixed The key's value, or the default value
- */
- public function get(string $key, $default = null)
- {
- return $this->has($key) ? $this->data[$key] : $default;
- }
-
- /**
- * Add item to collection
- *
- * @param array $items Key-value array of data to append to this collection
- */
- public function replace(array $items)
- {
- foreach ($items as $key => $value) {
- $this->set($key, $value);
- }
- }
-
- /**
- * @param array $names
- *
- * @return array
- */
- public function gets(array $names): array
- {
- $values = [];
-
- foreach ($names as $name) {
- $values[] = $this->get($name);
- }
-
- return $values;
- }
-
- /**
- * @param array $data
- *
- * @return static
- */
- public function sets(array $data)
- {
- foreach ($data as $key => $value) {
- $this->set($key, $value);
- }
-
- return $this;
- }
-
- /**
- * @param callable $filter
- *
- * @return static
- */
- public function reject(callable $filter)
- {
- $data = [];
-
- foreach ($this as $key => $value) {
- if (!$filter($value, $key)) {
- $data[$key] = $value;
- }
-
- unset($this[$key]);
- }
-
- return new static($data);
- }
-
- /**
- * @param callable $callback
- *
- * @return static
- */
- public function map(callable $callback)
- {
- $data = [];
-
- foreach ($this->getIterator() as $key => $value) {
- $data[$key] = $callback($value, $key);
- unset($this[$key]);
- }
-
- return new static($data);
- }
-
- /**
- * @param string $char
- *
- * @return string
- */
- public function implode(string $char = ','): string
- {
- return implode($char, $this->all());
- }
-
- /**
- * Get all items in collection
- *
- * @return array The collection's source data
- */
- public function all(): array
- {
- return $this->data;
- }
-
- /**
- * @return array
- */
- public function toArray(): array
- {
- return $this->all();
- }
-
- /**
- * Get collection keys
- *
- * @return array The collection's source data keys
- */
- public function keys(): array
- {
- return array_keys($this->data);
- }
-
- /**
- * Does this collection have a given key?
- *
- * @param string $key The data key
- *
- * @return bool
- */
- public function has(string $key): bool
- {
- return array_key_exists($key, $this->data);
- }
-
- /**
- * Remove item from collection
- *
- * @param string $key The data key
- *
- * @return mixed|null
- */
- public function remove($key)
- {
- $value = null;
-
- if ($this->has($key)) {
- $value = $this->data[$key];
- unset($this->data[$key]);
- }
-
- return $value;
- }
-
- /**
- * Remove all items from collection
- */
- public function clear(): void
- {
- $this->data = [];
- }
-
- /********************************************************************************
- * ArrayAccess interface
- *******************************************************************************/
-
- /**
- * Does this collection have a given key?
- *
- * @param string $key The data key
- *
- * @return bool
- */
- public function offsetExists($key): bool
- {
- return $this->has($key);
- }
-
- /**
- * Get collection item for key
- *
- * @param string $key The data key
- *
- * @return mixed The key's value, or the default value
- */
- public function offsetGet($key)
- {
- return $this->get($key);
- }
-
- /**
- * Set collection item
- *
- * @param string $key The data key
- * @param mixed $value The data value
- */
- public function offsetSet($key, $value)
- {
- $this->set($key, $value);
- }
-
- /**
- * Remove item from collection
- *
- * @param string $key The data key
- *
- * @return mixed|null
- */
- public function offsetUnset($key)
- {
- return $this->remove($key);
- }
-
- /********************************************************************************
- * Countable interface
- *******************************************************************************/
-
- /**
- * Get number of items in collection
- *
- * @return int
- */
- public function count(): int
- {
- return count($this->data);
- }
-
- /********************************************************************************
- * JsonSerializable interface
- *******************************************************************************/
-
- /**
- * @return array
- */
- public function jsonSerialize(): array
- {
- return $this->data;
- }
-
- /********************************************************************************
- * Serializable interface
- *******************************************************************************/
-
- /**
- * @return string
- */
- public function serialize(): string
- {
- return serialize($this->data);
- }
-
- /**
- * @param string $serialized
- * @param bool|array $allowedClasses
- */
- public function unserialize($serialized, $allowedClasses = false)
- {
- $this->data = unserialize($serialized, ['allowed_classes' => $allowedClasses]);
- }
-
- /********************************************************************************
- * IteratorAggregate interface
- *******************************************************************************/
-
- /**
- * Get collection iterator
- *
- * @return ArrayIterator
- */
- public function getIterator(): Traversable
- {
- return new ArrayIterator($this->data);
- }
-
- /********************************************************************************
- * Magic method
- ******************************************************************************/
-
- /**
- * @param $name
- *
- * @return mixed
- */
- public function __get($name)
- {
- return $this->get($name);
- }
-
- public function __set($name, $value)
- {
- return $this->set($name, $value);
- }
-
- public function __isset($name)
- {
- return $this->has($name);
- }
-}
diff --git a/src/collection/test/LanguageTest.php b/src/collection/test/LanguageTest.php
deleted file mode 100644
index 4d037eb..0000000
--- a/src/collection/test/LanguageTest.php
+++ /dev/null
@@ -1,47 +0,0 @@
- 'en',
- 'allowed' => ['en', 'zh-CN'],
- 'basePath' => __DIR__ . '/testdata',
- 'langFiles' => [
- 'response.php'
- ],
- ]);
-
- $arr = [
- 0 => 'a',
- 1 => 'b',
- 'k' => 'c',
- ];
-
-
- $msg = $l->tl('response.key');
- $this->assertEquals('message', $msg);
- $this->assertTrue($l->has('response.key'));
- $this->assertEquals('successful', $l->trans('response.0'));
- $this->assertEquals('error', $l->trans('response.2'));
- }
-}
diff --git a/src/collection/test/boot.php b/src/collection/test/boot.php
deleted file mode 100644
index a0d7753..0000000
--- a/src/collection/test/boot.php
+++ /dev/null
@@ -1,20 +0,0 @@
- 'successful',
- 2 => 'error',
- 'key' => 'message',
-];
diff --git a/src/collection/test/testdata/zh-CN/response.php b/src/collection/test/testdata/zh-CN/response.php
deleted file mode 100644
index 5a10c38..0000000
--- a/src/collection/test/testdata/zh-CN/response.php
+++ /dev/null
@@ -1,14 +0,0 @@
- '操作成功',
- 2 => '发生错误',
- 'key' => '消息',
-];
diff --git a/src/data-parser/.gitignore b/src/data-parser/.gitignore
deleted file mode 100644
index 86318a0..0000000
--- a/src/data-parser/.gitignore
+++ /dev/null
@@ -1,10 +0,0 @@
-.idea/
-.phpintel/
-!README.md
-!.gitkeep
-composer.lock
-*.swp
-*.log
-*.pid
-*.patch
-.DS_Store
diff --git a/src/data-parser/LICENSE b/src/data-parser/LICENSE
deleted file mode 100644
index d839cdc..0000000
--- a/src/data-parser/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 inhere
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/src/data-parser/README.md b/src/data-parser/README.md
deleted file mode 100644
index 4ef9a0f..0000000
--- a/src/data-parser/README.md
+++ /dev/null
@@ -1,43 +0,0 @@
-# data parser utils
-
-simple data parser for php
-
-driver
-
-- json(by `json_encode`)
-- php(by `serialize`)
-- swoole(by extension `swoole_serialize`)
-- msgpack(by extension `msgpack`)
-
-## Install
-
-- composer command
-
-```bash
-composer require toolkit/data-parser
-```
-
-## Usage
-
-```php
-$parser = new SwooleParser();
-// $parser = new JsonParser();
-// $parser = new PhpParser();
-// $parser = new MsgPackParser();
-
-// encode
-$encoded = $parser->encode($data);
-
-// decode
-$decoded = $parser->encode($encoded);
-```
-
-## Unit testing
-
-```bash
-phpunit
-```
-
-## License
-
-MIT
diff --git a/src/data-parser/composer.json b/src/data-parser/composer.json
deleted file mode 100644
index e2da326..0000000
--- a/src/data-parser/composer.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "name": "toolkit/data-parser",
- "type": "library",
- "description": "some data parser tool library of the php",
- "keywords": [
- "library",
- "tool",
- "php"
- ],
- "homepage": "https://github.com/php-toolkit/data-parser",
- "license": "MIT",
- "authors": [
- {
- "name": "inhere",
- "email": "in.798@qq.com",
- "homepage": "http://www.yzone.net/"
- }
- ],
- "require": {
- "php": ">7.1.0"
- },
- "autoload": {
- "psr-4": {
- "Toolkit\\DataParser\\": "src/"
- }
- },
- "suggest": {
- "inhere/php-validate": "Very lightweight data validate tool",
- "inhere/console": "a lightweight php console application library."
- }
-}
diff --git a/src/data-parser/phpunit.xml.dist b/src/data-parser/phpunit.xml.dist
deleted file mode 100644
index 6052813..0000000
--- a/src/data-parser/phpunit.xml.dist
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
- test/
-
-
-
-
-
- src
-
-
-
diff --git a/src/data-parser/src/AbstractDataParser.php b/src/data-parser/src/AbstractDataParser.php
deleted file mode 100644
index 7f8ef5a..0000000
--- a/src/data-parser/src/AbstractDataParser.php
+++ /dev/null
@@ -1,56 +0,0 @@
-
- */
-abstract class AbstractDataParser implements DataParserInterface
-{
- /**
- * @var array
- */
- protected $encodeOpts;
-
- /**
- * @var array
- */
- protected $decodeOpts;
-
- /**
- * JsonParser constructor.
- *
- * @param array $encodeOpts
- * @param array $decodeOpts
- */
- public function __construct(array $encodeOpts = [], array $decodeOpts = [])
- {
- $this->encodeOpts = $encodeOpts;
- $this->decodeOpts = $decodeOpts;
- }
-
- /**
- * @return array
- */
- public function getEncodeOpts(): array
- {
- return $this->encodeOpts;
- }
-
- /**
- * @return array
- */
- public function getDecodeOpts(): array
- {
- return $this->decodeOpts;
- }
-}
diff --git a/src/data-parser/src/DataParserAwareTrait.php b/src/data-parser/src/DataParserAwareTrait.php
deleted file mode 100644
index 545dfbb..0000000
--- a/src/data-parser/src/DataParserAwareTrait.php
+++ /dev/null
@@ -1,47 +0,0 @@
-
- */
-trait DataParserAwareTrait
-{
- /**
- * @var DataParserInterface
- */
- private $parser;
-
- /**
- * @return DataParserInterface
- */
- public function getParser(): DataParserInterface
- {
- if (!$this->parser) {
- $this->parser = new PhpParser();
- }
-
- return $this->parser;
- }
-
- /**
- * @param DataParserInterface $parser
- *
- * @return DataParserAwareTrait
- */
- public function setParser(DataParserInterface $parser): self
- {
- $this->parser = $parser;
-
- return $this;
- }
-}
diff --git a/src/data-parser/src/DataParserInterface.php b/src/data-parser/src/DataParserInterface.php
deleted file mode 100644
index dc2703a..0000000
--- a/src/data-parser/src/DataParserInterface.php
+++ /dev/null
@@ -1,32 +0,0 @@
-
- */
-interface DataParserInterface
-{
- /**
- * @param mixed $data
- *
- * @return string
- */
- public function encode($data): string;
-
- /**
- * @param string $data
- *
- * @return mixed
- */
- public function decode(string $data);
-}
diff --git a/src/data-parser/src/JsonParser.php b/src/data-parser/src/JsonParser.php
deleted file mode 100644
index b03a0be..0000000
--- a/src/data-parser/src/JsonParser.php
+++ /dev/null
@@ -1,52 +0,0 @@
-
- */
-class JsonParser extends AbstractDataParser
-{
- /**
- * class constructor.
- *
- * @param array $encodeOpts
- * @param array $decodeOpts
- */
- public function __construct(array $encodeOpts = [], array $decodeOpts = [])
- {
- parent::__construct($encodeOpts, $decodeOpts ?: [true]);
- }
-
- /**
- * @param mixed $data
- *
- * @return string
- */
- public function encode($data): string
- {
- return json_encode($data, ...$this->encodeOpts);
- }
-
- /**
- * @param string $data
- *
- * @return mixed
- */
- public function decode(string $data)
- {
- return json_decode($data, ...$this->decodeOpts);
- }
-}
diff --git a/src/data-parser/src/MsgPackParser.php b/src/data-parser/src/MsgPackParser.php
deleted file mode 100644
index ed98805..0000000
--- a/src/data-parser/src/MsgPackParser.php
+++ /dev/null
@@ -1,59 +0,0 @@
-
- * @link https://github.com/msgpack/msgpack-php php-ext
- * @link https://github.com/rybakit/msgpack.php php
- */
-class MsgPackParser extends AbstractDataParser
-{
- /**
- * class constructor.
- *
- * @throws RuntimeException
- */
- public function __construct()
- {
- if (!function_exists('msgpack_pack')) {
- throw new RuntimeException("The php extension 'msgpack' is required!");
- }
-
- parent::__construct();
- }
-
- /**
- * @param mixed $data
- *
- * @return string
- */
- public function encode($data): string
- {
- return msgpack_pack($data);
- }
-
- /**
- * @param string $data
- *
- * @return mixed
- */
- public function decode(string $data)
- {
- return msgpack_unpack($data);
- }
-}
diff --git a/src/data-parser/src/PhpParser.php b/src/data-parser/src/PhpParser.php
deleted file mode 100644
index 5aed253..0000000
--- a/src/data-parser/src/PhpParser.php
+++ /dev/null
@@ -1,41 +0,0 @@
-
- */
-class PhpParser implements DataParserInterface
-{
- /**
- * @param mixed $data
- *
- * @return string
- */
- public function encode($data): string
- {
- return serialize($data);
- }
-
- /**
- * @param string $data
- *
- * @return mixed
- */
- public function decode(string $data)
- {
- return unserialize($data, ['allowed_classes' => false]);
- }
-}
diff --git a/src/data-parser/src/SwooleParser.php b/src/data-parser/src/SwooleParser.php
deleted file mode 100644
index f82d45e..0000000
--- a/src/data-parser/src/SwooleParser.php
+++ /dev/null
@@ -1,59 +0,0 @@
-
- * @link https://wiki.swoole.com/wiki/page/p-serialize.html
- */
-class SwooleParser extends AbstractDataParser
-{
- /**
- * class constructor.
- *
- * @param array $encodeOpts
- *
- * @throws RuntimeException
- */
- public function __construct(array $encodeOpts = [])
- {
- if (!class_exists(Serialize::class, false)) {
- throw new RuntimeException("The php extension 'swoole_serialize' is required!");
- }
-
- parent::__construct($encodeOpts);
- }
-
- /**
- * @param mixed $data
- *
- * @return string
- */
- public function encode($data): string
- {
- return (string)Serialize::pack($data, ...$this->encodeOpts);
- }
-
- /**
- * @param string $data
- *
- * @return mixed
- */
- public function decode(string $data)
- {
- return Serialize::unpack($data, ...$this->decodeOpts);
- }
-}
diff --git a/src/data-parser/test/JsonParserTest.php b/src/data-parser/test/JsonParserTest.php
deleted file mode 100644
index 3050f4b..0000000
--- a/src/data-parser/test/JsonParserTest.php
+++ /dev/null
@@ -1,42 +0,0 @@
-decode($str);
-
- $this->assertArrayHasKey('name', $ret);
- }
-
- public function testEncode(): void
- {
- $data = [
- 'name' => 'value',
- ];
-
- $parser = new JsonParser();
- $ret = $parser->encode($data);
-
- $this->assertJson($ret);
- }
-}
diff --git a/src/data-parser/test/PhpParserTest.php b/src/data-parser/test/PhpParserTest.php
deleted file mode 100644
index f002c7d..0000000
--- a/src/data-parser/test/PhpParserTest.php
+++ /dev/null
@@ -1,44 +0,0 @@
-decode($str);
-
- $this->assertIsArray($ret);
- $this->assertArrayHasKey('name', $ret);
- }
-
- public function testEncode(): void
- {
- $data = [
- 'name' => 'value',
- ];
-
- $parser = new PhpParser();
- $ret = $parser->encode($data);
-
- $this->assertIsString($ret);
- $this->assertStringStartsWith('a:1:{', $ret);
- }
-}
diff --git a/src/data-parser/test/boot.php b/src/data-parser/test/boot.php
deleted file mode 100644
index 125550b..0000000
--- a/src/data-parser/test/boot.php
+++ /dev/null
@@ -1,27 +0,0 @@
-checkEnv();
-
- $output->colored('Components Total: ' . count($this->components));
-
- $buffer = [];
- $showRepo = (bool)$input->getOpt('show-repo');
-
- foreach ($this->components as $component) {
- if (!$showRepo) {
- $buffer[] = " $component";
- continue;
- }
-
- $remote = sprintf($this->gitUrl, self::TYPE_HTTPS, $component);
- $component = str_pad($component, 20);
- $buffer[] = sprintf(' %s - %s', $component, $remote);
- }
-
- $output->writeln($buffer);
-
- return 0;
- }
-
- /**
- * Add component directory code from git repo by 'git subtree add'
- *
- * @usage {fullCommand} [COMPONENTS ...] [--OPTION ...]
- * @arguments
- * Component[s] The existing component name[s], allow multi by space.
- * @options
- * --squash BOOL Add option '--squash' in git subtree add command. default: True
- * --dry-run BOOL Just print all the commands, but do not execute them. default: False
- * -a, --all BOOL Pull all components from them's git repo. default: False
- * -y, --yes BOOL Do not confirm when execute git subtree push. default: False
- * --show-result BOOL Display result for git subtree command exec. default: False
- * @example
- * {fullCommand} collection Pull the collection from it's git repo
- * {fullCommand} collection di Pull multi component
- * @param Input $input
- * @param Output $output
- * @return int
- * @throws RuntimeException
- */
- public function addCommand(Input $input, Output $output): int
- {
- $config = [
- 'operate' => 'add',
- 'operatedNames' => 'Will added components',
- 'begin' => 'Execute the add command',
- 'doing' => 'Adding',
- 'done' => "\nOK, A total of 【%s】 components were successfully added"
- ];
-
- $config['onExec'] = function (string $name) use ($output) {
- $libPath = $this->componentDir . '/libs/' . $name;
-
- if (is_dir($libPath)) {
- $output->liteWarning("Component cannot be repeat add: $name");
-
- return false;
- }
-
- return true;
- };
-
- return $this->runGitSubtree($input, $output, $config);
- }
-
- /**
- * Update component directory code from git repo by 'git subtree pull'
- *
- * @usage {fullCommand} [COMPONENTS ...] [--OPTION ...]
- * @arguments
- * Component[s] The existing component name[s], allow multi by space.
- * @options
- * --squash BOOL Add option '--squash' in git subtree pull command. default: True
- * --dry-run BOOL Just print all the commands, but do not execute them. default: False
- * -a, --all BOOL Pull all components from them's git repo. default: False
- * -y, --yes BOOL Do not confirm when execute git subtree push. default: False
- * --show-result BOOL Display result for git subtree command exec. default: False
- * @example
- * {fullCommand} collection Pull the collection from it's git repo
- * {fullCommand} collection console Pull multi component
- * @param Input $input
- * @param Output $output
- * @return int
- * @throws RuntimeException
- */
- public function pullCommand(Input $input, Output $output): int
- {
- $config = [
- 'operate' => 'pull',
- 'operatedNames' => 'Will pulled components',
- 'begin' => 'Execute the pull command',
- 'doing' => 'Pulling',
- 'done' => "\nOK, A total of 【%s】 components were successfully pulled"
- ];
-
- return $this->runGitSubtree($input, $output, $config);
- }
-
- /**
- * Push component[s] directory code to component's repo by 'git subtree push'
- *
- * @usage {fullCommand} [COMPONENTS ...] [--OPTION ...]
- * @arguments
- * Component[s] The existing component name[s], allow multi by space.
- * @options
- * --type STRING Remote git repository address usage protocol. allow: https, ssl. default: https
- * -a, --all BOOL Push all components to them's git repo. default: False
- * -y, --yes BOOL Do not confirm when execute git subtree push. default: False
- * --dry-run BOOL Just print all the commands, but do not execute them. default: False
- * --squash BOOL Add option '--squash' in git subtree push command. default: True
- * --show-result BOOL Display result for git subtree command exec. default: False
- * @example
- * {fullCommand} collection Push the collection to it's git repo
- * {fullCommand} collection console Push multi component. collection and console
- * {fullCommand} --all Push all components
- * {fullCommand} --all --dry-run Push all components, but do not execute.
- * @param Input $input
- * @param Output $output
- * @return int
- * @throws RuntimeException
- */
- public function pushCommand(Input $input, Output $output): int
- {
- $config = [
- 'operate' => 'push',
- 'operatedNames' => 'Will pushed components',
- 'begin' => 'Execute the push command',
- 'doing' => 'Pushing',
- 'done' => "\nOK, A total of 【%s】 components are pushed to their respective git repositories",
- ];
-
- return $this->runGitSubtree($input, $output, $config);
- }
-
- /**
- * @param Input $input
- * @param Output $output
- * @param array $config
- * @return int
- * @throws RuntimeException
- */
- protected function runGitSubtree(Input $input, Output $output, array $config): int
- {
- $this->checkEnv();
- $output->writeln("Component Directory :\n $this->componentDir");
-
- $operate = $config['operate'];
- $names = array_filter($input->getArgs(), 'is_int', ARRAY_FILTER_USE_KEY);
-
- if ($names) {
- $back = $names;
- $names = array_intersect($names, $this->components);
-
- if (!$names) {
- throw new RuntimeException('Invalid component name entered: ' . implode(', ', $back));
- }
- } elseif ($input->getSameOpt(['a', 'all'], false)) {
- $names = $this->components;
- } else {
- throw new RuntimeException('Please enter the name of the component that needs to be operated');
- }
-
- $output->writeln([
- "{$config['operatedNames']} :",
- ' ' . implode(', ', $names) . ' '
- ]);
-
- $doneOne = ' OK';
- $tryRun = (bool)$input->getOpt('dry-run', false);
- $squash = $input->getOpt('squash', true) ? ' --squash' : '';
-
- $protoType = $input->getOpt('type') ?: 'https';
- $protoHost = $protoType === 'ssl' ? self::TYPE_SSL : self::TYPE_HTTPS;
- $workDir = $this->componentDir;
- $onExec = $config['onExec'] ?? null;
-
- // eg. git subtree push --prefix=src/view git@github.com:php-toolkit/php-utils.git master [--squash]
- $output->writeln("\n{$config['begin']} :");
-
- foreach ($names as $name) {
- if ($onExec && !$onExec($name)) {
- continue;
- }
-
- $ret = null;
- $remote = sprintf($this->gitUrl, $protoHost, $name);
- $command = sprintf('git subtree %s --prefix=libs/%s %s master%s', $operate, $name, $remote, $squash);
-
- $output->writeln("> $command ");
- $output->write("{$config['doing']} '$name' ...", false);
-
- // if '--dry-run' is true. do not exec.
- if (!$tryRun) {
- [$code, $ret, $err] = Sys::run($command, $workDir);
-
- if ($code !== 0) {
- throw new RuntimeException("Exec command failed. command: $command error: $err \nreturn: \n$ret");
- }
- }
-
- $output->colored($doneOne, 'success');
-
- if ($ret && $input->getOpt('show-result')) {
- $output->writeln(PHP_EOL . $ret);
- }
- }
-
- $output->colored(sprintf($config['done'], count($names)), 'success');
-
- return 0;
- }
-
- /**
- * Generate classes API documents by 'sami/sami'
- * @options
- * --sami STRING The sami.phar package absolute path.
- * --force BOOL The option forces a rebuild docs. default: False
- * --dry-run BOOL Just print all the commands, but do not execute them. default: False
- * --show-result BOOL Display result for the docs generate. default: False
- * @example
- * {fullCommand} --sami ~/Workspace/php/tools/sami.phar --force --show-result
- *
- * About sami:
- * - An API documentation generator
- * - github https://github.com/FriendsOfPHP/Sami
- * - download `curl -O http://get.sensiolabs.org/sami.phar`
- * @param Input $input
- * @param Output $output
- * @return int
- * @throws RuntimeException
- */
- public function genApiCommand(Input $input, Output $output): int
- {
- $this->checkEnv();
-
- $option = '';
-
- if (!$samiPath = $input->getOpt('sami')) {
- $output->colored("Please input the sami.phar path by option '--sami'", 'error');
-
- return -1;
- }
-
- if (!is_file($samiPath)) {
- $output->colored('The sami.phar file is not exists! File: ' . $samiPath, 'error');
-
- return -1;
- }
-
- $tryRun = (bool)$input->getOpt('dry-run', false);
- $config = $this->componentDir . '/sami.doc.inc';
- $workDir = $this->componentDir;
-
- if ($input->getOpt('force')) {
- $option .= ' --force';
- }
-
- // php ~/Workspace/php/tools/sami.phar render --force
- $command = sprintf(
- 'php ~/Workspace/php/tools/sami.phar %s %s%s',
- 'update',
- $config,
- $option
- );
-
- $output->writeln("> $command ");
-
- // if '--dry-run' is true. do not exec.
- if (!$tryRun) {
- [$code, $ret,] = Sys::run($command, $workDir);
-
- if ($code !== 0) {
- throw new RuntimeException("Exec command failed. command: $command return: \n$ret");
- }
-
- if ($input->getOpt('show-result')) {
- $output->writeln(PHP_EOL . $ret);
- }
- }
-
- $output->colored("\nOK, Classes reference documents generated!");
-
- return 0;
- }
-
- private function checkEnv(): void
- {
- if (!defined('TOOLKIT_DIR') || !TOOLKIT_DIR) {
- $this->writeln('Missing the TOOLKIT_DIR define ', true);
- }
-
- $this->componentDir = TOOLKIT_DIR;
-
- $file = TOOLKIT_DIR . '/components.inc';
-
- if (!is_file($file)) {
- $this->writeln('Missing the components config. ', true);
- }
-
- $this->components = include $file;
- }
-}
-
diff --git a/src/di/.gitignore b/src/di/.gitignore
deleted file mode 100644
index 86318a0..0000000
--- a/src/di/.gitignore
+++ /dev/null
@@ -1,10 +0,0 @@
-.idea/
-.phpintel/
-!README.md
-!.gitkeep
-composer.lock
-*.swp
-*.log
-*.pid
-*.patch
-.DS_Store
diff --git a/src/di/LICENSE b/src/di/LICENSE
deleted file mode 100644
index d839cdc..0000000
--- a/src/di/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 inhere
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/src/di/README.md b/src/di/README.md
deleted file mode 100644
index 547e9eb..0000000
--- a/src/di/README.md
+++ /dev/null
@@ -1,88 +0,0 @@
-# Dependency injection container
-
-简单的容器管理实现
-
-## Install
-
-```bash
-composer require toolkit/di
-```
-
-## 注册服务
-
-```php
-public function set(string $id, mixed $definition, array $opts = []): Container
-```
-
-### 参数说明
-
-#### 服务ID名
-
- string `$id` 服务组件注册id
-
-#### 服务定义
-
-mixed(string|array|object|callback) `$definition` 服务实例对象|服务信息定义
-
-- string:
-
-```php
- $definition = className
-```
-
-- array:
-
-```php
- $definition = [
- // 1. 仅类名 参数($definition[0])则传入对应构造方法
- 'class' => 'className',
- // 2. 类的静态方法, 参数($definition[0])则传入对应方法 className::staticMethod(args...)
- 'class' => 'className::staticMethod',
- // 3. 类的动态方法, 参数($definition[0]) 则传入对应方法 (new className)->method(args...)
- 'class' => 'className->method',
-
- // 设置参数方式, 没有key
- [
- arg1,arg2,arg3,...
- ]
-
- // 设置属性 , // prop1 prop2 prop3 将会被收集 作为属性
- prop1 => value1,
- prop2 => value2,
- ... ...
-
- // 一些服务设置(别名,是否共享). 将会合并到最后一个参数中
- '_options' => [...]
- ]
-```
-
-- object:
-
-```php
- $definition = new xxClass();
-```
-
-- closure:
-
-```php
- $definition = function($di){
- return object;
- };
-```
-
-#### 选项
-
-- array `$opts` 选项
-
-```php
- [
- 'shared' => (bool), 是否共享,单例
- 'locked' => (bool), 是否锁定服务
- 'aliases' => (array), 别名
- 'init' => (bool), 立即初始化
- ]
-```
-
-## License
-
-MIT
diff --git a/src/di/composer.json b/src/di/composer.json
deleted file mode 100644
index 759ec5d..0000000
--- a/src/di/composer.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "name": "toolkit/di",
- "type": "library",
- "description": "some di tool library of the php",
- "keywords": [
- "library",
- "tool",
- "php"
- ],
- "homepage": "https://github.com/php-toolkit/di",
- "license": "MIT",
- "authors": [
- {
- "name": "inhere",
- "email": "in.798@qq.com",
- "homepage": "http://www.yzone.net/"
- }
- ],
- "require": {
- "php": ">7.1.0",
- "toolkit/obj-utils": "^1.0",
- "psr/container": "^1.0"
- },
- "autoload": {
- "psr-4": {
- "Toolkit\\DI\\": "src/"
- }
- },
- "suggest": {
- "inhere/php-validate": "Very lightweight data validate tool",
- "inhere/console": "a lightweight php console application library."
- }
-}
diff --git a/src/di/example/di.php b/src/di/example/di.php
deleted file mode 100644
index 937bc9e..0000000
--- a/src/di/example/di.php
+++ /dev/null
@@ -1,24 +0,0 @@
- LiteLogger::make(['name' => 'test']),
- 'logger2' => [
- 'target' => LiteLogger::class . '::make',
- ['name' => 'test2']// first arg
- ]
-]);
-
-var_dump($di);
-
-var_dump($di->get('logger2'));
diff --git a/src/di/phpunit.xml.dist b/src/di/phpunit.xml.dist
deleted file mode 100644
index 26bd767..0000000
--- a/src/di/phpunit.xml.dist
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- test/
-
-
-
-
-
- src
-
-
-
diff --git a/src/di/src/CallableResolver.php b/src/di/src/CallableResolver.php
deleted file mode 100644
index 0657637..0000000
--- a/src/di/src/CallableResolver.php
+++ /dev/null
@@ -1,113 +0,0 @@
-container = $container;
- }
-
- /**
- * Resolve toResolve into a closure that that the router can dispatch.
- *
- * If toResolve is of the format 'class:method', then try to extract 'class'
- * from the container otherwise instantiate it and then dispatch 'method'.
- *
- * @param mixed $toResolve
- *
- * @return callable
- *
- * @throws RuntimeException if the callable does not exist
- * @throws RuntimeException if the callable is not resolvable
- */
- public function resolve($toResolve): callable
- {
- if (is_callable($toResolve)) {
- return $toResolve;
- }
-
- if (!is_string($toResolve)) {
- $this->assertCallable($toResolve);
- }
-
- // check for slim callable as "class:method"
- if (preg_match(self::CALLABLE_PATTERN, $toResolve, $matches)) {
- $resolved = $this->resolveCallable($matches[1], $matches[2]);
- $this->assertCallable($resolved);
-
- return $resolved;
- }
-
- $resolved = $this->resolveCallable($toResolve);
- $this->assertCallable($resolved);
-
- return $resolved;
- }
-
- /**
- * Check if string is something in the DIC
- * that's callable or is a class name which has an __invoke() method.
- *
- * @param string $class
- * @param string $method
- *
- * @return callable
- *
- * @throws InvalidArgumentException
- * @throws RuntimeException if the callable does not exist
- */
- private function resolveCallable($class, $method = '__invoke'): callable
- {
- if ($cb = $this->container->getIfExist($class)) {
- return [$cb, $method];
- }
-
- if (!class_exists($class)) {
- throw new RuntimeException(sprintf('Callable %s does not exist', $class));
- }
-
- return [new $class($this->container), $method];
- }
-
- /**
- * @param Callable $callable
- *
- * @throws RuntimeException if the callable is not resolvable
- */
- private function assertCallable($callable): void
- {
- if (!is_callable($callable)) {
- throw new RuntimeException(sprintf('%s is not resolvable',
- is_array($callable) || is_object($callable) ? json_encode($callable) : $callable));
- }
- }
-}
diff --git a/src/di/src/CallableResolverAwareTrait.php b/src/di/src/CallableResolverAwareTrait.php
deleted file mode 100644
index 2c01146..0000000
--- a/src/di/src/CallableResolverAwareTrait.php
+++ /dev/null
@@ -1,48 +0,0 @@
-container instanceof ContainerInterface) {
- return $callable;
- }
-
- /** @var CallableResolverInterface $resolver */
- $resolver = $this->container->get('callableResolver');
-
- return $resolver->resolve($callable);
- }
-}
diff --git a/src/di/src/Container.php b/src/di/src/Container.php
deleted file mode 100644
index 139399a..0000000
--- a/src/di/src/Container.php
+++ /dev/null
@@ -1,775 +0,0 @@
- null,
- 'shared' => true,
- 'locked' => false,
- 'init' => false,
- ];
-
- /**
- * 当前容器名称,初始时即固定
- *
- * @var string
- */
- public $name;
-
- /**
- * 当前容器的父级容器
- *
- * @var Container
- */
- protected $parent;
-
- /**
- * @var array The service ID list.
- */
- private $ids = [];
-
- /**
- * $services 已注册的服务
- * $services = [
- * 'id' => Service Object
- * ... ...
- * ];
- *
- * @var ObjectItem[]
- */
- private $services = [];
-
- /**
- * Container constructor.
- *
- * @param array $services
- * @param Container|null $parent
- *
- * @throws InvalidArgumentException
- * @throws DependencyResolutionException
- */
- public function __construct(array $services = [], Container $parent = null)
- {
- $this->parent = $parent;
-
- $this->sets($services);
- }
-
- public function __destruct()
- {
- $this->clear();
- }
-
- /*******************************************************************************
- * Service Add
- ******************************************************************************/
-
- /**
- * 在容器注册服务(详细的参数信息请查看README.md)
- *
- * @param string $id 服务组件注册id
- * @param $definition
- * @param array $opts
- *
- * @return $this
- * @throws InvalidArgumentException
- * @throws DependencyResolutionException
- */
- public function set(string $id, $definition, array $opts = []): self
- {
- if (!$id = trim($id)) {
- throw new InvalidArgumentException('You must set up the service Id name!');
- }
-
- if ($this->isLocked($id)) {
- throw new InvalidArgumentException(sprintf('Cannot override frozen service "%s".', $id));
- }
-
- $args = $props = [];
- $opts = $opts ? array_merge(self::DEFAULT_OPTIONS, $opts) : self::DEFAULT_OPTIONS;
-
- // 已经是个服务实例 object
- if (is_object($definition)) {
- $this->ids[$id] = (bool)$opts['locked'];
- $this->services[$id] = new ObjectItem($definition, $args, $opts['shared'], $opts['locked']);
- $this->setAlias($id, $opts['aliases']);
-
- return $this;
- }
-
- // a string
- if (is_string($definition) || is_callable($definition)) {
- $callback = $this->createCallback($definition);
-
- // a Array
- } elseif (is_array($definition)) {
- if (empty($definition['class'])) {
- throw new InvalidArgumentException("Configuration errors, the 'class' is must be defined! ID: $id, Def: " . json_encode($definition,
- JSON_UNESCAPED_SLASHES));
- }
-
- $target = $definition['class'];
- unset($definition['class']);
-
- // always add a class name alias.
- $this->setAlias($id, $target);
-
- // some options
- if (isset($definition['_options'])) {
- $opts = array_merge($opts, $definition['_options']);
- unset($definition['_options']);
- }
-
- // Collect method parameters
- if (isset($definition[0])) {
- $args = $definition[0];
- unset($definition[0]);
- }
-
- // Collect object properties
- $props = $definition;
- $callback = $this->createCallback($target, $args, $props);
- } else {
- throw new InvalidArgumentException('Invalid parameter! ID: ' . $id);
- }
-
- $this->ids[$id] = (bool)$opts['locked'];
- $this->services[$id] = new ObjectItem($callback, $args, $opts['shared'], $opts['locked']);
- $this->setAlias($id, $opts['aliases']);
-
- // active service
- if ($opts['init']) {
- $this->getInstance($id);
- }
-
- return $this;
- }
-
- /**
- * 通过设置配置的多维数组 注册多个服务. 服务详细设置请看{@see self::set()}
- *
- * @param array $services
- *
- * @return $this
- * @throws InvalidArgumentException
- * @throws DependencyResolutionException
- * @example
- *
- * ```php
- * $services = [
- * 'service1 id' => 'xx\yy\className',
- * 'service2 id' => ... ,
- * 'service3 id' => ...,
- * SomeServiceProvider::class,
- * ]
- * ```
- */
- public function sets(array $services): self
- {
- foreach ($services as $id => $definition) {
- if (!$definition) {
- continue;
- }
-
- // string. is a Service Provider class name
- if (is_string($definition) && is_subclass_of($definition, ServiceProviderInterface::class)) {
- $this->registerServiceProvider(new $definition);
- continue;
- }
-
- // set service
- if ($id && is_string($id)) {
- $this->set($id, $definition);
- }
- }
-
- return $this;
- }
-
- /**
- * 注册受保护的服务 alias of the lock()
- *
- * @param string $id [description]
- * @param $definition
- * @param $share
- *
- * @return $this
- * @throws InvalidArgumentException
- * @throws DependencyResolutionException
- */
- public function protect(string $id, $definition, $share = false): self
- {
- return $this->lock($id, $definition, $share);
- }
-
- /**
- * (注册)锁定的服务,也可在注册后锁定,防止 getNew() 强制重载
- *
- * @param string $id description
- * @param $definition
- * @param $share
- *
- * @return $this
- * @throws DependencyResolutionException
- * @throws InvalidArgumentException
- */
- public function lock(string $id, $definition, $share = false): self
- {
- return $this->set($id, $definition, [
- 'shared' => $share,
- 'locked' => true,
- ]);
- }
-
- /**
- * 注册服务提供者(可能含有多个服务)
- *
- * @param ServiceProviderInterface $provider 在提供者内添加需要的服务到容器
- *
- * @return $this
- */
- public function registerServiceProvider(ServiceProviderInterface $provider): self
- {
- $provider->register($this);
-
- return $this;
- }
-
- /**
- * @param array $providers
- *
- * @return $this
- */
- public function registerServiceProviders(array $providers): self
- {
- /** @var ServiceProviderInterface $provider */
- foreach ($providers as $provider) {
- // is class name
- if (is_string($provider)) {
- $provider = new $provider;
- }
-
- $provider->register($this);
- }
-
- return $this;
- }
-
- /**
- * 创建(类实例/类的方法)回调
- *
- * @param mixed $target
- * @param array $arguments
- * @param array $props
- *
- * @return callable
- * @throws InvalidArgumentException
- * @throws DependencyResolutionException
- */
- public function createCallback($target, array $arguments = [], array $props = []): callable
- {
- // a Closure OR a callable Object
- if (is_object($target) && method_exists($target, '__invoke')) {
- return $target;
- }
-
- $arguments = array_values($arguments);
- /** @see $this->set() $definition is array */
- $target = trim($target);
-
- if (($pos = strpos($target, '::')) !== false) {
- $callback = function (self $self) use ($target, $arguments) {
- if ($arguments) {
- return $target(...$arguments);
- }
-
- return $target($self);
- };
- } elseif (($pos = strpos($target, '->')) !== false) {
- $class = substr($target, 0, $pos);
- $method = substr($target, $pos + 2);
-
- $callback = function (self $self) use ($class, $method, $arguments, $props) {
- $object = new $class;
-
- Obj::init($object, $props);
-
- if ($arguments) {
- return $object->$method(...$arguments);
- }
-
- return $object->$method($self);
- };
- } else {
- // 仅是个 class name
- $class = $target;
-
- try {
- $reflection = new ReflectionClass($class);
- } catch (Exception $e) {
- throw new InvalidArgumentException($e->getMessage());
- }
-
- /** @var ReflectionMethod */
- $reflectionMethod = $reflection->getConstructor();
-
- // If there are no parameters, just return a new object.
- if (null === $reflectionMethod) {
- $callback = function () use ($class, $props) {
- return Obj::init(new $class, $props);
- };
- } else {
- $arguments = $arguments ?: Obj::getMethodArgs($reflectionMethod);
-
- // Create a callable
- $callback = function () use ($reflection, $arguments, $props) {
- $object = $reflection->newInstanceArgs($arguments);
-
- return Obj::init($object, $props);
- };
- }
-
- unset($reflection, $reflectionMethod);
- }
-
- return $callback;
- }
-
- /*******************************************************************************
- * Service(Instance) Get
- ******************************************************************************/
-
- /**
- * get 获取已注册的服务组件实例
- * - (单例)共享服务总是获取已存储的实例
- * - 其他的则总是返回新的实例
- *
- * @param string $id 要获取的服务组件id
- *
- * @return mixed
- * @throws InvalidArgumentException
- */
- public function get($id)
- {
- if (!$this->has($id)) {
- // a class name.
- if (strpos($id, '\\') && class_exists($id)) {
- /** @noinspection ExceptionsAnnotatingAndHandlingInspection */
- $this->set($id, new $id);
- } else {
- throw new InvalidArgumentException("The service '$id' was not found, has not been registered!");
- }
- }
-
- return $this->getInstance($id);
- }
-
- /**
- * 强制获取服务的新实例,针对共享服务
- *
- * @param $id
- *
- * @return mixed
- * @throws InvalidArgumentException
- */
- public function getNew(string $id)
- {
- return $this->new($id);
- }
-
- /**
- * @param string $id
- *
- * @return mixed|null
- */
- public function new(string $id)
- {
- return $this->getInstance($id, true, true);
- }
-
- /**
- * 若存在服务则返回 否则返回 null
- *
- * @param string $id
- *
- * @return mixed|null
- * @throws InvalidArgumentException
- */
- public function getIfExist(string $id)
- {
- /** @noinspection ExceptionsAnnotatingAndHandlingInspection */
- return $this->getInstance($id, false);
- }
-
- /**
- * @param string $id
- *
- * @return mixed
- * @throws InvalidArgumentException
- */
- public function raw(string $id)
- {
- $id = $this->resolveAlias($id);
-
- if ($service = $this->getService($id, true)) {
- return $service->getCallback();
- }
-
- throw new InvalidArgumentException("get service define error for ID: $id");
- }
-
- /**
- * 删除服务
- *
- * @param $id
- */
- public function del(string $id)
- {
- $id = $this->resolveAlias($id);
-
- if (isset($this->ids[$id])) {
- unset($this->ids[$id], $this->services[$id]);
- }
- }
-
- /*******************************************************************************
- * Helper
- ******************************************************************************/
-
- /**
- * get 获取已注册的服务组件实例
- *
- * @param $id
- * @param bool $thrErr
- * @param bool $forceNew 强制获取服务的新实例
- *
- * @return mixed|null
- * @throws InvalidArgumentException
- */
- public function getInstance(string $id, $thrErr = true, $forceNew = false)
- {
- if (!$id) {
- throw new InvalidArgumentException(sprintf('The first parameter must be a non-empty string, %s given',
- gettype($id)));
- }
-
- $id = $this->resolveAlias($id);
-
- if ($service = $this->getService($id, $thrErr)) {
- return $service->get($this, $forceNew);
- }
-
- return null;
- }
-
- /**
- * 获取某一个服务的信息
- *
- * @param $id
- * @param bool $thrErr
- *
- * @return ObjectItem|null
- * @throws InvalidArgumentException
- */
- public function getService(string $id, $thrErr = false): ?ObjectItem
- {
- $id = $this->resolveAlias($id);
-
- if (isset($this->ids[$id])) {
- return $this->services[$id];
- }
-
- if ($thrErr) {
- throw new InvalidArgumentException("The service '$id' was not found, has not been registered!");
- }
-
- return null;
- }
-
- /**
- * @param $alias
- *
- * @return mixed
- */
- public function resolveAlias(string $alias)
- {
- // is a real ID
- if (isset($this->ids[$alias])) {
- return $alias;
- }
-
- return $this->aliases[$alias] ?? $alias;
- }
-
- /**
- * clear
- */
- public function clear()
- {
- $this->parent = null;
- $this->services = $this->aliases = $this->ids = [];
- }
-
- /*******************************************************************************
- * Getter/Setter
- ******************************************************************************/
-
- /**
- * 获取全部服务信息
- *
- * @return array
- */
- public function getServices(): array
- {
- return $this->services;
- }
-
- /**
- * Method to set property parent
- *
- * @param Container $parent Parent container.
- *
- * @return static Return self to support chaining.
- */
- public function setParent(Container $parent)
- {
- $this->parent = $parent;
-
- return $this;
- }
-
- /**
- * 获取全部服务id
- *
- * @param bool $toArray
- *
- * @return array
- */
- public function getIds($toArray = true): array
- {
- $ids = array_keys($this->services);
-
- return $toArray ? $ids : implode(', ', $ids);
- }
-
- /**
- * @param $id
- *
- * @return bool
- * @throws InvalidArgumentException
- */
- public function isShared(string $id): bool
- {
- if ($service = $this->getService($id)) {
- return $service->isShared();
- }
-
- return false;
- }
-
- /**
- * @param $id
- *
- * @return bool
- * @throws InvalidArgumentException
- */
- public function isLocked(string $id): bool
- {
- $id = $this->resolveAlias($id);
-
- return $this->ids[$id] ?? false;
- }
-
- /**
- * Is a registered service object
- *
- * @param string $id
- *
- * @return bool|ObjectItem
- */
- public function has($id)
- {
- return $this->exists($id);
- }
-
- /**
- * @param string $id
- *
- * @return bool
- */
- public function exists(string $id): bool
- {
- $id = $this->resolveAlias($id);
-
- return isset($this->services[$id]);
- }
-
- /**
- * @param $name
- *
- * @return bool|ObjectItem
- */
- public function __isset($name)
- {
- return $this->exists($name);
- }
-
- /**
- * @param $name
- * @param $value
- *
- * @throws InvalidArgumentException
- * @throws DependencyResolutionException
- */
- public function __set($name, $value)
- {
- $this->set($name, $value);
- }
-
- /**
- * @param $name
- *
- * @return bool
- * @throws InvalidArgumentException
- * @throws NotFoundException
- */
- public function __get($name)
- {
- if ($service = $this->getService($name)) {
- return $service->get($this);
- }
-
- $method = 'get' . ucfirst($name);
-
- if (method_exists($this, $method)) {
- return $this->$method();
- }
-
- throw new NotFoundException('Getting a Unknown property! ' . get_class($this) . "::{$name}");
- }
-
- /*******************************************************************************
- * Interfaces implement
- ******************************************************************************/
-
- /**
- * @return int
- */
- public function count(): int
- {
- return count($this->ids);
- }
-
- /**
- * Defined by IteratorAggregate interface
- * Returns an iterator for this object, for use with foreach
- *
- * @return ArrayIterator
- */
- public function getIterator(): Iterator
- {
- return new ArrayIterator($this->services);
- }
-
- /**
- * Checks whether an offset exists in the iterator.
- *
- * @param mixed $offset The array offset.
- *
- * @return boolean True if the offset exists, false otherwise.
- */
- public function offsetExists($offset): bool
- {
- return $this->exists($offset);
- }
-
- /**
- * Gets an offset in the iterator.
- *
- * @param mixed $offset The array offset.
- *
- * @return mixed The array value if it exists, null otherwise.
- * @throws InvalidArgumentException
- */
- public function offsetGet($offset)
- {
- return $this->get($offset);
- }
-
- /**
- * Sets an offset in the iterator.
- *
- * @param mixed $offset The array offset.
- * @param mixed $value The array value.
- *
- * @throws InvalidArgumentException
- * @throws DependencyResolutionException
- */
- public function offsetSet($offset, $value): void
- {
- $this->set($offset, $value);
- }
-
- /**
- * Unset an offset in the iterator.
- *
- * @param mixed $offset The array offset.
- *
- * @return void
- */
- public function offsetUnset($offset): void
- {
- $this->del($offset);
- }
-
-}
diff --git a/src/di/src/DIManager.php b/src/di/src/DIManager.php
deleted file mode 100644
index 6959827..0000000
--- a/src/di/src/DIManager.php
+++ /dev/null
@@ -1,129 +0,0 @@
- [
- 'root' => null,// 'container name'=> a base Container instance
- 'children' => []
- ]
- ];
-
- /**
- * @return Container
- */
- public static function getDefault(): Container
- {
- return self::make('root', self::$defaultGroup);
- }
-
- /**
- * @param null|string $name
- *
- * @return Container
- */
- public static function getContainer(string $name = null): Container
- {
- return self::make($name);
- }
-
- /**
- * @param string $name
- * @param string $group
- *
- * @return Container
- */
- public static function make(string $name = null, string $group = null): Container
- {
- $group = $group ?: self::$defaultGroup;
-
- // No name, return default's base container.
- if (!$name) {
- if (empty(self::$containers[$group]['root'])) {
- $container = new Container;
- $container->name = 'di.root';
-
- self::$containers[$group]['root'] = $container;
- }
-
- return self::$containers[$group]['root'];
- }
-
- // Has name, we return children container.
- if (empty(self::$containers[$group][$name]) || !(self::$containers[$group][$name] instanceof Container)) {
- self::$containers[$group][$name] = new Container([], self::make(null, $group));
- self::$containers[$group][$name]->name = $name;
- }
-
- return self::$containers[$group][$name];
- }
-
- /**
- * setProfile
- *
- * @param string $group
- *
- * @return void
- */
- public static function setDefaultGroup($group = 'di'): void
- {
- $group = strtolower(trim($group));
-
- if (!isset(static::$containers[$group])) {
- static::$containers[$group] = [
- 'root' => null,
- 'children' => []
- ];
- }
-
- static::$defaultGroup = $group;
- }
-
- /**
- * Method to get property Profile
- *
- * @return string
- */
- public static function getDefaultGroup(): string
- {
- return static::$defaultGroup;
- }
-
- /**
- * reset
- *
- * @param string $group
- */
- public static function reset($group = null): void
- {
- if (!$group) {
- static::$containers = [];
- } else {
- static::$containers[$group] = [];
- }
- }
-}
diff --git a/src/di/src/Exception/DependencyResolutionException.php b/src/di/src/Exception/DependencyResolutionException.php
deleted file mode 100644
index 9aec1b3..0000000
--- a/src/di/src/Exception/DependencyResolutionException.php
+++ /dev/null
@@ -1,21 +0,0 @@
- 'id',
- * 'alias name2' => 'id'
- * ]
- */
- private $aliases = [];
-
- /**
- * set name alias
- *
- * @param string $name
- * @param array|string $alias
- */
- public function setAlias(string $name, $alias): void
- {
- if (!$name || !$alias) {
- return;
- }
-
- // setting
- if (is_array($alias)) {
- foreach ($alias as $aliasName) {
- if (!isset($this->aliases[$aliasName])) {
- $this->aliases[$aliasName] = $name;
- }
- }
- } else {
- $this->aliases[$alias] = $name;
- }
- }
-
- /**
- * @param string $alias
- *
- * @return mixed
- */
- public function resolveAlias(string $alias): string
- {
- return $this->aliases[$alias] ?? $alias;
- }
-
- /**
- * @param $alias
- *
- * @return bool
- */
- public function isAlias(string $alias): bool
- {
- return isset($this->aliases[$alias]);
- }
-
- /**
- * @return array
- */
- public function getAliases(): array
- {
- return $this->aliases;
- }
-
- /**
- * @param array $aliases
- *
- * @return $this
- */
- public function setAliases(array $aliases): self
- {
- $this->aliases = $aliases;
-
- return $this;
- }
-
- /**
- * @param array $aliases
- *
- * @return $this
- */
- public function addAliases(array $aliases): self
- {
- $this->aliases = array_merge($this->aliases, $aliases);
-
- return $this;
- }
-}
diff --git a/src/di/src/ObjectItem.php b/src/di/src/ObjectItem.php
deleted file mode 100644
index bec60e1..0000000
--- a/src/di/src/ObjectItem.php
+++ /dev/null
@@ -1,191 +0,0 @@
-arguments = $arguments;
-
- $this->shared = (bool)$shared;
- $this->locked = (bool)$locked;
-
- $this->setCallback($callback);
- }
-
- /**
- * __clone
- */
- private function __clone()
- {
- }
-
- /**
- * __destruct
- */
- public function __destruct()
- {
- $this->instance = $this->callback = $this->arguments = null;
- }
-
- /**
- * @param Container $container
- * @param bool $forceNew
- *
- * @return mixed|null
- */
- public function get(Container $container, $forceNew = false)
- {
- if ($this->shared) {
- if (!$this->instance || $forceNew) {
- $cb = $this->callback;
- $this->instance = $cb($container);
- }
-
- // 激活后就锁定,不允许再覆盖设置服务
- $this->locked = true;
- return $this->instance;
- }
-
- $cb = $this->callback;
-
- return $cb($container);
- }
-
- /**
- * @return mixed
- */
- public function getCallback()
- {
- return $this->callback;
- }
-
- /**
- * @param $callback
- */
- public function setCallback($callback): void
- {
- if (!method_exists($callback, '__invoke')) {
- $this->instance = $callback;
- $callback = function () use ($callback) {
- return $callback;
- };
- }
-
- $this->callback = $callback;
- }
-
- /**
- * @return array
- */
- public function getArguments(): array
- {
- return $this->arguments;
- }
-
- /**
- * 给服务设置参数,在获取服务实例前
- *
- * @param array $params 设置参数
- *
- * @throws InvalidArgumentException
- */
- public function setArguments(array $params): void
- {
- $this->arguments = $params;
- }
-
- /**
- * @return mixed
- */
- public function getInstance()
- {
- return $this->instance;
- }
-
- /**
- * @return bool
- */
- public function isLocked(): bool
- {
- return $this->locked;
- }
-
- /**
- * @param bool $locked
- */
- public function setLocked($locked = true): void
- {
- $this->locked = (bool)$locked;
- }
-
- /**
- * @return bool
- */
- public function isShared(): bool
- {
- return $this->shared;
- }
-
- /**
- * @param bool $shared
- */
- public function setShared($shared = true): void
- {
- $this->shared = (bool)$shared;
- }
-}
diff --git a/src/di/src/ServiceProviderInterface.php b/src/di/src/ServiceProviderInterface.php
deleted file mode 100644
index 336735e..0000000
--- a/src/di/src/ServiceProviderInterface.php
+++ /dev/null
@@ -1,24 +0,0 @@
- SomeClass::class,
- 's2' => [
- 'class' => MakeByStatic::class . '::factory',
- [
- [
- 'name' => 'test2'
- ]
- ]
- ],
- 's3' => [
- 'class' => MakeByMethod::class . '->factory',
- [
- [
- 'name' => 'test2'
- ]
- ]
- ]
- ]);
-
- $this->assertCount(3, $di);
- $this->assertTrue($di->has('s1'));
- }
-}
diff --git a/src/di/test/MakeByMethod.php b/src/di/test/MakeByMethod.php
deleted file mode 100644
index 3af5a8e..0000000
--- a/src/di/test/MakeByMethod.php
+++ /dev/null
@@ -1,22 +0,0 @@
-options = $options;
- }
-
- /**
- * @return array
- */
- public function getOptions(): array
- {
- return $this->options;
- }
-}
diff --git a/src/di/test/boot.php b/src/di/test/boot.php
deleted file mode 100644
index cb1e95b..0000000
--- a/src/di/test/boot.php
+++ /dev/null
@@ -1,31 +0,0 @@
-7.1.0",
- "toolkit/arr-utils": "~1.0",
- "toolkit/obj-utils": "~1.0",
- "toolkit/str-utils": "~1.0",
- "toolkit/sys-utils": "~1.0",
- "toolkit/file-utils": "~1.0",
- "toolkit/php-utils": "~1.0"
- },
- "autoload": {
- "psr-4": {
- "Toolkit\\Util\\": "src/Util",
- "Toolkit\\Traits\\": "src/Traits",
- "Toolkit\\Helper\\": "src/Helper"
- }
- },
- "suggest": {
- "inhere/php-validate": "Very lightweight data validate tool",
- "inhere/console": "a lightweight php console application library."
- }
-}
diff --git a/src/helper-utils/phpunit.xml.dist b/src/helper-utils/phpunit.xml.dist
deleted file mode 100644
index 3a3155a..0000000
--- a/src/helper-utils/phpunit.xml.dist
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
- test
-
-
-
-
-
- src
-
-
-
diff --git a/src/helper-utils/src/Helper/AssertHelper.php b/src/helper-utils/src/Helper/AssertHelper.php
deleted file mode 100644
index 3f7f9fe..0000000
--- a/src/helper-utils/src/Helper/AssertHelper.php
+++ /dev/null
@@ -1,27 +0,0 @@
- $allowedClasses]);
- }
-
- /**
- * php对象转换成为数组
- * @param iterable|array|\Traversable $data
- * @param bool $recursive
- * @return array|bool
- */
- public static function toArray($data, $recursive = false)
- {
- // Ensure the input data is an array.
- if (\is_object($data)) {
- if ($data instanceof \Traversable) {
- $data = iterator_to_array($data);
- } elseif (method_exists($data, 'toArray')) {
- $data = $data->toArray();
- }
- } else {
- $data = (array)$data;
- }
-
- if ($recursive) {
- foreach ($data as &$value) {
- if (\is_array($value) || \is_object($value)) {
- $value = static::toArray($value, $recursive);
- }
- }
- }
-
- return $data;
- }
-
- /**
- * data to array
- * @param array|\Traversable $array
- * @param string $class
- * @return mixed
- */
- public static function toObject($array, $class = \stdClass::class)
- {
- $object = new $class;
-
- foreach ($array as $name => $value) {
- $name = trim($name);
-
- if (!$name || is_numeric($name)) {
- continue;
- }
-
- $object->$name = \is_array($value) ? self::toObject($value) : $value;
- }
-
- return $object;
- }
-
- /**
- * Sanitize a string
- * @param string $string String to sanitize
- * @param bool $clearTag clear html tag
- * @return string Sanitized string
- */
- public static function safeOutput($string, $clearTag = false): string
- {
- if (!$clearTag) {
- $string = strip_tags($string);
- }
-
- return @self::htmlentitiesUTF8($string);
- }
-
- /**
- * @param $string
- * @param int $type
- * @return array|string
- */
- public static function htmlentitiesUTF8($string, $type = ENT_QUOTES)
- {
- if (\is_array($string)) {
- return array_map([__CLASS__, 'htmlentitiesUTF8'], $string);
- }
-
- return htmlentities((string)$string, $type, 'utf-8');
- }
-
- /**
- * @param $string
- * @return string
- */
- public static function htmlentitiesDecodeUTF8($string): string
- {
- if (\is_array($string)) {
- $string = array_map([__CLASS__, 'htmlentitiesDecodeUTF8'], $string);
-
- return (string)array_shift($string);
- }
-
- return html_entity_decode((string)$string, ENT_QUOTES, 'utf-8');
- }
-
- /**
- * @param $argc
- * @param $argv
- * @return null
- */
- public static function argvToGET($argc, $argv)
- {
- if ($argc <= 1) {
- return true;
- }
-
- // get the first argument and parse it like a query string
- parse_str($argv[1], $args);
- if (!\is_array($args) || !\count($args)) {
- return true;
- }
-
- $_GET = array_merge($args, $_GET);
- $_SERVER['QUERY_STRING'] = $argv[1];
-
- return true;
- }
-
- /**
- * 清理数据的空白
- * @param $data array|string
- * @return array|string
- */
- public static function trim($data)
- {
- if (is_scalar($data)) {
- return trim($data);
- }
-
- array_walk_recursive($data, function (&$value) {
- $value = trim($value);
- });
-
- return $data;
- }
-
- /*
- * strip_tags — 从字符串中去除 HTML 和 PHP 标记
- * 由于 strip_tags() 无法实际验证 HTML,不完整或者破损标签将导致更多的数据被删除。
- * $allow_tags 允许的标记,多个以空格隔开
- **/
- public static function stripTags($data, $allow_tags = null)
- {
- if (\is_array($data)) {
- foreach ($data as $k => $v) {
- $data[$k] = self::stripTags($v, $allow_tags);
- }
-
- return $data;
- }
-
- if (\is_string($data) || is_numeric($data)) {
- return strip_tags($data, $allow_tags);
- }
-
- return false;
- }
-
- /**
- * 对数组或字符串进行加斜杠\转义处理 去除转义
- * 去除转义返回一个去除反斜线后的字符串(\' 转换为 ' 等等)。双反斜线(\\)被转换为单个反斜线(\)。
- * @param array|string $data 数据可以是字符串或数组
- * @param int $escape 进行转义 true 转义处理 false 去除转义
- * @param int $level 增强
- * @return array|string
- */
- public static function slashes($data, $escape = 1, $level = 0)
- {
- if (\is_array($data)) {
- foreach ((array)$data as $key => $value) {
- $data[$key] = self::slashes($value, $escape, $level);
- }
-
- return $data;
- }
-
- $data = trim($data);
-
- if (!$escape) {
- return stripslashes($data);
- }
-
- $data = addslashes($data);
-
- if ($level) {
- // 两个str_replace替换转义目的是防止黑客转换SQL编码进行攻击。
- $data = str_replace(['_', '%'], ["\_", "\%"], $data); // 转义掉_ %
- }
-
- return $data;
- }
-
- public static function escape_query($str): string
- {
- return strtr($str, [
- "\0" => '',
- "'" => ''',
- '"' => '"',
- "\\" => '\',
- // more secure
- '<' => '<',
- '>' => '>',
- ]);
- }
-
- /**
- * 对数据进行字符集转换处理,数据可以是字符串或数组及对象
- * @param array|string $data
- * @param $in_charset
- * @param $out_charset
- * @return array|string
- */
- public static function changeEncode($data, $in_charset = 'GBK', $out_charset = 'UTF-8')
- {
- if (\is_array($data)) {
-
- foreach ($data as $key => $value) {
- $data[$key] = self::changeEncode($value, $in_charset, $out_charset);
- }
-
- return $data;
- }
-
- if (\function_exists('mb_convert_encoding')) {
- return mb_convert_encoding($data, $out_charset, $in_charset);
- }
-
- return iconv($in_charset, $out_charset . '/' . '/IGNORE', $data);
- }
-
-}
diff --git a/src/helper-utils/src/Helper/DateHelper.php b/src/helper-utils/src/Helper/DateHelper.php
deleted file mode 100644
index 5acb5e0..0000000
--- a/src/helper-utils/src/Helper/DateHelper.php
+++ /dev/null
@@ -1,203 +0,0 @@
- static::getOption('host', 'localhost'),
- '{PORT}' => static::getOption('port', 3306),
- '{DBNAME}' => static::getOption('database'),
- '{CHARSET}' => static::getOption('charset', 'utf8')
- ]
- ];
- }
-
- /**
- * cubrid
- * @return array
- */
- protected static function cubrid(): array
- {
- return [
- 'cubrid:host={HOST};port={PORT};dbname={DBNAME}',
- [
- '{HOST}' => static::getOption('host', 'localhost'),
- '{PORT}' => static::getOption('port', 33000),
- '{DBNAME}' => static::getOption('database')
- ]
- ];
- }
-
- /**
- * dblib
- * @return array
- */
- protected static function dblib(): array
- {
- return [
- 'dblib:host={HOST};port={PORT};dbname={DBNAME}',
- [
- '{HOST}' => static::getOption('host', 'localhost'),
- '{PORT}' => static::getOption('port', 1433),
- '{DBNAME}' => static::getOption('database')
- ]
- ];
- }
-
- /**
- * firebird
- * @return array
- */
- protected static function firebird(): array
- {
- return [
- 'firebird:dbname={DBNAME}',
- [
- '{DBNAME}' => static::getOption('database')
- ]
- ];
- }
-
- /**
- * ibm
- * @return array
- */
- protected static function ibm(): array
- {
- if ($dsn = static::getOption('dsn')) {
- return [
- 'ibm:DSN={DSN}',
- [
- '{DSN}' => $dsn
- ]
- ];
- }
-
- return [
- 'ibm:hostname={HOST};port={PORT};database={DBNAME}',
- [
- '{HOST}' => static::getOption('host', 'localhost'),
- '{PORT}' => static::getOption('port', 56789),
- '{DBNAME}' => static::getOption('database')
- ]
- ];
- }
-
- /**
- * dblib
- * @return array
- */
- protected static function informix(): array
- {
- if ($dsn = static::getOption('dsn')) {
- return [
- 'informix:DSN={DSN}',
- [
- '{DSN}' => $dsn
- ]
- ];
- }
-
- return [
- 'informix:host={HOST};service={PORT};database={DBNAME};server={SERVER};protocol={PROTOCOL}',
- [
- '{HOST}' => static::getOption('host', 'localhost'),
- '{PORT}' => static::getOption('port', 1526),
- '{DBNAME}' => static::getOption('database'),
- '{SERVER}' => static::getOption('server'),
- '{PROTOCOL}' => static::getOption('protocol')
- ]
- ];
- }
-
- /**
- * mssql
- * @return array
- */
- protected static function mssql(): array
- {
- return [
- 'mssql:host={HOST};port={PORT};dbname={DBNAME}',
- [
- '{HOST}' => static::getOption('host', 'localhost'),
- '{PORT}' => static::getOption('port', 1433),
- '{DBNAME}' => static::getOption('database')
- ]
- ];
- }
-
- /**
- * oci
- * @return array
- */
- protected static function oci(): array
- {
- if ($dsn = static::getOption('dsn')) {
- return [
- 'oci:dbname={DSN};charset={CHARSET}',
- [
- '{DSN}' => $dsn,
- '{CHARSET}' => static::getOption('charset', 'AL32UTF8')
- ]
- ];
- }
-
- return [
- 'oci:dbname=//#HOST#:#PORT#/#DBNAME};charset={CHARSET}',
- [
- '{HOST}' => static::getOption('host', 'localhost'),
- '{PORT}' => static::getOption('port', 56789),
- '{DBNAME}' => static::getOption('database'),
- '{CHARSET}' => static::getOption('charset', 'AL32UTF8')
- ]
- ];
- }
-
- /**
- * odbc
- * @return array
- */
- protected static function odbc(): array
- {
- return [
- 'odbc:DSN={DSN};UID:#USER};PWD={PASSWORD}',
- [
- '{HOST}' => static::getOption('host', 'localhost'),
- '{USER}' => static::getOption('user', 1433),
- '{PASSWORD}' => static::getOption('password')
- ]
- ];
- }
-
- /**
- * pgsql
- * @return array
- */
- protected static function pgsql(): array
- {
- return [
- 'pgsql:host={HOST};port={PORT};dbname={DBNAME}',
- [
- '{HOST}' => static::getOption('host', 'localhost'),
- '{PORT}' => static::getOption('port', 5432),
- '{DBNAME}' => static::getOption('database', 'postgres')
- ]
- ];
- }
-
- /**
- * Alias of pgsql
- * @return array
- */
- protected static function postgresql(): array
- {
- return static::pgsql();
- }
-
- /**
- * sqlite
- * @return array
- */
- protected static function sqlite(): array
- {
- $version = (int)static::getOption('version');
-
- $format = $version === 2 ? 'sqlite2:{DBNAME}' : 'sqlite:{DBNAME}';
-
- return [
- $format,
- [
- '{DBNAME}' => static::getOption('database')
- ]
- ];
- }
-
- /**
- * sybase
- * @return array
- */
- protected static function sybase(): array
- {
- return [
- 'pgsql:host={HOST};port={PORT};dbname={DBNAME}',
- [
- '{HOST}' => static::getOption('host', 'localhost'),
- '{PORT}' => static::getOption('port', 1433),
- '{DBNAME}' => static::getOption('database')
- ]
- ];
- }
-
- /**
- * sybase
- * @return array
- */
- protected static function fourd(): array
- {
- return [
- '4D:host={HOST};charset=UTF-8',
- [
- '{HOST}' => static::getOption('host', 'localhost'),
- '{CHARSET}' => static::getOption('charset', 'UTF-8')
- ]
- ];
- }
-
- /**
- * getOption
- * @param string $name
- * @param string $default
- * @return mixed
- */
- protected static function getOption($name, $default = null)
- {
- return self::$options[$name] ?? $default;
- }
-}
-
diff --git a/src/helper-utils/src/Helper/FormatHelper.php b/src/helper-utils/src/Helper/FormatHelper.php
deleted file mode 100644
index b059514..0000000
--- a/src/helper-utils/src/Helper/FormatHelper.php
+++ /dev/null
@@ -1,352 +0,0 @@
- $format) {
- if ($secs >= $format[0]) {
- if ((isset($timeFormats[$index + 1]) && $secs < $timeFormats[$index + 1][0])
- || $index === \count($timeFormats) - 1
- ) {
- if (2 === \count($format)) {
- return $format[1];
- }
-
- return floor($secs / $format[2]) . ' ' . $format[1];
- }
- }
- }
-
- return date('Y-m-d H:i:s', $secs);
- }
-
- /**
- * @param string $mTime value is microtime(1)
- * @return string
- */
- public static function microTime($mTime = null): string
- {
- if (!$mTime) {
- $mTime = microtime(true);
- }
-
- [$ts, $ms] = explode('.', sprintf('%.4f', $mTime));
-
- return date('Y/m/d H:i:s', $ts) . '.' . $ms;
- }
-
- /**
- * @param $memory
- * @return string
- * ```
- * Helper::memory(memory_get_usage(true));
- * ```
- */
- public static function memory($memory): string
- {
- if ($memory >= 1024 * 1024 * 1024) {
- return sprintf('%.1f GiB', $memory / 1024 / 1024 / 1024);
- }
-
- if ($memory >= 1024 * 1024) {
- return sprintf('%.1f MiB', $memory / 1024 / 1024);
- }
-
- if ($memory >= 1024) {
- return sprintf('%d KiB', $memory / 1024);
- }
-
- return sprintf('%d B', $memory);
- }
-
- /**
- * @param int $size
- * @return string
- * ```
- * Helper::size(memory_get_usage(true));
- * ```
- */
- public static function size(int $size): string
- {
- if ($size >= 1024 * 1024 * 1024) {
- return sprintf('%.1f Gb', $size / 1024 / 1024 / 1024);
- }
-
- if ($size >= 1024 * 1024) {
- return sprintf('%.1f Mb', $size / 1024 / 1024);
- }
-
- if ($size >= 1024) {
- return sprintf('%d Kb', $size / 1024);
- }
-
- return sprintf('%d b', $size);
- }
-
- /**
- * Format a number into a human readable format
- * e.g. 24962496 => 23.81M
- * @param $size
- * @param int $precision
- * @return string
- */
- public static function bytes($size, $precision = 2): string
- {
- if (!$size) {
- return '0';
- }
-
- $base = log($size) / log(1024);
- $suffixes = ['b', 'k', 'M', 'G', 'T'];
- $floorBase = floor($base);
-
- return round(1024 ** ($base - $floorBase), $precision) . $suffixes[(int)$floorBase];
- }
-
- /**
- * Convert a shorthand byte value from a PHP configuration directive to an integer value
- * @param string $value value to convert
- * @return int
- */
- public static function convertBytes($value): int
- {
- if (is_numeric($value)) {
- return $value;
- }
-
- $value_length = \strlen($value);
- $qty = (int)substr($value, 0, $value_length - 1);
- $unit = \strtolower(\substr($value, $value_length - 1));
- switch ($unit) {
- case 'k':
- $qty *= 1024;
- break;
- case 'm':
- $qty *= 1048576;
- break;
- case 'g':
- $qty *= 1073741824;
- break;
- }
-
- return $qty;
- }
-
- /**
- * Replaces & with & for XHTML compliance
- * @param string $text Text to process
- * @return string Processed string.
- */
- public static function ampReplace($text): string
- {
- $text = str_replace([
- '&&',
- '',
- '',
- '&',
- '*-*',
- '*--*',
- ], [
- '*--*',
- '*-*',
- '*-*',
- '&',
- '',
- '&&',
- ], $text);
-
- $text = (string)preg_replace('/|&(?![\w]+;)|/', '&', $text);
-
- return $text;
- }
-
- /**
- * Cleans text of all formatting and scripting code
- * @param string|null|array $text Text to clean
- * @return string Cleaned text.
- */
- public static function cleanText(string $text): string
- {
- $text = preg_replace('//si', '', $text);
- $text = preg_replace('/]*>([^<]+)<\/a>/is', '\2 (\1)', $text);
- $text = preg_replace('//', '', $text);
- $text = preg_replace('/{.+?}/', '', $text);
- $text = preg_replace('/ /', ' ', $text);
- $text = preg_replace('/&/', ' ', $text);
- $text = preg_replace('/"/', ' ', $text);
- $text = strip_tags($text);
- $text = htmlspecialchars($text);
-
- return $text;
- }
-
- /**
- * 返回删除注释和空格后的PHP源码(php_strip_whitespace)
- * @link http://cn2.php.net/manual/zh/function.php-strip-whitespace.php
- * @param string|bool $src
- * @return string
- */
- public static function phpCode(string $src): string
- {
- // Whitespaces left and right from this signs can be ignored
- static $IW = [
- T_CONCAT_EQUAL, // .=
- T_DOUBLE_ARROW, // =>
- T_BOOLEAN_AND, // &&
- T_BOOLEAN_OR, // ||
- T_IS_EQUAL, // ==
- T_IS_NOT_EQUAL, // != or <>
- T_IS_SMALLER_OR_EQUAL, // <=
- T_IS_GREATER_OR_EQUAL, // >=
- T_INC, // ++
- T_DEC, // --
- T_PLUS_EQUAL, // +=
- T_MINUS_EQUAL, // -=
- T_MUL_EQUAL, // *=
- T_DIV_EQUAL, // /=
- T_IS_IDENTICAL, // ===
- T_IS_NOT_IDENTICAL, // !==
- T_DOUBLE_COLON, // ::
- T_PAAMAYIM_NEKUDOTAYIM, // ::
- T_OBJECT_OPERATOR, // ->
- T_DOLLAR_OPEN_CURLY_BRACES, // ${
- T_AND_EQUAL, // &=
- T_MOD_EQUAL, // %=
- T_XOR_EQUAL, // ^=
- T_OR_EQUAL, // |=
- T_SL, // <<
- T_SR, // >>
- T_SL_EQUAL, // <<=
- T_SR_EQUAL, // >>=
- ];
-
- if (!$src) {
- return false;
- }
-
- if (is_file($src) && (!$src = file_get_contents($src))) {
- return false;
- }
-
- $tokens = token_get_all($src);
-
- $new = '';
- $c = \count($tokens);
- $iw = false; // ignore whitespace
- $ih = false; // in HEREDOC
- $ls = ''; // last sign
- $ot = null; // open tag
- for ($i = 0; $i < $c; $i++) {
- $token = $tokens[$i];
- if (\is_array($token)) {
- [$tn, $ts] = $token; // tokens: number, string, line
- $tname = token_name($tn);
- if ($tn === T_INLINE_HTML) {
- $new .= $ts;
- $iw = false;
- } elseif ($tn === T_OPEN_TAG) {
- if (strpos($ts, ' ') || strpos($ts, "\n") || strpos($ts, "\t") || strpos($ts, "\r")) {
- $ts = rtrim($ts);
- }
- $ts .= ' ';
- $new .= $ts;
- $ot = T_OPEN_TAG;
- $iw = true;
- } elseif ($tn === T_OPEN_TAG_WITH_ECHO) {
- $new .= $ts;
- $ot = T_OPEN_TAG_WITH_ECHO;
- $iw = true;
- } elseif ($tn === T_CLOSE_TAG) {
- if ($ot === T_OPEN_TAG_WITH_ECHO) {
- $new = rtrim($new, '; ');
- } else {
- $ts = ' ' . $ts;
- }
- $new .= $ts;
- $ot = null;
- $iw = false;
- } elseif (\in_array($tn, $IW, true)) {
- $new .= $ts;
- $iw = true;
- } elseif ($tn === T_CONSTANT_ENCAPSED_STRING || $tn === T_ENCAPSED_AND_WHITESPACE) {
- if ($ts[0] === '"') {
- $ts = addcslashes($ts, "\n\t\r");
- }
- $new .= $ts;
- $iw = true;
- } elseif ($tn === T_WHITESPACE) {
- $nt = @$tokens[$i + 1];
- if (!$iw && (!\is_string($nt) || $nt === '$') && !\in_array($nt[0], $IW, true)) {
- $new .= ' ';
- }
- $iw = false;
- } elseif ($tn === T_START_HEREDOC) {
- $new .= "<< 4096,
- 'addContentLengthHeader' => false,
- ], $options);
-
- // Send response
- if (!headers_sent()) {
- // Status
- header(sprintf(
- 'HTTP/%s %s %s',
- $response->getProtocolVersion(),
- $response->getStatusCode(),
- $response->getReasonPhrase()
- ));
-
- // Headers
- foreach ($response->getHeaders() as $name => $values) {
- /** @var array $values */
- foreach ($values as $value) {
- header(sprintf('%s: %s', $name, $value), false);
- }
- }
- }
-
- // Body
- if (!self::isEmptyResponse($response)) {
- $body = $response->getBody();
- if ($body->isSeekable()) {
- $body->rewind();
- }
-
- $chunkSize = $options['chunkSize'];
- $contentLength = $response->getHeaderLine('Content-Length');
-
- if (!$contentLength) {
- $contentLength = $body->getSize();
- }
-
- if (null !== $contentLength) {
- $amountToRead = $contentLength;
- while ($amountToRead > 0 && !$body->eof()) {
- $data = $body->read(min($chunkSize, $amountToRead));
- echo $data;
- $amountToRead -= \strlen($data);
-
- if (connection_status() !== CONNECTION_NORMAL) {
- break;
- }
- }
- } else {
- while (!$body->eof()) {
- echo $body->read($chunkSize);
- if (connection_status() !== CONNECTION_NORMAL) {
- break;
- }
- }
- }
- }
- }
-
- /**
- * Helper method, which returns true if the provided response must not output a body and false
- * if the response could have a body.
- * @see https://tools.ietf.org/html/rfc7231
- * @param ResponseInterface $response
- * @return bool
- */
- public static function isEmptyResponse(ResponseInterface $response): bool
- {
- if (method_exists($response, 'isEmpty')) {
- return $response->isEmpty();
- }
-
- return \in_array($response->getStatusCode(), [204, 205, 304], true);
- }
-
-}
diff --git a/src/helper-utils/src/Helper/IntHelper.php b/src/helper-utils/src/Helper/IntHelper.php
deleted file mode 100644
index 49bf357..0000000
--- a/src/helper-utils/src/Helper/IntHelper.php
+++ /dev/null
@@ -1,96 +0,0 @@
- $country_name,
- 'stateOrProvinceName' => $state_or_province_name,
- 'localityName' => $locality_name,
- 'organizationName' => $organization_name,
- 'organizationalUnitName' => $organizational_unit_name,
- 'commonName' => $common_name,
- 'emailAddress' => $email_address,
- ];
-
- // private key
- $priKey = openssl_pkey_new();
- $cert = openssl_csr_new($dn, $priKey);
- $cert = openssl_csr_sign($cert, null, $priKey, 365);
-
- $pem = [];
-
- openssl_x509_export($cert, $pem[0]);
- openssl_pkey_export($priKey, $pem[1], $pem_passphrase);
-
- $pem = implode($pem);
-
- return false !== file_put_contents($pem_file, $pem);
- }
-}
diff --git a/src/helper-utils/src/Helper/UtilHelper.php b/src/helper-utils/src/Helper/UtilHelper.php
deleted file mode 100644
index fb16a3f..0000000
--- a/src/helper-utils/src/Helper/UtilHelper.php
+++ /dev/null
@@ -1,53 +0,0 @@
-console.' . $type . '(' . $data . ');';
- }
-
- /**
- * @param string $pathname
- * @param int|string $projectId This must be a one character
- * @return int|string
- * @throws \LogicException
- */
- public static function ftok($pathname, $projectId)
- {
- if (\strlen($projectId) > 1) {
- throw new \LogicException("the project id must be a one character(int/str). Input: $projectId");
- }
-
- if (\function_exists('ftok')) {
- return ftok($pathname, $projectId);
- }
-
- if (!$st = @stat($pathname)) {
- return -1;
- }
-
- $key = sprintf('%u', ($st['ino'] & 0xffff) | (($st['dev'] & 0xff) << 16) | (($projectId & 0xff) << 24));
-
- return $key;
- }
-}
diff --git a/src/helper-utils/src/Traits/AopProxyAwareTrait.php b/src/helper-utils/src/Traits/AopProxyAwareTrait.php
deleted file mode 100644
index 9b08d3a..0000000
--- a/src/helper-utils/src/Traits/AopProxyAwareTrait.php
+++ /dev/null
@@ -1,219 +0,0 @@
- [handler0, handler1],
- * 'XyzClass::methodAfter' => [handler2, handler3],
- * ]
- */
-trait AopProxyAwareTrait
-{
- /**
- * @var array
- */
- private static $proxyPoints = ['before', 'after'];
-
- /**
- * @var mixed the proxy target is a class name or a object
- */
- private $proxyTarget;
-
- public function proxy($class, string $method = '', array $args = [])
- {
- $this->proxyTarget = $class;
-
- if ($method) {
- return $this->call($method, $args);
- }
-
- return $this;
- }
-
- /**
- * @param string $method
- * @param array $args
- * @return mixed
- * @throws \LogicException
- */
- public function call(string $method, array $args = [])
- {
- if (!$target = $this->proxyTarget) {
- throw new \LogicException('Please setting the proxy target [proxyTarget]');
- }
-
- // on before exec method
- if ($cbList = $this->findProxyCallback($target, $method)) {
- foreach ($cbList as $cb) {
- PhpHelper::call($cb, $target, $method, $args);
- }
- }
-
- // exec method
- $ret = PhpHelper::call([$target, $method], ...$args);
-
- // on after exec method
- if ($cb = $this->findProxyCallback($target, $method, 'after')) {
- foreach ($cbList as $cb) {
- PhpHelper::call($cb, $target, $method, $args);
- }
- }
-
- // clear
- $this->proxyTarget = null;
-
- return $ret;
- }
-
- /**
- * @param string $method
- * @param array $args
- * @return mixed
- */
- public function __call(string $method, array $args = [])
- {
- return $this->call($method, $args);
- }
-
- /**
- * @param array ...$args
- * @return $this|mixed
- * @throws \InvalidArgumentException
- */
- public function __invoke(...$args)
- {
- $num = \count($args);
-
- // only a object
- if ($num === 1) {
- return $this->proxy($args[0]);
- }
-
- // has object and method
- if ($num > 1) {
- $class = \array_shift($args);
- $method = \array_shift($args);
-
- return $this->proxy($class, $method, $args);
- }
-
- throw new \InvalidArgumentException('Missing parameters!');
- }
-
- /**
- * @param string|object $target
- * @param string $method
- * @param string $prefix
- * @return array
- */
- protected function findProxyCallback($target, $method, $prefix = 'before'): array: ?array
- {
- $className = \is_string($target) ? $target : \get_class($target);
-
- // e.g XyzClass::methodAfter
- $key = $className . '::' . $method . \ucfirst($prefix);
-
- return $this->proxyMap[$key] ?? [];
- }
-
- /**
- * @see addProxy()
- * @param $key
- * @param $handler
- * @param string $position
- * @return $this
- */
- public function register($key, $handler, $position = 'before'): self
- {
- return $this->addProxy($key, $handler, $position);
- }
-
- /**
- * @param string $key eg 'XyzClass::method'
- * @param callable $handler
- * @param string $position 'before' 'after'
- * @return $this
- */
- public function addProxy(string $key, $handler, string $position = 'before'): self
- {
- if (!\in_array($position, self::$proxyPoints, true)) {
- return $this;
- }
-
- $key .= \ucfirst($position);
- // save
- $this->proxyMap[$key][] = $handler;
-
- return $this;
- }
-
- /**
- * @param array $map
- * @return $this
- */
- public function addProxies(array $map): self
- {
- foreach ($map as $key => $handler) {
- $position = 'before';
-
- if (\is_array($handler)) {
- if (!isset($handler['handler'])) {
- continue;
- }
-
- $position = $handler['position'] ?? 'before';
- $handler = $handler['handler'];
- }
-
- $this->addProxy($key, $handler, $position);
- }
-
- return $this;
- }
-
- /**
- * @return array
- */
- public static function getProxyPoints(): array
- {
- return self::$proxyPoints;
- }
-
- /**
- * @return mixed
- */
- public function getProxyTarget()
- {
- return $this->proxyTarget;
- }
-
- /**
- * @return array
- */
- public function getProxyMap(): array
- {
- return $this->proxyMap;
- }
-
- /**
- * @param array $proxyMap
- */
- public function setProxyMap(array $proxyMap): void: void
- {
- $this->proxyMap = $proxyMap;
- }
-}
diff --git a/src/helper-utils/src/Traits/Config/ConfigTrait.php b/src/helper-utils/src/Traits/Config/ConfigTrait.php
deleted file mode 100644
index 6344c4a..0000000
--- a/src/helper-utils/src/Traits/Config/ConfigTrait.php
+++ /dev/null
@@ -1,105 +0,0 @@
-config);
- }
-
- /**
- * Method to get property Options
- * @param string $name
- * @param mixed $default
- * @return mixed
- */
- public function getValue(string $name, $default = null)
- {
- $value = Arr::getByPath($this->config, $name, $default);
-
- if ($value && $value instanceof \Closure) {
- $value = $value();
- }
-
- return $value;
- }
-
- /**
- * Method to set property config
- * @param string $name
- * @param mixed $value
- * @return static Return self to support chaining.
- */
- public function setValue($name, $value)
- {
- $this->config[$name] = $value;
-
- return $this;
- }
-
- /**
- * delete a option
- * @param $name
- * @return mixed|null
- */
- public function delValue($name)
- {
- $value = null;
-
- if ($this->hasConfig($name)) {
- $value = $this->getValue($name);
-
- unset($this->config[$name]);
- }
-
- return $value;
- }
-
- /**
- * Method to get property Options
- * @param string|null $key
- * @return array
- */
- public function getConfig(string $key = null): array
- {
- if ($key) {
- return $this->getValue($key);
- }
-
- return $this->config;
- }
-
- /**
- * Method to set property config
- * @param array $config
- * @param bool $loopMerge
- * @return static Return self to support chaining.
- */
- public function setConfig(array $config, $loopMerge = true)
- {
- $this->config = $loopMerge ? Arr::merge($this->config, $config) : $config;
-
- return $this;
- }
-}
diff --git a/src/helper-utils/src/Traits/Config/LiteConfigTrait.php b/src/helper-utils/src/Traits/Config/LiteConfigTrait.php
deleted file mode 100644
index e871218..0000000
--- a/src/helper-utils/src/Traits/Config/LiteConfigTrait.php
+++ /dev/null
@@ -1,103 +0,0 @@
-config);
- }
-
- /**
- * Method to get property Options
- * @param string $name
- * @param mixed $default
- * @return mixed
- */
- public function getValue($name, $default = null)
- {
- $value = array_key_exists($name, $this->config) ? $this->config[$name] : $default;
-
- if ($value && ($value instanceof \Closure)) {
- $value = $value();
- }
-
- return $value;
- }
-
- /**
- * Method to set property config
- * @param string $name
- * @param mixed $value
- * @return static Return self to support chaining.
- */
- public function setValue($name, $value)
- {
- $this->config[$name] = $value;
-
- return $this;
- }
-
- /**
- * delete a option
- * @param $name
- * @return mixed|null
- */
- public function delValue($name)
- {
- $value = null;
-
- if ($this->hasConfig($name)) {
- $value = $this->getValue($name);
-
- unset($this->config[$name]);
- }
-
- return $value;
- }
-
- /**
- * Method to get property Options
- * @param string|null $key
- * @return array
- */
- public function getConfig($key = null): array
- {
- if ($key) {
- return $this->getValue($key);
- }
-
- return $this->config;
- }
-
- /**
- * Method to set property config
- * @param array $config
- * @param bool $merge
- * @return static Return self to support chaining.
- */
- public function setConfig(array $config, $merge = true)
- {
- $this->config = $merge ? array_merge($this->config, $config) : $config;
-
- return $this;
- }
-}
diff --git a/src/helper-utils/src/Traits/Config/LiteOptionsTrait.php b/src/helper-utils/src/Traits/Config/LiteOptionsTrait.php
deleted file mode 100644
index 6b81332..0000000
--- a/src/helper-utils/src/Traits/Config/LiteOptionsTrait.php
+++ /dev/null
@@ -1,98 +0,0 @@
-options);
- }
-
- /**
- * Method to get property Options
- * @param string $name
- * @param mixed $default
- * @return mixed
- */
- public function getOption(string $name, $default = null)
- {
- $value = array_key_exists($name, $this->options) ? $this->options[$name] : $default;
-
- if ($value && ($value instanceof \Closure)) {
- $value = $value();
- }
-
- return $value;
- }
-
- /**
- * Method to set property options
- * @param string $name
- * @param mixed $value
- * @return static Return self to support chaining.
- */
- public function setOption($name, $value)
- {
- $this->options[$name] = $value;
-
- return $this;
- }
-
- /**
- * delete a option
- * @param $name
- * @return mixed|null
- */
- public function delOption($name)
- {
- $value = null;
-
- if ($this->hasOption($name)) {
- $value = $this->getOption($name);
-
- unset($this->options[$name]);
- }
-
- return $value;
- }
-
- /**
- * Method to get property Options
- * @return array
- */
- public function getOptions(): array
- {
- return $this->options;
- }
-
- /**
- * Method to set property options
- * @param array $options
- * @param bool $merge
- * @return static Return self to support chaining.
- */
- public function setOptions(array $options, $merge = true)
- {
- $this->options = $merge ? array_merge($this->options, $options) : $options;
-
- return $this;
- }
-}
diff --git a/src/helper-utils/src/Traits/Config/OptionsTrait.php b/src/helper-utils/src/Traits/Config/OptionsTrait.php
deleted file mode 100644
index db9f71d..0000000
--- a/src/helper-utils/src/Traits/Config/OptionsTrait.php
+++ /dev/null
@@ -1,100 +0,0 @@
-options);
- }
-
- /**
- * Method to get property Options
- * @param string $name
- * @param mixed $default
- * @return mixed
- */
- public function getOption(string $name, $default = null)
- {
- $value = array_key_exists($name, $this->options) ? $this->options[$name] : $default;
-
- if ($value && ($value instanceof \Closure)) {
- $value = $value();
- }
-
- return $value;
- }
-
- /**
- * Method to set property options
- * @param string $name
- * @param mixed $value
- * @return static Return self to support chaining.
- */
- public function setOption($name, $value)
- {
- $this->options[$name] = $value;
-
- return $this;
- }
-
- /**
- * delete a option
- * @param $name
- * @return mixed|null
- */
- public function delOption($name)
- {
- $value = null;
-
- if ($this->hasOption($name)) {
- $value = $this->getOption($name);
-
- unset($this->options[$name]);
- }
-
- return $value;
- }
-
- /**
- * Method to get property Options
- * @return array
- */
- public function getOptions(): array
- {
- return $this->options;
- }
-
- /**
- * Method to set property options
- * @param array $options
- * @param bool $merge
- * @return static Return self to support chaining.
- */
- public function setOptions(array $options, $merge = true)
- {
- $this->options = $merge ? Arr::merge($this->options, $options) : $options;
-
- return $this;
- }
-}
diff --git a/src/helper-utils/src/Traits/Event/EventTrait.php b/src/helper-utils/src/Traits/Event/EventTrait.php
deleted file mode 100644
index ec66754..0000000
--- a/src/helper-utils/src/Traits/Event/EventTrait.php
+++ /dev/null
@@ -1,189 +0,0 @@
- bool, // is once event
- * ]
- */
- private $events = [];
-
- /**
- * @var array
- */
- private $eventHandlers = [];
-
- /**
- * register a event handler
- * @param $event
- * @param callable $handler
- * @param bool $once
- */
- public function on($event, callable $handler, $once = false): void
- {
- if ($this->isSupportedEvent($event)) {
- $this->eventHandlers[$event][] = $handler;
- $this->events[$event] = (bool)$once;
- }
- }
-
- /**
- * register a once event handler
- * @param $event
- * @param callable $handler
- */
- public function once($event, callable $handler): void
- {
- $this->on($event, $handler, true);
- }
-
- /**
- * trigger event
- * @param $event
- * @param array $args
- * @return bool
- */
- public function fire($event, array $args = []): bool
- {
- if (!isset($this->events[$event])) {
- return false;
- }
-
- // call event handlers of the event.
- foreach ((array)$this->eventHandlers[$event] as $cb) {
- // return FALSE to stop go on handle.
- if (false === PhpHelper::call($cb, ...$args)) {
- break;
- }
- }
-
- // is a once event, remove it
- if ($this->events[$event]) {
- return $this->off($event);
- }
-
- return true;
- }
-
- /**
- * remove event and it's handlers
- * @param string $event
- * @return mixed
- */
- public function off($event)
- {
- if ($this->hasEvent($event)) {
- $handler = $this->eventHandlers[$event];
-
- unset($this->events[$event], $this->eventHandlers[$event]);
-
- return $handler;
- }
-
- return null;
- }
-
- /**
- * clearEvents
- */
- public function clearEvents(): void
- {
- $this->events = $this->eventHandlers = [];
- }
-
- /**
- * @param $event
- * @return bool
- */
- public function hasEvent($event): bool
- {
- return isset($this->events[$event]);
- }
-
- /**
- * @param $event
- * @return bool
- */
- public function isOnce($event): bool
- {
- if ($this->hasEvent($event)) {
- return $this->events[$event];
- }
-
- return false;
- }
-
- /**
- * check $name is a supported event name
- * @param $event
- * @return bool
- */
- public function isSupportedEvent($event): bool
- {
- if (!$event || !preg_match('/[a-zA-z][\w-]+/', $event)) {
- return false;
- }
-
- if ($ets = $this->supportedEvents) {
- return \in_array($event, $ets, true);
- }
-
- return true;
- }
-
- /**
- * @return array
- */
- public function getSupportEvents(): array
- {
- return $this->supportedEvents;
- }
-
- /**
- * @param array $supportedEvents
- */
- public function setSupportEvents(array $supportedEvents): void
- {
- $this->supportedEvents = $supportedEvents;
- }
-
- /**
- * @return array
- */
- public function getEvents(): array
- {
- return $this->events;
- }
-
- /**
- * @return int
- */
- public function getEventCount(): int
- {
- return \count($this->events);
- }
-}
diff --git a/src/helper-utils/src/Traits/Event/FixedEventStaticTrait.php b/src/helper-utils/src/Traits/Event/FixedEventStaticTrait.php
deleted file mode 100644
index 6720bb7..0000000
--- a/src/helper-utils/src/Traits/Event/FixedEventStaticTrait.php
+++ /dev/null
@@ -1,183 +0,0 @@
- bool, // is once event
- * ]
- */
- private static $events = [];
-
- /**
- * events and handlers
- * @var array
- * [
- * 'event' => callable, // event handler
- * ]
- */
- private static $eventHandlers = [];
-
- /**
- * register a event handler
- * @param $event
- * @param callable $handler
- * @param bool $once
- */
- public static function on($event, callable $handler, $once = false): void
- {
- if (self::isSupportedEvent($event)) {
- self::$eventHandlers[$event][] = $handler;
- self::$events[$event] = (bool)$once;
- }
- }
-
- /**
- * register a once event handler
- * @param $event
- * @param callable $handler
- */
- public static function once($event, callable $handler): void
- {
- self::on($event, $handler, true);
- }
-
- /**
- * trigger event
- * @param $event
- * @param array $args
- * @return bool
- */
- public static function fire($event, array $args = []): bool
- {
- if (!isset(self::$events[$event])) {
- return false;
- }
-
- // call event handlers of the event.
- foreach ((array)self::$eventHandlers[$event] as $cb) {
- // return FALSE to stop go on handle.
- if (false === PhpHelper::call($cb, ...$args)) {
- break;
- }
- }
-
- // is a once event, remove it
- if (self::$events[$event]) {
- return self::off($event);
- }
-
- return true;
- }
-
- /**
- * remove event and it's handlers
- * @param $event
- * @return bool
- */
- public static function off($event): bool
- {
- if (self::hasEvent($event)) {
- unset(self::$events[$event], self::$eventHandlers[$event]);
-
- return true;
- }
-
- return false;
- }
-
- /**
- * @param $event
- * @return bool
- */
- public static function hasEvent($event): bool
- {
- return isset(self::$events[$event]);
- }
-
- /**
- * @param $event
- * @return bool
- */
- public static function isOnce($event): bool
- {
- if (self::hasEvent($event)) {
- return self::$events[$event];
- }
-
- return false;
- }
-
- /**
- * check $name is a supported event name
- * @param $event
- * @return bool
- */
- public static function isSupportedEvent($event): bool
- {
- if (!$event || !preg_match('/[a-zA-z][\w-]+/', $event)) {
- return false;
- }
-
- if ($ets = self::$supportedEvents) {
- return \in_array($event, $ets, true);
- }
-
- return true;
- }
-
- /**
- * @return array
- */
- public static function getSupportEvents(): array
- {
- return self::$supportedEvents;
- }
-
- /**
- * @param array $supportedEvents
- */
- public static function setSupportEvents(array $supportedEvents): void
- {
- self::$supportedEvents = $supportedEvents;
- }
-
- /**
- * @return array
- */
- public static function getEvents(): array
- {
- return self::$events;
- }
-
- /**
- * @return int
- */
- public static function countEvents(): int
- {
- return \count(self::$events);
- }
-}
diff --git a/src/helper-utils/src/Traits/Event/FixedEventTrait.php b/src/helper-utils/src/Traits/Event/FixedEventTrait.php
deleted file mode 100644
index 7e9d44d..0000000
--- a/src/helper-utils/src/Traits/Event/FixedEventTrait.php
+++ /dev/null
@@ -1,158 +0,0 @@
-getSupportedEvents(), true);
- }
-
- /**
- * @param $event
- * @return bool
- */
- public function hasEventHandler($event): bool
- {
- if (false === ($key = array_search($event, $this->getSupportedEvents(), true))) {
- return false;
- }
-
- return isset($this->eventHandlers[$key]);
- }
-
- /**
- * @return \SplFixedArray
- */
- public function getEventHandlers(): \SplFixedArray
- {
- return $this->eventHandlers;
- }
-
- /**
- * @return int
- */
- public function getEventCount(): int
- {
- return $this->eventHandlers->count();
- }
-
- /**
- * @param string $event
- * @return callable
- */
- public function getEventHandler(string $event): callable
- {
- if (false === ($key = array_search($event, $this->getSupportedEvents(), true))) {
- return null;
- }
-
- if (!isset($this->eventHandlers[$key])) {
- return null;
- }
-
- return $this->eventHandlers[$key];
- }
-
- /////////////////////////////////////////////////////////////////////////////////////////
- /// events method
- /////////////////////////////////////////////////////////////////////////////////////////
-
- /**
- * register a event callback
- * @param string $event event name
- * @param callable $cb event callback
- * @param bool $replace replace exists's event cb
- * @throws \InvalidArgumentException
- */
- public function on(string $event, callable $cb, bool $replace = false): void
- {
- if (false === ($key = array_search($event, $this->getSupportedEvents(), true))) {
- $sup = implode(',', $this->getSupportedEvents());
-
- throw new \InvalidArgumentException("The want registered event [$event] is not supported. Supported: $sup");
- }
-
- // init property
- if ($this->eventHandlers === null) {
- $this->eventHandlers = new \SplFixedArray(\count($this->getSupportedEvents()));
- }
-
- if (!$replace && isset($this->eventHandlers[$key])) {
- throw new \InvalidArgumentException("The want registered event [$event] have been registered! don't allow replace.");
- }
-
- $this->eventHandlers[$key] = $cb;
- }
-
- /**
- * remove event handler
- * @param string $event
- * @return bool
- */
- public function off(string $event): bool
- {
- if (false === ($key = array_search($event, $this->getSupportedEvents(), true))) {
- return null;
- }
-
- if (!isset($this->eventHandlers[$key]) || !($cb = $this->eventHandlers[$key])) {
- return null;
- }
-
- $this->eventHandlers[$key] = null;
-
- return $cb;
- }
-
- /**
- * @param string $event
- * @param array $args
- * @return mixed
- * @throws \InvalidArgumentException
- */
- protected function fire(string $event, array $args = [])
- {
- if (false === ($key = array_search($event, $this->getSupportedEvents(), true))) {
- throw new \InvalidArgumentException("Trigger a not exists's event: $event.");
- }
-
- if (!isset($this->eventHandlers[$key]) || !($cb = $this->eventHandlers[$key])) {
- return null;
- }
-
- return PhpHelper::call($cb, ...$args);
- }
-
-}
diff --git a/src/helper-utils/src/Traits/Event/LiteEventStaticTrait.php b/src/helper-utils/src/Traits/Event/LiteEventStaticTrait.php
deleted file mode 100644
index 318c11f..0000000
--- a/src/helper-utils/src/Traits/Event/LiteEventStaticTrait.php
+++ /dev/null
@@ -1,95 +0,0 @@
-_events[$name])) {
- $this->_events[$name] = $cb;
- }
- }
-
- /**
- * @param string $name
- * @param array $args
- * @return mixed
- */
- protected function fire($name, array $args = [])
- {
- if (!isset($this->_events[$name]) || !($cb = $this->_events[$name])) {
- return null;
- }
-
- return Php::call($cb, ...$args);
- }
-
- /**
- * @param $name
- * @return mixed
- */
- public function off($name)
- {
- $cb = null;
-
- if (isset($this->_events[$name])) {
- $cb = $this->_events[$name];
- unset($this->_events[$name]);
- }
-
- return $cb;
- }
-
- /**
- * @param string $name
- * @return mixed
- */
- public function getEventHandler($name)
- {
- return $this->_events[$name] ?? null;
- }
-
- /**
- * @return array
- */
- public function getEvents(): array
- {
- return $this->_events;
- }
-
- /**
- * @return int
- */
- public function getEventCount(): int
- {
- return \count($this->_events);
- }
-
- /**
- * clearEvents
- */
- public function clearEvents(): void
- {
- $this->_events = [];
- }
-}
diff --git a/src/helper-utils/src/Traits/LiteContainerStaticTrait.php b/src/helper-utils/src/Traits/LiteContainerStaticTrait.php
deleted file mode 100644
index 46a999d..0000000
--- a/src/helper-utils/src/Traits/LiteContainerStaticTrait.php
+++ /dev/null
@@ -1,185 +0,0 @@
-logger = function(){
- * return new xx\yy\Logger;
- * };
- * ```
- * @param string $name
- * @param mixed $service
- * @return bool
- */
- public function __set($name, $service)
- {
- return static::set($name, $service);
- }
-
- /**
- * allow call service by property
- * ```
- * $logger = $app->logger;
- * ```
- * @param string $name service name
- * @return mixed
- */
- public function __get($name)
- {
- return static::get($name);
- }
-}
diff --git a/src/helper-utils/src/Traits/LiteContainerTrait.php b/src/helper-utils/src/Traits/LiteContainerTrait.php
deleted file mode 100644
index 6bf7c72..0000000
--- a/src/helper-utils/src/Traits/LiteContainerTrait.php
+++ /dev/null
@@ -1,187 +0,0 @@
-set($name, $service, $replace);
-
- return $this;
- }
-
- /**
- * register a app service
- * @param string $name
- * @param mixed $service service
- * @param bool $replace replace exists service
- * @return bool
- * @throws \LogicException
- */
- public function set($name, $service, $replace = false): bool
- {
- // have been used.
- if (isset(self::$instances[$name])) {
- throw new \LogicException("The service [$name] have been instanced, don't allow override it.");
- }
-
- // setting
- if ($replace || !isset(self::$services[$name])) {
- self::$services[$name] = $service;
- }
-
- return true;
- }
-
- /**
- * get a app service by name
- * if is a closure, only run once.
- * @param string $name
- * @param bool $call if service is 'Closure', call it.
- * @return mixed
- * @throws \RuntimeException
- */
- public function get($name, $call = true)
- {
- if (!isset(self::$services[$name])) {
- throw new \RuntimeException("The service [$name] don't register.");
- }
-
- $service = self::$services[$name];
-
- if (\is_object($service) && $service instanceof \Closure && $call) {
- if (!isset(self::$instances[$name])) {
- self::$instances[$name] = $service($this);
- }
-
- return self::$instances[$name];
- }
-
- return $service;
- }
-
- /**
- * @param string $name
- * @return mixed
- * @throws \RuntimeException
- */
- public function raw($name)
- {
- if (!isset(self::$services[$name])) {
- throw new \RuntimeException("The service [$name] don't register.");
- }
-
- return self::$services[$name];
- }
-
- /**
- * create a app service by name
- * it always return a new instance.
- * @param string $name
- * @return mixed
- * @throws \RuntimeException
- */
- public function factory($name)
- {
- if (!isset(self::$services[$name])) {
- throw new \RuntimeException("The service [$name] don't register.");
- }
-
- $service = self::$services[$name];
-
- if (\is_object($service) && method_exists($service, '__invoke')) {
- return $service($this);
- }
-
- return $service;
- }
-
- /**
- * @param $name
- * @return bool
- */
- public function has($name): bool
- {
- return isset(self::$services[$name]);
- }
-
- /**
- * @return array
- */
- public function getServiceNames(): array
- {
- return array_keys(self::$services);
- }
-
- /**
- * @param $name
- * @return bool
- */
- public function __isset($name)
- {
- return $this->has($name);
- }
-
- /**
- * allow register a app service by property
- * ```
- * $app->logger = function(){
- * return new xx\yy\Logger;
- * };
- * ```
- * @param string $name
- * @param mixed $service
- * @return bool
- */
- public function __set($name, $service)
- {
- return $this->set($name, $service);
- }
-
- /**
- * allow call service by property
- * ```
- * $logger = $app->logger;
- * ```
- * @param string $name service name
- * @return mixed
- */
- public function __get($name)
- {
- return $this->get($name);
- }
-}
diff --git a/src/helper-utils/src/Traits/LogProfileTrait.php b/src/helper-utils/src/Traits/LogProfileTrait.php
deleted file mode 100644
index f7967b4..0000000
--- a/src/helper-utils/src/Traits/LogProfileTrait.php
+++ /dev/null
@@ -1,78 +0,0 @@
- [
- 'startTime' => microtime(true),
- 'startMem' => memory_get_usage(),
- ],
- '_profile_start' => $context,
- '_profile_end' => null,
- ];
-
- $this->activeKey = $category . '|' . $name;
- $this->profiles[$category][$name] = $data;
- }
-
- /**
- * mark data analysis end
- * @param string|null $title
- * @param array $context
- */
- public function profileEnd($title = null, array $context = []): void
- {
- if (!$this->activeKey) {
- return;
- }
-
- [$category, $name] = explode('|', $this->activeKey);
-
- if (isset($this->profiles[$category][$name])) {
- $data = $this->profiles[$category][$name];
-
- $old = $data['_profile_stats'];
- $data['_profile_stats'] = PhpHelper::runtime($old['startTime'], $old['startMem']);
- $data['_profile_end'] = $context;
-
- $title = $category . ' - ' . ($title ?: $name);
-
- $this->activeKey = null;
- $this->log(Logger::DEBUG, $title, $data);
- }
- }
-
-}
diff --git a/src/helper-utils/src/Traits/LogShortTrait.php b/src/helper-utils/src/Traits/LogShortTrait.php
deleted file mode 100644
index 217f606..0000000
--- a/src/helper-utils/src/Traits/LogShortTrait.php
+++ /dev/null
@@ -1,164 +0,0 @@
-resolveAlias($name);
- }
-
- foreach ((array)$alias as $aliasName) {
- if (!isset($this->aliases[$aliasName])) {
- $this->aliases[$aliasName] = $name;
- }
- }
-
- return true;
- }
-
- /**
- * @param string $alias
- * @return mixed
- */
- public function resolveAlias(string $alias)
- {
- return $this->aliases[$alias] ?? $alias;
- }
-
- /**
- * @param $alias
- * @return bool
- */
- public function hasAlias($alias): bool
- {
- return isset($this->aliases[$alias]);
- }
-
- /**
- * @return array
- */
- public function getAliases(): array
- {
- return $this->aliases;
- }
-}
diff --git a/src/helper-utils/src/Traits/PathAliasTrait.php b/src/helper-utils/src/Traits/PathAliasTrait.php
deleted file mode 100644
index 87280ec..0000000
--- a/src/helper-utils/src/Traits/PathAliasTrait.php
+++ /dev/null
@@ -1,93 +0,0 @@
- $realPath) {
- // 1th char must is '@'
- if (!$alias || $alias[0] !== '@') {
- continue;
- }
-
- self::$aliases[$alias] = self::alias($realPath);
- }
- }
-
- /**
- * @return array
- */
- public static function getAliases(): array
- {
- return self::$aliases;
- }
-}
diff --git a/src/helper-utils/src/Traits/PathResolverTrait.php b/src/helper-utils/src/Traits/PathResolverTrait.php
deleted file mode 100644
index 5640bdf..0000000
--- a/src/helper-utils/src/Traits/PathResolverTrait.php
+++ /dev/null
@@ -1,52 +0,0 @@
-pathResolver) {
- return $path;
- }
-
- return Php::call($this->pathResolver, $path);
- }
-
- /**
- * @return callable
- */
- public function getPathResolver(): callable
- {
- return $this->pathResolver;
- }
-
- /**
- * @param callable $pathResolver
- */
- public function setPathResolver(callable $pathResolver): void
- {
- $this->pathResolver = $pathResolver;
- }
-}
diff --git a/src/helper-utils/src/Traits/RuntimeProfileTrait.php b/src/helper-utils/src/Traits/RuntimeProfileTrait.php
deleted file mode 100644
index 326eabb..0000000
--- a/src/helper-utils/src/Traits/RuntimeProfileTrait.php
+++ /dev/null
@@ -1,113 +0,0 @@
- [
- 'startTime' => microtime(true),
- 'startMem' => memory_get_usage(),
- ],
- '_profile_start' => $context,
- '_profile_end' => null,
- '_profile_msg' => null,
- ];
-
- $profileKey = $category . '|' . $name;
-
- if (\in_array($profileKey, self::$keyQueue, 1)) {
- throw new \InvalidArgumentException("Your added profile name [$name] have been exists!");
- }
-
- self::$keyQueue[] = $profileKey;
- self::$profiles[$category][$name] = $data;
- }
-
- /**
- * mark data analysis end
- * @param string|null $msg
- * @param array $context
- * @return bool|array
- */
- public static function profileEnd($msg = null, array $context = [])
- {
- if (!$latestKey = array_pop(self::$keyQueue)) {
- return false;
- }
-
- [$category, $name] = explode('|', $latestKey);
-
- if (isset(self::$profiles[$category][$name])) {
- $data = self::$profiles[$category][$name];
-
- $old = $data['_profile_stats'];
- $data['_profile_stats'] = PhpHelper::runtime($old['startTime'], $old['startMem']);
- $data['_profile_end'] = $context;
- $data['_profile_msg'] = $msg;
-
- // $title = $category . ' - ' . ($title ?: $name);
-
- self::$profiles[$category][$name] = $data;
- // self::$log(Logger::DEBUG, $title, $data);
-
- return $data;
- }
-
- return false;
- }
-
- /**
- * @param null|string $name
- * @param string $category
- * @return array
- */
- public static function getProfileData($name = null, $category = 'application'): array
- {
- if ($name) {
- return self::$profiles[$category][$name] ?? [];
- }
-
- if ($category) {
- return self::$profiles[$category] ?? [];
- }
-
- return self::$profiles;
- }
-}
diff --git a/src/helper-utils/src/Util/AopProxy.php b/src/helper-utils/src/Util/AopProxy.php
deleted file mode 100644
index a66c96f..0000000
--- a/src/helper-utils/src/Util/AopProxy.php
+++ /dev/null
@@ -1,54 +0,0 @@
-addProxy('FileLogger::log', function() {
- * echo 'before add log';
- * }, 'before');
- * $aop->addProxy('FileLogger::log', function() {
- * echo 'after add log';
- * }, 'after');
- * $logger = new FileLogger;
- * // not use:
- * // $logger->log('message');
- * // should:
- * $aop->proxy($logger, 'log', ['message']);
- * // equal
- * $aop->proxy($logger)->call('log', ['message']);
- * // equal
- * $aop->proxy($logger)->log('message'); // by __call
- * // equal
- * $aop($logger)->log('message'); // by __invoke
- * // equal
- * $aop($logger, 'log', ['message']); // by __invoke
- */
-class AopProxy
-{
- use AopProxyAwareTrait;
-
- /**
- * @var array
- */
- protected $proxyMap = [];
-
- /**
- * AopProxy constructor.
- * @param array $proxyMap
- */
- public function __construct(array $proxyMap = [])
- {
- $this->setProxyMap($proxyMap);
- }
-}
diff --git a/src/helper-utils/src/Util/DataProxy.php b/src/helper-utils/src/Util/DataProxy.php
deleted file mode 100644
index 302f951..0000000
--- a/src/helper-utils/src/Util/DataProxy.php
+++ /dev/null
@@ -1,126 +0,0 @@
- 'handler',
- * 'getArticleList' => [ArticleDao::class, 'getArticleList'],
- * ]
- */
- protected $proxies = [];
-
- public function __construct(array $proxies = [])
- {
- $this->proxies = $proxies;
- }
-
- /**
- * @param string $method
- * @param array $args
- * @return mixed
- */
- public function __call($method, array $args)
- {
- return $this->call($method, $args);
- }
-
- /**
- * @param string $name
- * @param array $args
- * @return mixed
- * @throws \RuntimeException
- */
- public function call(string $name, array $args)
- {
- if ($this->hasName($name)) {
- $handler = $this->proxies[$name];
- return $handler(...$args);
- }
-
- throw new \RuntimeException("Called method $name is not exists.");
- }
-
- /**
- * @param string $name
- * @param callable $callback
- */
- public function add(string $name, callable $callback): void
- {
- if (!isset($this->proxies[$name])) {
- $this->proxies[$name] = $callback;
- }
- }
-
- /**
- * @param string $name
- * @param callable $callback
- */
- public function addProxy(string $name, callable $callback): void
- {
- if (!isset($this->proxies[$name])) {
- $this->proxies[$name] = $callback;
- }
- }
-
- /**
- * @param string $name
- * @param callable $callback
- */
- public function setProxy(string $name, callable $callback): void
- {
- if (!isset($this->proxies[$name])) {
- $this->proxies[$name] = $callback;
- }
- }
-
- /**
- * @param string $name
- * @return bool
- */
- public function hasName(string $name): bool
- {
- return isset($this->proxies[$name]);
- }
-
- /**
- * @param array $proxies
- */
- public function addProxies(array $proxies): void
- {
- foreach ($proxies as $name => $callback) {
- $this->addProxy($name, $callback);
- }
- }
-
- /**
- * @return array
- */
- public function getProxies(): array
- {
- return $this->proxies;
- }
-
- /**
- * @param array $proxies
- */
- public function setProxies(array $proxies): void
- {
- $this->proxies = $proxies;
- }
-}
-
diff --git a/src/helper-utils/src/Util/DataResult.php b/src/helper-utils/src/Util/DataResult.php
deleted file mode 100644
index 17deefc..0000000
--- a/src/helper-utils/src/Util/DataResult.php
+++ /dev/null
@@ -1,51 +0,0 @@
-value = $value;
- }
-
- public function get()
- {
- return $this->value;
- }
-
- /**
- * @return mixed
- */
- public function getValue()
- {
- return $this->value;
- }
-
- /**
- * @param mixed $value
- */
- public function setValue($value): void
- {
- $this->value = $value;
- }
-}
diff --git a/src/helper-utils/src/Util/DeferredCallable.php b/src/helper-utils/src/Util/DeferredCallable.php
deleted file mode 100644
index 4a32f17..0000000
--- a/src/helper-utils/src/Util/DeferredCallable.php
+++ /dev/null
@@ -1,56 +0,0 @@
-callable = $callable;
- }
-
- /**
- * @param array $args
- * @return mixed
- * @throws \InvalidArgumentException
- */
- public function __invoke(...$args)
- {
- $callable = $this->callable;
-
- if (\is_callable($callable)) {
- return PhpHelper::call($callable, ...$args);
- }
-
- if (\is_string($callable) && class_exists($callable)) {
- $obj = new $callable;
-
- if (method_exists($obj, '__invoke')) {
- return $obj(...$args);
- }
-
- throw new \InvalidArgumentException('the defined callable is cannot be called!');
- }
-
- throw new \InvalidArgumentException('the defined callable is error!');
- }
-}
diff --git a/src/helper-utils/src/Util/Pipeline.php b/src/helper-utils/src/Util/Pipeline.php
deleted file mode 100644
index a8564b9..0000000
--- a/src/helper-utils/src/Util/Pipeline.php
+++ /dev/null
@@ -1,73 +0,0 @@
-stages = new \SplObjectStorage;
- }
-
- /**
- * {@inheritdoc}
- */
- public function add(callable $stage)
- {
- if ($stage instanceof $this) {
- $stage->add(function ($payload) {
- return $this->invokeStage($payload);
- });
- }
-
- $this->stages->attach($stage);
-
- return $this;
- }
-
- /**
- * {@inheritdoc}
- */
- public function run($payload)
- {
- $this->stages->rewind();
-
- return $this->invokeStage($payload);
- }
-
- /**
- * {@inheritdoc}
- */
- public function __invoke($payload)
- {
- return $this->run($payload);
- }
-
- private function invokeStage($payload)
- {
- $stage = $this->stages->current();
- $this->stages->next();
-
- if (\is_callable($stage)) {
- return $stage($payload, function ($payload) {
- return $this->invokeStage($payload);
- });
- }
-
- return $payload;
- }
-}
diff --git a/src/helper-utils/src/Util/PipelineInterface.php b/src/helper-utils/src/Util/PipelineInterface.php
deleted file mode 100644
index 7aaff13..0000000
--- a/src/helper-utils/src/Util/PipelineInterface.php
+++ /dev/null
@@ -1,40 +0,0 @@
- $baseDir . '/libs/di/test',
-];
-
-spl_autoload_register(function ($class) use ($map) {
- foreach ($map as $np => $dir) {
- if (0 === strpos($class, $np)) {
- $path = str_replace('\\', '/', substr($class, strlen($np)));
- $file = $dir . "/{$path}.php";
-
- if (is_file($file)) {
- __include_file($file);
- }
- }
- }
-});
-
-function __include_file($file)
-{
- include $file;
-}
diff --git a/toolkit b/toolkit
index b6a3bce..60092f1 100644
--- a/toolkit
+++ b/toolkit
@@ -4,36 +4,29 @@
* entry file for CLI
*/
-use Inhere\Console\Application;
-use Toolkit\Dev\Console\DevController;
-
define('BASE_PATH', __DIR__);
define('TOOLKIT_DIR', __DIR__);
-if (file_exists(__DIR__ . '/vendor/autoload.php')) {
- require __DIR__ . '/vendor/autoload.php';
-} elseif (file_exists(dirname(__DIR__, 2) . '/autoload.php')) {
- require dirname(__DIR__, 2) . '/autoload.php';
-}
+require __DIR__ . '/vendor/autoload.php';
// create app instance
-$app = new Application([
- 'name' => 'php toolkit',
- 'debug' => true,
- 'version' => '1.0.0',
- 'rootPath' => __DIR__,
+$app = new \Inhere\Console\Application([
+ 'name' => 'php toolkit',
+ 'debug' => true,
+ 'version' => '1.0.0',
+ 'rootPath' => __DIR__,
]);
$app->setLogo("
- ____ __ ______ ____ _ __
- / __ \/ /_ ____ /_ __/___ ____ / / /__(_) /_
- / /_/ / __ \/ __ \ / / / __ \/ __ \/ / //_/ / __/
- / ____/ / / / /_/ / / / / /_/ / /_/ / / ,< / / /_
-/_/ /_/ /_/ .___/ /_/ \____/\____/_/_/|_/_/\__/
- /_/
+ __ __ ____ _ __
+ ____ / /_ ____ / /_____ ____ / / /__(_) /_
+ / __ \/ __ \/ __ \______/ __/ __ \/ __ \/ / //_/ / __/
+ / /_/ / / / / /_/ /_____/ /_/ /_/ / /_/ / / ,< / / /_
+ / .___/_/ /_/ .___/ \__/\____/\____/_/_/|_/_/\__/
+/_/ /_/
", 'success');
// add commands
-$app->addController(DevController::class);
+$app->addController(\Toolkit\Dev\Console\DevController::class);
// run
$app->run();