Можете рассказать про регулярные вырождения через MySQL. Из плюсы и минусы, да и как вообще можно реализовать. Получу ли я более быстрый отклик от скрипта и т.д. Есть примитивная база, например: || ID || || regular || -----1--------------?------ Что писать за место "?" и при этом, как обрабатывать этот запрос? А может это вообще глупая затея...
Ты о чём? База может работать с регулярными выражениями, и ты можешь их использовать, да. https://dev.mysql.com/doc/refman/5.7/en/regexp.html Ну по идее, лучше, когда вся фильтрация данных возложена на базу, а не на клиента. При чём тут твоя схема, не въехал
Ну я имел введу создать свою таблицу с регулярными выражениями по типу [^0-9], а потом подумал, а чем будет это отличаться от стандартных, только добавлю дополнительной нагрузки... --- Добавлено --- И еще эта документация только на SELECT, на другие операции нельзя использовать REGEXP?
Ну вообще, чтобы не лезть в случае чего в код, а отредактировать через базу, у меня просто один файл user.class.php и в нем уже 2650+ строк, ну и сложно в случае чего искать ту или иную строку.
Тебе нужен рефакторинг, http://i-novice.net/refaktoring-vydelenie-klassa/ Если у меня один класс становится больше 200 строчек, я начинаю сильно нервничать. --- Добавлено --- https://refactoring.guru/ru/smells/large-class
Я и не знал, что можно таким образом сделать наследование через конструктор PHP: $this->_officePhone = new PhoneNumber(); . Всегда делал extends...
Это не наследование, это агрегация. И она в общем и целом предпочтительнее наследования. Сравни: пользователь имеет номер телефона или пользователь является разновидностью номера телефона. Чувствуешь разницу? Первый случай - агрегация, второй наследование. Лакмусовая бумажка.
только что посмотрел на один из файлов мода который недавно делал)) 6000 строк)) пару функций по 250+ строк)) надо про рефакторинг почитать)) --- Добавлено --- а это не нарушает принципы инкапсуляции.. ведь тут Код (Text): $this->_officePhone = new PhoneNumber(); получается зависимость одного класса от другого.. хотя вот это вот утверждение мне нравится
Ну сделать, чтоб все классы были на 100% друг от друга не зависимы, просто невозможно. И это не нарушает инкапсуляцию, поскольку инкапсуляция - это не про зависимости, это про сокрытие внутренней реализации от клиента --- Добавлено --- Ну и сделать инверсию зависимости тоже никто не мешает, сделать какой-нибудь PhoneNumberInterface. Хотя я думаю, что есть смысл зависимость оставить о таскать в другой проект и класс для телефонного номера в данном случае
когда то читал статью... там было сказано что связывать классы лучше через контроллер.. есть к примеру два класса человек и телефон... брать объект телефон не из класса человек, а брать его в контроллере и посылать потом уже в объект человек.. как то так.. у меня мало опыта работы с классами.. мой основной опыт работы был с движками без классов.. вполне может быть)) могу ошибаться))
Ну это всё ты смотришь от конкретной ситуации, это всё не аксиоматично. Где-то ты делаешь инверсию зависимостей, где-то понимаешь, что и прямая зависимость больших проблем не составит. Ну в примере с номером телефона - вряд ли можно написать несколько реализаций разных номера телефона. Инверсия зависимостей, внедрение зависимостей - это когда потенциально может понадобится в каких-то целях зависимый класс подменять.