Home  >  Article  >  Backend Development  >  Code cannot be used after PHP version upgrade

Code cannot be used after PHP version upgrade

angryTom
angryTomOriginal
2019-10-31 17:02:592845browse

Code cannot be used after PHP version upgrade

The code cannot be used after the PHP version is upgraded

After the PHP version is upgraded, the code cannot be used mostly because of the difference between versions Incompatibilities caused by differences between versions, such as syntax changes in higher versions and deprecation of certain functions, will cause program running errors. To solve these problems, you can only debug the program step by step. Here's howDebugger, let the code be compatible with our higher version of php.

1 Print output

Use echo, var_dump, print_r and other methods to print output where debugging is required. By outputting the value of a specific variable, you can determine whether the program is executed correctly.

2 Use the debug_backtrace function to print call stack information:

debug_print_backtrace();exit;
#0  cli_rakuten->getOrders(1)
#1  call_user_func_array(Array ([0] => cli_rakuten Object (),[1] => getOrders), Array ([0] => 1)) called at [/data/project/***/include/of/of.php:79]
#2  of::cliDispatch(cli_rakuten, getOrders, 1, Array ([0] => 1)) called at [/data/project/***/cli.php:17]

3 Use xdebug to debug code

Xdebug is an open source The code's PHP program debugger (i.e. a Debug tool) can be used to track, debug and analyze the running status of PHP programs.

After configuring phpstorm xdebug, you can easily debug the code with breakpoints.

In addition to generating call stack information, xdebug can also generate performance analysis reports. WinCacheGrind can be used on Windows to view performance analysis reports.

4 Use xhprof to debug and analyze the code

XHProf is an extension developed by Facebook to test PHP performance.

For local development environment, xdebug is enough for performance analysis, but if it is an online environment, xdebug consumes a lot of money and the configuration is not flexible enough. Therefore, it is recommended to use xhprof for PHP performance in online environment. Tracking and analysis.

Add the code to generate the xhprof analysis report in the code:

xhprof_enable(
        XHPROF_FLAGS_MEMORY|XHPROF_FLAGS_CPU,
        [
            'ignored_functions'    => [
                'call_user_func',
                'call_user_func_array'
            ]
        ]);
 
//这里是业务代码
//...
 
 
$xhprofData = xhprof_disable();
require '/data/soft/xhprof/xhprof_lib/utils/xhprof_lib.php';
require '/data/soft/xhprof/xhprof_lib/utils/xhprof_runs.php';
$xhprofRuns = new XHProfRuns_Default();
$runId = $xhprofRuns->save_run($xhprofData, 'xhprof_test');
echo 'http://192.168.52.129:8888/xhprof_html/index.php?run=' . $runId . '&source=xhprof_test'.PHP_EOL;

5 Debugging based on the php error log

log log, usually Operation records of systems, software, and applications. Through log analysis, users can easily understand the operation status of the system, software, and applications; if your application log is rich enough, you can also analyze past users' operating behaviors, type preferences, geographical distribution, or other more information; if an application's The log is also divided into multiple levels, so you can easily analyze the health status of the application, discover problems in time, quickly locate and solve problems, and remedy losses.

php error log can be set in the configuration file php.ini:

log_errors = On
error_log = /var/log/php-fpm/php_errors.log

Once the cause of the error is found, we can make corresponding modifications to the program.

For more PHP related knowledge, please visit PHP Chinese website!

The above is the detailed content of Code cannot be used after PHP version upgrade. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:php reports 500 errorNext article:php reports 500 error