+

Заметки на полях: Ошибка возникшая из-за перехода с php 5 на php 4

Баги, глюки, ошибки, недочеты, Программирование

Метки (теги) : ,

Автор: admin

В теме конечно прослеживается маразм, но иногда люди, чтобы поддержать старое готовы пожертвовать новым. Так случилось и сейчас, когда заказчик не хотел переходить на php 5 только из-за того, что еще один проект на том же хостинге был написан именно на php4 и был не совместим c php 5. А про переделку его под php 5 речи не шло. Новый проект был сделан на joomla 1.5 и вроде даже на php 4 работал хорошо, без видимых ошибок. Но вот когда мне понадобилось поставить дополнение, которое работало с google maps api v 3.0, меня ждало разочарование.

Вот эта ошибка была всему виной: Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or ‘}’ in …

Я порылся по форумам и выяснил, что это именно из-за версии php .

Ошибка была в файле /path_to_root_directory/plugins/system/plugin_googlemap2.php on line 40

вот эта строка public function __construct(&$subject,$config)

слово public в php 4 использовать нельзя, так же как и const, private, protected.

поэтому безжалостно убираем его везде где оно указано в определении методов.

Далее лично у меня в плагине возникла такая ошибка Fatal error: Call to a member function on a non-object in /path_to_root_directory/plugins/system/plugin_googlemap2.php on line 209

вот непосредственно строка кода if ( !$this->params->get( ‘publ’, 1 ) )

я ее поменял на так

$plg = JPluginHelper::getPlugin(‘pluguinType’,'PluginName’);
$params = new JParameter($plg->params);
if ( !$params->get( ‘publ’, 1 ) )

pluguinType и PluginName нужно подставить свои.

Могут возникнуть еще ошибки, но эти первые были, и ставили в ступор поначалу.

Если сталкивались с подобными ошибками, пишите в комментариях. Будет такая веселая библиотека ошибок php4 vs php5

Оставить комментарий

=