MDL-49519 Google API: use autoload everywhere
authorEloy Lafuente (stronk7) <stronk7@moodle.org>
Wed, 8 Apr 2015 17:28:50 +0000 (19:28 +0200)
committerEloy Lafuente (stronk7) <stronk7@moodle.org>
Wed, 8 Apr 2015 18:29:03 +0000 (20:29 +0200)
Update core (repository & portfolio) to use autoload facilities,
getting rid of not-needed-anymore requires.

Clarify a bit the readme_moodle information and expected use.

lib/google/curlio.php
lib/google/lib.php
lib/google/readme_moodle.txt
portfolio/googledocs/lib.php
repository/googledocs/lib.php

index 2a287c2..72e7d2f 100644 (file)
@@ -23,9 +23,8 @@
  */
 
 defined('MOODLE_INTERNAL') || die();
+
 require_once($CFG->libdir . '/filelib.php');
-require_once($CFG->libdir . '/google/src/Google/IO/Curl.php');
-require_once($CFG->libdir . '/google/src/Google/IO/Exception.php');
 
 /**
  * Class moodle_google_curlio.
index cca4dee..94fa2fe 100644 (file)
 
 defined('MOODLE_INTERNAL') || die();
 
-require_once($CFG->libdir . '/weblib.php');
-
-// Update the include_path so that the library can use require_once in its own files.
-set_include_path(get_include_path() . PATH_SEPARATOR . $CFG->libdir . '/google');
-require_once($CFG->libdir . '/google/src/Google/Client.php');
+// All Google API classes support autoload with this.
+require_once($CFG->libdir . '/google/autoload.php');
+// To be able to use our custom IO class.
 require_once($CFG->libdir . '/google/curlio.php');
 
 /**
index 44e95d4..cdf5ae4 100644 (file)
@@ -1,9 +1,9 @@
 Google APIs Client Library for PHP
 ==================================
 
-Only the source, README and autoloader files have been kept in this directory:
+Only the source, LICENSE, README and autoloader files have been kept in this directory:
 
-- Copy /src/Google to /src/Google 
+- Copy /src/Google to /src/Google
 - Copy /LICENSE to LICENSE
 - Copy /README.md to README.md
 - Copy /autoload.php to autoload.php
@@ -16,6 +16,17 @@ Here are the files that we have added.
     that should be used throughout Moodle. It also takes care of including the
     required files and updating the include_path.
 
+    Every use of the Google PHP API should always start by requiring this file.
+    Apart from the wrapping of Google_Client above... it's also responsible for
+    enabling the autoload of all the API classes.
+
+    So, basically, every use of the Google Client API should be something like:
+
+        require_once($CFG->libdir . '/google/lib.php');
+        $client = get_google_client();
+
+    And, from there, use the Client API normally. Everything will be autoloaded.
+
 /curlio.php
 
     An override of the default Google_IO_Curl class to use our Curl class
@@ -23,6 +34,8 @@ Here are the files that we have added.
     Curl class should be checked to ensure that its functionalities are covered
     in this file.
 
+    This should not ever be used directly. The wrapper above uses it automatically.
+
 
 Information
 -----------
index a4716b5..04733dd 100644 (file)
@@ -22,7 +22,6 @@
  */
 require_once($CFG->libdir.'/portfolio/plugin.php');
 require_once($CFG->libdir . '/google/lib.php');
-require_once($CFG->libdir . '/google/src/Google/Service/Drive.php');
 
 class portfolio_plugin_googledocs extends portfolio_plugin_push_base {
     /**
index 9b975f4..ca35669 100644 (file)
@@ -27,7 +27,6 @@ defined('MOODLE_INTERNAL') || die();
 
 require_once($CFG->dirroot . '/repository/lib.php');
 require_once($CFG->libdir . '/google/lib.php');
-require_once($CFG->libdir . '/google/src/Google/Service/Drive.php');
 
 /**
  * Google Docs Plugin