Loading Google client services is a little monster, eating around
2MB (opcache enabled) of memory. As far as we instantiate the
repository instances really early, no matter they are not used
later (editor, file picker, admin...).. we are delaying the
load of the service until we know we are going to use it.
Surely applying this very same (sort of lazy load) techinque
to other repositories could lead to a nice memory reduction
in lots of pages.
MDL-50176 repository_youtube: also delay the inclusion of client.
While memory was fixed with previous commit, still some extra included
files where being reported, so go crazy and move all the stuff to
the new init delayed method.
As of April 20, 2015, the old API used by repository_youtube is no longer
accessible. This change switches over to using the standard Google Data
API v3.
Unfortunately this means that to search YouTube, a developer api key is now
*required*.
Special thanks to UNSW for sponsoring this work.
version = planned 2015051100 release version
requires= current 2015050500 rc1 version
Note: On purpose, the course format social wrong version (2015102100)
has been kept unmodified. Looking forward a solution right now.
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.
When processing S3Exceptions thrown by the S3 library, pass
the exception messages into the moodle_exceptions being
created in order to actually tell people what went wrong.
On Windows systems, there could have been a mix of back and forward
slashes, causing the validation of the relative path to fail. Now
we will always get the realpath before comparing.
In a custom step I needed to be able to upload a file I had previously
saved to $CFG->dataroot/temp, but that was not possible.
Also, the failure was not at all obvious. I have made it throw a clear
exception if the file you are trying to upload does not exist.
Function repository::get_moodle_file() should always be called on packed reference and not on the source received from user.
Also added phpdocs to some other methods that were confusing source and reference