Deploying to readthedocs from @ chillerlan/php-qrcode@af284bfb53 🚀

This commit is contained in:
codemasher
2023-09-05 21:21:47 +00:00
parent 3d0ad40178
commit f84016a422
31 changed files with 1695 additions and 321 deletions
+118 -19
View File
@@ -99,6 +99,8 @@
<p class="caption" role="heading"><span class="caption-text">Built-In Output Modules</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="Built-In-Output-QREps.html">QREps</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Built-In-Output-QREps.html#example">Example</a></li>
<li class="toctree-l2"><a class="reference internal" href="Built-In-Output-QREps.html#additional-methods">Additional methods</a></li>
<li class="toctree-l2"><a class="reference internal" href="Built-In-Output-QREps.html#options-that-affect-this-module">Options that affect this module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="Built-In-Output-QREps.html#options-that-have-no-effect">Options that have no effect</a></li>
</ul>
@@ -106,6 +108,8 @@
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Built-In-Output-QRFpdf.html">QRFpdf</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Built-In-Output-QRFpdf.html#example">Example</a></li>
<li class="toctree-l2"><a class="reference internal" href="Built-In-Output-QRFpdf.html#additional-methods">Additional methods</a></li>
<li class="toctree-l2"><a class="reference internal" href="Built-In-Output-QRFpdf.html#options-that-affect-this-module">Options that affect this module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="Built-In-Output-QRFpdf.html#options-that-have-no-effect">Options that have no effect</a></li>
</ul>
@@ -113,6 +117,8 @@
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Built-In-Output-QRGdImage.html">QRGdImage</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Built-In-Output-QRGdImage.html#example">Example</a></li>
<li class="toctree-l2"><a class="reference internal" href="Built-In-Output-QRGdImage.html#additional-methods">Additional methods</a></li>
<li class="toctree-l2"><a class="reference internal" href="Built-In-Output-QRGdImage.html#options-that-affect-this-module">Options that affect this module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="Built-In-Output-QRGdImage.html#options-that-have-no-effect">Options that have no effect</a></li>
</ul>
@@ -120,6 +126,8 @@
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Built-In-Output-QRImagick.html">QRImagick</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Built-In-Output-QRImagick.html#example">Example</a></li>
<li class="toctree-l2"><a class="reference internal" href="Built-In-Output-QRImagick.html#additional-methods">Additional methods</a></li>
<li class="toctree-l2"><a class="reference internal" href="Built-In-Output-QRImagick.html#options-that-affect-this-module">Options that affect this module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="Built-In-Output-QRImagick.html#options-that-have-no-effect">Options that have no effect</a></li>
</ul>
@@ -127,6 +135,8 @@
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Built-In-Output-QRMarkupHTML.html">QRMarkupHTML</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Built-In-Output-QRMarkupHTML.html#example">Example</a></li>
<li class="toctree-l2"><a class="reference internal" href="Built-In-Output-QRMarkupHTML.html#additional-methods">Additional methods</a></li>
<li class="toctree-l2"><a class="reference internal" href="Built-In-Output-QRMarkupHTML.html#options-that-affect-this-module">Options that affect this module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="Built-In-Output-QRMarkupHTML.html#options-that-have-no-effect">Options that have no effect</a></li>
</ul>
@@ -134,6 +144,8 @@
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Built-In-Output-QRMarkupSVG.html">QRMarkupSVG</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Built-In-Output-QRMarkupSVG.html#example">Example</a></li>
<li class="toctree-l2"><a class="reference internal" href="Built-In-Output-QRMarkupSVG.html#additional-methods">Additional methods</a></li>
<li class="toctree-l2"><a class="reference internal" href="Built-In-Output-QRMarkupSVG.html#options-that-affect-this-module">Options that affect this module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="Built-In-Output-QRMarkupSVG.html#options-that-have-no-effect">Options that have no effect</a></li>
</ul>
@@ -141,6 +153,9 @@
</ul>
</li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">QRString</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#plain-text">Plain text</a></li>
<li class="toctree-l2"><a class="reference internal" href="#json">JSON</a></li>
<li class="toctree-l2"><a class="reference internal" href="#additional-methods">Additional methods</a></li>
<li class="toctree-l2"><a class="reference internal" href="#options-that-affect-this-module">Options that affect this module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#options-that-have-no-effect">Options that have no effect</a></li>
</ul>
@@ -270,6 +285,84 @@
<section id="qrstring">
<h1>QRString<a class="headerlink" href="#qrstring" title="Link to this heading"></a></h1>
<p><a class="reference external" href="https://github.com/chillerlan/php-qrcode/blob/main/src/Output/QRString.php">Class <code class="docutils literal notranslate"><span class="pre">QRString</span></code></a>: String output: plain text, <a class="reference external" href="https://developer.mozilla.org/en-US/docs/Glossary/JSON">JSON</a></p>
<section id="plain-text">
<h2>Plain text<a class="headerlink" href="#plain-text" title="Link to this heading"></a></h2>
<p>Render in a CLI console, using <a class="reference external" href="https://en.wikipedia.org/wiki/ANSI_escape_code#Colors">ANSI colors</a> and <a class="reference external" href="https://en.wikipedia.org/wiki/Block_Elements">block elements</a>:</p>
<div class="highlight-php notranslate"><div class="highlight"><pre><span></span><span class="c1">// a little helper to a create proper ANSI 8-bit color escape sequence</span>
<span class="k">function</span> <span class="nf">ansi8</span><span class="p">(</span><span class="nx">string</span> <span class="nv">$str</span><span class="p">,</span> <span class="nx">int</span> <span class="nv">$color</span><span class="p">,</span> <span class="nx">bool</span> <span class="nv">$background</span> <span class="o">=</span> <span class="k">false</span><span class="p">)</span><span class="o">:</span><span class="nx">string</span><span class="p">{</span>
<span class="nv">$color</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nb">min</span><span class="p">(</span><span class="nv">$color</span><span class="p">,</span> <span class="mi">255</span><span class="p">));</span>
<span class="nv">$background</span> <span class="o">=</span> <span class="p">(</span><span class="nv">$background</span> <span class="o">?</span> <span class="mi">48</span> <span class="o">:</span> <span class="mi">38</span><span class="p">);</span>
<span class="k">return</span> <span class="nb">sprintf</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\x1b</span><span class="s2">[%s;5;%sm%s</span><span class="se">\x1b</span><span class="s2">[0m&quot;</span><span class="p">,</span> <span class="nv">$background</span><span class="p">,</span> <span class="nv">$color</span><span class="p">,</span> <span class="nv">$str</span><span class="p">);</span>
<span class="p">}</span>
<span class="nv">$options</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">QROptions</span><span class="p">;</span>
<span class="nv">$options</span><span class="o">-&gt;</span><span class="na">outputType</span> <span class="o">=</span> <span class="nx">QROutputInterface</span><span class="o">::</span><span class="na">STRING_TEXT</span><span class="p">;</span>
<span class="nv">$options</span><span class="o">-&gt;</span><span class="na">eol</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">;</span>
<span class="c1">// add some space on the line start</span>
<span class="nv">$options</span><span class="o">-&gt;</span><span class="na">textLineStart</span> <span class="o">=</span> <span class="nb">str_repeat</span><span class="p">(</span><span class="s1">&#39; &#39;</span><span class="p">,</span> <span class="mi">6</span><span class="p">);</span>
<span class="c1">// default values for unassigned module types</span>
<span class="nv">$options</span><span class="o">-&gt;</span><span class="na">textDark</span> <span class="o">=</span> <span class="nx">QRString</span><span class="o">::</span><span class="na">ansi8</span><span class="p">(</span><span class="s1">&#39;██&#39;</span><span class="p">,</span> <span class="mi">253</span><span class="p">);</span>
<span class="nv">$options</span><span class="o">-&gt;</span><span class="na">textLight</span> <span class="o">=</span> <span class="nx">QRString</span><span class="o">::</span><span class="na">ansi8</span><span class="p">(</span><span class="s1">&#39;░░&#39;</span><span class="p">,</span> <span class="mi">253</span><span class="p">);</span>
<span class="nv">$options</span><span class="o">-&gt;</span><span class="na">moduleValues</span> <span class="o">=</span> <span class="p">[</span>
<span class="nx">QRMatrix</span><span class="o">::</span><span class="na">M_FINDER_DARK</span> <span class="o">=&gt;</span> <span class="nx">QRString</span><span class="o">::</span><span class="na">ansi8</span><span class="p">(</span><span class="s1">&#39;██&#39;</span><span class="p">,</span> <span class="mi">124</span><span class="p">),</span>
<span class="nx">QRMatrix</span><span class="o">::</span><span class="na">M_FINDER</span> <span class="o">=&gt;</span> <span class="nx">QRString</span><span class="o">::</span><span class="na">ansi8</span><span class="p">(</span><span class="s1">&#39;░░&#39;</span><span class="p">,</span> <span class="mi">124</span><span class="p">),</span>
<span class="nx">QRMatrix</span><span class="o">::</span><span class="na">M_FINDER_DOT</span> <span class="o">=&gt;</span> <span class="nx">QRString</span><span class="o">::</span><span class="na">ansi8</span><span class="p">(</span><span class="s1">&#39;██&#39;</span><span class="p">,</span> <span class="mi">124</span><span class="p">),</span>
<span class="nx">QRMatrix</span><span class="o">::</span><span class="na">M_ALIGNMENT_DARK</span> <span class="o">=&gt;</span> <span class="nx">QRString</span><span class="o">::</span><span class="na">ansi8</span><span class="p">(</span><span class="s1">&#39;██&#39;</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span>
<span class="nx">QRMatrix</span><span class="o">::</span><span class="na">M_ALIGNMENT</span> <span class="o">=&gt;</span> <span class="nx">QRString</span><span class="o">::</span><span class="na">ansi8</span><span class="p">(</span><span class="s1">&#39;░░&#39;</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span>
<span class="nx">QRMatrix</span><span class="o">::</span><span class="na">M_VERSION_DARK</span> <span class="o">=&gt;</span> <span class="nx">QRString</span><span class="o">::</span><span class="na">ansi8</span><span class="p">(</span><span class="s1">&#39;██&#39;</span><span class="p">,</span> <span class="mi">21</span><span class="p">),</span>
<span class="nx">QRMatrix</span><span class="o">::</span><span class="na">M_VERSION</span> <span class="o">=&gt;</span> <span class="nx">QRString</span><span class="o">::</span><span class="na">ansi8</span><span class="p">(</span><span class="s1">&#39;░░&#39;</span><span class="p">,</span> <span class="mi">21</span><span class="p">),</span>
<span class="p">];</span>
</pre></div>
</div>
<p>Output:</p>
<div class="highlight-php notranslate"><div class="highlight"><pre><span></span><span class="nv">$data</span> <span class="o">=</span> <span class="s1">&#39;https://www.youtube.com/watch?v=dQw4w9WgXcQ&#39;</span><span class="p">;</span>
<span class="nv">$qrcode</span> <span class="o">=</span> <span class="p">(</span><span class="k">new</span> <span class="nx">QRCode</span><span class="p">(</span><span class="nv">$options</span><span class="p">))</span><span class="o">-&gt;</span><span class="na">render</span><span class="p">(</span><span class="nv">$data</span><span class="p">);</span>
<span class="k">echo</span> <span class="s2">&quot;</span><span class="se">\n\n</span><span class="si">$qrcode</span><span class="se">\n\n</span><span class="s2">&quot;</span><span class="p">;</span>
</pre></div>
</div>
</section>
<section id="json">
<h2>JSON<a class="headerlink" href="#json" title="Link to this heading"></a></h2>
<div class="highlight-php notranslate"><div class="highlight"><pre><span></span><span class="nv">$options</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">QROptions</span><span class="p">;</span>
<span class="nv">$options</span><span class="o">-&gt;</span><span class="na">outputType</span> <span class="o">=</span> <span class="nx">QROutputInterface</span><span class="o">::</span><span class="na">STRING_JSON</span><span class="p">;</span>
<span class="c1">// output the integer values ($M_TYPE) held in the matrix object</span>
<span class="nv">$options</span><span class="o">-&gt;</span><span class="na">jsonAsBooleans</span> <span class="o">=</span> <span class="k">false</span><span class="p">;</span>
<span class="nb">header</span><span class="p">(</span><span class="s1">&#39;Content-type: application/json&#39;</span><span class="p">);</span>
<span class="k">echo</span> <span class="p">(</span><span class="k">new</span> <span class="nx">QRCode</span><span class="p">(</span><span class="nv">$options</span><span class="p">))</span><span class="o">-&gt;</span><span class="na">render</span><span class="p">(</span><span class="nv">$data</span><span class="p">);</span>
</pre></div>
</div>
</section>
<section id="additional-methods">
<h2>Additional methods<a class="headerlink" href="#additional-methods" title="Link to this heading"></a></h2>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>method</p></th>
<th class="head"><p>return</p></th>
<th class="head"><p>description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>(protected) <code class="docutils literal notranslate"><span class="pre">text()</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">string</span></code></p></td>
<td><p>string output</p></td>
</tr>
<tr class="row-odd"><td><p>(protected) <code class="docutils literal notranslate"><span class="pre">json()</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">string</span></code></p></td>
<td><p>JSON output</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">ansi8(string</span> <span class="pre">$str,</span> <span class="pre">int</span> <span class="pre">$color,</span> <span class="pre">bool</span> <span class="pre">$background</span> <span class="pre">=</span> <span class="pre">null)</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">string</span></code></p></td>
<td><p>a little helper to create a proper ANSI 8-bit color escape sequence</p></td>
</tr>
</tbody>
</table>
</section>
<section id="options-that-affect-this-module">
<h2>Options that affect this module<a class="headerlink" href="#options-that-affect-this-module" title="Link to this heading"></a></h2>
<table class="docutils align-default">
@@ -282,10 +375,16 @@
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$eol</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">string</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$textDark</span></code></p></td>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$jsonAsBooleans</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">bool</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$textDark</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">string</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$textLight</span></code></p></td>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$textLight</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">string</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$textLineStart</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">string</span></code></p></td>
</tr>
</tbody>
@@ -299,39 +398,39 @@
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$returnResource</span></code></p></td>
<td><p>N/A</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$imageBase64</span></code></p></td>
<td><p>N/A</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$bgColor</span></code></p></td>
<td><p>N/A</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$drawLightModules</span></code></p></td>
<td><p>not implemented</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$drawCircularModules</span></code></p></td>
<td><p>N/A</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$circleRadius</span></code></p></td>
<td><p>N/A</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$keepAsSquare</span></code></p></td>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$connectPaths</span></code></p></td>
<td><p>N/A</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$connectPaths</span></code></p></td>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$drawCircularModules</span></code></p></td>
<td><p>N/A</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$excludeFromConnect</span></code></p></td>
<td><p>N/A</p></td>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$drawLightModules</span></code></p></td>
<td><p>not implemented</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$scale</span></code></p></td>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$excludeFromConnect</span></code></p></td>
<td><p>N/A</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$imageTransparent</span></code></p></td>
<td><p>N/A</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$keepAsSquare</span></code></p></td>
<td><p>N/A</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$outputBase64</span></code></p></td>
<td><p>N/A</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">$returnResource</span></code></p></td>
<td><p>N/A</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">$scale</span></code></p></td>
<td><p>N/A</p></td>
</tr>
</tbody>
</table>
</section>