2015-09-23 22 views
5

cách tạo lớp tùy chỉnh không mở rộng lớp thành phần?tạo lớp tùy chỉnh mở rộng chuỗi trong yii2

lớp:

namespace common\components; 

class AsyncOperation extends Thread { 

    public function __construct($arg) { 
    $this->arg = $arg; 
} 

public function run() { 
    if ($this->arg) { 
     $sleep = mt_rand(1, 10); 
     printf('%s: %s -start -sleeps %d' . "<br />", date("g:i:sa"),  $this->arg, $sleep); 
     sleep($sleep); 
     printf('%s: %s -finish' . "<br />", date("g:i:sa"), $this->arg); 
     } 
    } 

} 

yii2 điều khiển:

public function actionTest() { 
    // Create a array 
    $stack = array(); 

//Iniciate Miltiple Thread 
    foreach (range("A", "D") as $i) { 
     $stack[] = new AsyncOperation($i); 
    } 

    // Start The Threads 
    foreach ($stack as $t) { 
     $t->start(); 
    } 
} 

lỗi:

PHP Fatal Error – yii\base\ErrorException 
Class 'common\components\Thread' not found 

This class is working perfect in pure php app
And Pthread is installed!

Trả lời

6

Mở rộng Something có nghĩa là lớp Something tìm kiếm trong hiện tại nam espace. \Something nghĩa là lớp được tìm kiếm trong không gian tên gốc. Xem basics of namespaces.

Bạn không có lớp common\components\Thread trong không gian tên common\components của mình. Trong trường hợp bạn sử dụng class AsyncOperation extends \Thread {

1

Có người đã cho bạn câu trả lời bạn đang tìm kiếm ... Tuy nhiên ...

tôi nhận thấy bạn có đánh dấu trong chủ đề của bạn, và đang sử dụng một khuôn khổ web.

Tôi sẽ giả sử bạn đang tạo chuỗi ở lối vào của ứng dụng web, bên trong máy chủ web: This is a terrible idea.

Phiên bản mới nhất của pthreads prohibit execution inside a web server, bạn sẽ cần phải làm những việc khác nhau nếu bạn muốn sử dụng PHP7 và pthreads, sớm là cách duy nhất được hỗ trợ để sử dụng pthreads.

+0

không có nó chỉ là thử nghiệm nhưng tôi sử dụng nó trong phụ trợ của api yên tĩnh trong yii2 !! – mohsen

+0

Ôi trời ơi, tôi rất vui vì điều đó, tôi thực sự có thể khóc ... –

+0

ý của bạn là gì? – mohsen

Các vấn đề liên quan