php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #53752 Make __construct non final
Submitted: 2011-01-14 18:35 UTC Modified: 2011-01-14 20:50 UTC
From: sylvain dot lecoy at gmail dot com Assigned:
Status: Not a bug Package: *Extensibility Functions
PHP Version: Irrelevant OS: Windows 7
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: sylvain dot lecoy at gmail dot com
New email:
PHP Version: OS:

 

 [2011-01-14 18:35 UTC] sylvain dot lecoy at gmail dot com
Description:
------------
In order to extends the OAuth object, make the constructor non final so we can 
redefine __constrcut().

This is useful for framework like drupal, and you can then create an OAuthAdapter 
(which extends OAuth pecl) and instantiate it by giving a module name.

e.g. new OAuthAdapter("facebook"); consumer_key and secret are stored by drupal 
convention so we can skip this step for développment and make the lib very dev-
friendly. (the pattern adapter allows redefinition in case the user don't have 
control on his webserver - shared environment for instance).

Sylvain Lecoy


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2011-01-14 18:39 UTC] sylvain dot lecoy at gmail dot com
class OAuthAdapter extends OAuth implements DrupalOAuthClient {
  private $mModule;

  static function construct($module, $signature_method = NULL, $auth_type = 
NULL) {
    $consumer_key = variable_get($module . '_consumer_key', '');
    $consumer_secret = variable_get($module . '_consumer_secret', '');
    $oauth = new OAuthAdapter($consumer_key, $consumer_secret, 
$signature_method, $auth_type);
    $oauth->mModule = $module;

    // If the user is not anonymous (can happen with cron auto-sync tasks).
    if ($GLOBALS['user']->uid != 0) {
      $oauth->setCaller($GLOBALS['user']->uid);
    }

    return $oauth;
  }
}

Here is some code to illustrate a work around, but using __construct will be a 
lot better.

I am using 0.99.9 (on windows machine dev) maybe it has been changed on 1.0.0 ?
 [2011-01-14 20:50 UTC] cataphract@php.net
-Status: Open +Status: Bogus
 [2011-01-14 20:50 UTC] cataphract@php.net
Please report it at http://pecl.php.net/package/oauth instead.
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Tue May 13 07:01:26 2025 UTC