Добрый день! Серфил гугл в поиске задачек по php, нашел вот такую. Что здесь не так с кодом, как его можно переделать?
Как я вижу, метод init можно удалить, так как мы проверяем на ошибку в сразу в методе translate_text. Я новичок в php
<?php
class Translation
{
const DETECT_YA_URL = 'https://translate.yandex.net/api/v1.5/tr.json/detect';
const TRANSLATE_YA_URL = 'https://translate.yandex.net/api/v1.5/tr.json/translate';
public $key = 'AIza1ycf2zgk-nRxdbb4gg49M9';
public function init()
{
parent::init();
if (empty($this->key)) {
throw new InvalidConfigException("Error Processing Request");
}
}
public static function translate_text($format='text')
{
if (empty($this->key)) {
throw new InvalidConfigException("Error Processing Request");
}
$value = array(
'key' => $this->key,
'text' => $_GET['text'],
'lang' => $_GET['lang'],
'format' => $format == 'text' ? 'plain' : $format,
);
$formData = http_build_query($value);
$ch = curl_init(self::TRANSLATE_YA_URL);
curl_setopt($ch, CURLOP_RETURNTRANSFER, true);
curl_setopt($ch, CURLOP_POSTFIELDS, $formData);
$json = curl_exec($ch);
curl_close($ch);
$data =json_decode($json, true);
if ($data['code'] == 200) {
return $data['text'];
}
return $data;
}
}