@@ 27-60 (lines=34) @@ | ||
24 | * |
|
25 | * @author Bernhard Schussek <[email protected]> |
|
26 | */ |
|
27 | class PhpRedisStoreGenerator implements ServiceGenerator |
|
28 | { |
|
29 | private static $defaultOptions = array( |
|
30 | 'host' => '127.0.0.1', |
|
31 | 'port' => 6379, |
|
32 | ); |
|
33 | ||
34 | /** |
|
35 | * {@inheritdoc} |
|
36 | */ |
|
37 | public function generateNewInstance($varName, Method $targetMethod, GeneratorRegistry $generatorRegistry, array $options = array()) |
|
38 | { |
|
39 | $options = array_replace(self::$defaultOptions, $options); |
|
40 | ||
41 | Assert::stringNotEmpty($options['host'], 'The "host" option must be a non-empty string. Got: %s'); |
|
42 | Assert::integer($options['port'], 'The "port" option must be an integer. Got: %s'); |
|
43 | ||
44 | $escHost = var_export($options['host'], true); |
|
45 | $escPort = var_export($options['port'], true); |
|
46 | ||
47 | $targetMethod->getClass()->addImports(array( |
|
48 | new Import('Redis'), |
|
49 | new Import('Webmozart\KeyValueStore\PhpRedisStore'), |
|
50 | )); |
|
51 | ||
52 | $targetMethod->addBody( |
|
53 | <<<EOF |
|
54 | \$client = new Redis(); |
|
55 | \$client->connect($escHost, $escPort); |
|
56 | \$$varName = new PhpRedisStore(\$client); |
|
57 | EOF |
|
58 | ); |
|
59 | } |
|
60 | } |
|
61 |
@@ 27-62 (lines=36) @@ | ||
24 | * |
|
25 | * @author Bernhard Schussek <[email protected]> |
|
26 | */ |
|
27 | class PredisStoreGenerator implements ServiceGenerator |
|
28 | { |
|
29 | private static $defaultOptions = array( |
|
30 | 'host' => '127.0.0.1', |
|
31 | 'port' => 6379, |
|
32 | ); |
|
33 | ||
34 | /** |
|
35 | * {@inheritdoc} |
|
36 | */ |
|
37 | public function generateNewInstance($varName, Method $targetMethod, GeneratorRegistry $generatorRegistry, array $options = array()) |
|
38 | { |
|
39 | $options = array_replace(self::$defaultOptions, $options); |
|
40 | ||
41 | Assert::stringNotEmpty($options['host'], 'The "host" option must be a non-empty string. Got: %s'); |
|
42 | Assert::integer($options['port'], 'The "port" option must be an integer. Got: %s'); |
|
43 | ||
44 | $escHost = var_export($options['host'], true); |
|
45 | $escPort = var_export($options['port'], true); |
|
46 | ||
47 | $targetMethod->getClass()->addImports(array( |
|
48 | new Import('Predis\Client'), |
|
49 | new Import('Webmozart\KeyValueStore\PredisStore'), |
|
50 | )); |
|
51 | ||
52 | $targetMethod->addBody( |
|
53 | <<<EOF |
|
54 | \$client = new Client(array( |
|
55 | 'host' => $escHost, |
|
56 | 'port' => $escPort, |
|
57 | )); |
|
58 | \$$varName = new PredisStore(\$client); |
|
59 | EOF |
|
60 | ); |
|
61 | } |
|
62 | } |
|
63 |