За последние 24 часа нас посетили 16834 программиста и 1702 робота. Сейчас ищут 925 программистов ...

Книги по написанию высоконагруженных проектов

Тема в разделе "Прочие вопросы по PHP", создана пользователем kiosuki, 24 июл 2010.

  1. phpdude

    phpdude Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    697
    Симпатии:
    0
    Koc
    а про чо тогда?
     
  2. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
  3. phpdude

    phpdude Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    697
    Симпатии:
    0
  4. kiosuki

    kiosuki Активный пользователь

    С нами с:
    17 июн 2008
    Сообщения:
    8
    Симпатии:
    0
    Ребяты... Ну блин, я ж просил, не пишите тут своё... создайте топик, общайтесь, в PM общайтесь... Ну мне этот вопрос важен, а вы свои проблемы решаете... Щас модерам напишу.
     
  5. phpdude

    phpdude Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    697
    Симпатии:
    0
    так модеры и общаются, то есть не так. щас подойдут модеры и зафлудят к черту тему))
     
  6. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    phpdude
    как и где делать шаблонризатор для json ? В json_encode уже передаются данные, которые заэкранированы, приведены к нужному формату. Но это приведение и экранирование где и как делаешь? Есть ли варианты не копирования чистых данных, ибо в найтив хтмл шаблонизаторе они есть!?
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    kiosuki
    то, что они между собой флудить начали - значит тема себя исчерпала. Если при этом вы еще ждете каких-то постов по теме, значит надо переформулировать то, что вам непонятно, ибо все думают, что вы все поняли уже.
     
  8. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    phpdude
    ну это простейший случай. А если уровень вложенности поболее? Тут нужно что-то типа автоэскепинга с возможностью его отключить для определенных ключей...
     
  9. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    Koc
    когда-то у Андрея спрашивал, оно говорил что объекты ответа знают о типах данных которые отдают и производят автокодинг. Но это, скорее всего, катит для стандартных каких то штук
     
  10. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    Koc
    исходя из этого, мне иногда кажется, что поше делать для json отдельные экшены, как в принципе и говорил НГР!
     
  11. phpdude

    phpdude Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    697
    Симпатии:
    0
    думаю что при нагрузке в 50 кхитов в секунду, такая херня сгубит проц или память, чем меньше делаем - тем стабильнее работаем :)

    вечно ты себе грабли придумываешь, живи настоящим я не возможным будущим
     
  12. phpdude

    phpdude Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    697
    Симпатии:
    0
    и не поверишь, он был прав :)

    ложку в один стакан, вилки в другой, иначе выборка ложки из стакана становится сложнее. вроде все как и в жизни, а выдумываете какие то реально грабли. модель возвращает данные, ты их во вьюхе (допустим она обрабатывает) жсоновской экранируешь и отдаешь наружу
     
  13. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    да, +1, это дале в книжках по экстремальному программированию пишут ;)
     
  14. phpdude

    phpdude Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    697
    Симпатии:
    0
    Костян
    это и в психологии так пишут и везде насколько я знаю)) тольк овот придумывать себе стены а потом пытаться ломать у нас в крови :( нет чтобы просто идти дальше по дороге, мы все равно хотим препятствия
     
  15. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    и при этод данные брать из экшена для хтмл, например, для того, чтобы не писать лишнее (ну это если выборка хтмл экшене соответствует аджакс задаче). Поэтому и получается, что отдельный экшен и есть json представление, но дублирования данных тут можно и не избежать.
     
  16. phpdude

    phpdude Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    697
    Симпатии:
    0
    Костян
    если уж вам сильно хочется "шаблонизации" аля htmlspecchars применить к какому то ключу, то сделайте "свою" json_encode, которая работает например с ключами массива

    например так

    $json[':?name'] = применяем htmlspec
    $json['::?name'] = urlencode
    $json['\?name'] = addslashes ну и так далее, только чтобы полное гавно не получилось, а то снова че нить придумывать придется :)
     
  17. phpdude

    phpdude Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    697
    Симпатии:
    0
    применить такой "шаблонизатор", можно через замечательную функцию array_walk_recursive, если проставить великолепные значки & в параметры функции :)
     
  18. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    да, круто бы было, но не думаю что уж очень круто, ибо всё равно придется описывать частные случаи - от этого не уйти, зато array_walk_recursive сможет секономить память...
     
  19. phpdude

    phpdude Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    697
    Симпатии:
    0
    а в чем сложность?) JSON_TPL::addInstruct($Pefix, $callback); :D
     
  20. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    а завтра мы добавляем XML. И че? ебашим еще по одному экшену для этого формата?

    Как я это вижу:

    PHP:
    1.  
    2. <?php
    3. abstract class Api_Controllers_Abtract extends Framework_Controller
    4. {
    5.     protected function _getFormat()
    6.     {
    7.         $formats = $this->context->get('api.formats');
    8.         $default = $this->context->get('api.default_format');
    9.         $format = $this->context->request()->get('format', $default);
    10.         if (!in_array($format, $formats)) {
    11.             $this->_responseError('Формат бла-бла не поддерживается');
    12.         }
    13.  
    14.         return $format;
    15.     }
    16. }
    17.  
    18. class Friends_Controllers_Api extends Api_Controllers_Abtract
    19. {
    20.     public function getAction()
    21.     {
    22.         /**
    23.          * totalCount : 100500
    24.          * items
    25.          *   1 :
    26.          *     name : vasya
    27.          *     gender : 1
    28.          *     signature : <img src="userbar.jpg" />
    29.          *   2 :
    30.          *     name : ivan
    31.          *     gender : 1
    32.          *     signature : <b>ebashu saiti za edu</b>
    33.          */
    34.         $data = $this->context->model()->friends()
    35.             ->select($this->_getFields())
    36.             ->where('id', '=', $this->_getId())
    37.             ->limit($this->_getLimit())
    38.             ->offset($this->_getOffset());
    39.  
    40.         $this->context->escaper()->autoescape(true)
    41.             ->escapeMap($data, array('items.%key%.signature')); // второй параметр - поля, которые нужно игнорировать и не эскейкить
    42.  
    43.         return $this->context->view($this->_getFormat())
    44.             ->render($data);
    45.     }
    46. }
    47.  
     
  21. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    да ни в чём. Я всё понял - один хрен надо описывать частные случаи.... Я придумаю что то, вернее уже почти придумал.... :)
     
  22. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
  23. phpdude

    phpdude Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    697
    Симпатии:
    0
    о боже не пугай меня такими кусками кода пожалуйста, не травмируй мою психику, она и так расшатана
     
  24. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    что не так?
     
  25. phpdude

    phpdude Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    697
    Симпатии:
    0
    Koc
    хз, на взгляд он мне не нравится :)