Тема: Быстрый переход dcms -social на 7 версию php (Движок DCMS-Social/Предложения и пожелания) Сибирский (5 Nov 2019 в 09:17) Первым делом открываем файл /sys/inc/start.php и немного модернизируем его. Нам нужно отслеживать время генерации, количество потребляемой памяти и отслеживать ошибки. Участки ненужного кода я буду помещать в комментарий, плохая практика удалять код. Шаг 1: подготавливаем cms к модификации Находим участок кода в файле /sys/inc/start.php <?php list($msec, $sec) = explode(chr(32), microtime()); // время запуска скрипта $conf[\'headtime\'] = $sec + $msec; ?> и помещаем его в комментарий <?php /* list($msec, $sec) = explode(chr(32), microtime()); // время запуска скрипта $conf[\'headtime\'] = $sec + $msec; */ ?> это было сделано по двум причинам 1. код находится не в самом начале скрипта а потому время начала работы скрипта будет неверным. 2. неоптимизирован [i]Добавлено:[/i] Вместо этого в самом начале файла, после открытия тага php Пишем свой код старта генерации <?php $conf[\'headtime\'] = microtime( true ); ?> Далее нам нужно будет отслеживать потребляемую скриптом память. Для этого на следующей строке помещаем такой код <?php $conf[\'headmem\'] = memory_get_usage(); ?> Сибирский (5 Nov 2019 в 09:19) Ниже создадим функцию для отлова ошибок, которая будет независимо от обстоятельств выводит ошибки в браузер при их наличии <?php function viewError(){ global $conf; if ($err = error_get_last()){ print (\"<div>Произошла ошибка</div>\"); foreach ($err as $k=>$v){ print(\"<div>$k: $v</div>\"); } } print \"<div>gen: \".round( microtime( true ) - $conf[\'headtime\'], 5 ).\"</div>\"; print \"<div>mem: \".size_file( memory_get_usage() - $conf[\'headmem\'] ).\"</div>\"; } ?> [i]Добавлено:[/i] в этой же функции делаем вывод данных об использовании памяти и время генерации скрипта (последние 2 строки функции). И регистрируем функцию <?php register_shutdown_function(\'viewError\'); ?> На этом модернизация файла /sys/inc/start.php заканчивается Сибирский (5 Nov 2019 в 09:21) Форум калечит код, потому помещаю просто файл с описанием адаптации Сибирский (5 Nov 2019 в 09:23) Файлы адаптации кода Сибирский (5 Nov 2019 в 09:24) Обертки функций адаптера можете дописывать как вам будет угодно. Если материал был интересен то пишите свое мнение. biket (5 Nov 2019 в 10:06) Без функции mysql_result, которая закомментирована, не будет полноценно работать ZAN0ZA (5 Nov 2019 в 10:07) А почему нельзя переписать движок и запустить mysqli без оберток? Это как бы не эйс, запоосы то старые остаются... Пирава победа какая-то. Извини может что то нетак поняла. ZAN0ZA (5 Nov 2019 в 10:08) biket, будет. Если в обертке назначиьть функцию одноименную этой. biket (5 Nov 2019 в 10:11) ZAN0ZA, Так в обертке она и закомментировна. И даже знаю почему. Скорей всего она не работает. biket (5 Nov 2019 в 10:12) Нашел ее Сибирский (5 Nov 2019 в 10:13) ZAN0ZA, можно, но тогда придется переписывать все модули. Адаптация сделана для того, что бы никаких неудобств не было с прикручиванием модов старых версий. Конечно можно просто запустить текстовый редактор или скрипт, который заменит все вхождения mysql функций на их эквиваленты, никто не запрещает этого делать. ZAN0ZA (5 Nov 2019 в 10:14) biket, в mysqli плдсчитывают число значений в массиве. :) kantry (5 Nov 2019 в 10:18) --Цитата-- ZAN0ZA (5 Nov 2019 в 10:07): А почему нельзя переписать движок и запустить mysqli без оберток? Это как бы не эйс, запоосы то старые остаются... Пирава победа какая-то. Извини может что то нетак поняла. ---------- ZAN0ZA, их переписанных, уже вагон и маленкая тележка:D http://dcms-social.ru/forum/13/5/62433/ biket (5 Nov 2019 в 10:20) ZAN0ZA, Ну мне интересно даже, будет здесь данная библиотека нормально работать или нет. Потому что я нашел две полцноценные библиотеки и в обоих собственноручно написанная функция mysql_result не работала и я намучился с ее исправлением Сибирский (5 Nov 2019 в 10:23) biket, ну мой вариант написан строго по документации, она дублирует все возможности mysql_result. biket (5 Nov 2019 в 10:27) Сибирский, Ты его проверял? Сибирский (5 Nov 2019 в 10:29) biket, ну да, я описание делал с чистой установки и этот адаптер работает уже несколько лет, конкретно с момента выхода php 7 версии, пример то уже выкладывался, просто в последнее время вопросы на эту тему участились ну вот я решил выкласть. Логично же что за ответами пользователь придет на официальный сайт. biket (5 Nov 2019 в 10:31) Сибирский, Если работает, то гуд. Но надо будет самому проверить :) Сибирский (5 Nov 2019 в 10:34) --Цитата-- ZAN0ZA (5 Nov 2019 в 10:07): А почему нельзя переписать движок и запустить mysqli без оберток? Это как бы не эйс, запоосы то старые остаются... Пирава победа какая-то. Извини может что то нетак поняла. ---------- ZAN0ZA, еще один момент в пользу обертки а что будет если авторы php завтра решат удалить раширение mysqli а придумают какое то newsql или крен знает что, как они поступили с mysql (кому он помешал незнаю ) ZAN0ZA (5 Nov 2019 в 10:44) Сибирский, это минус. Точнее, минус то что на php слишком много платформеров, а сколько людей сьолбко и мнений. Поспорили и выаели mysql из оборота. Но ведь прогресс на месте не стоит. Двигать его тоже надо. Ты молодец это безспорно. Сибирский (5 Nov 2019 в 10:46) ZAN0ZA, ну на счет молодец эт ты загнула. dcms-social давал мне неплохой доход в свое время, потому цели то у меня корыстные )) kantry (5 Nov 2019 в 10:54) --Цитата-- Сибирский (5 Nov 2019 в 10:34): ZAN0ZA, еще один момент в пользу обертки а что будет если авторы php завтра решат удалить раширение mysqli а придумают какое то newsql или крен знает что, как они поступили с mysql (кому он помешал незнаю ) ---------- Сибирский, скорее PDO удалят, как абстракцию, чем встроенный нативный драйвер)) Никто не удалял, его улучшили в связи с появившимся новым функционалом MySQL-сервера начиная с версии 4.1.3. Сибирский (5 Nov 2019 в 10:58) kantry, была у меня задумка на PDO обернуть но отказался я от такого варианта, ну во первых PDO это уже обертка, ну а во вторых мне она показалась дико неудобной. тем более класс я использовал не только на этом движке удобней было сделать вот так, как сделал :) МиссКаприз (5 Nov 2019 в 14:59) Сибирский, Саш, зайди к себе на сайт.)) berserk2014 (5 Nov 2019 в 15:32) Можно альтернативу mysql_result найти. Сибирский (5 Nov 2019 в 15:43) berserk2014, вы плохо читали тему и совсем не смотрели вложенные файлы Энмеркар (10 Nov 2019 в 00:53) Сибирский, PHP: 7.1.21 вытащила + нормик на сайт с модулями у меня к тому же встала.указ. Спасибо Саш:) Энмеркар (10 Nov 2019 в 14:16) PHP 7.0 и выше, break заявление больше не допускается за пределами for, foreach или же switch Заявление и дает роковую ошибку. в Футболе ошибка но не кретичная Сибирский (10 Nov 2019 в 14:22) Энмеркар, все верно, но эти ошибки отлавливаются и исправляются в секунды. Энмеркар (10 Nov 2019 в 14:25) Сибирский, Так оно реши в секунду эту проблему,, но заметил только сегодня:) Сибирский (10 Nov 2019 в 14:28) Энмеркар, вот из функции viewError() можно логировать ошибки и потом попросту просматривать лог и исправлять по логу Энмеркар (10 Nov 2019 в 14:36) Сибирский, Ясно понятно хорошо:) Jvk35 (10 Nov 2019 в 21:42) В файлах у меня есть прога для етого) Модули под двиг тоже перепишет под mysqli Источник: http://www.dcms-social.ru/forum/13/5/63103/