• Реализация правильной опции "запомнить меня" и завершение сеансов удаленно?

    myks92
    @myks92 Куратор тега PHP
    FanatPHP, ох и завёлся фанатик)

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

    Да?) Хорошо. Мой вопрос. «Я новичок. Как мне на php поднять приложение API на симфони? Слышал ещё что-то про микросервисы. Было бы не плохо пример и описать подробно как это сделать. Спасибо». Мне сейчас уже смеяться или ждать вашего «развёрнутого» ответа?)) Но не забывайте. Я должен не только понять, но ещё и сделать и прочитать за пару секунд. Как вы сказали. Жду.
    Если нет желания - ну скиньте линк на гитхаб с похожей библиотекой, от лары или симфони, ну или какого-то отдельного решения.

    А чего же вы не скинули?) И есть темы, которые не показать на коде. Если у вас нет желания - не отвечайте. А не кидайте ссылку на библиотеку в которой он не разберётся. Какой новичок прочитает чужой недокументированный код. И профессионал не всегда может понять сразу что и к чему. Да, многое зависит от написанного кода, но всё же. Чаще встречается лапшекод, который мало кому понятен. А вообще библиотеки не для этого создаются чтоб в них ковыряться и разбираться. Хорошая библиотека это публичный API который показывает как использовать эту библиотеку. А как там под капотом - вас мало что должно интересовать. Разве что посмотреть зависимости, абстракцию, читаемость и так далее. Как это работает, будет разбираться только профессионал, но не новичок.
    Смотреть видео - наихудший вариант.

    Интересно. А для чего тогда создают целые платформы курсов из видео? И зачем их вообще смотрят тогда тысячи людей. Ещё и деньги за это платят. Дураки) Вы, наверное, не знали, но чаще всего люди смотрят видео. Особенно новички.
    Во первых - это всегда субъективное мнение автора видео, и не всегда верное в плане реализации,
    А ваш ответ на тостер не субъективное мнение? Верное или не верное решать не вам. Программист должен подобрать инструмент сам. Для этого он и программист. Так сложилось, что программисту нужно выбирать инструменты и знать как ими пользоваться. И это нормально.
    во вторых читать и копировать легче из текста, нежели из видео

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

    И тут же вы пишите
    ТС должен научиться нормально формулировать вопрос, а не тыкать пальцем в лужу, подбирая аналогии из сказок и рыбацких баек. Есть же четкое название у функционала.

    Откуда он должен узнать все эти термины? В большинстве своём новички вообще ничего не знают и правильно вопрос не могут задавать. Поэтому им и нужно обучаться.

    Да и непонятные куски проще перечитать чем крутить видео туда-сюда.

    С этим не поспоришь. Но сколько потребуется времени напечатать этот весь текст. Поэтому будущее за видео обучением. Вы где-нибудь видели текстовое обучение? Я не особо. А вот видео платформ очень много. Но давайте эту тему мы даже не будем начинать обсуждать))
    там есть загрузки, звезды и рейтинг, более объективные параметры оценки, не находите?
    Опять же говорю, что хороший видео урок имеет код на гитхаб. Где есть все ваши критерии + под видео есть лайки и комментарии. Ещё больше критериев))

    Может то что 2 фразы читаются за 5 секунд

    Ваша задача ответить двумя фразами или просветить автора вопроса в данной теме? Ведь он тут же пойдёт и задаст другие вопросы на эту же тему. А все потому, что ответили за 2 секунды. По вашему проценту решений (27%) вы именно так и делаете. Ответ за две секунды - и пошёл дальше.

    А ещё хуже будет так, когда он узнает, что ему оказывается вообще не это надо было. Эксперт дает краткий путь к знаниям, а не ответы за 2 секунды. От того, что вы ответили как надо и не рассказали другие детали, автор и будет делать только так не думая своей головой, попутно задавая однотипные вопросы. Если ему нужно будет отступить от вашего предложения, то у него будет дискомфорт. Ведь может так нельзя...

    И с чего вы решили что видео ламерское? Если ни один из вас этого не смотрел видео. Вы, возможно, ещё сами найдёте в нем для себя что-то новое. Поспешные выводы как раз и говорят о то, что вы здесь сидите не чтоб помочь, а чтобы побольше рейтинга набрать. Ответил «за пару секунд» и пошёл дальше) Может, ошибаюсь, но выглядит так...

    В общем я не увидел здравого смысла в ваших комментариях. Я не пытаюсь отстоять свой ответ, переубедить вас или как-то упрекнуть вас. Просто прокомментировал это для вас. Не собираюсь вступать в спор. Данный ответ, скорее всего и вовсе удалю. Потому что он перешёл в бездумный спор. Причём я удивляюсь, что это пишут два человека с большим вкладом. Да ещё и вы являетесь куратором. Это очень странно наблюдать.

    С вами я ругаться не собираюсь) Просто очень странно что вы так думаете)
  • Как добавить систему модулей в hmvc?

    myks92
    @myks92 Куратор тега PHP
    Александр Иванов, я вам ответил. Вы правильно мыслите.
  • Реализация правильной опции "запомнить меня" и завершение сеансов удаленно?

    myks92
    @myks92 Куратор тега PHP
    FanatPHP, я же сказал, что воспользоваться токенами можно. Я сам использую oauth2. Автор должен сам изучить вопрос и выбрать правильное решение. Так как видно сколько вопросов вызывает данная тема. Прикрепил так же ссылки на пару видео с объяснением.
  • Как правильно проверить комментарии на премодерацию?

    myks92
    @myks92 Куратор тега PHP
    Genri_Rus, у вас заработало только для одного) Вам нужно сделать SQL запрос из базы данных сразу всех промодерированных комментариев.
  • Как правильно проверить комментарии на премодерацию?

    myks92
    @myks92 Куратор тега PHP
    Genri_Rus, это любой ключ. Делайте просто выборку на SQL не всех комментариев, а только подтверждённые.
  • Как постить разом в ленту соцсетей?

    myks92
    @myks92
    Арсланали, ну вы откройте документацию API каждой соц сети и поймёте возможности) Которые вы назвали - да.
  • Как передать информацию из БД в приложение на React?

    myks92
    @myks92 Куратор тега PHP
    Даниил Хачатурян, Гуглите все что связано API и взаимодействие. Чтобы не мучаться со всеми однотипными вещами можете попробовать Symfony или Slim фреймворк. С ним вам будет жить проще.

    https://yandex.ru/search/touch/?clid=1906591&text=...
  • Если запретить выполнение php в определенном каталоге, это будет безопасно?

    myks92
    @myks92 Куратор тега PHP
    rinaz22, вы можете запрещать доступ к файлам и папкам любого типа. Так же можно настроить доступ к любому файлу используя регулярные выражения. Однако эти настройки больше статические и они в основном выставляются для более серьезных прав доступа, которые критичны. А в проекте уже права могут быть на уровне кода с использованием БД
  • Как правильно и безопасно пользоваться ORM в Yii2?

    myks92
    @myks92 Куратор тега Yii
    у вас явно личная ко мне неприязнь, и вы строите теории на своих догадках.

    Вы ошибаетесь.

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

    Очень интересно. Работников отвлекать нельзя, а вот людей на форуме можно завалить бездумными вопросами и рассуждениями) И если вы не заметили, то на ваш вопрос я ответил развёрнуто и даже же даю комментарии. Вам никто не мешает разбираться, но когда вы просите помощь — должны уважать других. Уважение заключается не только в том, что не оскорбляете, а так же в правильно сформулированном и сфокусированном вопросе. Так же не задавать вопросы на которые можно легко найти на этой площадке или в интернете. Это не про Вас, а вообще. Многие не ищут, а только пишут.

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

    А это опять тут причем? Я знать не знаю что у вас есть работники. Ни слова вообще про найм не сказал. Опять Вас не в ту степь занесло.

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

    1. Я не сказал, что они глупые. Они не сфокусированные и "обо всём", болтовня.
    2. Никто не запрещает здесь Вам задавать любой вопрос, который не противоречит правилам, но если хотите найти ответ, а не просто "позадавать" вопросы, то к ним нужно подходить обдуманно и сфокусировано.

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

    Вы обо мне? Вовсе не корчу умного. Я лишь отвечаю на то, в чём разбираюсь выше среднего. Соответственно специалист. И я не говорю, что всё знаю в этой области. Есть куда умнее меня в этих вопросах, но его компетентность видна в словах и коде.

    Если бы вы спросили меня про астронавтику, то я бы слова не сказал. В сантехнике разбираюсь - спрашивайте. Глупее выглядит то, когда человек не разбирается и пытается доказать и умничать в том, в чём не имеет понимания) Вот это куда страшнее... Если я в чём-то сомневаюсь — я не буду так уверенно отвечать. А если я что-то не знаю — пойду изучать.

    Давайте не переходить на личности. Вы абсолютно ничего не знаете обо мне.

    Возможно вы подумали, что я рассказал о своих навыках, чтобы превознести себя — ошибаетесь. Я лишь сказал по факту, что я ещё и творческий человек и знаю что такое творчество. Поэтому не нужно списывать свой беспорядок в голове на творчество. Боюсь даже говорить, но может Вы даже не знаете что такое творчество, раз пытаетесь всё на него скатить.
  • Как правильно и безопасно пользоваться ORM в Yii2?

    myks92
    @myks92 Куратор тега Yii
    Игорь Васильев,
    я творческая личность, простите за этот сумбур, это из-за абстрактного мышления.
    Людям с логическим мышлением порой действительно трудно меня понять.
    Для справки могу сказать, что я организовываю мероприятия в области культуры и искусства, я закончил музыкальную школу (9лет), кроме того представляю интересы самой большой танцевальной организации в России. Могу сказать однозначно, что творчества во мне больше чем логики в разы.

    «Прыгать» с одной темы на другую - это не про логику. Это про фокус. Вы не можете сфокусироваться на чём-то одном и прыгаете с одного на другое. В этом проблема, а не в логике!

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

    myks92
    @myks92 Куратор тега Yii
    Игорь Васильев,
    Статусы хранит не БД, а модель, которая работает с пользователями, для того, чтобы понять, что за что отвечает, заходим в эту модель, и смотрим значение приватных переменных.


    Вы не внимательный! А я про код и не говорил. Я говорил именно про БД и запросы. Хорошей практикой на нагруженных проектах является разделение записи и чтения данных. При чтении используют SQL или QueryBuilder. Так же с БД вы можете работать и без кода. Администратор баз данных не программист, который знает, что за статус 1. Или в API документации вам придётся писать что значит статус 1, что значит статус 2 или 100. И так далее. Я вам привёл несколько простых типичных примеров, когда вам без доступа к коду не обойтись. Особенно это сложно с использованием разных людей отвечающих за разные вещи. frontend разработчику придётся давать доступ в код или описывать доку по каждому статусу. Да и вам самим будет не удобно искать каждый раз модель и узнавать что значит 1. Дело ваше, но я описал типичные проблемы, которые можно упростить. Не говоря о том, что даже ID в распределительных системах иногда делают не простым числовым а составными и смысловыми, для понимания и чтения. Но сейчас не об этом.

    В моём личном случае - нельзя, не могу разглашать почему, в интересах кибер безопасности. Думаю, раз вы в этом разбираетесь, то наверняка сделали так же. Если нет, добро пожаловать в мир уязвимостей.


    Даже если в вашем случае нельзя из-за инкапсуляции, то у вас другая проблема появляется: Тестирование валидации, Нарушение правил SOLID.

    Моя бизнес логика написана отдельно от модели, которая работает с пользователями, так же у меня есть отдельная логика для регистрации, смены пароля, смены e-mail, восстановления аккаунта и так далее. Если у вас всё хранится в одной модели или в одном контроллере вместе со всеми иф и эльс, то мне вас жаль.


    Что вы имеете ввиду под моделью? Domain Model или модель Yii? Я вам скинул репозиторий доменной модели юзера. Посмотрите) А уж в контроллере у меня точно нет никакой логики и состояния. И не понятно чего ж меня жаль?)

    Если я создаю роль админа и модератора, я должен добавить как минимум по две роли для каждой роли, и того при создании новой роли активного, я должен добавить по две роли заблокированного и нового.


    Тут я вас вообще не понял и причём тут роли? Я с самого начала не пойму. Вас занесло не туда.

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


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

    И как вы одним запросом получите количество всех статусов не имея статусы???


    Я говорил что статусы не нужны? Вы вообще смотрели мой код? Там статусы есть или я один вижу?

    Я практикую присвоение роли сразу после регистрации, та что по умолчанию, вы можете давать по умолчанию - любую (по вкусу запаху и цвету).

    К чему это?

    Я составил бизнес логику так, что вне зависимости от валидации, которую кстати могу цеплять за любой импут

    К чему это? Вы все решили обсудить?

    То есть человек спрашивает вас, как мне запретить вход тем, кто не подтвердил свой электронный адрес. Это тривиальная повседневная задача во всех проектах, проверить, что пользователь реальный. Кому нужны боты и спамеры???

    Вот именно «как мне запретить вход тем, кто не подтвердил свой электронный адрес» причём тут роли? В прочем тоже можете не отвечать.

    Как раз для высоко нагруженных проектов чем меньше обработка байт информации тем лучше, сколько весит int "1" и varchar "blocked" ???


    Вы точно не внимательный. Я и написал:
    Если у вас не высоконагруженная система имеет смысл статусы хранить в виде строки «active», «blocked»...
    Вы даже сами это процитировали. Беда...

    Про приватные переменные или константы - не? не слышали?
    Почему помнить должен программист а не программа?


    Ответил выше. Про использовании в API и базе данных. Код «не торчит на ружу» для всех!

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

    Сразу видно ваш уровень. А ещё не так давно вы задавали вопрос на который я вам давал ответ, который вы с удивлением прокомментировали, где вы не знаете о простых вещах
    Я не знал, что консольные запросы можно тащить через контроллер прямо на сайте и получать результат!!! Фантастика!
    . Поэтому нет смысла что-то доказывать мне.

    В общем и целом, ваш комментарий вообще не был полезен для меня. Вступать в диалог я больше не собираюсь)
  • Как отклонить вход пользователю с определённой ролью на Yii2?

    myks92
    @myks92 Куратор тега Yii
    Игорь Васильев, ваш пример с валидацией слишком сложный для валидации. В нем включена бизнес логика. Это не совсем правильно. В любой модели при сохранении можно поставить ->save(false)и валидация модели будет исключена. Соотвественно ваше бизнес правило не будет учтено, что является существенным нарушением бизнес логики. Поэтому, валидация - это проверка на более высоком уровне передаваемых данных. Она может дублироваться с бизнес логикой, но расчитывать только на валидацию нельзя.

    И не очень понятно, почему вы начали обсуждать блокировку пользователя. Хотя требуется проверка подтверждения. Блокировка - это скорее всего статус. Подтверждение - это confirmToken

    Так же хранить статус в виде числа не очень хорошая затея. Вам постоянно придётся помнить что 1-это активен, а 2-заблокирован. Если у вас не высоконагруженная система имеет смысл статусы хранить в виде строки «active», «blocked»... читать такие данные удобнее при запросах и в базе данных.
  • Как отклонить вход пользователю с определённой ролью на Yii2?

    myks92
    @myks92 Куратор тега Yii
    GONJY MONJY, не за что) А вообще если проверка для авторизовнного пользователя можно её осуществлять в behaviors или Yii::$app->user->can('admin'); При это User это yii\web\User, в котором есть метод can()
  • Как отклонить вход пользователю с определённой ролью на Yii2?

    myks92
    @myks92 Куратор тега Yii
    GONJY MONJY, Можете. Почитайте в документации, что возвращает ваша функция
    Yii::$app->authManager->getRolesByUser($user)

    Функция работает с интерфейсом CheckAccessInterface
    Yii::$app->getAuthManager()->checkAccess(32, 'admin');
  • Можно ли использовать VueJs вместо Jquery в проектах Yii2?

    myks92
    @myks92 Куратор тега Yii
    Дилик Пулатов,
    такие атрибуты в тегах @click="openDialog(1)" нормально?
    По-моему вы решили задать здесь все возможные вопросы) Этот вопрос про рефакторинг. Если кратко, то нормально. ВКонтакте везде использует подобное и ничего. А так нюансов много. Чтобы найти вам ответ на этот вопрос надо узнать все возможные варианты, плюсы и минусы каждого. Тогда вы поймёте как использовать. Что лучше.

    Сайт динамический..поэтому это не лучший вариант
    . Если верстка и код генерируется на VUE то динамика никак не помешает. Я говорил не про ваш случай, а использование NUXT или простого Vue. Если вы используете для генерации верстки и скриптов PHP, то естественно вам понадобиться сервер) Но это вы так организовали. Поэтому я бы отделил эти два приложения хотя бы на API и FRONTEND.
  • Можно ли использовать VueJs вместо Jquery в проектах Yii2?

    myks92
    @myks92 Куратор тега Yii
    Дилик Пулатов, если хотите таким образом, то можете использовать Vue вместо jQuery. Вполне нормальная ситуация. Но зачем вам использовать все вместе - не понятно. Думаю, что вам хватит возможностей vueJs без всяких jquery. Она уже устарела и использовать в новых проектах не особо хорошо. Хотя и Yii2 надо тоже использовать обдуманно.

    Чем меньше разных библиотек, а особенно не популярных, тем проще вам будет в будущем. Хотя сам фреймворк завязан на Jquery но, в своём коде лучше не использовать.

    Что касается утечек - как же другие живут?

    Что касается хостинга - любое Vue приложение можно сбилдить до уровня простых статических файлов. Таким образом сервер для такого приложения вообще может не потребоваться. Самый простой хостинг его будет поддерживать.
  • Какой принцип построения ответа при регистрации пользователя?

    myks92
    @myks92 Куратор тега PHP
    scottparker, посмотрите как это сделано на симфонии и можете взять этот компонент к себе в проект