Ответы пользователя по тегу PHP
  • Что корректно выносить в отдельный класс для веба?

    Tpona
    @Tpona
    Ужасный перфекционист
    Rasmusen505,
    Регистрация, авторизация это процессы, пользователь - это сущность.
    Процесс может затрагивать много сущностей, сущность может участвовать во множестве процессов.
    В случае авторизации в процессе может быть задействовано множество классов:
    - Классы форм представлений (View), которые отрисовывают сами формы и биндят в них параметры модели формы.
    - Классы моделей форм регистрации/аутентификации, которые так же могут и валидировать форму.
    - Класс UserIdentity, реализующий интерфейс IIdentity отвечающий за аутентификацию пользователя.
    - Класс пользователя, который часто и реализует интерфейс IIdentity.
    - Классы контроллеров, которые обрабатывают запросы и находятся между представлением и моделями, например. Это если мы говорим об арзитектуре MVP.

    Регистрация пользователя - это процесс, в котором может участвовать множество классов и делает он приблизительно следующее:
    1) Получает от пользователя информацию о регистрационных данных (Класс представления и класс модели формы)
    2) Валидация данных пользователя при отправке запроса на регистрацию (Контроллер получает от представления (View) информацию, создает модель(класс) User и выполняет сохранение)
    3) Если в базе такой пользователь уже есть (проверка на уровне модели/СУБД на уникальность определенных полей), то контроллер от модели транслирует ошибки в класс формы и пользователь их исправляет.
    4) Если все ок, то пользователю выдается сообщение об успешной регистрации (ответ от контроллера) и контроллер шлет ссылку о подтверждении регистрации по email (тут сохраняется токен привязанный к записи в таблице пользователей, нужен для генерации ссылки на подтверждение регистрации, по нему потом ищется нужный пользователь для его активации).
    5) Далее уже другой контроллер или другой метод этого же контроллера обрабатывает ссылку и выставляет флаг через модель пользователя о том, что регистрация подтверждена.

    Я думаю, что Вы путаете класс регистрации с моделью формы регистрации.
    Тогда путаница в терминологии и ход мыслей правильный.
    Ответ написан
    Комментировать
  • Как разобрать стpоку на составляющие?

    Tpona
    @Tpona
    Ужасный перфекционист
    А чем регулярки не устраивают?
    https://regex101.com/r/RqnaRE/1
    Ответ написан
    Комментировать
  • PHP или NodeJS использовать для парсера?

    Tpona
    @Tpona
    Ужасный перфекционист
    Я бы предложил использовать nodejs, мне кажется, проще будет нагрузку регулировать, хотя, с прямыми руками без разницы))
    Ответ написан
    Комментировать
  • Как получить доступ к объекту А содержащего объект Б из объекта Б?

    Tpona
    @Tpona
    Ужасный перфекционист
    На мой взгляд, Вам нужно для начала определить место хранения данных.
    Почитайте про MVC-паттерн проектирования приложений и выберите для изучения MVC-framework, например yiiframework.com.
    Потому, что потом Вы все-равно к этому придете, но путь будет долгим ))
    Ответ написан
  • С какого языка изучать программирования (с нуля)?

    Tpona
    @Tpona
    Ужасный перфекционист
    С нуля - это с ассемблера ))
    А если серьезно, надо взять один из низкоуровневых языков c++, например, купить (скачать) книгу по технологии программирования, алгоритмизации, сам по себе язык - это инструмент, основное у тебя в голове должно быть, не достаточно иметь шерсть и спицы. чтобы связать свитер ))
    Ответ написан
    Комментировать
  • Почему некоторые INSERT-ы не добавляются?

    Tpona
    @Tpona
    Ужасный перфекционист
    Не плохо было бы обработать ошибки
    php.net/manual/ru/pdo.errorinfo.php
    при выполнении prepare/execute
    И еще - вечный цикл? Может по крону дергать? Это же время выполнения скрипта нужно делать вечным, у Вас в php.ini выставлено или на скрипт? Хотябы слип минимальный поставьте, а то как то не айс.

    Да и что-то мне подсказывает, что идеология нарушена?
    Мне кажется prepare нужно за цикл вынести и сделать это все транзакцией, нет?
    Ответ написан