• Как обновить PHP до версии 5.5.7 на OS X Mavericks?

    @AlexGx
    Yii2 developer, business analytics
    Рекомендую поставить homebrew (brew), и обновлять php и прочие вещи через него.
    Ответ написан
    Комментировать
  • Почему при обновление mysql данных все таблицы перезаписываются?

    @AlexGx
    Yii2 developer, business analytics
    НЕ используйте конструкции вида fio = '{$_POST['fio']}' в строке запроса, тк это может привести к SQL-injection. Делайте экранирование, а в идеале биндинг парамертров (bindParam, bindValue) через PDO. Второй нюанс: mysql_query устарело, используйте вместо него mysqli или PDO.

    Ссыка по теме: PDOStatement::bindParam
    Ответ написан
    Комментировать
  • Как составить запрос, чтобы выводить похожие материалы?

    @AlexGx
    Yii2 developer, business analytics
    Возможные варианты решения

    1. Наделить материалы тегами, тогда похожими материалами будут материалы с наибольшим пересечением по тегам.
    2. Реализовать свой велосипед с Keywords, парсер и тд.
    3. Использовать полнотекстовый поиск. Хабр использует Sphinx. Можно также присмотреться к elasticsearch. В нем например из коробки есть more like this (mlt) API
    The more like this (mlt) API allows to get documents that are "like" a specified document.


    Так же рекомендую кешировать список похожих материалов (и обновлять например по крону или при публикации нового материала), а не расчитывать их каждый раз при выводе материала.
    Ответ написан
    Комментировать
  • Laravel или Yii - на чем лучше на данный момент начинать разработку сайта? В чем отличия?

    @AlexGx
    Yii2 developer, business analytics
    Для себя этот вопрос решил в пользу Yii. Yii и Симфони2 (и его форки), это немного разные ниши.

    Симфони2(Ларавел): правильный и академичный. Куча слоев абстракции, паттерны, все хитрозагручено. Некоторые вещи легко и быстро реализуются, но гораздо сложнее отлаживаются (опять же за счет большого кол-ва уровней абстракции).

    Yii: относится больше к практичным фреймворкам.
    Преимущества:
    -Проще изучить.
    -Меньше магии.
    -Меньше слоёв.
    -Меньше конфигурации.
    -Простой и удобный API.

    + ко всему этому хорошая документация, комьюнити, пожалуй самый быстрый PHP фреймворк на данный момент.
    ++ Yii может работать с компонентами Symfony 2, ZF2 и всеми библиотеками из Composer.

    Презентация по теме: PHP, фреймворки, Yii2

    Интересует мнение знающих людей, что гибче для настройки?
    Не могу сказать что один из них более или менее гибкий чем другой, но в Симфони сам процесс конфигурации всегда занимал у меня чуть больше времени.
    В чем их принципиальные отличия в архитектуре, в чем основные отличия?
    Постарался ответить в посте, также посмотрите презентацию.

    PS да мой ответ предвзятый, я нахваливаю Yii =)
    Ответ написан
    7 комментариев
  • Можно ли записать результат метода render для представления в переменную (php, Yii framework)?

    @AlexGx
    Yii2 developer, business analytics
    Мне нужно слать письма-уведомления пользователям (письма не text/plain, а text/html). Хотелось бы иметь для каждого шаблонного письма, свое представление (view) и делать что-то вроде:

    Есть ли такая возможность?

    Да. Для этого можно использовать метод renderPartial c указанием параметра return(true). Код будет выглядеть вот так:

    $body = Yii::app()->controller->renderPartial('hello_mail_view', array('param'=>'value'), true);
    mail($email, $subject, $body, $headers);


    Рекомендую ознакомиться с официальной документацией по теме:
    CController#renderPartial-detail

    Так же дополнительный вопрос. Для отправки писем я создал класс в папке components и в контроллерах, где происходит некое событие, используя этот компонент, шлю письмо пользователю. Насколько данное решение оптимальное с точки зрения концепции MVC? Возможно есть другие решения, подскажите.

    Вполне нормальное решение. Можете оформить в виде экстеншена.

    Я бы рекомендовал воспользоваться уже существующими расширениями для отправки почты, чем придумывать свой "велосипедик".
    Ответ написан
    1 комментарий
  • Есть ли готовое решение для менеджмента воркеров для RabbitMQ?

    @AlexGx
    Yii2 developer, business analytics
    Для управления воркерами (кол-во, перезапуск в случае падения и тд) лучше всего подойдет supervisord.

    Для задания количества воркеров есть параметр numprocs=N, где N - кол-во процессов-воркеров.
    Также supervisord имеет веб интерфейс для управлениями процессами.

    Неплохая статья на хабре.
    Ответ написан
    2 комментария
  • Materialized Path Tree Behavior Yii, документация?

    @AlexGx
    Yii2 developer, business analytics
    На github проекта есть немного информации в issues https://github.com/matperez/yii-ac-materialized-pa... и судя по комментам есть неисправленные баги.
    Ответ написан
    Комментировать
  • Yii и NestedSetBehavior - перемещение веток?

    @AlexGx
    Yii2 developer, business analytics
    Все дело в том, что вы используете метод append для не новой (сохраненной) модели.
    Для перемещения сохраненной модели необходимо использовать методы move*, например moveAfter, moveAsFirst и т. п.

    Пример. Для того чтобы изменить родителя, можно сделать так:

    $model->moveAsFirst($parent); // вместо $parent->append($model);
    Ответ написан
    Комментировать