- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
Сообщаю, что я пытался воскресить эту ебучую хуету на php4. Сначала пытался
воспользоваться docker'ом, чтобы заполучить нужные дистрибутивы мускуля и
пыхи, в связи с чем огрёб следующие траблы:
1) все готовые докерфайлы для четвёртой пыхи как минимум трёхлетней давности,
поэтому в них:
а. попадаются уже мёртвые GPG ключи
б. попадаются уже мёртвые ссылки на различные файлопомойки, откуда предпо-
лагалось тащить исходники или пакеты для всякого старья
через эти пункты мне удалось прорваться, и сделать живой контейнер с пыхой, но тут
2) оказалось, что проект представляет из себя настолько бессистемную кучу пыхофайлов,
непредсказуемо поименованных и состоящих из смеси вёрстки, кода и запросов к базе,
что мне понадобился отладчик xdebug либо zend debugger, в связи с чем я с радостью
узнал, что
а. xdebug вообще не сущетсвует для линукса на php4.4, если только не попытаться со-
брать его из сырцов для винды
б. zend debugger такой старый просто само по себе очень сложно найтй, и в докер его
по всей видимости никто никогда не пихал, и я не буду :)
В связи со всем вышеперечисленным, сейчас я скачиваю образ свинёрки, чтобы гонять
её в виртуалке, потому что промелькнула надежда на denver, который вроде как из ко-
робки предлагает такое говно мамонта.
Держите за меня кулачки.
С такими друзьями и врагов не надо.
http://books.mcwees.spb.ru/?compaq.html
Уже лет 10 как софт для PHP 5.2 нужно разыскивать с собаками. Несколько лет пытаются убить PHP 5.3-5.6. А тут живой проект на PHP 4 в 2020-м году.
Серьёзно?
https://www.php.net/manual/ru/migration5.incompatible.php
ЗЫЮ Вопрос знатокам, что это значит:
Передача массива в функцию по значению больше не сбрасывает внутренний указатель массива, используемый для доступа к его элементам в данной функции. Иными словами, в PHP 4 при передаче массива в функцию его внутренний указатель сбрасывался внутри функции, тогда как в PHP 5 при передаче массива в функцию данный указатель останется в том же положении, в котором он был до передачи массива в функцию.
?
Сейчас практически не используются, вместо них используют foreach.
Каюсь, я пользовался функциями reset и end для получения соответственно первого и последнего элемента массива. В семёрке вместо них можно использовать array_key_first и array_key_last.
Возможно, этот внутренний указатель ввели, когда ещё не было цикла foreach, чтобы была возможность итерации по нечисловым ключам, а потом оставили для совместимости.
C какого это хуя проще, если мне нужны косметические изменения, затем в поддержку я сайт брать не буду, либо уже за отдельный бюджет, а для этого надо сначала показать хоть что-то.
> Если там задача номер телефона в футере поменять
Ну да, примерно так и есть.
https://museum.php.net/
https://pecl.php.net/
https://pear.php.net/
«xdebug» можно собрать из исходников. Брать тут:
http://web.archive.org/web/20111221231752/xdebug.org/files/
*****
«Денвер» нахуй. Если нужно протестировать на «Windows», то лучше брать тут:
https://windows.php.net/downloads/
В качестве сервера под «Windows» можно брать «Апач» или «lighttpd». Для последнего есть неофициальный пакет, чтобы запускать его как службу.
В случае «Апача» интерпретатор «PHP» вызывается из mod_php, в случае «lighttpd» нужно запускать «PHP» как fastcgi-сервер.
«Mysql» или «MariaDB» в «Windows» ставится вообще просто.
Если тяжело ставить всё с нуля, можно установить XAMPP (в нём будет новый интерпретатор «PHP») и прикрутить к нему «PHP4».
Во-первых, там есть два варианта интерпретатора: «thread safe» и «non thread safe». Если интерпретатор TS, то все расширения должны быть TS. Если интерпретатор NTS, то все расширения должны быть NTS. Если хотя бы одно расширение оказалось не того варианта, то интерпретатор при старте упадёт.
Во-вторых, каждая версия PHP должна компилироваться определённой версией MSVC. Для PHP 5.2 нужно MSVC6 (VS 98), для PHP 5.3 и 5.4 — MSVC9 (VS 2008), для PHP 5.5 и 5.6 — MSVC11 (VS 2012). Какая версия нужна для 4.4, я не знаю. Возможно, VS 98, но точно не новее. У разных версий MSVC может быть разный манглинг имён и разная версия CRT (используется динамическая библиотека, а не статическая), поэтому расширение должно быть скомпилировано той же версией, что и интерпретатор.
Но в "PHP" же нет потоков.
https://www.php.net/manual/ru/faq.obtaining.php#faq.obtaining.threadsa fety
https://ru.stackoverflow.com/questions/814897/
https://qna.habr.com/q/410970
Потокобезопасная версия требуется только при работе с mod_php «Апача», потому что он создаёт треды.
FastCGI же создаёт процессы, а не треды. С ним можно использовать и «небезопасную» версию.
> https://pecl.php.net/
> https://pear.php.net/
Именно оттуда докерфайлы и пытаются тащить исходники и компилировать их, но что толку, пыха-то нужная у меня уже есть, просто к ней в природе не существует норм дебаг-инструментов.
> «Денвер» нахуй.
> В качестве сервера под «Windows» можно брать «Апач»
Ну так блять а в денвере по-твоему что используется?
https://pecl.php.net/package/xdebug
Там те же версии xdebug, что и на http://web.archive.org/web/20111221231752/xdebug.org/files/
1.x точно на PHP 4.x пойдут, плюс какие-то из 2.x могут пойти (не выше 2.2).
Да, для Линукса только в исходниках. Понадобится пакет php-dev именно от той же версии PHP, чтобы gcc увидел заголовочные сишные файлы и чтобы запустить скрипт phpize.
> Понадобится пакет php-dev именно от той же версии PHP
Не понадобится, я тебя может быть огорчу, но из пакетных менеджеров никто в здравом уме пыху не ставит, во всех более-менее рабочих докерфайлах с докерхаба ты увидишь выкачивание тарника с исходниками и его компиляцию. Из пакетного менеджера ставят как раз депенденси либы и собственно gcc ))) Так что исходники с вероятностью 99% у тебя всегда от пыхи именно той версии есть, потому что именно из них ты и пытаешься собраться.
только нархена етиться например с мусакуелем, который можно развернуть без хуйни
Опыт работы с окаменелым говном из двухтысячных?
З.Ы. Ну смотря как оплачивается, конечно.
Не только, ещё в сборке всякого говна вручную и в работе с ещё не окаменелым говном из 2020, таким как докер или специфические фичи для всего этого в idea
Никак, за еду лол