Skip to content

Commit

Permalink
Some config editions
Browse files Browse the repository at this point in the history
  • Loading branch information
mmoreram committed Aug 27, 2013
1 parent 09e92aa commit c36f0a2
Show file tree
Hide file tree
Showing 3 changed files with 113 additions and 23 deletions.
48 changes: 26 additions & 22 deletions DependencyInjection/Configuration.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,35 +26,39 @@ public function getConfigTreeBuilder()
->children()
->arrayNode('bundles')
->prototype('array')
->children()
->scalarNode('namespace')
->isRequired()
->cannotBeEmpty()
->end()
->scalarNode('active')
->defaultFalse()
->end()
->arrayNode('include')
->prototype('scalar')->end()
->end()
->arrayNode('exclude')
->prototype('scalar')->end()
->children()
->scalarNode('namespace')
->isRequired()
->cannotBeEmpty()
->end()
->scalarNode('active')
->defaultFalse()
->end()
->arrayNode('include')
->prototype('scalar')->end()
->end()
->arrayNode('exclude')
->prototype('scalar')->end()
->end()
->end()
->end()
->end()
->arrayNode('servers')
->defaultValue(array(
'hostname' => '127.0.0.1',
'port' => 4730,
'localhost' => array(
'hostname' => '127.0.0.1',
'port' => 4730,
)
))
->prototype('array')
->children()
->scalarNode('hostname')
->isRequired()
->cannotBeEmpty()
->end()
->scalarNode('port')
->defaultValue(4730)
->children()
->scalarNode('hostname')
->isRequired()
->cannotBeEmpty()
->end()
->scalarNode('port')
->defaultValue(4730)
->end()
->end()
->end()
->end()
Expand Down
2 changes: 1 addition & 1 deletion DependencyInjection/GearmanExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public function load(array $config, ContainerBuilder $container)
'gearman.params',
$config['defaults']
);

$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('services.yml');
}
Expand Down
86 changes: 86 additions & 0 deletions Service/GearmanService.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
<?php

namespace Mmoreram\GearmanBundle\Service;

use Mmoreram\GearmanBundle\Service\GearmanCache as Cache;
use Mmoreram\GearmanBundle\Exceptions\JobDoesNotExistException;
use Mmoreram\GearmanBundle\Exceptions\WorkerDoesNotExistException;

/**
* Gearman execute methods. All Worker methods
*
* @author Marc Morera <yuhu@mmoreram.com>
*/
abstract class GearmanService
{

/**
* All workers
*
* @var type
*/
protected $workers;


/**
* Construct method
*
* @param GearmanCacheWrapper $gearmanCacheWrapper GearmanCacheWrapper
*/
public function __construct(GearmanCacheWrapper $gearmanCacheWrapper)
{
$this->workers = $gearmanCacheWrapper->getWorkerCollection();
}


/**
* Return worker containing a job with $jobName as name
* If is not found, throws JobDoesNotExistException Exception
*
* @param string $jobName Name of job
*
* @return Array
*/
public function getJob($jobName)
{
foreach ($this->workers as $worker) {

if (is_array($worker['jobs'])) {

foreach ($worker['jobs'] as $job) {

if ($jobName === $job['realCallableName']) {

$worker['job'] = $job;

return $worker;
}
}
}
}

throw new JobDoesNotExistException($jobName);
}


/**
* Return worker with $workerName as name and all its jobs
* If is not found, throws WorkerDoesNotExistException Exception
*
* @param string $workerName Name of worker
*
* @return Array
*/
public function getWorker($workerName)
{
foreach ($this->workers as $worker) {

if ($workerName === $worker['callableName']) {

return $worker;
}
}

throw new WorkerDoesNotExistException($workerName);
}
}

0 comments on commit c36f0a2

Please sign in to comment.