PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (767): [1] 2 3 4 5 6 7 8 9 ... » В конец

> Найдено сообщений: 11493
Мелкий Отправлено: 22 Сентября, 2017 - 18:03:32 • Тема: Замена в строке • Форум: Регулярные выражения

Ответов: 1
Просмотров: 48
PHP:
скопировать код в буфер обмена
  1. echo preg_replace('~(?<!\\\\)M~', '!', 'M Y M \M\a\r\c\h');

negative Lookbehind с заборчиком из-за того что слеш спецсимвол как для php так и для pcre
Мелкий Отправлено: 20 Сентября, 2017 - 14:30:05 • Тема: Как правильно осуществить MVC архетиктуру? • Форум: Объектно-ориентированное программирование

Ответов: 8
Просмотров: 125
ВеликийПрограмист пишет:
Как контроллер и представление может быть у клиента или о каком клиенте идет речь?

Single page application например.
При этом с точки зрения PHP весь view - одна стартовая страничка. Да куча методов для общения с приложением. А весь слой представления содержимого пользователю реализован в js в браузере (т.е. на клиентской стороне приложения или "на клиенте" как распространённое сокращение)
Где же при этом контроллер - да ктулху его знает. В js получается код обработки действий пользователя, в PHP слой обработки api запросов. Допустимо ли второй называть контроллером?...
(Добавление)
ВеликийПрограмист пишет:
Но как можно писать ООП без классов я не особо догоняю?

Ну, например язык C: https://habrahabr[dot]ru/post/263547/
Мелкий Отправлено: 20 Сентября, 2017 - 12:50:51 • Тема: Как правильно осуществить MVC архетиктуру? • Форум: Объектно-ориентированное программирование

Ответов: 8
Просмотров: 125
ВеликийПрограмист пишет:
контроллер просто подает данные в модель, а модель дает в вид

Вид тоже контроллером вызывается.
В толстой модели вся логика приложения размещается в модели.
В тонкой модели вся логика приложения живёт в контроллере. А модель - тупая прослойка к данным.

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

Отдельный холивар: готовит ли контроллер все данные для представления или представление может самостоятельно дёргать модели для получения интересующих данных.
Ещё холивар современного веба - а где вообще находятся контроллер и представление, на сервере или на клиенте?
Много там холиваров, с этим mvc.

ВеликийПрограмист пишет:
как всегда php страница там бизнес логика, а в темплате логика репрезентации инфы которую php страница достала из базы.

Осталось отделить код работы непосредственно с данными в функции (если уже не сделано) - и вы получили MVC с тонкими моделями. Вынесли в функции высокоуровневую логику и вызываете именно эти функции из обработчика запроса пользователя - вот вам толстая модель.
А кто сказал, что mvc это про ООП? Это в первую очередь концепция разделения ответственности. До жути размытая концепция.

И ещё удивительная вещь - для использования ООП нет необходимости в использовании классов, а с использованием классов можно продолжать писать в функциональном стиле. Ладно, это не для джуниора фокусы Закатив глазки Хотя я серьёзно.

ВеликийПрограмист пишет:
Я вот в подходе MVC не вижу особой разницы если делать по контроллеру на каждую страницу сайта это чем-то отличается от процедурного подхода кроме перестановки слогаемых и обзыванием крутым словом MVC?

Не на каждую. Всё-таки контроллер обычно объединяет группу логически связанных страниц.
хинт: найдите отличие с подходом через соглашение об именование действий. например, user_show_profile.php , user_register.php - это же один контроллер user, в нём 2 action. Писать его 2 разными файлами или разными методами одного класса - по большому счёту никакой разницы. Можно придумать какие-нибудь плюшки, которые будут проще делаться в одном классе (например, проверка прав доступа пользователя сразу ко всем методам этого контроллера до вызова непосредственно действия, или рядом размещённые повторяющиеся методы без необходимости думать как обеспечить им уникальные по всему проекту имена) - но тот же самый эффект можно получить и без классов простым соглашением кодирования
Мелкий Отправлено: 20 Сентября, 2017 - 11:18:46 • Тема: Отобразить на сайте изображения с удаленного ПК • Форум: Вопросы новичков

