• Как исправить ошибку Unable to resolve the request: site/error на yii2 basic?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    ищите проблему в маршрутизации. У вас возникла ошибка и для ее вывода вас переадресовало на site/error. Тут надо проверить есть ли физически site/error и проверить конфиг в частности url менеджера.
    Ответ написан
    1 комментарий
  • Как правильно разделить класс?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    У вас там что html тоже внутри?
    И вообще вся логика сайта?

    Надо не товар делить, а логику на отдельные части, там же явно не одна модель используется, вот и выносить в разные модели и всякое такое.

    Ну и видимо ORM брать, а не чистый SQL тоннами писать.
    Ответ написан
    5 комментариев
  • Как сделать столбец уникальным после создания таблицы БД?

    longclaps
    @longclaps
    mysql alter table
    ps глянул на скриншот - а там kod_roditel. Я не знаю, чем тут помочь.
    Ответ написан
    Комментировать
  • Почему при вызове модального окна не правильно формируется адрес страницы?

    Точно ответить на этот вопрос нельзя, потому что нет кода. Так посмотрите есть такая страница или нет, может в контроллере нет такой страницы или id с такой записью нет. Вариантов много, точно не могу сказать
    Ответ написан
    Комментировать
  • Как правильно вызвать нужный класс?

    @Yan-s
    Сложно понять что у вас там в целом.

    Не лучше ли будет реализовать нужные интерфейсы непосредственно на объектах типа Post? То есть выполняем $post->like() а пост уже запускает создание объекта лайк с нужными параметрами. Избавляемся от множества длинных свитчей, при добавлении нового типа объекта реализуются интерфейсы непосредственно в нем.

    Почитайте паттерны https://refactoring.guru/ru/design-patterns я думаю найдете комбинацию, которая решит вашу проблему.
    Ответ написан
    1 комментарий
  • Как построить архитектуру веб-сервиса на PHP?

    @ipokos
    Возможно, это всё не нужно и лучше использовать готовые решения, а не велосипед?

    А в чем вообще цель писать велосипед (Кроме единственной цели, научится) ?
    (ну и еще вариант, если у вас настолько уникальный функционал, что такого и близко нигде не используется)
    В остальных случаях готовое решение лучше, как минимум по таким причинам:
    - их делает не один человек
    - уделяется огромное время на расширяемость и универсальность
    - больше тестируется приложение
    - больше времени на микрооптимизацию
    Если взять несколько популярных фреймворков, то какой вообще смысл изобретать велосипед? (кроме того, как уже писал выше - научится)
    Ответ написан
    4 комментария
  • Как построить архитектуру веб-сервиса на PHP?

    SerafimArts
    @SerafimArts
    Senior Notepad Reader
    Возможно, это всё не нужно и лучше использовать готовые решения, а не велосипед?

    Не возможно, а точно.

    P.S. Это даже не мини, а просто набор файлов времён php 4)))
    Ответ написан
    Комментировать
  • Хотите задать вопрос администрации Тостера?

    longclaps
    @longclaps
    Встречаются ошибочные (либо ну очень кривые) ответы, помеченые решением.
    Никакого инструмента повлиять на это нет - только язвительные и бессильные комментарии (
    Доколе?
    Ответ написан
    23 комментария
  • Хотите задать вопрос администрации Тостера?

    xpert13
    @xpert13
    Full Stack Developer
    Добавьте возможность игнорировать вопросы определенных личностей (Черный список).
    Ответ написан
    24 комментария
  • Как реализовать динамическую загрузку actions?

    proudmore
    @proudmore
    В контроллере есть метод actions(), который частично определяет список экшенов, доступных в контроллере. Вы можете все экшены вынести в Standalone классы, сделать базовый класс, внутри которого проверять, есть ли доступ к этому экшену.

    Но мне было бы интересно послушать, зачем вам такое решение вообще? Есть же куча средств для контроля доступа! Да возьмите хоть RBAC.
    Ответ написан
    Комментировать
  • Как сделать такую сортировку в yii2 ActiveDataProvider?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Просто передайте в dataProvider нужный query, с sort по id в обратном порядке, а потом переверните масcив (php.net/manual/ru/function.array-reverse.php), который отдаст метод getModels() в activeDataProvider.
    getModels() отдает только модели для конкретной страницы, так что это то с чем Вам надо играться.
    Наверное красивее это сделать создав свой DataProvider, унаследовав от activeDataProvider и переопределить там getModels();
    Ответ написан
    4 комментария
  • На что вы ориентируетесь перед началом прорисовки дизайна?

    @McBernar
    Выше верно заметили — вопрос очень правильный.

    Сейчас опишу два мира — идеальный и реальный.

    Идеальный

    К вам приходит клиент, который занимается уборкой квартир и хочет получать новых клиентов через интернет. Что нужно сделать вам:

    1. Узнать все про клининговый бизнес. Как происходит процесс уборки? Какие средства используются при уборке? Что именно входит в уборку? Какие бывают проблемы при уборке и общении с клиентами? Чего клиенты боятся? А чего хотели бы? Какой портрет потенциального клиента? На все эти и другие вопросы ваш клиент точно знает ответ, если не первый день в бизнесе. Если же первый день — вам придется искать ответы самому.

    2. На основе собранных данных вы уже будете иметь представление о следующих вещах:

    а. Постоянные клиенты заказывают уборку на регулярной основе. Значит надо сделать для них удобный интерфейс подписки.

    б. Новые клиенты боятся пускать к себе в дом посторонних людей и оставлять их одних на время уборки. Ок, напишем, что уборщики максимально проверены и работают очень давно.

    в. Новые клиенты пока не готовы заказать уборку, потому что непонятно — надо ли им это и деньги просто так тратить не хочется. Ок, дадим им скидку 20% на первый заказ при подписке на новости. Клиент получит скидку, а ваш клиент получит постоянный контакт через почту.

    д. У клиентов есть маленькие дети и животные, которые могут остро реагировать на химикаты. Хорошо, описываем, что в работе используется только супер-безопасные средства.

    И так далее. Если в двух словах — вам нужно понять все вопросы, все страхи людей, для которых будете делать продукт, и ответить на них с помощью сайта. И, самое главное, сделать так, чтобы процесс заказа/покупки был максимально простым и незаметным.

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

    В итоге у вас будет отличный багаж для старта. А что делать с ним дальше — это уже вам решать. Хотите прототипы? Пожалуйста. Хотите сразу дизайн? Без проблем. Как вам угодно.

    А, ну и да — реальный мир.
    Тут все гораздо веселее.
    К вам приходит клиент, который занимается уборкой квартир и хочет получать новых клиентов через интернет. Приходит он обязательно с вордовским файлом, в котором лежит 40 референсов на различные сайты, которые по стилю противоречат друг другу на 100 процентов. И, конечно же, просит нарисовать семь красных линий, две из которых зеленые, а четвертая квадрат. И, кстати, в том же вордовском документе лежит логотип, который ему рисовал сын маминой подруги, но исходников нет, а есть только джипег 50х50px.
    Ответ написан
    1 комментарий
  • Как вывести картинки на главный экран в Yii2?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Я так понимаю Вы вообще не понимаете что делаете и как эо все работает. Это нормально для новичка. Но надо значит вернуться назад и подтянуть пропущенное. Я так понимаю надо доучить php и перестать юзать чужие решения типа "costa-rico" пока не напишите свое и не поймете как оно работает. Иначе ни как.
    Ошибка
    Call to a member function getImage() on a non-object

    Говорит, что Вы обращаетесь к методу getImage но не у объекта, как это предполагалось. Дебажится это за 2 минуты. Но не вслепую. По Вашему коду только гадалку звать. Ошибка обычно указывает файл и строку в которой она произошла. Что Вам мешает посмотреть что там? И нам показать. Желательно с соседним кодом, весь метод например.
    Ответ написан
    1 комментарий
  • Что обязательно нужно знать в PHP и что посоветуете выучить?

    toxicmt
    @toxicmt
    CTO at hexlet.io
    > С какими общими понятиями нужно ознакомится?

    То что вы описываете конечно хорошо и полезно, но недостаточно для того чтобы начать писать софт качественно. Причем речь не про "выучить еще немного функий", а про фундаментальные вещи. Понятия которые нужно знать в обязательном порядке (очень выборочно):

    1. Автоматизированное тестирование.
    1. Автоматное программирование.
    1. DDD.
    1. Функциональное программирование (функции высшего порядка, библиотеки типа https://github.com/tightenco/collect)

    Мастхев книги: https://ru.hexlet.io/pages/recommended-books
    Немного умных слов: https://docs.google.com/spreadsheets/d/e/2PACX-1vS...
    Ответ написан
    6 комментариев
  • Какая разница между public function и public static function?

    By_Engine
    @By_Engine
    Статические методы и свойства прмнадлежат классу, а не объекту проще всего будет объяснить на примере свойств

    class Foo {
    static public $a = 0;
    public $b = 0;

    public function getA(){
    return self::$a;
    }
    }

    $Foo1 = new Foo;
    $Foo2 = new Foo;

    Значение свойства "b" принадлежит объекту
    $Foo1 -> b = 1;
    echo $Foo2 -> b; // Выведет 0

    Статическое свойство "а" принадлежит классу и доступно любому объекту класса
    Foo::$a = 15;

    echo $Foo1 -> getA(); // 15
    echo $Foo2 -> getA(); // 15
    Ответ написан
    Комментировать
  • Как грамотно организовать JS код в ООП стиле разнесенный по файлам?

    SilenceOfWinter
    @SilenceOfWinter
    та еще зажигалка...
    JS это далеко не Java и ООП в нем такое себе. Посмотрите как это реализовано в фреймворках, вроде Ангуляр у всех на слуху, мне лично EmberJS понравился - у него дельный мануал.
    Ответ написан
    2 комментария
  • Как правильно обращаться к классу из других классов?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru
    В этом файле создается объект класса Auth (Singleton) который проверяет token и получает данные (ID, Группу, Разрешения для этой группы и т.д.) о текущем пользователе из БД

    Для чего выполняется это действие? Разве тут вы не провряете права пользователя?

    Может стоить взять готовое решение? Например Zend ACL
    https://framework.zend.com/manual/1.12/ru/zend.acl...
    Ответ написан
    1 комментарий
  • Для чего нужно ООП?

    Stalker_RED
    @Stalker_RED
    Для управления сложностью.
    https://habrahabr.ru/post/169487/

    Все что сделано при помощи ООП можно написать и в процедурном стиле, например, но чем сложнее проект тем сложнее будет во всей этой каше разобраться. Весь смысл ООП - разбить большущую сложную систему на кучу отдельных ПРОСТЫХ объектов, методов, сущностей.
    А еще с ООП неразлучна абстракция. Чтобы можно было одну часть программы выбросить и подменить на другую.

    Сегодня у нас выводится на веб-страничку, по которой кликают мышкой, а завтра не мышкой - а тач пальцами. А послезавтра вообще в VR шлем, и управление голосом. И если система правильно спроектирована - ее не придется переделывать ПОЛНОСТЬЮ, а только ту часть, которая ответственна за ввод/вывод.
    Ответ написан
    Комментировать
  • Зачем нужна автозагрузка классов?

    p00h
    @p00h
    Фехтовальщик-стропальщик
    Она обеспечивает загрузку по необходимости, а не эти ваши
    можно просто в начале файла сделать 100 reqire_once()

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

    Если правильно - подключить DI Container, делать все через него.

    Если без контейнера - передавать зависимости вручную. Обычно они не нужны везде

    То, о чем вы рассказываете лично я делал несколько иначе. Событий, как таковых, нету. Есть команда, которая и есть событием. Например AttackCommand, MoveCommand, DeployCommand. Все взаимодействие идет через команды, все остальные классы - сухие данные. Соответственно всякие такие вещи нужны только командам, а они создаются через единый центр, который и делает инъекцию.

    Тут я писал статью:
    https://habrahabr.ru/post/322258/
    https://habrahabr.ru/post/322268/

    А еще, если напишете на емейл (есть в профиле), могу скинуть пример сервера ККИ на C#.
    Ответ написан
    2 комментария