1

我有这个代码:

<?php  
    define('ga_email', 'xxxxxxxxx@xxxxx.com');    // GA Email
    define('ga_password', 'xxxxxxxxxxx');         // 2-part authorization password
    define('profile_id', 'xxxxxxxxx');            // Analytics profile ID
    $gapi_url = 'gapi/gapi.class.php';
    require_once $gapi_url;
    $ga = new gapi(ga_email,ga_password);

    // here goes next code

?>

没关系。Gapi 将加载。

但是,如果我将 ga_password 从 xxxxxxxxxxx 更改为 yyyyyyyyyyy(因此登录 GA 的信息不正确),我会收到一个严重错误,即未加载 gapi 等。

我需要一些 if 条件来实现,因此它会检查我的对象 $ga 是否已创建,然后才执行代码。

例如:

 <?php  
        define('ga_email', 'xxxxxxxxx@xxxxx.com');    // GA Email
        define('ga_password', 'yyyyyyyyyyyyyy');      // 2-part authorization password
        define('profile_id', 'xxxxxxxxx');            // Analytics profile ID
        $gapi_url = 'gapi/gapi.class.php';
        require_once $gapi_url;
        $ga = new gapi(ga_email,ga_password);

        if($ga  loaded) {
           // SUCCESS
           // here goes next code
        } else {
           // FAILURE
           echo "Your connection details are wrong.";
        }

 ?>

因此,我会得到一个更好的“您的连接详细信息错误。”消息,而不是一个看起来很糟糕的 PHP 错误。

4

2 回答 2

2

查看类的源代码后,似乎构造函数不会在错误详细信息错误时抛出异常,而只会在使用凭据时抛出异常。将您对对象的所有调用包装在一个try...catch块中将为您提供一些错误处理功能:

try {
    $ga = new gapi(ga_email,ga_password);
    // here goes next code
} catch (Exception $ex) {
    // FAILURE
    echo "Your connection details are wrong.";
    // $ex->getMessage() has a detailed message
}

您还需要确保知道构造函数方法的正确签名,如下所示

public function __construct($auth_method)
于 2013-03-18T19:23:48.667 回答
0

在您__construct()的 gapi 上检查用户名和密码是否有效。还要创建另一个公共函数或变量来返回它是否是有效的登录名。

于 2013-03-18T19:24:16.687 回答