OK,php回顾之旅开始~

  • 检查PHP版本,一般发行版软件会这么做
    //wordpress
    if ( version_compare( '4.3', phpversion(), '>' ) ) {
    //MediaWiki
    # Check for PHP 5
    if ( !function_exists( 'version_compare' )
    	|| version_compare( phpversion(), '5.0.0' ) < 0
    
  • 检查对性能或者安全有影响的配置项
    //wordpress 尝试设置内存限制
    @ini_set('memory_limit', WP_MEMORY_LIMIT);
    
    //MediaWiki
    if ( ini_get( 'register_globals' ) ) {
    //....如果自动全局变量下面将检查是否存在有害的参数
    
    @ini_set( 'allow_url_fopen', 0 ); # For security
    
  • 定义有用的常量
    //wordpress
    //定义根目录
    define( 'ABSPATH', dirname(__FILE__) . '/' );
    //定义语言, 有时会也会根据用户的语言设置初始化
    define ('WPLANG', 'zh_CN');
    
  • 针对不同平台,不同httpd软件的兼容代码,一般发行版软件会做
    //wordpress,针对iis的兼容代码
    // IIS Mod-Rewrite
    	if (isset($_SERVER['HTTP_X_ORIGINAL_URL'])) {
    		$_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_ORIGINAL_URL'];
    	}
    
  • 初始化用于debug或者profile的函数,强大与否并不重要,但是没有是灰常不专业的...
    //wordpress
    if ( defined('WP_DEBUG') && WP_DEBUG ) {
    ....
    
  • 加载通用的库文件或者框架
    require (ABSPATH . WPINC . '/functions.php');