| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <?php
- /**
- * Class QRString
- *
- * @created 05.12.2015
- * @author Smiley <smiley@chillerlan.net>
- * @copyright 2015 Smiley
- * @license MIT
- *
- * @noinspection PhpUnusedParameterInspection
- * @noinspection PhpComposerExtensionStubsInspection
- */
- namespace chillerlan\QRCode\Output;
- use function implode, is_string, json_encode;
- /**
- * Converts the matrix data into string types
- */
- class QRString extends QROutputAbstract{
- /**
- * @inheritDoc
- */
- public static function moduleValueIsValid($value):bool{
- return is_string($value);
- }
- /**
- * @inheritDoc
- */
- protected function prepareModuleValue($value):string{
- return $value;
- }
- /**
- * @inheritDoc
- */
- protected function getDefaultModuleValue(bool $isDark):string{
- return ($isDark) ? $this->options->textDark : $this->options->textLight;
- }
- /**
- * @inheritDoc
- */
- public function dump(string $file = null):string{
- switch($this->options->outputType){
- case QROutputInterface::STRING_TEXT:
- $data = $this->text();
- break;
- case QROutputInterface::STRING_JSON:
- default:
- $data = $this->json();
- }
- $this->saveToFile($data, $file);
- return $data;
- }
- /**
- * string output
- */
- protected function text():string{
- $str = [];
- foreach($this->matrix->getMatrix() as $row){
- $r = [];
- foreach($row as $M_TYPE){
- $r[] = $this->moduleValues[$M_TYPE];
- }
- $str[] = implode('', $r);
- }
- return implode($this->options->eol, $str);
- }
- /**
- * JSON output
- */
- protected function json():string{
- return json_encode($this->matrix->getMatrix());
- }
- }
|