<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.moodle.org/dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DanBennett</id>
	<title>MoodleDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.moodle.org/dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DanBennett"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/Special:Contributions/DanBennett"/>
	<updated>2026-10-09T21:55:10Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Moodle_3.3_release_notes&amp;diff=52420</id>
		<title>Moodle 3.3 release notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Moodle_3.3_release_notes&amp;diff=52420"/>
		<updated>2017-05-16T09:03:50Z</updated>

		<summary type="html">&lt;p&gt;DanBennett: /* Server requirements */ Clarifying what &amp;quot;full UTF-8&amp;quot; means in this context.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Releases]] &amp;gt; {{FULLPAGENAME}}&lt;br /&gt;
 &lt;br /&gt;
Release date: 15 May 2017&lt;br /&gt;
 &lt;br /&gt;
Here is [https://tracker.moodle.org/secure/IssueNavigator!executeAdvanced.jspa?jqlQuery=project+%3D+mdl+AND+resolution+%3D+fixed+AND+fixVersion+in+%28%223.3%22%29+ORDER+BY+priority+DESC&amp;amp;runQuery=true&amp;amp;clear=true the full list of fixed issues in 3.3].&lt;br /&gt;
&lt;br /&gt;
See our [https://docs.moodle.org/33/en/New_features New Features page] for a more user-friendly introduction to Moodle 3.3 with screenshots.&lt;br /&gt;
&lt;br /&gt;
If you are upgrading from previous version, make sure you read the [https://docs.moodle.org/33/en/Upgrading Upgrading] documentation. &lt;br /&gt;
&lt;br /&gt;
==Server requirements==&lt;br /&gt;
&lt;br /&gt;
These are just the minimum supported versions. We recommend keeping all of your software up-to-date.&lt;br /&gt;
&lt;br /&gt;
* Moodle upgrade:  Moodle 2.7 or later (if upgrading from earlier versions, you must upgrade to 2.7.14 as a first step)&lt;br /&gt;
* PHP version: minimum PHP 5.6.5. &#039;&#039;Note: minimum PHP version has increased since Moodle 3.1&#039;&#039;. PHP 7.0.x and 7.1.x are supported but have some [https://docs.moodle.org/dev/Moodle_and_PHP7#Can_I_use_PHP7_yet.3F engine limitations]. &lt;br /&gt;
* PHP extensions &#039;&#039;&#039;openssl&#039;&#039;&#039; and &#039;&#039;&#039;fileinfo&#039;&#039;&#039; are now required in Moodle 3.3 (they were recommended in 3.2)&lt;br /&gt;
* If you use PostgreSQL the minimum supported version is now 9.3 (was 9.1 in Moodle 3.2)&lt;br /&gt;
* If you use MySQL or MariaDB make sure your database supports full UTF-8 (utf8mb4). CLI script may be used to convert. See [[:en:MySQL full unicode support|MySQL full unicode support]] for details.&lt;br /&gt;
&lt;br /&gt;
=== Database requirements ===&lt;br /&gt;
&lt;br /&gt;
Moodle supports the following database servers. Again, version numbers are just the minimum supported version. We recommend running the latest stable version of any software.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Database&lt;br /&gt;
! Minimum version&lt;br /&gt;
! Recommended&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.postgresql.org/ PostgreSQL]&lt;br /&gt;
| 9.3&lt;br /&gt;
| Latest&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.mysql.com/ MySQL]&lt;br /&gt;
| 5.5.31&lt;br /&gt;
| Latest&lt;br /&gt;
|-&lt;br /&gt;
| [https://mariadb.org/ MariaDB]&lt;br /&gt;
| 5.5.31&lt;br /&gt;
| Latest&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.microsoft.com/en-us/server-cloud/products/sql-server/ Microsoft SQL Server]&lt;br /&gt;
| 2008&lt;br /&gt;
| Latest&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.oracle.com/us/products/database/overview/index.html Oracle Database]&lt;br /&gt;
| 10.2&lt;br /&gt;
| Latest&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Client requirements==&lt;br /&gt;
&lt;br /&gt;
=== Browser support ===&lt;br /&gt;
Moodle is compatible with any standards compliant web browser. We regularly test Moodle with the following browsers:&lt;br /&gt;
&lt;br /&gt;
Desktop:&lt;br /&gt;
* Chrome&lt;br /&gt;
* Firefox&lt;br /&gt;
* Safari&lt;br /&gt;
* Edge&lt;br /&gt;
* Internet Explorer&lt;br /&gt;
&lt;br /&gt;
Mobile:&lt;br /&gt;
* MobileSafari&lt;br /&gt;
* Google Chrome&lt;br /&gt;
&lt;br /&gt;
For the best experience and optimum security, we recommend that you keep your browser up to date. https://whatbrowser.org&lt;br /&gt;
&lt;br /&gt;
Note: Legacy browsers with known compatibility issues with Moodle 3.3:&lt;br /&gt;
* Internet Explorer 10 and below&lt;br /&gt;
* Safari 7 and below&lt;br /&gt;
&lt;br /&gt;
==Major features==&lt;br /&gt;
&lt;br /&gt;
=== Highlights ===&lt;br /&gt;
&lt;br /&gt;
* MDL-55611 - New [https://docs.moodle.org/33/en/Course_overview Course overview] dashboard block featuring timeline of events&lt;br /&gt;
* MDL-58220 - Make use of [https://docs.moodle.org/33/en/OAuth_2_services OAuth 2 services] to allow users to [https://docs.moodle.org/33/en/OAuth_2_authentication authenticate with Google G-Suite or Microsoft Office accounts] and manage files from associated drives&lt;br /&gt;
* MDL-39913 - New [https://docs.moodle.org/33/en/Assignment_settings Assignment setting] for restricting submission file types&lt;br /&gt;
* MDL-4782 - [https://docs.moodle.org/33/en/Stealth_activities &amp;quot;Stealth mode&amp;quot;] for resources/activities in a course - not displayed on the course page but available for students&lt;br /&gt;
* MDL-40759 - New Font Awesome icon font for all icons in Moodle&lt;br /&gt;
&lt;br /&gt;
=== For teachers ===&lt;br /&gt;
&lt;br /&gt;
* MDL-58138 - [https://docs.moodle.org/33/en/Activity_completion_settings Activity completion settings] for setting activity completion defaults and bulk editing of completion requirements&lt;br /&gt;
* MDL-48771 - [https://docs.moodle.org/33/en/Building_Quiz Quiz activity]: Option to delete multiple questions&lt;br /&gt;
* MDL-53814 - Quiz activity: Question type icons are displayed in the quiz manual grading overview&lt;br /&gt;
* MDL-55459 - [https://docs.moodle.org/33/en/Assignment_settings Assignment activity]: Annotated PDF comments are collapsible&lt;br /&gt;
* MDL-23919 - [https://docs.moodle.org/33/en/Database_activity_settings Database activity]: The setting &amp;quot;Required entries&amp;quot; is now an activity completion condition&lt;br /&gt;
* MDL-57769 - Topic and weeks course formats: After a course is created, sections can be added and removed only from the course page (it is no longer possible to have &amp;quot;orphaned&amp;quot; activities)&lt;br /&gt;
* MDL-46929, MDL-57456, MDL-57457 - [https://docs.moodle.org/33/en/Using_Forum Forum posts], [https://docs.moodle.org/33/en/Using_Glossary glossary entries] and [https://docs.moodle.org/33/en/Book_settings book chapters] may be tagged&lt;br /&gt;
* MDL-56251 - For courses in weekly format, a new [https://docs.moodle.org/33/en/Course_settings course setting] allows for the course end date to be calculated automatically&lt;br /&gt;
* MDL-47354 - Allow the page size in the Single view report to be configurable&lt;br /&gt;
&lt;br /&gt;
=== Backup and restore ===&lt;br /&gt;
&lt;br /&gt;
* MDL-34859 - Add site defaults for all restore settings, improve UI around &amp;quot;Overwrite course configuration&amp;quot; select&lt;br /&gt;
* MDL-40838 - Allow to restore non-default enrollment methods without restoring users&lt;br /&gt;
* MDL-57769 - When restoring/importing big courses in Weeks and Topics formats into small existing courses ajust the number of sections automatically&lt;br /&gt;
&lt;br /&gt;
=== For administrators ===&lt;br /&gt;
&lt;br /&gt;
Please read carefully: [https://docs.moodle.org/33/en/Upgrading#Possible_issues_that_may_affect_you_in_Moodle_3.3 Possible issues that may affect you in Moodle 3.3]&lt;br /&gt;
&lt;br /&gt;
* MDL-46375 - Support for storing files not on the local drive (there are no open-source solutions at the moment, developer&#039;s help is required to implement custom cloud storage)&lt;br /&gt;
* MDL-55528, MDL-58280 - New [https://docs.moodle.org/33/en/Document_converters document converter] plugin type allows alternatives to unoconv, such as the [https://docs.moodle.org/33/en/Google_Drive_converter Google Drive converter]&lt;br /&gt;
* MDL-55980 - Run individual scheduled tasks from web interface&lt;br /&gt;
* MDL-57896 - CLI wrapper for get_config() and set_config() methods&lt;br /&gt;
* MDL-57789 - Use Cache-Control: immutable when serving files&lt;br /&gt;
* MDL-37765 - New capability to bypass access restrictions, separated from capability to view hidden activities&lt;br /&gt;
* MDL-57913 - Convert external database authentication synchronisation to scheduled task&lt;br /&gt;
&lt;br /&gt;
==== Plugins removal and deprecation ====&lt;br /&gt;
&lt;br /&gt;
* The repository Skydrive is deprecated; please migrate to the newer [https://docs.moodle.org/33/en/OneDrive_repository OneDrive repository]&lt;br /&gt;
* The Dashboard block Course overview is replaced with a new block [https://docs.moodle.org/33/en/Course_overview Course overview] which is a different plugin. If you want to use the old block, you need to download and install it from https://moodle.org/plugins/block_course_overview&lt;br /&gt;
&lt;br /&gt;
=== Mobile app support ===&lt;br /&gt;
&lt;br /&gt;
* MDL-57410 - Allow admins to add new external links to pages in the main menu of the Mobile app&lt;br /&gt;
* MDL-57408 - Add new settings for allowing renaming strings in the Mobile app&lt;br /&gt;
* MDL-49423 - Add new settings for disabling Mobile app functionalities&lt;br /&gt;
* MDL-57759 - Allow offline attempts via the Mobile app in the lesson module&lt;br /&gt;
* MDL-57162 - Support Native App install banners for Android as well as iOS for the mobile app&lt;br /&gt;
&lt;br /&gt;
=== Other improvements ===&lt;br /&gt;
&lt;br /&gt;
* MDL-33483 - Google Docs repository: Save Doc files in different formats to RTF&lt;br /&gt;
* MDL-42266 - Improve the list of maximum file size options for file uploads&lt;br /&gt;
* MDL-51853 - Calendar subscriptions from imported files should be editable&lt;br /&gt;
* MDL-41729 - Add ability to change passwords for users using Shibboleth&lt;br /&gt;
* MDL-57572, MDL-57570, MDL-57355 - Redis and static caches performance improvements if igbinary library is installed&lt;br /&gt;
* MDL-56808 - SCORM module: Performance improvements when running SCORM 1.2 packages&lt;br /&gt;
* MDL-57686 - Add support for PDO databases in external database authentication&lt;br /&gt;
* MDL-57638 - RSS Block: RSS feeds are more heavily cached and correctly respect skip values&lt;br /&gt;
&lt;br /&gt;
===For developers===&lt;br /&gt;
&lt;br /&gt;
* MDL-55528 - New plugin type &#039;fileconverter&#039; for file conversions, unoconv is now a plugin that can be replaced with scalable commercial solutions (see [[File Converters]])&lt;br /&gt;
* MDL-40759 - Font Awesome icon font is used for all icons in Moodle (see [[Moodle_icons#Font_awesome_icons|Moodle icons]])&lt;br /&gt;
* MDL-46375 - Support for storing files not on the local drive is implemented by allowing to override functionality of file_storage and stored_file classes (see [[File System API]])&lt;br /&gt;
* MDL-12689 - Convert all authentication plugins to use settings.php (see [https://github.com/moodle/moodle/blob/master/auth/upgrade.txt upgrade.txt])&lt;br /&gt;
* MDL-53978 - Add extra plugin callbacks for every major stage of page render (see [https://github.com/moodle/moodle/commit/5ebd1fb9768969956c9131df4274f9cdff7f0134 commit])&lt;br /&gt;
* MDL-58138 - Course modules may provide additional callbacks to participate in bulk editing of activities completion rules in a course&lt;br /&gt;
* MDL-58220 - Better office integration&lt;br /&gt;
* MDL-45584 - Multiple caches can be instantiated with the same definition but with different identifiers&lt;br /&gt;
* MDL-57769 - Course formats: Attribute &#039;numsections&#039; was removed from topics and weeks, other course formats may want to implement similar changes&lt;br /&gt;
* MDL-55956 - Priority field for the calendar events allowing to specify the priority of overrides&lt;br /&gt;
* MDL-58566 - New methods for retrieving calendar events&lt;br /&gt;
* MDL-55941 - New element to select first name of first/last names is implemented in tablelib or can be used by developers elsewhere ([https://github.com/moodle/moodle/blob/master/lib/templates/initials_bar.mustache template])&lt;br /&gt;
* MDL-56519 - Lint behat .feature files&lt;br /&gt;
* MDL-57273 - New classes (core\persistent, core\form\persistent, core\external\exporter, \core\external\persistent_exporter) used to represent a data-model and export that data in a standard format for webservices (previously was used in competencies) (see [[Persistent form]], [[Persistent]], [[Exporter]])&lt;br /&gt;
* MDL-57490 - Removed several legacy JS functions from javascript-static.js&lt;br /&gt;
* MDL-57690 - mcore YUI rollup is no longer included on every single Moodle page (see [[https://moodle.org/mod/forum/discuss.php?d=346520 forum post]])&lt;br /&gt;
&lt;br /&gt;
==== Upgrading plugins ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Check for changes in core APIs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read lib/upgrade.txt to check for the deprecations and core API changes, make sure you applied them to your plugin. Note that entries there are not sorted by priority but rather by integration time. Below is the list of upgrade.txt files that contain information about upgrading from Moodle 3.2 to Moodle 3.3 (note that if you upgrade from earlier versions there may be more files):&lt;br /&gt;
&lt;br /&gt;
* [https://raw.githubusercontent.com/moodle/moodle/master/lib/upgrade.txt lib/upgrade.txt] changes to various core APIs, deprecations, functions removal&lt;br /&gt;
* [https://raw.githubusercontent.com/moodle/moodle/master/admin/upgrade.txt admin/upgrade.txt] changes to administration-related functions&lt;br /&gt;
* [https://raw.githubusercontent.com/moodle/moodle/master/cache/upgrade.txt cache/upgrade.txt] changes to Cache API&lt;br /&gt;
* [https://raw.githubusercontent.com/moodle/moodle/master/calendar/upgrade.txt calendar/upgrade.txt] changes to Calendar API&lt;br /&gt;
* [https://raw.githubusercontent.com/moodle/moodle/master/competency/upgrade.txt competency/upgrade.txt] changes to Competency API&lt;br /&gt;
* [https://raw.githubusercontent.com/moodle/moodle/master/course/upgrade.txt course/upgrade.txt] changes to course-related functions&lt;br /&gt;
&lt;br /&gt;
For the next releases we are thinking about improving the format of upgrade.txt notes, please have your say on policy issue MDL-58879&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Check for changes in the API of your plugin type&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below is the list of plugin types that had API changes between Moodle 3.2 and 3.3:&lt;br /&gt;
* [https://raw.githubusercontent.com/moodle/moodle/master/auth/upgrade.txt auth/upgrade.txt] Authentication plugins&lt;br /&gt;
* [https://raw.githubusercontent.com/moodle/moodle/master/blocks/upgrade.txt blocks/upgrade.txt] Block plugins&lt;br /&gt;
* [https://raw.githubusercontent.com/moodle/moodle/master/course/format/upgrade.txt course/format/upgrade.txt] Course format plugins&lt;br /&gt;
* [https://raw.githubusercontent.com/moodle/moodle/master/enrol/upgrade.txt enrol/upgrade.txt] Enrolment method plugins&lt;br /&gt;
* [https://raw.githubusercontent.com/moodle/moodle/master/media/upgrade.txt media/upgrade.txt] Media player plugins&lt;br /&gt;
* [https://raw.githubusercontent.com/moodle/moodle/master/mod/upgrade.txt mod/upgrade.txt] Activity module plugins&lt;br /&gt;
* [https://raw.githubusercontent.com/moodle/moodle/master/question/type/upgrade.txt question/type/upgrade.txt] Question types plugins&lt;br /&gt;
* [https://raw.githubusercontent.com/moodle/moodle/master/repository/upgrade.txt repository/upgrade.txt] Repository plugins&lt;br /&gt;
* [https://raw.githubusercontent.com/moodle/moodle/master/theme/upgrade.txt theme/upgrade.txt] Themes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Check for changes in the depended plugins&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If your plugin depends on another plugin or calls methods from another plugin, read upgrade.txt in this plugin directory (if it exists). Below is the list of standard plugins that had changes between Moodle 3.2 and 3.3:&lt;br /&gt;
&lt;br /&gt;
Due to changes in Authentication plugins settings all standard auth plugins were updated: [https://raw.githubusercontent.com/moodle/moodle/master/auth/cas/upgrade.txt auth_cas], [https://raw.githubusercontent.com/moodle/moodle/master/auth/db/upgrade.txt auth_db], [https://raw.githubusercontent.com/moodle/moodle/master/auth/email/upgrade.txt auth_email], [https://raw.githubusercontent.com/moodle/moodle/master/auth/fc/upgrade.txt auth_fc], [https://raw.githubusercontent.com/moodle/moodle/master/auth/imap/upgrade.txt auth_imap], [https://raw.githubusercontent.com/moodle/moodle/master/auth/ldap/upgrade.txt auth_ldap], [https://raw.githubusercontent.com/moodle/moodle/master/auth/manual/upgrade.txt auth_manual], [https://raw.githubusercontent.com/moodle/moodle/master/auth/mnet/upgrade.txt auth_mnet], [https://raw.githubusercontent.com/moodle/moodle/master/auth/nntp/upgrade.txt auth_nntp], [https://raw.githubusercontent.com/moodle/moodle/master/auth/none/upgrade.txt auth_none], [https://raw.githubusercontent.com/moodle/moodle/master/auth/pam/upgrade.txt auth_pam], [https://raw.githubusercontent.com/moodle/moodle/master/auth/pop3/upgrade.txt auth_pop3], [https://raw.githubusercontent.com/moodle/moodle/master/auth/shibboleth/upgrade.txt auth_shibboleth]&lt;br /&gt;
&lt;br /&gt;
Other standard plugins that were updated in 3.3: [https://raw.githubusercontent.com/moodle/moodle/master/admin/tool/lp/upgrade.txt tool_lp], [https://raw.githubusercontent.com/moodle/moodle/master/admin/tool/mobile/upgrade.txt tool_mobile], [https://raw.githubusercontent.com/moodle/moodle/master/enrol/ldap/upgrade.txt enrol_ldap], [https://raw.githubusercontent.com/moodle/moodle/master/mod/assign/upgrade.txt mod_assign], [https://raw.githubusercontent.com/moodle/moodle/master/mod/data/upgrade.txt mod_data], [https://raw.githubusercontent.com/moodle/moodle/master/mod/feedback/upgrade.txt mod_feedback], [https://raw.githubusercontent.com/moodle/moodle/master/mod/forum/upgrade.txt mod_forum], [https://raw.githubusercontent.com/moodle/moodle/master/mod/lesson/upgrade.txt mod_lesson]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Do a smoke test of your plugin with developer debugging mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Run all behat and phpunit tests&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[Moodle 3.2 release notes]]&lt;br /&gt;
 &lt;br /&gt;
[[Category:Release notes]]&lt;br /&gt;
[[Category:Moodle 3.3]]&lt;br /&gt;
 &lt;br /&gt;
[[fr:Notes de mise à jour de Moodle 3.3]]&lt;br /&gt;
[[es:Notas de Moodle 3.3]]&lt;/div&gt;</summary>
		<author><name>DanBennett</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Moodle_and_PHP&amp;diff=50273</id>
		<title>Moodle and PHP</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Moodle_and_PHP&amp;diff=50273"/>
		<updated>2016-05-24T09:02:10Z</updated>

		<summary type="html">&lt;p&gt;DanBennett: /* Can I use PHP7 yet? */ Fixed Typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PHP7 was released on 3 December 2015 and has significant performance improvement comparing to PHP5. Everybody wants to benefit from it, however the language standards have changed and code written for PHP5 might not work in PHP7. Moodle core and plugins should modify the code so it works the same way on both versions of PHP.&lt;br /&gt;
&lt;br /&gt;
This page contains description of what has been changed in Moodle to make it work on PHP7 and recommendations to plugin developers. Please see also epic issue MDL-50565 that combines all changes that were made in Moodle to ensure PHP7 compatibility&lt;br /&gt;
&lt;br /&gt;
==Changes in engine==&lt;br /&gt;
&lt;br /&gt;
There are multiple small changes that may require action from developers. They include but not limited to:&lt;br /&gt;
* invalid class, interface and trait names (null, int, string, bool, true, false, resource, object, mixed, numeric)&lt;br /&gt;
* handling of indirect variables, properties, and methods (for example, &amp;lt;code&amp;gt;$foo-&amp;gt;$bar[&#039;baz&#039;]&amp;lt;/code&amp;gt; is not going to work the same in php5 and php7)&lt;br /&gt;
* &amp;lt;code&amp;gt;foreach&amp;lt;/code&amp;gt; no longer changes the internal array pointer &lt;br /&gt;
&lt;br /&gt;
For a complete list see http://php.net/manual/en/migration70.incompatible.php and https://github.com/tpunt/PHP7-Reference#changes &lt;br /&gt;
&lt;br /&gt;
https://github.com/sstalle/php7cc is a handy tool for checking your code.&lt;br /&gt;
&lt;br /&gt;
==Exception and Throwable==&lt;br /&gt;
&lt;br /&gt;
In PHP7 engine errors can be caught using &amp;lt;code&amp;gt;try {} catch (Throwable $e) {}&amp;lt;/code&amp;gt;.  In PHP5 they were either warnings or fatal errors. Throwable is a new interface that Exception implements, which means that these new exceptions are NOT caugh by &amp;lt;code&amp;gt;try {} catch (Exception $e) {}&amp;lt;/code&amp;gt; in both PHP5 in PHP7.  This is great, allows to treat engine errors nicely and usually backward-compatible.&lt;br /&gt;
&lt;br /&gt;
Why is it a separate topic then? &#039;&#039;&#039;Because error handling in Moodle is not standard&#039;&#039;&#039;. Moodle developers have already thought that it would be nice to catch engine errors same way as exceptions and implemented a workaround. This change in PHP7 conflicts with Moodle error handling. Here is an example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
function f(stdClass $a) {}&lt;br /&gt;
try {&lt;br /&gt;
    f(0);&lt;br /&gt;
} catch (Exception $e) {&lt;br /&gt;
    echo &amp;quot;Caught exception: &amp;quot;.get_class($e).&amp;quot;\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
echo &amp;quot;hello, world!\n&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;PHP5 by itself:&#039;&#039;&#039; PHP Catchable fatal error:  Argument 1 passed to f() must be an instance of stdClass, integer given, called in - on line 4 and defined in - on line 2&lt;br /&gt;
* &#039;&#039;&#039;PHP5 + moodle:&#039;&#039;&#039; Caught exception: coding_exception. &#039;&#039;&#039;hello, world!&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;PHP7 by itself:&#039;&#039;&#039; Fatal error: Uncaught TypeError: Argument 1 passed to f() must be an instance of stdClass, integer given, called in  on line 4 and defined in &lt;br /&gt;
* &#039;&#039;&#039;PHP7 + moodle:&#039;&#039;&#039; Fatal error: Uncaught TypeError: Argument 1 passed to f() must be an instance of stdClass, integer given, called in   on line 4 and defined in. &lt;br /&gt;
&lt;br /&gt;
So this change in moodle means that the code after the try-catch that would be executed in PHP5 is skipped in PHP7. This can be quite critical. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Why is it happening?&#039;&#039;&#039; We call in lib/setup.php &amp;lt;code&amp;gt;set_error_handler(&#039;default_error_handler&#039;, E_ALL | E_STRICT);&amp;lt;/code&amp;gt; and inside the handler convert the fatal catchable errors into coding_exception. coding_exception is a class extending Exception and it gets caught properly. PHP7 no longer triggers an error, it throws a TypeError which implements Throwable but it does not extend Exception and does not get caught in this example.&lt;br /&gt;
&lt;br /&gt;
The best solution:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
function f(stdClass $a) {}&lt;br /&gt;
try {&lt;br /&gt;
    f(0);&lt;br /&gt;
} catch (Exception $e) {&lt;br /&gt;
    echo &amp;quot;Caught exception: &amp;quot;.get_class($e).&amp;quot;\n&amp;quot;;&lt;br /&gt;
} catch (Throwable $e) {&lt;br /&gt;
    echo &amp;quot;Caught throwable: &amp;quot;.get_class($e).&amp;quot;\n&amp;quot;;&lt;br /&gt;
} &lt;br /&gt;
echo &amp;quot;hello, world!\n&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;PHP5 + moodle:&#039;&#039;&#039; Caught exception: coding_exception. &#039;&#039;&#039;hello, world!&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;PHP7 + moodle:&#039;&#039;&#039; Caught throwable: TypeError &#039;&#039;&#039;hello, world!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note here that &amp;lt;code&amp;gt;catch (Throwable $e)&amp;lt;/code&amp;gt; will be ignored in PHP5 because there is no interface/class with the name Throwable. Using non-existing class name in &amp;quot;catch&amp;quot; does not produce any warnings or errors. If we were writing code for PHP7 only we could remove &amp;lt;code&amp;gt;catch (Exception $e)&amp;lt;/code&amp;gt; because all exceptions will be caught by Throwable. But we want to make our code work on both PHP5 and PHP7. See also MDL-52284 for related changes that were made in Moodle core.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;How it can affect plugins?&#039;&#039;&#039; Plugins that call &amp;lt;code&amp;gt;eval()&amp;lt;/code&amp;gt; inside try/catch may need to change the code similar to how we did in MDL-52333 . Also if your plugin also calls &amp;lt;code&amp;gt;set_error_handler()&amp;lt;/code&amp;gt; you may step on the same error.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip:&#039;&#039;&#039; Try to avoid &amp;lt;code&amp;gt;catch (Exception $e)&amp;lt;/code&amp;gt; at all, instead catch specific exceptions (dml_exception, moodle_exception, etc.)&lt;br /&gt;
&lt;br /&gt;
==Constructors==&lt;br /&gt;
&lt;br /&gt;
PHP4-style constructors (method with the same name as class) became deprecated in PHP7. Moodle has a lot of code that was written before PHP5 and lots of constructors were not modified later because they continued to work fine. There are also lots of 3rd party libraries that were also using the PHP4-style constructor. Quite a few of issues in MDL-50565 epic are related to the constructor changes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;How Moodle addressed it:&#039;&#039;&#039; There are now two methods in each class that used to have PHP4-style constructor - one is called __construct() and another is called the same as the class name and inside it calls &amp;lt;code&amp;gt;self::__construct(...)&amp;lt;/code&amp;gt;. Starting from Moodle 3.1 the second one gets deprecated and displays debugging message.&lt;br /&gt;
&lt;br /&gt;
Why not just replace the method name with __construct()? The reason is that if some plugin extends this class, it may call &amp;lt;code&amp;gt;parent::parentclassname()&amp;lt;/code&amp;gt; in its constructor. This would end in fatal error if we did not leave the php4-style constructor. Good thing is that having method with the same name as the class name does not show any warnings in PHP7 if the __construct() is also present in the same class.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What plugin developers should do?&#039;&#039;&#039; First of all, make sure that all your classes have proper constructors. Second, make sure that you don&#039;t call parent constructors with the old style, for example &amp;lt;code&amp;gt;parent::moodleform()&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;parent::HTML_QuickForm_input()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Good to know:&#039;&#039;&#039; This code will work in ANY moodle version:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
class myform extends moodleform {&lt;br /&gt;
    public function __construct() {&lt;br /&gt;
        parent::__construct(); // In 2.9 where moodleform::__construct did not yet exist this will call moodleform::moodleform() .&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remember, even if you don&#039;t care about PHP7 support by your plugin you must change the way you are calling parent constructors. Otherwise you will see debugging messages starting from Moodle 3.1&lt;br /&gt;
&lt;br /&gt;
== Can I use PHP7 yet? ==&lt;br /&gt;
&lt;br /&gt;
Test, test, test.&lt;br /&gt;
&lt;br /&gt;
Plugins that you are using can not yet be updated to work with PHP7. As mentioned above, some engine changes may result in fatal errors and, therefore, loss of functionality.&lt;br /&gt;
&lt;br /&gt;
If you are using external authentication or enrolment plugins, please note that at the moment of Moodle 3.0.1 release (December 2015) &#039;&#039;&#039;neither MSSQL nor SQLSRV are available under php7&#039;&#039;&#039;. So anybody using SQL*Server as primary database or remote auth/enrol plugin should not move to php7 at all. &lt;br /&gt;
&lt;br /&gt;
Same applies to Oracle databases. In this case there is a driver available but it&#039;s [https://tracker.moodle.org/browse/MDL-52544 not working properly]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Also, depending of your configuration, some extensions (memcached, redis, mongodb, xmlrpc...) maybe missing or work in progress for your distribution, triple check the exact availability for your OS.&lt;br /&gt;
&lt;br /&gt;
Finally, note that PHP7 is evolving quickly (7.0.1 was released few days ago, solving some important bugs), so it&#039;s important to follow the evolution until the version becomes stable enough for  production. The same can be said about the Moodle side, surely there will be some (still hidden) problems to be fixed in our 3.0.x future versions.&lt;br /&gt;
&lt;br /&gt;
Please edit this page if you know any other reasons that can prevent from migration to PHP7.&lt;/div&gt;</summary>
		<author><name>DanBennett</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Moodle_2.7_release_notes&amp;diff=44569</id>
		<title>Moodle 2.7 release notes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Moodle_2.7_release_notes&amp;diff=44569"/>
		<updated>2014-04-29T10:06:27Z</updated>

		<summary type="html">&lt;p&gt;DanBennett: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Releases]] &amp;gt; {{FULLPAGENAME}}&lt;br /&gt;
&lt;br /&gt;
Release date: Expected in May 2014&lt;br /&gt;
 &lt;br /&gt;
==Server requirements==&lt;br /&gt;
&lt;br /&gt;
These are just minimums.  We recommend keeping all your software updated. &lt;br /&gt;
&lt;br /&gt;
* Moodle upgrade:  Moodle 2.2 or later (if upgrading from earlier versions, you must upgrade to 2.2.11 as a first step)&lt;br /&gt;
* Minimum Database versions: &lt;br /&gt;
** PostgreSQL 9.1&lt;br /&gt;
** MySQL 5.5.31&lt;br /&gt;
** MariaDB 5.5.31&lt;br /&gt;
** MSSQL 2008, or &lt;br /&gt;
** Oracle 10.2&lt;br /&gt;
* Minimum PHP version: PHP 5.4.4 (always use latest PHP 5.4.x or 5.5.x on Windows - http://windows.php.net/download/)&lt;br /&gt;
*Ghostscript should be installed for pdf annotation.&lt;br /&gt;
&lt;br /&gt;
==Browser requirements==&lt;br /&gt;
&lt;br /&gt;
* Recent Google Chrome, recent Mozilla Firefox, Safari 6 or later, Internet Explorer 9 or later (IE 10 required for drag and drop of files from outside the browser into Moodle)&lt;br /&gt;
&lt;br /&gt;
==Before you upgrade==&lt;br /&gt;
&lt;br /&gt;
===Questions===&lt;br /&gt;
&lt;br /&gt;
If&lt;br /&gt;
* your site stared off on a version of Moodle 2.0.x or older,&lt;br /&gt;
* and, when you upgraded to Moodle 2.1 or 2.2, you made use of the complex facility to delay part of the quetion engine upgrade as explained in [https://docs.moodle.org/21/en/Upgrading_to_Moodle_2.1#Planning_the_question_engine_upgrade the upgrade documentation for that version],&lt;br /&gt;
* and, you still have not got around to completing that upgrade,&lt;br /&gt;
then you must complete it before upgrading to Moodle 2.7.&lt;br /&gt;
&lt;br /&gt;
As you can tell from that previous paragraph, this almost certainly does not affect you. You can check by looking at the bottom of the the [[:en:Environment]] check page in your site, providing you are running a version later than 2.4.9, 2.5.5 or 2.6.2. If you have a problem, it will tell you there. If there is no mention of questions there, you can forget about this.&lt;br /&gt;
&lt;br /&gt;
===Themes===&lt;br /&gt;
 &lt;br /&gt;
Several core themes have been removed from Moodle 2.7 (see MDL-43784).  If you wish to continue using one of these themes then it&#039;s best to reinstall it explicitly *BEFORE* running the upgrade.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b style=&amp;quot;display:inline-block; min-width: 200px;&amp;quot;&amp;gt;After burner&amp;lt;/b&amp;gt; [https://moodle.org/plugins/view.php?plugin=theme_afterburner plugins db] [https://github.com/moodlehq/moodle-theme_afterburner github]&lt;br /&gt;
* &amp;lt;b style=&amp;quot;display:inline-block; min-width: 200px;&amp;quot;&amp;gt;Anomaly&amp;lt;/b&amp;gt; [https://moodle.org/plugins/view.php?plugin=theme_anomaly plugins db] [https://github.com/moodlehq/moodle-theme_anomaly github]&lt;br /&gt;
* &amp;lt;b style=&amp;quot;display:inline-block; min-width: 200px;&amp;quot;&amp;gt;Arialist&amp;lt;/b&amp;gt; [https://moodle.org/plugins/view.php?plugin=theme_arialist plugins db] [https://github.com/moodlehq/moodle-theme_arialist github]&lt;br /&gt;
* &amp;lt;b style=&amp;quot;display:inline-block; min-width: 200px;&amp;quot;&amp;gt;Binarius&amp;lt;/b&amp;gt; [https://moodle.org/plugins/view.php?plugin=theme_binarius plugins db] [https://github.com/moodlehq/moodle-theme_binarius github]&lt;br /&gt;
* &amp;lt;b style=&amp;quot;display:inline-block; min-width: 200px;&amp;quot;&amp;gt;Boxxie&amp;lt;/b&amp;gt; [https://moodle.org/plugins/view.php?plugin=theme_boxxie plugins db] [https://github.com/moodlehq/moodle-theme_boxxie github]&lt;br /&gt;
* &amp;lt;b style=&amp;quot;display:inline-block; min-width: 200px;&amp;quot;&amp;gt;Brick&amp;lt;/b&amp;gt; [https://moodle.org/plugins/view.php?plugin=theme_brick plugins db] [https://github.com/moodlehq/moodle-theme_brick github]&lt;br /&gt;
* &amp;lt;b style=&amp;quot;display:inline-block; min-width: 200px;&amp;quot;&amp;gt;Formal_white&amp;lt;/b&amp;gt; [https://moodle.org/plugins/view.php?plugin=theme_formal_white plugins db] [https://github.com/andreabix/moodle-theme_formal_white github]&lt;br /&gt;
* &amp;lt;b style=&amp;quot;display:inline-block; min-width: 200px;&amp;quot;&amp;gt;Form factor&amp;lt;/b&amp;gt; [https://moodle.org/plugins/view.php?plugin=theme_formfactor plugins db] [https://github.com/moodlehq/moodle-theme_formfactor github]&lt;br /&gt;
* &amp;lt;b style=&amp;quot;display:inline-block; min-width: 200px;&amp;quot;&amp;gt;Fusion&amp;lt;/b&amp;gt; [https://moodle.org/plugins/view.php?plugin=theme_fusion plugins db] [https://github.com/moodlehq/moodle-theme_fusion github]&lt;br /&gt;
* &amp;lt;b style=&amp;quot;display:inline-block; min-width: 200px;&amp;quot;&amp;gt;Leatherbound&amp;lt;/b&amp;gt; [https://moodle.org/plugins/view.php?plugin=theme_leatherbound plugins db] [https://github.com/moodlehq/moodle-theme_leatherbound github]&lt;br /&gt;
* &amp;lt;b style=&amp;quot;display:inline-block; min-width: 200px;&amp;quot;&amp;gt;Magazine&amp;lt;/b&amp;gt; [https://moodle.org/plugins/view.php?plugin=theme_magazine plugins db] [https://github.com/moodlehq/moodle-theme_magazine github]&lt;br /&gt;
* &amp;lt;b style=&amp;quot;display:inline-block; min-width: 200px;&amp;quot;&amp;gt;Nimble&amp;lt;/b&amp;gt; [https://moodle.org/plugins/view.php?plugin=theme_nimble plugins db] [https://github.com/moodlehq/moodle-theme_nimble github]&lt;br /&gt;
* &amp;lt;b style=&amp;quot;display:inline-block; min-width: 200px;&amp;quot;&amp;gt;Nonzero&amp;lt;/b&amp;gt; [https://moodle.org/plugins/view.php?plugin=theme_nonzero plugins db] [https://github.com/moodlehq/moodle-theme_nonzero github]&lt;br /&gt;
* &amp;lt;b style=&amp;quot;display:inline-block; min-width: 200px;&amp;quot;&amp;gt;Overlay&amp;lt;/b&amp;gt; [https://moodle.org/plugins/view.php?plugin=theme_overlay plugins db] [https://github.com/moodlehq/moodle-theme_overlay github]&lt;br /&gt;
* &amp;lt;b style=&amp;quot;display:inline-block; min-width: 200px;&amp;quot;&amp;gt;Serenity&amp;lt;/b&amp;gt; [https://moodle.org/plugins/view.php?plugin=theme_serenity plugins db] [https://github.com/moodlehq/moodle-theme_serenity github]&lt;br /&gt;
* &amp;lt;b style=&amp;quot;display:inline-block; min-width: 200px;&amp;quot;&amp;gt;Sky high&amp;lt;/b&amp;gt; [https://moodle.org/plugins/view.php?plugin=theme_sky_high plugins db] [https://github.com/moodlehq/moodle-theme_sky_high github]&lt;br /&gt;
* &amp;lt;b style=&amp;quot;display:inline-block; min-width: 200px;&amp;quot;&amp;gt;Splash&amp;lt;/b&amp;gt; [https://moodle.org/plugins/view.php?plugin=theme_splash plugins db] [https://github.com/moodlehq/moodle-theme_splash github]&lt;br /&gt;
* &amp;lt;b style=&amp;quot;display:inline-block; min-width: 200px;&amp;quot;&amp;gt;Standard&amp;lt;/b&amp;gt; [https://moodle.org/plugins/view.php?plugin=theme_standard plugins db] [https://github.com/moodlehq/moodle-theme_standard github]&lt;br /&gt;
* &amp;lt;b style=&amp;quot;display:inline-block; min-width: 200px;&amp;quot;&amp;gt;Standard old&amp;lt;/b&amp;gt; [https://moodle.org/plugins/view.php?plugin=theme_standardold plugins db] [https://github.com/moodlehq/moodle-theme_standardold github]&lt;br /&gt;
&lt;br /&gt;
==Headline core features==&lt;br /&gt;
&lt;br /&gt;
===Interface===&lt;br /&gt;
* Atto - our new Moodle editor, tightly integrated in Moodle and focussing on usability and accessibility (TinyMCE still available as an option)&lt;br /&gt;
* Themes clean-up - Moodle is focussed on Bootstrap and improved responsive design.  Clean is now the default theme and most other old themes have been removed from core (still available from Plugins database).  Many small improvements have been made all through the interface.&lt;br /&gt;
* More - a completely new theme called More that provides easy configuration though the UI while retaining the power of LESS and Bootstrap.&lt;br /&gt;
* Improved conditional activities - complex boolean combinations now supported, plus plugin conditions and a better interface.  And faster!&lt;br /&gt;
* Reports - User interface for loglive and log reports has been imporved with more information and filtering support (MDL-43682 and MDL-43681).&lt;br /&gt;
&lt;br /&gt;
===Platform===&lt;br /&gt;
* Logging - a new logging subsystem with plugins allowing Moodle logs to be very detailed and external.  Many new events have been added which developers can take advantage of. MDL-37658  These advancements will support better analytics as well as things like TinCan.&lt;br /&gt;
* Performance - many improvements that improve overall performance in most cases&lt;br /&gt;
* Tasks - an improved scheduling system (like Unix cron) that allows precise scheduling of tasks even on complex clustered servers&lt;br /&gt;
&lt;br /&gt;
===Long-term support (LTS) until June 2017===&lt;br /&gt;
&lt;br /&gt;
Most of our releases receive 1 year of backported general bug fixes and 1.5 years of security and dataloss fixes from Moodle HQ.  Due to popular demand, we are committing to giving Moodle 2.7 extended support of &#039;&#039;&#039;&#039;3 years security and data loss fixes&#039;&#039;&#039;&#039; (that&#039;s an extra 1.5 years support).&lt;br /&gt;
&lt;br /&gt;
If you are stuck on an old version then this might be the perfect time to upgrade!&lt;br /&gt;
&lt;br /&gt;
==Details==&lt;br /&gt;
&lt;br /&gt;
===Quiz &amp;amp; Question bank===&lt;br /&gt;
&lt;br /&gt;
* Quiz reports improved. MDL-41727&lt;br /&gt;
** Responses from all tries are available for analysis when using or &amp;quot;Adaptive&amp;quot;, &amp;quot;Interactive with multiple tries&amp;quot; or similar behaviours.&lt;br /&gt;
** Break-down by question variant, for question types like Calculated, STACK and Variable-numeric, which one question can have different random variants.&lt;br /&gt;
** Progress bar during long calculations to prevent time-outs.&lt;br /&gt;
** Low-level calculation code moved into the question component, where it could potentially be reused by other activities.&lt;br /&gt;
** Much more automated testing of this complex area of code.&lt;br /&gt;
* Some minor improvements to the usability of the question bank - Some of MDL-40987&lt;br /&gt;
** To duplicate a question, you now start by clicking the x2 icon, like for activities. MDL-33653&lt;br /&gt;
** The various different ways to move questions in the question bank have been rationalised. MDL-33839&lt;br /&gt;
** There is now a &#039;Save changes and continue editing&#039; button when editing questions. Useful when you are working on a complex question with the preview open in another window. MDL-33653&lt;br /&gt;
* New plugin point, so that plugins can add columns to the question bank, or new search conditions. MDL-40313 &amp;amp; MDL-40457&lt;br /&gt;
* Essay questions can now require an attachment, with the text optional, rather than the other way around. MDL-39756&lt;br /&gt;
* Random short-answer matching question type brought back from the dead. (This was in stable branches, but worth mentioning again.) MDL-27414&lt;br /&gt;
&lt;br /&gt;
===Assignment===&lt;br /&gt;
&lt;br /&gt;
The old Assignment (2.2) module has been removed from core (MDL-33952). It has been replaced by a stub to support transparently remapping urls and restoring course backups from the old module to the new one. &lt;br /&gt;
&lt;br /&gt;
If you are still using the old assignment module - all instances of the old assignment module will be hidden after upgrading to Moodle 2.7. Once the upgrade tool is run on those assignments they will become visible again. &lt;br /&gt;
&lt;br /&gt;
It is recommended to upgrade, and then convert any remaining assignments because logic has been added to the assignment upgrade code for Moodle 2.7 to transparently map urls from the old assignment module to the new one.&lt;br /&gt;
&lt;br /&gt;
If you really, really need to keep using the old module, you should update the code to Moodle 2.7, and then replace the &amp;quot;mod/assignment&amp;quot; folder with the one from the plugins database before completing the upgrade.&lt;br /&gt;
&lt;br /&gt;
A new capability &#039;&#039;mod/assign:editothersubmission&#039;&#039; can be given to teachers to allow them to edit or delete student submissions.&lt;br /&gt;
&lt;br /&gt;
A checkbox &#039;Notify students&#039; is available to control when to send feedback during the grading process.&lt;br /&gt;
&lt;br /&gt;
Teachers can comment directly on student&#039;s work on online text assignments MDL-34432&lt;br /&gt;
&lt;br /&gt;
===Cron===&lt;br /&gt;
&lt;br /&gt;
Cron has received a major update and now has support for both scheduled and adhoc tasks - MDL-25499.&lt;br /&gt;
The benefits of these changes are:&lt;br /&gt;
* The schedule for every task can be configured by the admin&lt;br /&gt;
* Tasks can run in parallel&lt;br /&gt;
* Cron processes use locking to prevent the same task running at the same time by different processes&lt;br /&gt;
&lt;br /&gt;
A result of this is that cron can be run much more often, which means (for example) forum posts can be sent out sooner. Admins can keep cron running at the same schedule as before, but it is strongly recommended that they increase the frequency of running cron to at least once per minute.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Developer Notes ==&lt;br /&gt;
&lt;br /&gt;
=== API changes ===&lt;br /&gt;
* Reports: Reports that use log table, should be updated to use the new logging frame work. Old reports will continue to work as before as long as legacy logging is enabled in the site. See [[Migrating log access in reports]] for details.&lt;br /&gt;
&lt;br /&gt;
[[Category:Release notes]]&lt;br /&gt;
[[Category:Moodle 2.7]]&lt;br /&gt;
&lt;br /&gt;
[[fr:Notes de mise à jour de Moodle 2.7]]&lt;br /&gt;
[[es:Notas de Moodle 2.7]]&lt;/div&gt;</summary>
		<author><name>DanBennett</name></author>
	</entry>
</feed>