Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit b337d67

Browse files
magento enqueue
1 parent e2fd688 commit b337d67

File tree

2 files changed

+90
-0
lines changed

2 files changed

+90
-0
lines changed
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
<?php
2+
use Enqueue\AmqpExt\AmqpContext;
3+
use Enqueue\Stomp\StompContext;
4+
use Enqueue\Fs\FsContext;
5+
use Enqueue\Sqs\SqsContext;
6+
use Enqueue\Redis\RedisContext;
7+
use Enqueue\Dbal\DbalContext;
8+
9+
class Enqueue_Enqueue_Model_Config_Field_Transportdefault extends Mage_Core_Model_Config_Data
10+
{
11+
/**
12+
* {@inheritdoc}
13+
*/
14+
protected function _beforeSave()
15+
{
16+
$return = parent::_beforeSave();
17+
18+
$transport = $this->getValue();
19+
20+
$data = [
21+
'rabbitmq_amqp' => [
22+
'name' => 'RabbitMQ AMQP',
23+
'package' => 'enqueue/amqp-ext',
24+
'class' => AmqpContext::class,
25+
],
26+
'amqp' => [
27+
'name' => 'AMQP',
28+
'package' => 'enqueue/amqp-ext',
29+
'class' => AmqpContext::class,
30+
],
31+
'rabbitmq_stomp' => [
32+
'name' => 'RabbitMQ STOMP',
33+
'package' => 'enqueue/stomp',
34+
'class' => StompContext::class,
35+
],
36+
'stomp' => [
37+
'name' => 'STOMP',
38+
'package' => 'enqueue/stomp',
39+
'class' => StompContext::class,
40+
],
41+
'fs' => [
42+
'name' => 'Filesystem',
43+
'package' => 'enqueue/fs',
44+
'class' => FsContext::class,
45+
],
46+
'sqs' => [
47+
'name' => 'Amazon AWS SQS',
48+
'package' => 'enqueue/sqs',
49+
'class' => SqsContext::class,
50+
],
51+
'redis' => [
52+
'name' => 'Redis',
53+
'package' => 'enqueue/redis',
54+
'class' => RedisContext::class,
55+
],
56+
'dbal' => [
57+
'name' => 'Doctrine DBAL',
58+
'package' => 'enqueue/dbal',
59+
'class' => DbalContext::class,
60+
],
61+
];
62+
63+
if (false == isset($data[$transport])) {
64+
throw new \LogicException(sprintf('Unknown transport: "%s"', $transport));
65+
}
66+
67+
if (false == $this->isClassExists($data[$transport]['class'])) {
68+
Mage::throwException(sprintf('%s transport requires package "%s". Please install it via composer. #> php composer.php require %s',
69+
$data[$transport]['name'], $data[$transport]['package'], $data[$transport]['package']
70+
));
71+
}
72+
73+
return $return;
74+
}
75+
76+
/**
77+
* @param string $class
78+
*
79+
* @return bool
80+
*/
81+
private function isClassExists($class)
82+
{
83+
try {
84+
return class_exists($class);
85+
} catch (\Exception $e) { // in dev mode error handler throws exception
86+
return false;
87+
}
88+
}
89+
}

‎src/Enqueue/Enqueue/etc/system.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
<default translate="label">
2929
<label>Default</label>
3030
<frontend_type>select</frontend_type>
31+
<backend_model>enqueue/config_field_transportdefault</backend_model>
3132
<source_model>enqueue/config_source_transport</source_model>
3233
<sort_order>1</sort_order>
3334
<show_in_default>1</show_in_default>

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /