• Не отправляется почта с помощью SwiftMailer через ZohoMail, что за ошибка?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Получил ошибку? Вставь ее в поиск, скорее всего ты не первый:
    яша
    Ответ написан
    Комментировать
  • @return void или @return null?

    DevMan
    @DevMan
    документация пишется же для людей, соответственно, она должна людям о чем-то говорить.

    @return void говорит нам, что функция ничего не возвращает, поэтому использовать ее вызов, допустим в выражениях, не имеет смысла.

    @return null говорит что мы намеренно возвращаем null и у нас для этого есть причины.

    по теме - https://www.dereuromark.de/2015/10/05/return-null-...
    Ответ написан
    7 комментариев
  • Как сделать поиск по фильтру в GridView (Yii2), если модели соединены через промежуточную таблицу?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Гайд с примерами:
    www.yiiframework.com/wiki/780
    Ответ написан
    Комментировать
  • Почему Widget Select2 дублирует select?

    Markus_Kane
    @Markus_Kane
    Full-stack developer (Symfony, Laravel, Vue.js)
    Предположу, что кроме рендеринга select2 виджета генератором форм Вы также вызываете select2 в js.
    То есть, пакет Select2 на выходе дает Вам готовый виджет (а он состоит из обычного скрытого select-а и набора span-ов), а в js Вы на этот же скрытый select навешиваете функцию select2.
    Ответ написан
    2 комментария
  • Как улучшить читаемость кода (много операторов if)?

    usdglander
    @usdglander
    Yipee-ki-yay
    Тут не паттерны, а рефакторинг нужен. Например "выделение метода".
    Ответ написан
    Комментировать
  • Как получить время без таймзоны?

    @BorisKorobkov Куратор тега PHP
    Web developer
    Ответ написан
    Комментировать
  • Свойства(автосвойства) в c# это поведение или состояние объекта?

    @wol2for
    Определимся с терминологией:


    1. Объект обладает состояние и поведение (Гради Буч)

      Подчеркну еще раз, объект. Не тип, не класс(класс только описывает будущий объект), а объект.


    2. Состояние объекта характеризуется перечнем (обычно статическим) всех свойств данного объекта и текущими (обычно динамическими) значениями каждого из этих свойств. (Гради Буч)




    3. Поведение - это то, как объект действует и реагирует; поведение выражается в терминах состояния объекта и передачи сообщений. Иными словами, поведение объекта - это его наблюдаемая и проверяемая извне
      деятельность
      . (Гради Буч)




    4. Свойство — это член, предоставляющий гибкий механизм для чтения, записи или вычисления значения частного поля. Свойства можно использовать, как если бы они были членами общих данных, но фактически они представляют собой специальные методы, называемые методами доступа. Это позволяет легко получать доступ к данным и помогает повысить безопасность и гибкость методов. (Свойства MSDN)




    5. Свойства позволяют обращаться к методу в исходном тексте программы, используя упрощенный синтаксис. (Рихтер, глава 9, стр. 204 по книге)




    6. Осторожный подход к определению свойств. Лично мне свойства не нравятся, и я был бы рад, если бы их поддержку убрали из Microsoft .NET Framework и сопутствующих языков программирования. Причина в том, что свойства выглядят как поля, на самом деле являясь методами. Это по рождает массу заблуждений и непонимания. Столкнувшись с кодом, обращающимся к полю, разработчик привычно предполагает наличие массы условий, которые просто не всегда верны, если речь идет о свойстве. (Рихтер, глава 9, стр. 204 по книге)



    А теперь разберемся, что к чему.
    Пример из того же Рихтера глава 9.
    public sealed class Employee 
        {
        private String m_Name;   // Это состояние 
        private Int32  m_Age;    // Это состояние 
        
        public String GetName() // Это поведение  
        {
           return(m_Name);
        }
        public void SetName(String value) // Это поведение
        {
           m_Name = value;
        }


    Равносилен этому примеру из той же главы (Рихтер об это сам и говорит):
    public sealed class Employee 
        {
           private String m_Name; // Это состояние 
           private Int32  m_Age; // Это состояние 
        
           public String Name // Это поведение  
           {
             get { return(m_Name); }
             set { m_Name = value; }
           }  
        }


    Тут уже становится ясно что свойства это механизм доступа к закрытым полям, который осуществляется через методы. А значит, что Свойства это поведение. Рихтер как раз и критикует свойства, за то что они похожи на поля, а на самом деле это методы (которые предоставляет доступ к закрытым полям). Рихтер вообще предлагает убрать свойства, дабы избежать путаницы (в книге он рассматривает проблему со свойствами с другой стороны, но это еще одна грань проблем связаны с свойствами).

    И, по-поводу свойства в интерфейсах, они помечаются как abstract, и выглядят примерно так:
    public abstract String GetName();
    public abstract void SetName(String value);

    Это просто голые методы без реализации. Они не могут быть ни состояние, ни поведение, так как только ОБЪЕКТ может иметь состояние и поведение.

    Экземпляр интерфейса и абстрактного класса нельзя создать, по этому к ним применение понятия состояния и поведения невозможно.
    Ответ написан
    1 комментарий
  • Есть ли правило валидации на размер загружаемого файла?

    @karminski
    Senior React.JS Developer
    Вы что издеваетесь? Открыть документацию уже сложно?
    www.yiiframework.com/doc-2.0/yii-validators-fileva...

    Параметр maxSize!
    Ответ написан
    6 комментариев
  • Вынести управление представлением в отдельный класс?

    @AnneSmith
    самая ленивая
    скорее всего, у вас нет ясной модели того, что вы делаете, иначе бы вы не задавали этот вопрос

    возьмите обычный лист бумаги и нарисуйте на нем все компоненты с их функциями, возможно тогда вы поймете, как вам лучше организовать все остальное
    Ответ написан
    8 комментариев
  • Yii2 две модели в форме?

    @AnneSmith
    самая ленивая
    а зачем вам создавать и нажимать "доп. поле", если вы можете показывать поле Name по изменению значения дропдауна?

    нарисуйте, что именно вы хотите получить в результате - и нам не надо будет гадать, и вам будет понятнее, что на самом деле вы делаете

    если говорить о том, как это сделать просто, то делается в html полная форма со всеми полями, которые могут понадобиться, и потом javascript-ом открываются и прячутся поля по изменению значений других полей - дропдаунов, чекбоксов, радиобатонов итд

    "корзиной" вам может служить скрытое текстовое поле input, в который через запятую можете добавлять ваши id при выборе разных продуктов

    затем отправляете заполненную форму на сервер и там делаете нужный вам mapping полей формы по вашим моделям

    keep it simple
    Ответ написан
    Комментировать
  • Почему после отправки формы пропадают js элементы Yii2?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    После обновления pjax-ом надо инициализировать заново скрипт, который Вам надо.
    Ответ написан
    6 комментариев
  • Сортировка по нескольким полям ORDER BY и приоритет?

    AlexMaxTM
    @AlexMaxTM
    С точки зрения запроса цена имеет приоритет, перед датой, и он верен. Скорее всего ошибка в другом месте. Попробуйте вывести запрос не в скрипте, а например в клиенте, посмотрите на результаты.
    Ещё может быть то, что цена сохранена как строковая величина, в этом случае сортировка может сильно отличаться от того, что хотелось получить.
    Ответ написан
    3 комментария
  • Как автоматизировать выполнение скрипта в Yii?

    coderisimo
    @coderisimo
    Консольные команды можно вызывать КРОНОМ. Отсюда - составляете расписание крона, который в нужный момент запускает выполнение определенных "консолек" (www.yiiframework.com/doc-2.0/guide-tutorial-consol... .

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

    mitaichik
    @mitaichik
    Как сказали выше - юзай консольные комманды. Для минимизации потребления памяти используй стриминговые хмл парсеры, для минимизаци нагрузки на бд юзай батч или пакетные вставки, обновления. Чтоб дать другим время - можеш слип вставить, но это всефигня, в многопроцессорных и многоядерных системах врядли один php процесс повесит систему так что жругие остановяться. Можно процесс занайсить.

    Для запуска - крон. Так же есть короно-подобное решение для yii, увы не помню как называется, мы его юзаем - нареканий нет.
    Ответ написан
    1 комментарий
  • Монкикоддинг полезен или вреден?

    @kot-samolet
    Надо проводить ретроспективный анализ иногда. Покодил - подумай что и зачем. С доков взял, подумай почему они именно так сделали
    Ответ написан
    2 комментария
  • Почему люди уходят с фриланса в офис?

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

    Sanes
    @Sanes
    На фрилансе трудно прогрессировать. В офисе, если интересные проекты и сильная команда, прокачаешься гораздо быстрей.
    Ответ написан
    5 комментариев
  • Где взять задачи/мини-проекты по ООП?

    @Alexander1705
    ООП - это подход к проектированию приложений. Любую задачу можно решать используя тот или иной подход.
    Ответ написан
    Комментировать
  • Выделение памяти в PHP ООП?

    @D3lphi
    1) При создании экземпляра new Class() в память забираются все его методы - чем больше методов тем больше памяти надо, или там память на метод в момент его вызова метода выделяется?


    При подключении ЛЮБОГО php файла производится лексический анализ, лексер генерирует из исходного кода программы набор токенов, из которых строится синтаксические дерево. Отсюда следует то что, чем больше кода, тем больше памяти выделяется.

    Само по себе создание каждого последующего объекта также несет затраты.

    Значит ли всё это что наиболее нагруженную но простую часть системы лучше вынести в отдельный компактный класс содержащий только необходимое для её функционирования?


    Вы экономите на спичках. Хорошая архитектура важнее сэкономленной микросекунды и килобайта памяти.
    Ответ написан
    Комментировать
  • Yii2 как написать такое правило для Urlmanager?

    Sanasol
    @Sanasol
    нельзя просто так взять и загуглить ошибку
    А смысл?
    Естественно все будет в один идти, разбирайтесь внутри контроллера что там искать т.е. определять на ходу что пришло.

    Как оно должно само разобрать что это за ссылка?

    Она ведь даже идет в один контроллер и метод, смысл вообще тогда этого действия?
    Ответ написан
    2 комментария