/g,">")}function Rt(n){return Object.keys(n||{}).reduce(function(t,e){return t+"".concat(e,": ").concat(n[e],";")},"")}function Ft(t){return t.size!==Ot.size||t.x!==Ot.x||t.y!==Ot.y||t.rotate!==Ot.rotate||t.flipX||t.flipY}function It(t){var e=t.transform,n=t.containerWidth,a=t.iconWidth,r={transform:"translate(".concat(n/2," 256)")},i="translate(".concat(32*e.x,", ").concat(32*e.y,") "),o="scale(".concat(e.size/16*(e.flipX?-1:1),", ").concat(e.size/16*(e.flipY?-1:1),") "),c="rotate(".concat(e.rotate," 0 0)");return{outer:r,inner:{transform:"".concat(i," ").concat(o," ").concat(c)},path:{transform:"translate(".concat(a/2*-1," -256)")}}}var Tt={x:0,y:0,width:"100%",height:"100%"};function _t(t){var e=!(1").concat(o.map(he).join(""),"").concat(e,">")}var pe=function(){};function ge(t){return"string"==typeof(t.getAttribute?t.getAttribute(tt):null)}var ve={replace:function(t){var e=t[0],n=t[1].map(function(t){return he(t)}).join("\n");if(e.parentNode&&e.outerHTML)e.outerHTML=n+(et.keepOriginalSource&&"svg"!==e.tagName.toLowerCase()?"\x3c!-- ".concat(e.outerHTML," Font Awesome fontawesome.com --\x3e"):"");else if(e.parentNode){var a=document.createElement("span");e.parentNode.replaceChild(a,e),a.outerHTML=n}},nest:function(t){var e=t[0],n=t[1];if(~zt(e).indexOf(et.replacementClass))return ve.replace(t);var a=new RegExp("".concat(et.familyPrefix,"-.*"));delete n[0].attributes.style,delete n[0].attributes.id;var r=n[0].attributes.class.split(" ").reduce(function(t,e){return e===et.replacementClass||e.match(a)?t.toSvg.push(e):t.toNode.push(e),t},{toNode:[],toSvg:[]});n[0].attributes.class=r.toSvg.join(" ");var i=n.map(function(t){return he(t)}).join("\n");e.setAttribute("class",r.toNode.join(" ")),e.setAttribute(tt,""),e.innerHTML=i}};function be(t){t()}function ye(n,t){var a="function"==typeof t?t:pe;if(0===n.length)a();else{var e=be;et.mutateApproach===N&&(e=v.requestAnimationFrame||be),e(function(){var t=!0===et.autoReplaceSvg?ve.replace:ve[et.autoReplaceSvg]||ve.replace,e=Wt.begin("mutate");n.map(t),e(),a()})}}var we=!1;function xe(){we=!1}var ke=null;function Ae(t){if(l&&et.observeMutations){var r=t.treeCallback,i=t.nodeCallback,o=t.pseudoElementsCallback,e=t.observeMutationsRoot,n=void 0===e?b:e;ke=new l(function(t){we||Et(t).forEach(function(t){if("childList"===t.type&&0 Dependency Injection for Mere Humans Subscribers
Ian Littman September 12, 2019 at 6:00pm PDT
What's the difference between service location and dependency injection? Why is this dependency injection thing such a big deal anyway, and how do you use that tool correctly? I'll answer these questions and more, including real-world examples of refactoring an application toward the more explicit, testable, closer-to-SOLID applications. About Ian Littman When he isn't building or maintaining web applications, primarily of the API variety, for a handful of clients, Ian is probably biking between successively later-closing coffee shops in Austin, Texas, or making some sort of comment about transportation or communication infrastructure. He also helps organize the Austin PHP user group and Longhorn PHP Conference. Subscribe & Save Your Spot! Back to Upcoming Live Talks SPONSORS
SPONSORS