<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>em411's blog</title><link>https://blog.em411.dev/</link><description>Recent content on em411's blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 27 Apr 2023 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.em411.dev/index.xml" rel="self" type="application/rss+xml"/><item><title>Common naming patterns in programming</title><link>https://blog.em411.dev/post/second/</link><pubDate>Thu, 27 Apr 2023 00:00:00 +0000</pubDate><guid>https://blog.em411.dev/post/second/</guid><description>&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>&lt;strong>Name&lt;/strong>&lt;/th>
 &lt;th>Description&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;strong>Accumulator&lt;/strong>&lt;/td>
 &lt;td>Classes that accumulate or collect data over time, e.g., SumAccumulator, ErrorAccumulator.&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Adapter&lt;/strong>&lt;/td>
 &lt;td>Classes that adapt or convert interfaces or data between two systems, e.g. DatabaseAdapter, APIAdapter.&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Aggregator&lt;/strong>&lt;/td>
 &lt;td>Classes that aggregate or collect data from multiple sources, e.g., NewsAggregator, DataAggregator.&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Allocator&lt;/strong>&lt;/td>
 &lt;td>Classes that allocate or assign resources, e.g., MemoryAllocator, TaskAllocator.&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table></description></item><item><title>Environment Variable Processors</title><link>https://blog.em411.dev/post/first/</link><pubDate>Fri, 12 Aug 2022 00:00:00 +0000</pubDate><guid>https://blog.em411.dev/post/first/</guid><description>&lt;h2 id="environment-variable-processors">Environment Variable Processors&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="c"># config/packages/framework.yaml&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">parameters&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">env(TRUSTED_HOSTS)&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;10.0.0.1,10.0.0.2&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">framework&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">trusted_hosts&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;%env(csv:TRUSTED_HOSTS)%&amp;#39;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>From now, you don&amp;rsquo;t need to use explode 💥&lt;/p>
&lt;h5 id="source-httpssymfonycomdoc44configurationenv_var_processorshtml">Source: &lt;a href="https://symfony.com/doc/4.4/configuration/env_var_processors.html">https://symfony.com/doc/4.4/configuration/env_var_processors.html&lt;/a>&lt;/h5>
&lt;script src="https://utteranc.es/client.js"
 repo="em411/personal-blog"
 issue-term="title"
 theme="preferred-color-scheme"
 crossorigin="anonymous"
 async>
&lt;/script></description></item><item><title>Useful PHP functions</title><link>https://blog.em411.dev/post/functions/</link><pubDate>Fri, 12 Aug 2022 00:00:00 +0000</pubDate><guid>https://blog.em411.dev/post/functions/</guid><description>&lt;h3 id="checkdnsrr">checkdnsrr()&lt;/h3>
&lt;p>With this function you can check the DNS records for an IP or hostname that you can pass to the function as a param. A really good use case is to check if the domain of a given email address exists.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-php" data-lang="php">&lt;span class="line">&lt;span class="cl">&lt;span class="o">&amp;lt;?&lt;/span>&lt;span class="nx">php&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">function&lt;/span> &lt;span class="nf">validateMail&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">string&lt;/span> &lt;span class="nv">$email&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">bool&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">$parts&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nx">explode&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;@&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nv">$email&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">$host&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nx">end&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">$parts&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="nx">checkdnsrr&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">$host&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;MX&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$email&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;harry.weber@gmail.com&amp;#39;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">validateMail&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">$email&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This helps you to avoid bounce emails trying to create an account on your website or platform.&lt;/p></description></item></channel></rss>