for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Zvermafia\Transliteration;
use GuzzleHttp\Client;
use Zvermafia\Transliteration\Contracts\TransliteratorContract;
class Transliterator implements TransliteratorContract
{
/** @var string */
const API_BASE_URI = 'http://www.alif.uz/api/';
/** @var Client */
private $transport;
private $text;
private $isLatToCyr = 'true';
private $result;
/**
* Create a new instance.
*/
public function __construct()
$this->transport = new Client([
'base_uri' => self::API_BASE_URI,
]);
}
* @{inheritDoc}
public function setText(string $text) : TransliteratorContract
$this->text = $text;
return $this;
public function getText() : string
return $this->text;
public function toLatin() : TransliteratorContract
$this->isLatToCyr = 'false';
public function toCyrillic() : TransliteratorContract
$this->isLatToCyr = 'true';
public function translit() : TransliteratorContract
$parts = str_split_unicode($this->getText());
$result = "";
$response = "";
foreach ($parts as $part) {
$response .= $this->transport
->request('GET', 'translit', [
'query' => [
'inputText' => $part,
'isLatToCyr' => $this->isLatToCyr,
],
])
->getBody();
$result = dropDoubleQuotes($response);
$this->result = $result;
public function getResult() : string
return $this->result;