Во-первых, когда вы делаете кросс-совместимость, вы должны создать кросс-приложение, которое будет работать в соответствии с лучшими стандартами на каждой платформе.
Я бы хотел сделать это в тех разделах приложения, которые требуют специфики PHP 5.создаст совместимый каталог и загрузит совместимый файл для PHP4
, например:
/application/classes/database/core.php
/application/classes/database/util.php
/application/classes/database/misc.php
/compat/application/classes/database/core.php
/compat/application/classes/database/util.php
/compat/application/classes/database/misc.php
, тогда вы можете сделать:
function loadClass($path)
{
if (version_compare(PHP_VERSION, '5.0.0', '<'))
{
$path = "/compat/" . $path;
}
require_once $path;
}
loadClass("/application/classes/database/core.php");
, а затем со временеми никто не использует PHP 4, вы можете просто удалить каталог compat и убрать проверку из loadClass
.
. В качестве альтернативы можно зарегистрировать автозагрузчик. Таким образом, вы можете программировать с помощью require_once в вашем приложении и уменьшитьвам нужна дополнительная функция, которая будет доступна в вашем приложении.
и ответьте на ваши вопросы, в частности, о классе hte, указанном выше, это идеально кросс-совместимо.
Если вы продолжаете создавать приложение дляPHP4 конкретно вы должны принять во внимание:
- Неиспользуйте модификаторы public / private для ваших методов класса.
- Всегда используйте имя класса в качестве конструктора вместо
__construct
. - При передаче класса в функцию, вы всегда должны передавать по ссылкеиспользуя символ
&
. - Не используйте магические методы, такие как
__tostring
или __destruct
.
. Вы всегда должны создавать свое приложение в системе PHP4, а затемтест на последнюю версию PHP5.(изменить соответственно)