@@ -866,4 +866,39 @@ public static function phpbb_version_compare($version1, $version2, $operator = n
866866 }
867867 return version_compare ($ version1 , $ version2 , $ operator );
868868 }
869+
870+ /**
871+ * Check phpBB compatibility with the PHP environment
872+ *
873+ * phpBB 3.1.x is not compat with PHP >= 7 (700000)
874+ * phpBB 3.2.0-3.2.1 is not compat with PHP >= 7.2 (702000)
875+ * phpBB 3.2.x is not compat with PHP >= 7.3 (703000)
876+ * phpBB 3.3.x is not compat with PHP < 7.1.3 (70103)
877+ * phpBB 4.0.x is not compat with PHP < 7.3 (703000)
878+ *
879+ * @param string $phpbb_version Check a given phpBB version. If none given, will check QI's loaded phpBB.
880+ *
881+ * @return bool
882+ */
883+ public static function php_phpbb_incompatible ($ phpbb_version = '' )
884+ {
885+ if ($ phpbb_version )
886+ {
887+ return
888+ (PHP_VERSION_ID >= 70000 && self ::phpbb_version_compare ($ phpbb_version , '3.2 ' , '< ' )) ||
889+ (PHP_VERSION_ID >= 70200 && self ::phpbb_version_compare ($ phpbb_version , '3.2.2 ' , '< ' )) ||
890+ (PHP_VERSION_ID >= 70300 && self ::phpbb_version_compare ($ phpbb_version , '3.3 ' , '< ' )) ||
891+ (PHP_VERSION_ID < 70103 && self ::phpbb_version_compare ($ phpbb_version , '3.3 ' , '>= ' )) ||
892+ (PHP_VERSION_ID < 70300 && self ::phpbb_version_compare ($ phpbb_version , '4.0 ' , '>= ' ))
893+ ;
894+ }
895+
896+ return
897+ (PHP_VERSION_ID >= 70000 && !defined ('PHPBB_32 ' )) ||
898+ (PHP_VERSION_ID >= 70200 && self ::phpbb_version_compare (PHPBB_VERSION , '3.2.2 ' , '< ' )) ||
899+ (PHP_VERSION_ID >= 70300 && !defined ('PHPBB_33 ' )) ||
900+ (PHP_VERSION_ID < 70103 && defined ('PHPBB_33 ' )) ||
901+ (PHP_VERSION_ID < 70300 && defined ('PHPBB_40 ' ))
902+ ;
903+ }
869904}
0 commit comments