LoginSignup
2
2

More than 5 years have passed since last update.

[baserCMS]バージョン番号を比較して動作を分ける

Last updated at Posted at 2016-06-22

プラグイン作ってるときに、baserCMSコアのバージョンによっては利用できない処理となってしまったときに、どうしたものか考えてみた。
その結果、version_compare() 見つけて、これ使えば良さそうっぽいとやってみた。

想定している対象者

  • baserCMSでウェブサイトを制作をしている方
  • PHPer

発生状況

  1. baserCMS3.0.10 では動くけど、3.0.9 では動かない処理を作ったとき
  2. バージョン番号での比較できる処理を探して旅に出たとき

サンプル

<?php if (version_compare($siteConfig['version'], '3.0.10') >= 0): ?>
    3.0.10以上だからOK
<?php else: ?>
    3.0.9以下だからNG
<?php endif ?>
if(version_compare($siteConfig['version'], '3.0.10', '>=')) {
   echo '3.0.10以上だからOK';
} else {
   echo '3.0.9以下だからNG';
}

version_compare() について

ふたつのバージョン番号文字列を比較できる関数。

version_compare(string $version1, string $version2[, string $operator])

version_compare() の返り値は、最初のバージョンが2番目のバージョンより
小さい場合に -1
同じ場合に 0
2番目のバージョンのほうが小さい場合に 1
となる。

特殊なケースで比較

状況としてはあんましないけど、以下みたいに特殊な場合でもOKでした。

if (version_compare('3.0.6-hash', '4.0.0', '>=')) {
    echo '以上';
} else {
    echo '以下';
}

if (version_compare('4.1.0-dev', '4.0.1', '>=')) {
    echo '以上';
} else {
    echo '以下';
}

参考記事

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2