Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.
Common duplication problems, and corresponding solutions are:
| 1 | <?php |
||
| 17 | class SubscriptionMonitor |
||
| 18 | implements |
||
|
|
|||
| 19 | MonitorInterface { |
||
| 20 | |||
| 21 | use MonitorTrait { |
||
| 22 | start as doStart; |
||
| 23 | stop as doStop; |
||
| 24 | } |
||
| 25 | |||
| 26 | const SUBSCRIPTION_CREATE_TOPIC = 'wamp.subscription.on_create'; |
||
| 27 | const SUBSCRIPTION_SUB_TOPIC = 'wamp.subscription.on_subscribe'; |
||
| 28 | const SUBSCRIPTION_UNSUB_TOPIC = 'wamp.subscription.on_unsubscribe'; |
||
| 29 | const SUBSCRIPTION_DELETE_TOPIC = 'wamp.subscription.on_delete'; |
||
| 30 | const SUBSCRIPTION_LIST_TOPIC = 'wamp.subscription.list'; |
||
| 31 | const SUBSCRIPTION_LOOKUP_TOPIC = 'wamp.subscription.lookup'; |
||
| 32 | const SUBSCRIPTION_MATCH_TOPIC = 'wamp.subscription.match'; |
||
| 33 | const SUBSCRIPTION_GET_TOPIC = 'wamp.subscription.get'; |
||
| 34 | const SUBSCRIPTION_SUBLIST_TOPIC = 'wamp.subscription.list_subscribers'; |
||
| 35 | const SUBSCRIPTION_SUBCOUNT_TOPIC = 'wamp.subscription.count_subscribers'; |
||
| 36 | |||
| 37 | const LOOKUP_MATCH_WILDCARD = 'wildcard'; |
||
| 38 | const LOOKUP_MATCH_PREFIX = 'prefix'; |
||
| 39 | |||
| 40 | protected $sessionIds = []; |
||
| 41 | protected $subscriptionIds = []; |
||
| 42 | |||
| 43 | public function start() { |
||
| 50 | |||
| 51 | public function stop() { |
||
| 55 | |||
| 56 | public function getSessionInfo($sessionId, callable $callback) { |
||
| 67 | |||
| 68 | public function getSessionIds(callable $callback) { |
||
| 75 | |||
| 76 | protected function startSubscriptions() { |
||
| 87 | |||
| 88 | protected function createHandler($res) { |
||
| 96 | |||
| 97 | protected function deleteHandler($res) { |
||
| 104 | |||
| 105 | protected function subHandler($res) { |
||
| 122 | |||
| 123 | |||
| 124 | protected function stopSubscriptions() { |
||
| 128 | |||
| 129 | public function getSubscriptionDetail($subId) { |
||
| 139 | |||
| 140 | View Code Duplication | protected function retrieveSubscriptionIds($callback = null) { |
|
| 155 | |||
| 156 | protected function getList() { |
||
| 159 | |||
| 160 | } |
||
| 161 |