Merge pull request #14642 from civicrm/5.15
[civicrm-core.git] / Civi / API / Event / Event.php
CommitLineData
132ec342
TO
1<?php
2/*
3 +--------------------------------------------------------------------+
fee14197 4 | CiviCRM version 5 |
132ec342 5 +--------------------------------------------------------------------+
6b83d5bd 6 | Copyright CiviCRM LLC (c) 2004-2019 |
132ec342
TO
7 +--------------------------------------------------------------------+
8 | This file is a part of CiviCRM. |
9 | |
10 | CiviCRM is free software; you can copy, modify, and distribute it |
11 | under the terms of the GNU Affero General Public License |
12 | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
13 | |
14 | CiviCRM is distributed in the hope that it will be useful, but |
15 | WITHOUT ANY WARRANTY; without even the implied warranty of |
16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
17 | See the GNU Affero General Public License for more details. |
18 | |
19 | You should have received a copy of the GNU Affero General Public |
20 | License and the CiviCRM Licensing Exception along |
21 | with this program; if not, contact CiviCRM LLC |
22 | at info[AT]civicrm[DOT]org. If you have questions about the |
23 | GNU Affero General Public License or the licensing of CiviCRM, |
24 | see the CiviCRM license FAQ at http://civicrm.org/licensing |
25 +--------------------------------------------------------------------+
d25dd0ee 26 */
132ec342
TO
27
28namespace Civi\API\Event;
29
6550386a
EM
30/**
31 * Class Event
32 * @package Civi\API\Event
33 */
132ec342 34class Event extends \Symfony\Component\EventDispatcher\Event {
c98e9ee3
TO
35
36 /**
37 * @var \Civi\API\Kernel
38 */
39 protected $apiKernel;
40
132ec342 41 /**
787604ff 42 * @var \Civi\API\Provider\ProviderInterface
8882ff5c 43 * The API provider responsible for executing the request.
132ec342
TO
44 */
45 protected $apiProvider;
46
47 /**
48 * @var array
8882ff5c
TO
49 * The full description of the API request.
50 *
51 * @see \Civi\API\Request::create
132ec342
TO
52 */
53 protected $apiRequest;
54
6550386a 55 /**
8882ff5c
TO
56 * @param \Civi\API\Provider\ProviderInterface $apiProvider
57 * The API responsible for executing the request.
58 * @param array $apiRequest
59 * The full description of the API request.
3bdf1f3a 60 * @param \Civi\API\Kernel $apiKernel
6550386a 61 */
c98e9ee3
TO
62 public function __construct($apiProvider, $apiRequest, $apiKernel) {
63 $this->apiKernel = $apiKernel;
132ec342
TO
64 $this->apiProvider = $apiProvider;
65 $this->apiRequest = $apiRequest;
66 }
67
c98e9ee3 68 /**
3bdf1f3a 69 * Get api kernel.
70 *
c98e9ee3
TO
71 * @return \Civi\API\Kernel
72 */
73 public function getApiKernel() {
74 return $this->apiKernel;
75 }
76
132ec342 77 /**
787604ff 78 * @return \Civi\API\Provider\ProviderInterface
132ec342
TO
79 */
80 public function getApiProvider() {
81 return $this->apiProvider;
82 }
83
84 /**
85 * @return array
86 */
87 public function getApiRequest() {
88 return $this->apiRequest;
89 }
96025800 90
9abe1c3b
TO
91 /**
92 * Create a brief string identifying the entity/action. Useful for
93 * pithy matching/switching.
94 *
95 * Ex: if ($e->getApiRequestSig() === '3.contact.get') { ... }
96 *
97 * @return string
98 * Ex: '3.contact.get'
99 */
100 public function getApiRequestSig() {
101 return mb_strtolower($this->apiRequest['version'] . '.' . $this->apiRequest['entity'] . '.' . $this->apiRequest['action']);
102 }
103
132ec342 104}