Задать вопрос
  • Как правильно спроектировать БД в данном случае?

    Decadal
    @Decadal
    Вроде бы нормально, но не слишком замудренно?

    Хмм
    замудрённо? Разве? Пожалуй, ссылку на аватарку можно было бы вынести вообще, а сделать таблицу файлов, а юзеру присвоить внешний ключ avatar_id, который будет ссылаться на запись таблицы файлов. Техническую информацию о профиле типа токенов можно отделить от информации о человеке (типа интересов, профессии, даты рождения). И т.д.
    Нет предела усложнениям. Но есть конкретная задача. Сейчас будет слишком очевидная фраза: если в рамках этой задачи и вашего виденья проекта усложнять не нужно - усложнять не нужно. Если нужно - нужно.
    Принимайте решения сами, если вы один, и советуйтесь с командой, если вы в команде. Все остальные советы по развитию и проектированию вашего приложения \ базы \ апи \ ..., которые начинаются со слов "не слишком ли сложно...", виднее только вам и вашей команде. На подобных ресурсах много спецов разных уровней которые набегут и насоветуют вам по вашему приложению кучу всего, но не факт, что их варианты будут лучше.
    Вот например: я считаю, что ваше решение вполне уместное, да, следует разделить модели и таблицы так как вы указали, а более короткое решение просто не требуется. Но это моё мнение, тут может оказаться много других. Я ведь не вижу, как развивается ваш проект, какие у него цели и на каком он этапе, чтобы как-то аргументировать свои слова согласно вашей ситуации в проекте
    Ответ написан
    Комментировать
  • Почему не вписывается в extensions?

    Decadal
    @Decadal
    есть подробная инструкция на сайте yii, вы следовали ей?
    www.yiiframework.com/wiki/809/how-to-create-yii2-e...
    Ответ написан
  • Можно ли в Yii2 изменять папку web?

    Decadal
    @Decadal
    вам нужно изменить только DocumentRoot в настройках вашего сервера. Это всё благодаря alias, которые используются в yii2, и любое упоминание папки web заменено на @ webroot alias.
    А объявляется он в ядре фреймворка вот так:
    Yii::setAlias('@webroot', dirname($request->getScriptFile()));

    т.е, откуда был запущен index.php, там и будет папка, играющая роль папки web.
    Подробнее: исходники класса yii\web\Application.
    Ответ написан
  • Какие есть варианты работы в IT без программирования?

    Decadal
    @Decadal
    но можно ли им стать без опыта работы программистом?


    да, вполне. Более того, PM из программиста такой себе (скорее всего, он был не самым лучшим программистом и вовремя это понял).
    Но это не избавит вас от необходимости серьёзно вникать в отрасль, чтобы не раздражать разработчика незнанием основных понятий и этапов разработки. Также в обязанности PM входит постоянное общение (а с клиентом частенько на английском). А ещё в провалах проектов почти всегда виноватым будет PM, что означает ответственность. И зарплаты не всегда хорошие.
    Но судя по вашему описанию проблемы, стезя PM вам может подойти.
    Ответ написан
    Комментировать
  • Как сделать такой комментарий в phpstorm?

    Decadal
    @Decadal
    введите следующее:

    /**

    и клавишу Enter

    перед функцией будет сгенерирована документация для функции по ее сигнатуре
    для переменной - документация к переменной с ее типом
    не сможет определить, для чего комментарий - сгенерит структуру вида
    /**
    *
    */
    Ответ написан
    Комментировать
  • Что происходит при слиянии веток (git merge)?

    Decadal
    @Decadal
    Представьте, что у вас два грузовика. Сначала они были одинаково пусты, потом вы загрузили в один грузовик пару мешков с песком, а в другой - мешок с углем.
    Условно первый грузовик - master, второй - dev.
    git checkout master
    git merge dev


    Теперь в master у нас мешки с песком и мешок с углем
    А в dev, как и прежде, только мешок с углем.

    Так что у вас не только те папки, которые в development, но и те, которые были в master.

    Если вы пушили ветку development, то при clone она тоже должна была стянуться, просто на данный момент git смотрит на master. Напишите git status чтобы проверить, в какой вы ветке, и переключитесь на нужную.
    Если ветки development нет, сначала вам предстоит её запушить.

    В случае, если в двух ветках разные файлы (не противоречащие друг другу), то merge просто размещает их все вместе, как будто вы скопировали файлы из одной ветки в другую.
    Но если в двух ветках в файлах с одинаковыми именами разное содержимое, выполняется auto-merging, т.е. попытка автоматически объединить два содержимых в одно. Эта операция успешна, например, если вы в одной из веток просто добавили в конец файла ещё одну строку, а в другой ветке не трогали файл вовсе.
    Если содержимое менялось и в той и в другой ветке, происходит конфликт. Git вставляет в место спорного контента что-то вроде
    <<<<HEAD 
    один контент
    <<< commit1111
    другой контент 
    <<<end

    Вам придётся решить, что делать с таким содержимым: что убрать а что оставить.
    После того как конфликт разрешен, вы просто коммитите свое решение, как будто бы никогда и не было двух разных версий файлов, а сразу была та версия, которую вы закоммитили в процессе решения конфликта.
    Ответ написан
  • Как убрать задержку при запросе к серверу через AJAX?

    Decadal
    @Decadal
    Вы можете сначала выгрузить все карточки в виде js объекта при рендеринге страницы, а потом вместо аякса просто рендерить нужный объект
    Ответ написан
    3 комментария
  • Скажите, что за ошибка?

    Decadal
    @Decadal
    В таблице, к которой вы обращаетесь, нет поля "status". Проверьте, ту ли модель вы используете, также проверьте таблицу user на наличие этого поля (обычно при базовой миграции создается таблица user, которая включает в себя поле status)
    Ответ написан
    2 комментария
  • Как в PHPStorm отформатировать код написанный в одну строку?

    Decadal
    @Decadal
    Если вы используете Линукс, то ctrl+win(кнопка "пуск")+alt+l
    Ответ написан
    Комментировать
  • Можно ли разобраться в ООП в ходе изучения YII2?

    Decadal
    @Decadal
    Yii2 не панацея в вашем случае. Это просто фреймворк, он позволит вам делать вещи, которые напоминают грамотное ООП очень отдалённо. Тем более, изучив ООП по фреймворку, вы будете воспринимать всё ООП через призму навязанных фреймворком решений.
    Если хотите подтянуть теорию, смотрите курсы, вебинары, а потом приступайте к реализации сложных вещей. Набивайте шишки, обретайте понимание, где и как было бы лучше написать код. В конце концов, найдите какой-нибудь OpenSource на фреймворке и изучайте уже его.
    Ответ написан
    1 комментарий
  • Как так сделать на чистом js?

    Комментировать
  • Как подключиться к БД в YII?

    Decadal
    @Decadal
    И - интуиция.
    Зайдите в файл 'config/db.php'
    Ответ написан
  • Как прописать что бы кука выставлялась раз в час?

    Decadal
    @Decadal
    24 - количество часов в сутках. Просто уберите 24 из общего произведения.
    Тогда в функцию будут попадать не дни а часы. Лучше бы переименовать days на hours, но не обязательно
    Ответ написан
  • Как разобраться с js задачей?

    Decadal
    @Decadal
    Ответ написан
    Комментировать
  • Какой тип маршрутизации в Symfony лучше использовать?

    Decadal
    @Decadal
    Если у вас большое количество роутов, используйте yaml - так они будут собраны в одном месте и наглядны. Более простой и быстрый способ - аннотации, но они при большом количестве роутов могут путать.
    Подробнее можно почитать здесь
    а здесь посмотреть на английском
    И документация
    Ответ написан
    Комментировать
  • Зачем нужны Javasript фреймворки?

    Decadal
    @Decadal
    Вы ответите на свой вопрос, узнав, зачем вообще нужны фреймворки.
    Относитесь к фреймворку как к наработкам опытных программистов, которые захотели упростить себе жизнь, собрав в единый механизм много полезных фич, инструментов, а главное - объединив это всё какой-то идеологией.
    Цель фреймворка одинаковая в любом языке - ускорить и облегчить процесс проектирования и сопровождения вашего приложения.
    На js фреймворки нужны потому что фронтенд последнее время усложняется, перенимая на себя те задачи, которые раньше решались сервером. Кроме того, у фронта свои нюансы, как уже отметили - совместимости и тд.
    Не пользуйтесь фреймворком, если то, что вы делаете - гарантировано никому не надо и вскоре будет заброшено. Если это учебный проект.
    К слову, существует другое мнение - что нужно, напротив, всё делать на чистом js. В конечном итоге, единственного правильного ответа "как разрабатывать" - нет. Всё зависит от ситуации.
    Ответ написан
    4 комментария
  • Как подключить стиль?

    Decadal
    @Decadal
    а если нет, то во вьюхе:
    $this->registerCssFile ( '/css/some.css', ['depends'=>'Asset'] );

    Первым параметром url, можно использовать алиас @ web.
    depends указывается, если нужно подключить css-файл после какого-то ассета (встроенного или кастомного). Можно не указывать массив настроек вообще.
    Документация
    На русском про ресурсы
    Ответ написан
    Комментировать