За последние 24 часа нас посетили 17704 программиста и 1723 робота. Сейчас ищут 905 программистов ...

Кружок по Yii

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

?

Пользуетесь ли вы Yii?

  1. Нет, не пользуюсь.

    3 голосов
    33,3%
  2. Нет, у меня другой людимый фреймворк.

    1 голосов
    11,1%
  3. Начинаю с ним работать.

    3 голосов
    33,3%
  4. Да пользуюсь, всё хорошо.

    2 голосов
    22,2%
  1. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    MiksIr
    Ну это исправляется. Можно помочь посильно им в этом :)
     
  2. MiksIr

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

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Ну да, с другой стороны не думаю, что будет очень правильно забивать трекер тикетами вида "А вот в $model->attributes IDE не видит определения attributes". Не говоря уж об исключении cli и gii из дерева фреймворка (да, и еще yiilite.php). Не, ну директории то, конечно, можно и в игнор поставить, просто для меня это непривычно, долго искал где же это делается, а уж как отдельный файл заигнорить так и не нашел - пришлось yiilite.php удалить пока. Это скорее нужно писать плагины для IDE с поддержкой этого фреймворка.
     
  3. [vs]

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

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Psih
    А ты социальную сеть на Yii пишешь? Подходит?)
     
  4. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    [vs]
    Нет, не пишу, но вообще по идее он достаточно легковесен, что бы сделать на нём такое. Особенно WEB 2.0 делать на нём круто - все контролы как правило имеют AJAX действия, которые можно настроить. Единственное что модели жрут довольно много памяти, это теоретически может стать проблемой. Но есть DAO, которое избавляет от этой проблемы :)
     
  5. MiksIr

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

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Возвращаясь к спискам. Оформил свои словари как итераторы. Ну в фильтре тепереча нужно писать этажерку вида
    array('city', 'in', 'range' => array_keys(iterator_to_array(new CityDictionary())))
    Может покрасивей что в голову придет? Хотя можно просто свой валидатор написать наверно.
    PS: да, пожалуй свой валидатор проще всего ;)
     
  6. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    MiksIr
    Между прочим валидатор делается очень просто
    PHP:
    1. <?php
    2. ....
    3. array('city', 'checkCity'),
    4. ....
    5. private function checkCity()
    6. {
    7.     ...
    8.     // If city was not found, set an error
    9.     $this->addError('city', 'Please select city!');
    10. }
    11. ...
    12.  
     
  7. MiksIr

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

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Не сомневаюсь, тока public а не private ;)
     
  8. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    private подойдёт, т.к. метод вызывается из самой модели же. А видеть валидатор за пределами объекта не нужно, т.к. валидация тригерится методом validate если нужно :)
     
  9. MiksIr

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

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Не совсем так. Там изнутри модели вызывается валидатор - отдельный созданный обект, которому передается эта модель как параметр и он уже изнутри себя дергает метод модели.
     
  10. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Psih, завлек прям.
    Дай ссылку скачать, и посоветуй stable версию.
     
  11. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    admyx
    нуп! иди в гугл! =) сам орал об этом в соседнем разделе! =)
     
  12. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    igordata
    Ссылку я могу найти сам.
    А вот по поводу версии я бы хотел узнать от того кто с этим постоянно имеет дело.
    Не от тебя.

    Жалко, что такие простые вещи приходится объяснять.
     
  13. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    http://yiiframework.com

    Бери последню Stable, это 1.1.4. У них зоопарка нету. Лично я вообще живу на SVN версии.
     
  14. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Спасибо
     
  15. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    просто поймали на двойной морали =) че уж тут
     
  16. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    igordata
    Извини, бред.
     
  17. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    admyx
    Само собой. =)
     
  18. vdv111

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

    С нами с:
    30 дек 2010
    Сообщения:
    1
    Симпатии:
    0
    Ребят, не хотите скинуться на прохождение курса А.Долгу "PHP MASTER 2. Курс PHP-программирования. Yii Framework. Интенсивное 2-х месячное обучение" (http://phpmaster.aself.ru/) и выложить все видосы и исходники на торрент? Цена курса 247$. если хотяб 20чел найти. получится около 500руб с каждого
     
  19. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    В голосовалке нет моего варианта...
    "хотел бы начать, да руки не доходят начать" :)
     
  20. Koc

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

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    ахаха, да это же ж блин кореш жени попова
     
  21. LeoK

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

    С нами с:
    24 сен 2009
    Сообщения:
    43
    Симпатии:
    0
    Было бы интересно тоже посмотреть скриншоты CRUD. Уже давно обратил внимание на данного зверя, но както все не могу отойти от коханы.

    Вот эта штука неплохая конечно. особенно все это работает в окружении родного "приложения"
     
  22. starkeen

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

    С нами с:
    15 июн 2007
    Сообщения:
    37
    Симпатии:
    0
    Коллеги! У меня внезапно в пятницу вечером вопрос!

    Как с помощью построителя запросов выполнить запрос в стиле: [sql]UPDATE sys_cron SET cr_datenext = DATE_ADD(cr_datenext, INTERVAL '$period' DAY_MINUTE) WHERE cr_id = 13[/sql]

    При этом колдунство с CDbExpression привело к фейлу, пришлось пока выкрутиться так:
    PHP:
    1. $command->update('{{sys_cron}}', array(
    2.                      'cr_datenext' => date('Y-m-d H:i:s', mktime($_datenext_time[0] + $_period[0], $_datenext_time[1] + $_period[1], $_datenext_time[2] + $_period[2], $_datenext_date[1], $_datenext_date[2], $_datenext_date[0])),
    3.                    
    где $_datenext_date массив = explode('-', $_datenext[0]);
    но ведь это не годится!
    Как быть?
     
  23. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    в каком формате должен быть период? я что=то не догнал....

    и обязательно строитель нужен?

    А если просто -

    $sql = "UPDATE sys_cron SET cr_datenext = DATE_ADD(cr_datenext, INTERVAL '$period' DAY_MINUTE) WHERE cr_id = 13";

    Yii::app()->db->createCommand($sql)->execute();
     
  24. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    starkeen
    Это можно сделать даже с помощью модели, вот так:

    PHP:
    1. <?php
    2. // ActiveRecord style
    3. $model = SysCron::model()->findByPk(13);
    4. $model->cr_datenext = new CDbExpression('DATE_ADD(cr_datenext, INTERVAL :period DAY_MINUTE)', array('period' => $period);
    5. $model->save();
    6.  
    7. // SQL Builder style
    8. $sql = 'UPDATE sys_cron SET cr_datenext = DATE_ADD(cr_datenext, INTERVAL :period DAY_MINUTE) WHERE cr_id = :id';
    9. $command = Yii::app()->getDb()->createCommand($sql);
    10. $command->execute(array(':id' => 13, ':period' => $period);
    11.  
    Полное руководство по Yii всё же стоит прочитать, а так же заглядывать в API Reference
     
  25. starkeen

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

    С нами с:
    15 июн 2007
    Сообщения:
    37
    Симпатии:
    0
    и
    спасибо! обязательно попробую ваши варианты. Просто с самого начала с AR не стал заморачиваться, нужно было скоренько готовое решение перенести на Yii.