PHP_VERSION

dakata__92

Super Moderator
Според PHP_VERSION моят локален хост е 5.5.15. Как да проверя дали кода който съм създал е съвместим с малко по-стари версии на PHP? Лесно мога да ползвам http://php.net/manual/en/function.version-compare.php и едно exit()-но нещо ми се струва, че не е добра идея. www.000webhost.com ползват 5.2.17 и веднага започват да мви трещят грешки като например:
PHP:
$bytesFormat = function($size){
        $base = log($size, 1024);
        $suffixes = array("B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB");  
        return pow(1024, $base - floor($base))."[".$suffixes[floor($base)]."]";
    };
не е дефинирана функция или realpath_cache_size() не съществува. Кажете сега как да процедирам за да може да сравнявам версиите и да вия моя код с коя версия е минимум е съвместим.
 
Имаше една врътка, която wordpress използваха още от преди години.
Търсиш някоя функция, която да я има само във 5.5 (примерно) и проверяваш дали съществъва. И така за всяка версия, която ти трябва.

functions_exists(IME_NA_FUNKCIQ)

Да знам, че тва е малко хамалско ама поне работи :) :?: :?:
 
joTunkiq каза:
Имаше една врътка, която wordpress използваха още от преди години.
Търсиш някоя функция, която да я има само във 5.5 (примерно) и проверяваш дали съществъва. И така за всяка версия, която ти трябва.

functions_exists(IME_NA_FUNKCIQ)

Да знам, че тва е малко хамалско ама поне работи :) :?: :?:
Да така си е просто незнам как да проверя моят код с коя версия е съвместим тоест на коя най-малко може да тръгне без грешки. Например в момента го пиша на 5.5.15 но това не значи че на 5.4 няма да върви. Незнам с кое е съвместимо вече като чета из архивите на php.net
 
Виж промените между версиите 5.2, 5.3 и т.н. и виж какво ползваш. Например анонимните функции са от 5.3 и нагоре.
 
djman каза:
Виж промените между версиите 5.2, 5.3 и т.н. и виж какво ползваш. Например анонимните функции са от 5.3 и нагоре.

Да де например ок с това съм съгласен. Няма ли начин да подкарам кода на по-ниско ниво както някой браузър като IE да визуализира като 6 7...11? Не ми се сваля локален хост за да тествам дали ще върви. Ще тръгне или не кодът под 5,4 и така нататък. Ако се налага ще го направя това са доста класове но просто искам да съм сигурен че върви нормално.
 
Защо искаш да поддържаш архаични версии като 5.2?? Под 5.3 (а дори 5.4) няма смисъл да гледаш. Наистина.

Ако все пак искаш, сори, не мога да помогна. :)
 
djman каза:
Защо искаш да поддържаш архаични версии като 5.2?? Под 5.3 (а дори 5.4) няма смисъл да гледаш. Наистина.

Ако все пак искаш, сори, не мога да помогна. :)

Оооо не не не съм обяснил. Искам просто да разбера моят код с коя версия е съвместим и без проблем ще тръгне ако ли не директно да изтрещи една грешка в началото че сървъра поддържа по-стара версия на PHP и да си знаят хората, че ще трябва да дебъгват.
PHP:
switch(version_compare(PHP_VERSION, "5.4.0")){
	case -1:
		die("first version is lower than the second");
		break;
	case 0:
		echo "equal";
		break;
	case 1: 
		echo "second is lower";
		break;
}
Само се чудя дали да не използвам phpversion() вместо константата?
 
Набързо скалъпих ето това:
PHP:
//PHP version compare.
$phpMinimumVersion = "5.4.0";
$phpCurrentVersion = defined("PHP_VERSION") ? PHP_VERSION : phpversion();
if(version_compare($phpCurrentVersion, $phpMinimumVersion, "<")){
   die("Server doesn't support the minimum ($phpMinimumVersion) version of PHP to execute the code.". 
   PHP_EOL ."PHP current version: $phpCurrentVersion");
};
Но незнам дали е добре, че го ползвам.
 

Back
Горе