<?xml version="1.0"?>
<oembed><version>1.0</version><provider_name>Robin Glauser</provider_name><provider_url>https://www.robinglauser.ch/blog</provider_url><author_name>Robin Glauser</author_name><author_url>https://www.robinglauser.ch/blog/author/robin/</author_url><title>Design Patterns in PHP - Robin Glauser</title><type>rich</type><width>600</width><height>338</height><html>&lt;blockquote class="wp-embedded-content" data-secret="tVOd60I2zm"&gt;&lt;a href="https://www.robinglauser.ch/blog/2015/10/03/design-patterns-in-php/"&gt;Design Patterns in PHP&lt;/a&gt;&lt;/blockquote&gt;&lt;iframe sandbox="allow-scripts" security="restricted" src="https://www.robinglauser.ch/blog/2015/10/03/design-patterns-in-php/embed/#?secret=tVOd60I2zm" width="600" height="338" title="&#x201C;Design Patterns in PHP&#x201D; &#x2014; Robin Glauser" data-secret="tVOd60I2zm" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" class="wp-embedded-content"&gt;&lt;/iframe&gt;&lt;script type="text/javascript"&gt;
/* &lt;![CDATA[ */
/*! This file is auto-generated */
!function(d,l){"use strict";l.querySelector&amp;&amp;d.addEventListener&amp;&amp;"undefined"!=typeof URL&amp;&amp;(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&amp;&amp;!/[^a-zA-Z0-9]/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret="'+t.secret+'"]'),o=l.querySelectorAll('blockquote[data-secret="'+t.secret+'"]'),c=new RegExp("^https?:$","i"),i=0;i&lt;o.length;i++)o[i].style.display="none";for(i=0;i&lt;a.length;i++)s=a[i],e.source===s.contentWindow&amp;&amp;(s.removeAttribute("style"),"height"===t.message?(1e3&lt;(r=parseInt(t.value,10))?r=1e3:~~r&lt;200&amp;&amp;(r=200),s.height=r):"link"===t.message&amp;&amp;(r=new URL(s.getAttribute("src")),n=new URL(t.value),c.test(n.protocol))&amp;&amp;n.host===r.host&amp;&amp;l.activeElement===s&amp;&amp;(d.top.location.href=t.value))}},d.addEventListener("message",d.wp.receiveEmbedMessage,!1),l.addEventListener("DOMContentLoaded",function(){for(var e,t,s=l.querySelectorAll("iframe.wp-embedded-content"),r=0;r&lt;s.length;r++)(t=(e=s[r]).getAttribute("data-secret"))||(t=Math.random().toString(36).substring(2,12),e.src+="#?secret="+t,e.setAttribute("data-secret",t)),e.contentWindow.postMessage({message:"ready",secret:t},"*")},!1)))}(window,document);
//# sourceURL=https://www.robinglauser.ch/blog/wp-includes/js/wp-embed.min.js
/* ]]&gt; */
&lt;/script&gt;
</html><thumbnail_url>https://www.robinglauser.ch/blog/wp-content/uploads/2015/10/hhlra7w2T1bPb3Ymth2Q_DSC_0357-e1443883456582.jpeg</thumbnail_url><thumbnail_width>1920</thumbnail_width><thumbnail_height>825</thumbnail_height><description>The Github repository&#xA0;domnikl/DesignPatternsPHP&#xA0;has a list of design patterns and their implementation in PHP. It shows the UML diagram for the pattern and explains the purpose of the pattern. AbstractFactory To create series of related or dependent objects without specifying their concrete classes. Usually the created classes all implement the same interface. The client of the abstract factory does not care ... Read More</description></oembed>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced (Requested URI contains query) 
Database Caching 8/26 queries in 0.028 seconds using Disk

Served from: www.robinglauser.ch @ 2026-04-26 16:13:02 by W3 Total Cache
-->