Skip to content

Commit 99f865c

Browse files
committed
Fix inclusion bug.
1 parent 196ba6c commit 99f865c

File tree

1 file changed

+50
-25
lines changed

1 file changed

+50
-25
lines changed

src/PHPQueue/Base.php

Lines changed: 50 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,16 @@ public static function getQueue($queue)
3939

4040
protected static function loadAndGetQueueClassName($queue_name)
4141
{
42-
$class_name = self::loadAndReturnFullClassName($queue_name, 'Queue');
42+
$class_name = '';
43+
if (!is_null(self::$queue_path))
44+
{
45+
$class_name = self::loadAndReturnFullClassName(self::$queue_path, $queue_name, 'Queue');
46+
}
47+
if (empty($class_name) && !is_null(self::$queue_namespace))
48+
{
49+
$class_name = self::getValidNameSpacedClassName(self::$queue_namespace, $queue_name);
50+
}
51+
4352
if (empty($class_name))
4453
throw new QueueNotFoundException("Queue file/class does not exist: $queue_name");
4554
return $class_name;
@@ -140,7 +149,16 @@ public static function getWorker($worker_name)
140149

141150
protected static function loadAndGetWorkerClassName($worker_name)
142151
{
143-
$class_name = self::loadAndReturnFullClassName($worker_name, 'Worker');
152+
$class_name = '';
153+
if (!is_null(self::$worker_path))
154+
{
155+
$class_name = self::loadAndReturnFullClassName(self::$worker_path, $worker_name, 'Worker');
156+
}
157+
if (empty($class_name) && !is_null(self::$worker_namespace))
158+
{
159+
$class_name = self::getValidNameSpacedClassName(self::$worker_namespace, $worker_name);
160+
}
161+
144162
if (empty($class_name))
145163
throw new WorkerNotFoundException("Worker file/class does not exist: $worker_name");
146164
return $class_name;
@@ -188,38 +206,45 @@ public static function backendFactory($type, $options=array())
188206
}
189207

190208
/**
209+
* @param array|string $path_prefix
191210
* @param string $org_class_name
192211
* @param string $class_suffix
193212
* @return string
194213
*/
195-
private static function loadAndReturnFullClassName($org_class_name, $class_suffix='')
214+
private static function loadAndReturnFullClassName($path_prefix, $org_class_name, $class_suffix='')
196215
{
197216
$full_class_name = '';
198-
if (!is_null(self::$queue_path)) {
199-
if ( !is_array(self::$queue_path) ) {
200-
self::$queue_path = array(self::$queue_path);
201-
}
202-
foreach(self::$queue_path as $path) {
203-
$classFile = $path . '/' . $org_class_name . $class_suffix . '.php';
204-
if (is_file($classFile)) {
205-
require_once $classFile;
206-
return "\\" . $org_class_name . $class_suffix;
207-
}
217+
if (!is_array($path_prefix)) $path_prefix = array($path_prefix);
218+
219+
foreach($path_prefix as $path)
220+
{
221+
$classFile = $path . '/' . $org_class_name . $class_suffix . '.php';
222+
if (is_file($classFile)) {
223+
require_once $classFile;
224+
return "\\" . $org_class_name . $class_suffix;
208225
}
209226
}
210-
if (!is_null(self::$queue_namespace)) {
211-
if (!is_array(self::$queue_namespace)) {
212-
self::$queue_namespace = array(self::$queue_namespace);
227+
return $full_class_name;
228+
}
229+
230+
/**
231+
* @param array|string $namespaces
232+
* @param $org_class_name
233+
* @return string
234+
*/
235+
protected static function getValidNameSpacedClassName($namespaces, $org_class_name)
236+
{
237+
$full_class_name = '';
238+
if (!is_array($namespaces)) $namespaces = array($namespaces);
239+
240+
foreach($namespaces as $namespace)
241+
{
242+
if (!(strpos($namespace, "\\") === 0)) {
243+
$full_class_name = "\\";
213244
}
214-
foreach(self::$queue_namespace as $namespace)
215-
{
216-
if (!(strpos($namespace, "\\") === 0)) {
217-
$full_class_name = "\\";
218-
}
219-
$full_class_name .= $namespace . "\\" . $org_class_name;
220-
if (class_exists($full_class_name, true)) {
221-
return $full_class_name;
222-
}
245+
$full_class_name .= $namespace . "\\" . $org_class_name;
246+
if (class_exists($full_class_name, true)) {
247+
return $full_class_name;
223248
}
224249
}
225250
return $full_class_name;

0 commit comments

Comments
 (0)