Ответов: 2
Просмотров: 50
Вроде бы таким странным путём принято обозначать smb в виндах. Тогда цепляете директорию как сетевой диск, веб-серверу в конфиге пишете или отдельный поддомен (что имхо будет удобнее в сопровождении системы в будущем) и заворачиваете его на этот сетевой диск (тогда адреса будут https?://поддомен/картинка) или цепляете директорию как симлинк или location куда-нибудь в document root имеющегося проекта (тогда ссылки можно задавать от корня /symlinkdir/картинка).
Мелкий Отправлено: 20 Сентября, 2017 - 11:10:34 • Тема: Как правильно осуществить MVC архетиктуру? • Форум: Объектно-ориентированное программирование

Ответов: 8
Просмотров: 125
ВеликийПрограмист пишет:
Куча статей в интернете и каждая по своему описывает MVC.

А так оно и есть. Буквосочетание mvc модное, и до ужаса размытое.

ВеликийПрограмист пишет:
3. Контроллер - не совсем понял зачем он нужен, некоторые говорят чтобы управлять моделью и видом, другие говорят что он только собирает команды пользователя и отправляет в модель.

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

ВеликийПрограмист пишет:
Еще вопросец сколько моделей и контроллеров должно быть всего один или несколько в каких случаях нужно создавать дополнительный?

И моделей и контроллеров определённо будет много.
Ну разве только ваше приложение - это какой-нибудь лендинг всего о двух действиях "показать лендинг" и "создать заказ". Да в таком случае и mvc приплетать избыточно.
Контроллер - набор обработчиков каких-то действий пользователя, связанных по смыслу. Ну там "показать список постов", "показать целиком пост". Регистрация пользователя как-то к постам не очень вяжется - поэтому логичнее выносить отдельным контроллером.
Модель - это какая-то сущность. Ну, например, автор поста и пост - две модели. В одну их объединять как-то странно получится.
Мелкий Отправлено: 19 Сентября, 2017 - 16:45:03 • Тема: Не работает скрипт отправки сообщений на E-mail • Форум: Вопросы новичков

Ответов: 6
Просмотров: 162
Либо заблокирована/отключена/сломана отправка почты.
mail сам по себе письмо не отправляет, а передаёт его MTA, который должен быть и должен быть настроен для работы почты.
Мелкий Отправлено: 19 Сентября, 2017 - 10:00:06 • Тема: помощь в SQL запросе BETWEEN IF и т.п. • Форум: SQL и Архитектура БД

Ответов: 1
Просмотров: 78
Если немного схлопнуть перекрывающиеся условия:
CODE (SQL):
скопировать код в буфер обмена
  1. status_report = 0 AND (day_start >= CURRENT_DATE OR day_stop <= CURRENT_DATE)


Плюс check(day_start <= day_stop), если бы mysql умел check constraints. А так проверять на приложении или вкорячивать триггеры.
Мелкий Отправлено: 18 Сентября, 2017 - 23:14:15 • Тема: create_function в анонимную функцию • Форум: Вопросы новичков

Ответов: 4
Просмотров: 92
sektor2704 пишет:
В переменную $code передаются значения вида:

Зачем передаются?
Код вам необходимо править именно там. Например, передавать уже сформированную callback функцию. Но необходимо понимать, какую именно задачу вы хотите решить и почему изначально было сделано так, а не передачей callback параметром.

Если хотите костылей и хардкода неясно ради чего - то подсказка: create_function является обёрткой над eval.
Мелкий Отправлено: 18 Сентября, 2017 - 10:31:37 • Тема: Неверная кодировка текста - PHP • Форум: Вопросы новичков

Ответов: 10
Просмотров: 205
LIME пишет:
ниже в коментах в мануале бып пример безошибочного определения

Vladimir Kheifets пишет:
2. Замечал, mb_check_encoding, бывает ошибается.

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

Вы программа и у вас есть 13 байт данных, которые надо показать пользователю. Как их показать? Какому байту надо рисовать какое графическое представление?
Та хрен его знает! В этих 13 байтах нет ни одного намёка на это. Байт \xD0 имеет смысл в огромном множестве кодировок и в большинстве из них этот смысл для человека будет разный. А в других кодировках этот байт вовсе не имеет графического отображения.

Программным кодом кодировку определить безошибочно нельзя. Потому что бинарное представление всех кодировок ложится в одно и то же самое множество байтов. Различить какой-нибудь windows-1251 и windows-1250 можно только зная что-нибудь об исходном тексте. Например, что в тексте 1251 наверняка будет больше байтов из диапазона \xC0-\xFF, т.к. в этом диапазоне вся кириллица и расположена, в отличии от 1250, который активно использует латинский алфавит из первых 7 бит кодировки идентичных ASCII.
Хотите точно знать в какой кодировке текст выглядит нормально - посмотрите его глазами в разных кодировках. А машине всё равно что рисовать.

PS: обе темы внимательно не читал. Потому что решение одно - разобраться, где в какой кодировке данные лежат, в каких запрашиваются, что отдаётся в заголовках и привести этот бардак в любому общему знаменателю.
Мелкий Отправлено: 17 Сентября, 2017 - 20:28:02 • Тема: с php5 на php7 • Форум: Вопросы новичков

Ответов: 2
Просмотров: 105
yogeswar пишет:
В командах php5 всё проходило.

Значит там был другой error_reporting.
Потому что между php5.6 и php7 с точки зрения PHP кода различия крайне минимальны.

Впрочем, если $link->query() говорит Undefined variable: link, то сразу после этого идёт fatal error и аналогичный fatal error будет и во всех PHP5.* тоже. Следовательно - вы изменили код и не написали, как именно.
Мелкий Отправлено: 16 Сентября, 2017 - 11:35:17 • Тема: Trigger MYSQL • Форум: Вопросы новичков

Ответов: 4
Просмотров: 125
LIME пишет:
потому что в мускуле вьюхи это не таблицы а только результат запросов

view - это сам запрос, а не его результат. Результат запроса не хранится и даже не факт, что именно этот запрос будет выполняться. Чтение из view может интересным образом переписывать запрос скрытый во вьюхе. Выкидывать ненужные джойны, пробрасывать вовнутрь условия из внешнего запроса (правда, я плохо помню, что из этого умеет mysql с форками)

Результат запроса - это Materialized View, mysql их не умеет.
Можно ли сделать insert в view - вопрос более интересный. Иногда можно: http://sqlfiddle[dot]com/#!9/d856f/1
(хм. а я удивился, в mysql запрещено во вьюху утрамбовать подзапрос from table join (select ... ) sq)

К ошибке
Цитата:
ERROR 1442 (HY000): Can't update table 'tabla' in stored function/trigger becaus
e it is already used by statement which invoked this stored function/trigger.

приводит как раз то, что ваша view простая и mysql может преобразовать insert запрос к ней в insert запрос к вышестоящей таблице.
И что получается?
Top-level запрос делает insert в tabla, срабатывает on insert триггер, делает insert во вьюшку, который переписывается в insert в tabla, дальше должен сработать on insert триггер и так далее без условия выхода.
Разработчики mysql не стали задумываться над этими материями и просто запретили из триггеров проводить любые пишущие манипуляции с таблицами, которые уже вызвали триггеры.
При чём тут хранимки - наверное у них тот же запрет действует. Но хранимки в mysql вещь такая удивительная... Используйте или mysql или хранимки но не оба сразу.

А вот если в триггере попробуете писать куда-нибудь в другое место - то всё получится.
Мелкий Отправлено: 12 Сентября, 2017 - 11:53:31 • Тема: Подкажите логику размещения одного товара в разные категории • Форум: Вопросы новичков

Ответов: 1
Просмотров: 116
Отдельная таблица связей о двух id: id категории и id товара, первичный ключ на оба поля.
Мелкий Отправлено: 08 Сентября, 2017 - 21:22:19 • Тема: Как получить данные из связанных таблиц? • Форум: SQL и Архитектура БД

Ответов: 7
Просмотров: 349
Зависит от частностей. То есть брать и измерять с конкретными распределениями данных.
Мелкий Отправлено: 07 Сентября, 2017 - 12:51:05 • Тема: Создание объекта класса • Форум: Вопросы новичков

Ответов: 4
Просмотров: 208
psevdo пишет:
Fatal error: Uncaught Error: Class 'test\ReportBuilder' not found

psevdo пишет:
Пространство имен не используется.

Одно из двух.
Мелкий Отправлено: 07 Сентября, 2017 - 12:10:41 • Тема: Создание объекта класса • Форум: Вопросы новичков

Ответов: 4
Просмотров: 208
Потому что код который вы показали и код который вы пытаетесь запустить - различаются. Согласно тексту ошибки у вас используются пространства имён.

Страниц (767): [1] 2 3 4 5 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB