いまさらdotproject、続き

閲覧数: 25(0)

前回(これ)は古いオープンソースのプロジェクトマネジメントツール導入の話でした。当時PHPは5.3で、現在よりかなり古いバージョンでした。稼働させる現在の環境はPHP 5.6のため、多少の非互換があります。いわゆる言語仕様が改訂されているという状況です。影響度合いは様々で、非互換のエラーとなり動作しない場合もあります。dotprojectではファイルという機能が影響を受けました。ファイルはプロジェクトドキュメントをサーバー上にアップロードする機能です。

ファイルメニューをクリックすると、画面は表示しますが、下半分にエラーが表示されています。/var/log/httpd/error.logには、以下のエラーが出力されていました。

PHP Warning:  Illegal string offset 'where' in
 /var/www/html/dp/modules/projects/projects.class.php on line 304, referer:

該当する箇所を見てみると、こんな感じの記述でした。

$extra['where'] = ((($extra['where'] != '') ? ($extra['where'] . ' AND ') : '')
 . $buffer;

実現したかったことは、$extra変数がスペースでなかったら、ANDを追加する、というようなことだと思いましたので、以下のように変更してみました。

if(isset($extra['where']))	{
		$extra['where'] = (($extra['where'] .' AND ') . $buffer);
	} else {
		$extra['where'] = $buffer;
	}

とりあえず、エラーは出なくなり、ファイルメニューが使えるようになりました。

このように、ちまちまと修正箇所があって大変だなぁと思いますが、ありがたいことに本体のバージョンアップがされないため(そのうち言語上の非互換で動かなくなるリスクはあるが)、修正は一回限りでOKです。ところが、このブログで使っているwordpressやそのプラグインではそうはいきません。自分の都合に合わせて修正した箇所は、本体がバージョンアップされると毎回手直しが発生します。この話はまた別の機会に。

最終更新日: 2017年11月29日

カテゴリー公開, 閑話(IT)タグ,
ElasticsearchとWordPr...

(とついでに「Mediawiki」)関連情報があちこちにとっちらかっちゃったので、一旦整理する意味で  続きを読む

非互換対応再び
blank

サイトのお守りというのは、言い換えれば「それらを構成するソフトウェア群とそれらが稼働するハードウェア  続きを読む

PHP終了タグの件
blank

今回の「サイト引越」に関連して移動後の動作確認でいろいろ不具合があった中で一番大きかったのはアップロ  続きを読む

HHVMの振る舞い
blank

と言うか「HHVMとPHP」で書いたようにWordPressの実行環境をHHVMからPHPへ戻してみ  続きを読む

session_cookie
blank

Amazon Linuxのupdateでphpが5.6.8から5.6.9へ更新されたら、Tsubop  続きを読む

非互換対応その後
blank

年初からずっと取り組んで来た「非互換」対応のその後です。MediaWiki 1.35以降で非推奨とな  続きを読む

スポンサーリンク

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください