Skip to content

refactor: deprecate const EVENT_PRIORITY_* #6000

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
May 18, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions app/Config/Constants.php
Original file line number Diff line number Diff line change
Expand Up @@ -77,3 +77,18 @@
defined('EXIT_DATABASE') || define('EXIT_DATABASE', 8); // database error
defined('EXIT__AUTO_MIN') || define('EXIT__AUTO_MIN', 9); // lowest automatically-assigned error code
defined('EXIT__AUTO_MAX') || define('EXIT__AUTO_MAX', 125); // highest automatically-assigned error code

/**
* @deprecated Use \CodeIgniter\Events\Events::PRIORITY_LOW instead.
*/
define('EVENT_PRIORITY_LOW', 200);

/**
* @deprecated Use \CodeIgniter\Events\Events::PRIORITY_NORMAL instead.
*/
define('EVENT_PRIORITY_NORMAL', 100);

/**
* @deprecated Use \CodeIgniter\Events\Events::PRIORITY_HIGH instead.
*/
define('EVENT_PRIORITY_HIGH', 10);
8 changes: 4 additions & 4 deletions system/Events/Events.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,15 @@
use Config\Modules;
use Config\Services;

define('EVENT_PRIORITY_LOW', 200);
define('EVENT_PRIORITY_NORMAL', 100);
define('EVENT_PRIORITY_HIGH', 10);

/**
* Events
*/
class Events
{
public const PRIORITY_LOW = 200;
public const PRIORITY_NORMAL = 100;
public const PRIORITY_HIGH = 10;

/**
* The list of listeners.
*
Expand Down
6 changes: 3 additions & 3 deletions tests/system/Events/EventsTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -157,15 +157,15 @@ public function testPriorityWithMultiple()

Events::on('foo', static function () use (&$result) {
$result[] = 'a';
}, EVENT_PRIORITY_NORMAL);
}, Events::PRIORITY_NORMAL);

Events::on('foo', static function () use (&$result) {
$result[] = 'b';
}, EVENT_PRIORITY_LOW);
}, Events::PRIORITY_LOW);

Events::on('foo', static function () use (&$result) {
$result[] = 'c';
}, EVENT_PRIORITY_HIGH);
}, Events::PRIORITY_HIGH);

Events::on('foo', static function () use (&$result) {
$result[] = 'd';
Expand Down
1 change: 1 addition & 0 deletions user_guide_src/source/changelogs/v4.2.0.rst
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ Deprecations
- ``CodeIgniter\Router\Router::setDefaultController()`` is deprecated.
- The constant ``SPARKED`` in **spark** is deprecated. Use the ``$context`` property in ``CodeIgniter\CodeIgniter`` instead.
- ``CodeIgniter\Autoloader\Autoloader::discoverComposerNamespaces()`` is deprecated, and no longer used.
- The constants ``EVENT_PRIORITY_LOW``, ``EVENT_PRIORITY_NORMAL`` and ``EVENT_PRIORITY_HIGH`` are deprecated. Use the class constants ``CodeIgniter\Events\Events::PRIORITY_LOW``, ``CodeIgniter\Events\Events::PRIORITY_NORMAL`` and ``CodeIgniter\Events\Events::PRIORITY_HIGH`` instead.

Bugs Fixed
**********
Expand Down
4 changes: 3 additions & 1 deletion user_guide_src/source/extending/events.rst
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,13 @@ are executed first, with a value of 1 having the highest priority, and there bei

Any subscribers with the same priority will be executed in the order they were defined.

Three constants are defined for your use, that set some helpful ranges on the values. You are not required to use these
Since v4.2.0, three class constants are defined for your use, that set some helpful ranges on the values. You are not required to use these
but you might find they aid readability:

.. literalinclude:: events/004.php

.. note:: The constants ``EVENT_PRIORITY_LOW``, ``EVENT_PRIORITY_NORMAL`` and ``EVENT_PRIORITY_HIGH`` are deprecated, and the definitions are moved to ``app/Config/Constants.php``.

Once sorted, all subscribers are executed in order. If any subscriber returns a boolean false value, then execution of
the subscribers will stop.

Expand Down
8 changes: 5 additions & 3 deletions user_guide_src/source/extending/events/004.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
<?php

define('EVENT_PRIORITY_LOW', 200);
define('EVENT_PRIORITY_NORMAL', 100);
define('EVENT_PRIORITY_HIGH', 10);
use CodeIgniter\Events\Events;

Events::PRIORITY_LOW; // 200
Events::PRIORITY_NORMAL; // 100
Events::PRIORITY_HIGH; // 10
8 changes: 8 additions & 0 deletions user_guide_src/source/installation/upgrade_420.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,20 @@ Please refer to the upgrade instructions corresponding to your installation meth
Mandatory File Changes
**********************

index.php and spark
===================

The following files received significant changes and
**you must merge the updated versions** with your application:

* ``public/index.php``
* ``spark``

Config/Constants.php
====================

The constants ``EVENT_PRIORITY_LOW``, ``EVENT_PRIORITY_NORMAL`` and ``EVENT_PRIORITY_HIGH`` are deprecated, and the definitions are moved to ``app/Config/Constants.php``. If you use these constants, define them in ``app/Config/Constants.php``. Or use new class constants ``CodeIgniter\Events\Events::PRIORITY_LOW``, ``CodeIgniter\Events\Events::PRIORITY_NORMAL`` and ``CodeIgniter\Events\Events::PRIORITY_HIGH``.

Breaking Changes
****************

Expand Down