• Есть ли подробный пример по Yii2 GridView -с данными из связанных таблиц?

    Ну, это из разряда очевидного. Пишите на том, на чем вы умеете. Серч Модель генерится в разделе CRUD, модель поиска осуществляется по параметрам, которые получает из формы методом load т.е. из грида. Но и при желании поисковую модель и модель можно склеить так было в версии Yii 1. Разделение сделали по причине того, что для разных гридов могут быть разные условия. С моделями тоже очень легко работать, вы можете генерировать их на основе вашей БД, хотя вариант наоборот (если работали с Doctrine), тоже имеется. Yii2 хоть и имеет малый порог вхождения, он требует времени. Удачи вам в ваших проектах!
  • Есть ли подробный пример по Yii2 GridView -с данными из связанных таблиц?

    coderisimo: Ну, а в чем у вас сложности? В поисках по разным составляющим? Вы можете сделать в Строителе запросов, через AndWhere абсолютно разные запросы. Если вам нужно именно заточить поиск, много и по всем параметрам. Можно использовать Sphincs
  • Как подключить файлы css, js к проекту PHPStorm?

    через слеш пробовали ? "/public" или выйти на одну папку выше ? т.е. так
    "./public"
  • Как рандомно вывести записи с таблицы в Yii2?

    Разве это не грузит базу? Вы создаете рандомное кол-во Id, которых может и не быть. Разве не проще будет взять все Id из базы, а потом радомно делать выборку их? обернув это все в транзакцию?
  • Как снизить нагрузку на БД при большом количестве запросов?

    waterlilies: тогда нужно смотреть в конфиг mysql. В целом если вам нужно оставить все как есть и не заморачиваться. Совет от Андрея Суржикова, решит многие проблемы. Но есть пару рекомендаций по поиску и отлову особо долгих запросов. Будете знать запрос, сможете его поправить.

    1. деление на инстансы советую раскомментировать #innodb_buffer_pool_instances=4

    2. Отшибайте зависшие запросы
    wait_timeout = 15
    interactive_timeout = 15
    net_write_timeout = 15
    net_read_timeout = 15
    Возможно вы на этом этапе увидите ошибку

    3. Мониторьте запросы самые долгие по выполнению, возможно в них спрятана цикличность которая и выжирает память

    4. Так ловите медленные запросы
    long_query_time = 2
    log_slow_queries = /var/log/mysql/mysql-slow.log
  • Текстовый квест - интерактивная книга стоит ли использовать php Framework?

    HanDroid
    @HanDroid Автор вопроса
    Благодарю за ответ. Но текст и описание будут в БД, как та же статья в блоге с картинкой. и по сути на кнопках висит JS обработчик, который будет записывать в массив игрока данные того, что он найдет. А при переходе на след статью, действует проверка массива на совпадение. Вот собственно и все что мне нужно.

    Но не совсем представляю как ограничить доступ к определенной статье, если это переходы между статьями. то одна из них должна содержать валидацию и таких страничек не то что бы много, но в действительности от 4-10 и чем больше будет тем более запутанный сюжет можно будет сделать.
  • Текстовый квест - интерактивная книга стоит ли использовать php Framework?

    HanDroid
    @HanDroid Автор вопроса
    я бы с радостью сделал бы это в духе Ангуляр + нода, проблема в том, что я не знаю не первого не второго, но в будущем конечно хочу на них попробовать пересесть, для практики. Спасибо за ответ.
  • Как создать свое правило валидации в yii2?

    Slava Kryvel: нет, я про мой совет что написал ? Я написал об этом же.
  • Зачем нужны абстрактные классы (PHP)?

    Анна Б: вы стучитесь в методы наследников не через абстрактный класс, а напрямую.
    Вы в своем приложении создаете новый объект и используете его методы.
    например
    $airplains = new Airplains ; // Тут создается объект
    $airpalins->getEngine(); // Тут получается свойство объекта, которое он наследовал от абстрактного класса, либо какое-то свое свойство. В моем примере это двигатель.
    $airplains->move(); // тут использование метода движение, которое было унаследовано у абстрактного, но сама реализация этой функции в классе Самолет.

    Самолет и Машина двигаются по разному и это "описание" пишется в методе мув, !ДЛЯ КАЖДОГО СВОЕ. Но названия метода у них одинаковые. Это позволяет передавать разные объекты и не переживать за то, что они все будут исправно работать, если вы передадите самолет он летит, если машина то она поедет. Каждый класс знает, что ему делать. Если вы не реализуете абстрактный метод в других классах, классы будут кидать ошибку и требовать от вас их реализации.

    ваш код $this->move() // взять текущий объект и использовать метод мув. Если такой метод есть, а он у вас есть. То все будет окей.

    Если вы делаете это не через абстрактный класс, а просто через класс. Это будет переопределение метода. На практике это выходит так: у вас есть описание как двигается самолет, а потом вы вызываете машину и машина начинает использовать тоже самое, что и самолет в итоге машина летит, а не едет.
  • Зачем нужны абстрактные классы (PHP)?

    То что я хотел написать, только более ёмко... эх. )
  • Java или Node.js для большого проекта?

    Zheka Dzecina: Да, это хороший подход. В частности Ангуляр и реакт именно так и используют. Серверные языки варьируются, Perl, C++, Noda, Java и даже на PHP делают связку. На клиенте вы сами выбирайте, что вам больше нравится.

    PS. Ангуляр требователен к знаниям собственного синтаксиса, но позволяет делать многие вещи из коробки. Реакт позволяет собрать собственные библиотеки и кроме JS ничего больше не нужно знать(например, если вы захотите перенести ваше JS приложение на десктоп NodeWebkitJS то реакт перенести проще). На 2015 реакт был лучшим. С выходом ангуляр 2, думаю ситуация выравнивается. У Ангуляра нету дебагера внятного, у реакта он есть. И если у ангуляр ошибка, то приложение молча подыхает и на этом все, реакт скажет где именно ошибка. В плане веса реакт весит меньше, но это нормально ибо не имеет доп. плюшек как у ангуляр.
  • Каким образом возникают сбои в транзакциях?

    По транзакции ошибок вроде бы нету. Есть ли вероятность того, что просто взломана БД? подменить записи в таком варианте очень легко.
  • Как повысить квалификацию php-программисту?

    Это нормальная практика. Никто не зубрит, даже мидлы порой получая задание, еще не знают как будут его решать. Сейчас вы знаете Php, через лет пять к нему прикрепятся еще несколько языков. вы думаете, что будете знать все на зубок? Работа с документацией неотъемлемая часть нашей работы коллега. Все что вам нужно со временем набьется на руку. Что касается MVC - это для упорядоченности и простоты в поддержки проекта. Ничего лучше пока не придумали, но и не всегда это обязательно, хоть и является Best Практик. )
  • Есть ли у Laravel5 красивый дебаг?

    Александр Ковальчук: у ларавел ядро от симфони - Kernel, а у джанго совсем другое. И если на джанго похоже, то в ларе ядро тоже самое явно. )
  • Есть ли у Laravel5 красивый дебаг?

    Сухой дебагер - дебагер из Symfony может можно прикрутить и сайдбар от симфони, там хороший дебагер тоже.
  • Почему не работает ajax?

    тостер хабрович:
    1) onreadystatechange - Не используйте его, он совершенно лишний.

    2) В методе Open - попробуйте передать URL Более точно localhost:8080/index.html с указанием явного порта. Либо 81 выставить, либо httpS попробовать. Так происходит из-за прав доступа. Если у вас есть логин и пароль к серверу. То передавайте их в качестве 4 и 5 параметра в open
  • Почему не работает ajax?

    Читайте то, что вам пишет ваш обработчик. Он вам говорит:
    Вы не можете использовать HTTP запросы. Подозреваю вы пытаетесь что-то загрузить из локальной среды. Вам нужно использовать реальный сервер для таких операций, либо не использовать XMLHttpRequest.

    И почитайте PSR для поддержки кода. В противном случае, с вами никто не будет работать, и за ваши проекты никто не возьмется допиливать.
  • Как лучше построить модуль Транзакции в symfony?

    Говорю сразу, не специалист, но как вы собираетесь в дальнейшем расширять те же типы счетов? У вас уже идет дубликация кода, не проще ли сделать класс отдельно, а потом наследоваться и дополнять в наследниках?
  • Как правильно сделать select с помощью hasMany()?

    Миха Панкратов:
    // "name" - это атрибут модели Contact
    $model->name = 'example';
    echo $model->name; // вывод example

    // доступ к атрибутам как к элементам массива
    $model['name'] = 'example';
    echo $model['name']; // вывод example

    // перебор атрибутов
    foreach ($model as $name => $value) {
    echo "$name: $value\n";
    }