[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Оценка качества PHP кода
kva
Здравствуйте, прошу оценить данный кусок кода и выразить свои впечатления.


PHP
$response.= '          {' "\n";
$response.= '               "id": "'.$message->get('id').'",' "\n";
$response.= '               "author": "'.htmlspecialchars($autor).'",' "\n";
$response.= '               "photo_url": "'.$member_photos[$member_id].'",' "\n";
$response.= '               "date": "'date(sfConfig::get('app_date_format'), totDate::addInterval($message->get("time"), $timediff*(-1),'s')) .'",' "\n";
$response.= '               "text": "'.htmlspecialchars($message->get('msg')) . "\"\n";
$response.= '          }';

$response.=  "\n" '     ]' "\n";
//$response.= "</response>";
$response.= '}' "\n";


Большое спасибо.



Спустя 5 минут, 31 секунда (14.07.2009 - 17:59) glock18 написал(а):
Привет.

собственно, кусок такой, что оценивать нечего.
отформатирован вывод json достаточно некрасиво.

читать можно, но выглядит не особо.

касательно, функционала тут вообще нечего сказать.

Спустя 1 минута, 19 секунд (14.07.2009 - 18:00) kva написал(а):
как по мне, то это клиникой попахивает.

Спустя 9 минут, 29 секунд (14.07.2009 - 18:10) Nikitian написал(а):
А что тут оценивать? Ну кучу пробелов я не люблю, ибо смысла они не несут никакого., как и переносы строк. Наверняка можно было оформить в виде шаблона, чтобы не фаршировать смесью непонятночего с php.
Обычный код. Это я просто придирался, ибо больше нечего оценивать.

Спустя 7 минут, 52 секунды (14.07.2009 - 18:18) kva написал(а):
Соболезную тебе. Видно о json_encode ты забыл! user posted image

Спустя 41 минута, 24 секунды (14.07.2009 - 18:59) glock18 написал(а):
kva, я чего-то не понимаю? ты сам с собой сейчас разговариваешь?

видеть такую высокомерную реакцию на оценку коду, которую ты сам просил, достаточно неприятно.

Цитата (kva @ 14.07.2009 - 15:18)
Соболезную тебе

соболезнования предлагаю, оставить при себе

Цитата
как по мне, то это клиникой попахивает.

а вот это по поводу чего, собственно? по поводу предоставленного кода? так вот оно что. стало быть не ваш код?
Цитата
json_encode

возможно, кто-то, а именно вы, не знает, что эта хорошая функция появилась в php 5.2.

еще комментарии?

Спустя 27 минут, 45 секунд (14.07.2009 - 19:27) PandoraBox2007 написал(а):
PHP
if (!function_exists('json_encode'))
{
  function 
json_encode($a=false)
  {
    if (
is_null($a)) return 'null';
    if (
$a === false) return 'false';
    if (
$a === true) return 'true';
    if (
is_scalar($a))
    {
      if (
is_float($a))
      {
        
// Always use "." for floats.
        
return floatval(str_replace(",""."strval($a)));
      }

      if (
is_string($a))
      {
        static 
$jsonReplaces = array(array("\\""/""\n""\t""\r""\b""\f"'"'), array('\\\\''\\/''\\n''\\t''\\r''\\b''\\f''\"'));
        return 
'"' str_replace($jsonReplaces[0], $jsonReplaces[1], $a) . '"';
      }
      else
        return 
$a;
    }
    
$isList true;
    for (
$i 0reset($a); $i count($a); $i++, next($a))
    {
      if (
key($a) !== $i)
      {
        
$isList false;
        break;
      }
    }
    
$result = array();
    if (
$isList)
    {
      foreach (
$a as $v$result[] = json_encode($v);
      return 
'[' join(','$result) . ']';
    }
    else
    {
      foreach (
$a as $k => $v$result[] = json_encode($k).':'.json_encode($v);
      return 
'{' join(','$result) . '}';
    }
  }
}


PHP
if ( !function_exists('json_decode') ){ 
function 
json_decode($json
{  
    
// Author: walidator.info 2009 
    
$comment false
    
$out '$x='
    
    for (
$i=0$i<strlen($json); $i++) 
    { 
        if (!
$comment
        { 
            if (
$json[$i] == '{')        $out .= ' array('
            else if (
$json[$i] == '}')    $out .= ')'
            else if (
$json[$i] == ':')    $out .= '=>'
            else                         
$out .= $json[$i];            
        } 
        else 
$out .= $json[$i]; 
        if (
$json[$i] == '"')    $comment = !$comment
    } 
    eval(
$out ';'); 
    return 
$x
}  
}

Спустя 22 минуты, 14 секунд (14.07.2009 - 19:49) twin написал(а):
PHP
<?
$response.= '          {' . "\n";
// приняли и приклеяли перенос строки. юниковский.
$response.= '               "id": "'.$message->get('id').'",' . "\n"; 
// ага, наверное гдето в классе было что то похожее на id
$response.= '               "author": "'.htmlspecialchars($autor).'",' . "\n";
// ух ты... начинаем догадываться, что и автор не за горами... Ну да, нефиг шляться кому попало, правильно
$response.= '               "photo_url": "'.$member_photos[$member_id].'",' . "\n";
//аха, и фото вроде как должно откудато взяться... вот мы его!
$response.= '               "date": "'. date(sfConfig::get('app_date_format'), totDate::addInterval($message->get("time"), $timediff*(-1),'s')) .'",' . "\n";
//щас блин хрен знает как отформатируем, и булет щастье
$response.= '               "text": "'.htmlspecialchars($message->get('msg')) . "\"\n";
$response.= '          }';
//и вообще, чё пристали. Нужен совсем другой результат.  {от  я получил то, что хотел.

$response.=  "\n" . '     ]' . "\n";
//$response.= "</response>";
$response.= '}' . "\n";

//Мужики!!! что тут не так, шъёрт побъеры?

Прости конечно, но можно услышать конкретную проблему, а не гадать на кофейной гуше...

Спустя 26 минут, 5 секунд (14.07.2009 - 20:15) PandoraBox2007 написал(а):
да это капец даже проблемы не понятно Ванга тут не ходит

Спустя 2 часа, 4 минуты, 10 секунд (14.07.2009 - 22:19) Paradise написал(а):
А надо было создать массив и перекодировать его в json.

Лучше всего это делать библиотекой из Zend Framework

Спустя 25 минут, 22 секунды (14.07.2009 - 22:45) glock18 написал(а):
Цитата (Paradise @ 14.07.2009 - 19:19)
А надо было создать массив и перекодировать его в json.

Лучше всего это делать библиотекой из Zend Framework


да, а больше никак нельзя попроще json получить? проще, чем дергать модуль из ZF? Paradise, советую тему внмательнее прочитать все таки.

Спустя 3 часа, 32 минуты, 54 секунды (15.07.2009 - 02:17) Guest написал(а):
kva, это анимешное порно, а не код!!!

Спустя 21 минута, 32 секунды (15.07.2009 - 02:39) Paradise написал(а):
Цитата (glock18 @ 14.07.2009 - 19:45)
Цитата (Paradise @ 14.07.2009 - 19:19)
А надо было создать массив и перекодировать его в json.

Лучше всего это делать библиотекой из Zend Framework


да, а больше никак нельзя попроще json получить? проще, чем дергать модуль из ZF? Paradise, советую тему внмательнее прочитать все таки.

Глок, я говорю, о том, как это действительно надо делать.

Если ты собираешь массив, тогда ты не печатаешь все как в этом коде, а ты имеешь структуру, которую понимает PHP. Следовательно, ты ее можешь менять средствами PHP, легче контролировать и проще воспринимать на глаз.

Давай мы вместе попробуем,

Я начну:
PHP
$response_array = array (

"id" => $message->get('id'),
"author" => htmlspecialchars($autor),

<...>

);


Дальше как я говорил, загрузить библиотеку Zend_Json и выполнить

PHP
$response_json = Zend_Json :: encode ($response_array);


Ведь так красиово стало. И дофига качественно

Спустя 6 часов, 4 минуты, 37 секунд (15.07.2009 - 08:44) glock18 написал(а):
Paradise
хмм... а чем не нравится json_encode и json_decode в php? начиная с 5.2.
если версия меньше можно и свои нарисовать, чай это просто делается.
но тянуть zend из-за одного json неразумно.

Спустя 7 часов, 33 минуты, 52 секунды (15.07.2009 - 16:17) kva написал(а):
Всем спасибо.

Спустя 3 часа, 45 минут, 30 секунд (15.07.2009 - 20:03) Paradise написал(а):
Цитата (glock18 @ 15.07.2009 - 05:44)
Paradise

но тянуть zend из-за одного json неразумно.

Здесь я тебе две вещи скажу

1) Надо давно строить свои проекты на Зенд Фреймворке
2) Если тебе не нравится вся библеотека, ты можешь взять только папку Zend_Json и будет тебе счастье.

Спустя 14 минут, 40 секунд (15.07.2009 - 20:18) glock18 написал(а):
Цитата (Paradise @ 15.07.2009 - 17:03)
1) Надо давно строить свои проекты на Зенд Фреймворке


а вот это интересно. можно как-то аргументировать?

Цитата (Paradise @ 15.07.2009 - 17:03)
2) Если тебе не нравится вся библеотека, ты можешь взять только папку Zend_Json и будет тебе счастье.


естественно, тянуть 25 мб исходников из-за json никто не будет.

и вы, как фанат ZF, видимо, даже не подразумеваете, что json в php5 гораздо эффективнее того, что сделан в ZF, в плане производительности.

Собственно, против ZF ничего не имею. Хороший фреймворк, и кампания Zend прекрасная. Но объяснение вашему фанатичному настрою хотелось бы все таки увидеть.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.