123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- <?php
- declare(strict_types=1);
- /*
- * (c) Jeroen van den Enden <info@endroid.nl>
- *
- * This source file is subject to the MIT license that is bundled
- * with this source code in the file LICENSE.
- */
- namespace Endroid\QrCode\Writer;
- use Endroid\QrCode\QrCodeInterface;
- use Exception;
- use ReflectionClass;
- class DebugWriter extends AbstractWriter
- {
- public function writeString(QrCodeInterface $qrCode): string
- {
- $data = [];
- $skip = ['getData'];
- $reflectionClass = new ReflectionClass($qrCode);
- foreach ($reflectionClass->getMethods() as $method) {
- $methodName = $method->getShortName();
- if (0 === strpos($methodName, 'get') && 0 == $method->getNumberOfParameters() && !in_array($methodName, $skip)) {
- $value = $qrCode->{$methodName}();
- if (is_array($value) && !is_object(current($value))) {
- $value = '['.implode(', ', $value).']';
- } elseif (is_bool($value)) {
- $value = $value ? 'true' : 'false';
- } elseif (is_string($value)) {
- $value = '"'.$value.'"';
- } elseif (is_null($value)) {
- $value = 'null';
- }
- try {
- $data[] = $methodName.': '.$value;
- } catch (Exception $exception) {
- }
- }
- }
- $string = implode(" \n", $data);
- return $string;
- }
- public static function getContentType(): string
- {
- return 'text/plain';
- }
- public function getName(): string
- {
- return 'debug';
- }
- }
|