2014-04-07 22 views
6

Tôi tự hỏi liệu Laravel có một số cơ chế máy trạng thái tích hợp không? Và nếu không, cách tốt nhất để sử dụng thư viện tuyệt vời này được gọi là hữu hạn (https://github.com/yohang/Finite) là gì.Máy hữu hạn và kiên trì trong Laravel

Dưới đây là những gì tôi có (sử dụng trường hợp: một bảng công việc):

  • tài tạo ra một lời đề nghị (trạng thái ban đầu: tạo)
  • tài xem trước lời đề nghị (nhà nước: Dự thảo)
  • tài xuất bản lời đề nghị (trạng thái cuối cùng: công bố)

Để bắt đầu, tôi đã thực hiện mô hình của tôi "stateful":

use Finite\StatefulInterface; 
class Offer extends Eloquent implements StatefulInterface { 

Sau đó, trong hàng của mình điều khiển của cửa hàng hoạt động:

$stateMachine = new StateMachine(); 
$stateMachine->addState(new State('created', StateInterface::TYPE_INITIAL)); 
$stateMachine->addState('draft'); 
$stateMachine->addState(new State('published', StateInterface::TYPE_FINAL)); 

$stateMachine->addTransition('preview', 'created', 'draft'); 
$stateMachine->addTransition('publish', 'draft', 'published'); 

$stateMachine->setObject($offer); 
$stateMachine->initialize(); 

Từ những gì tôi hiểu, khi người dùng xem trước một lời đề nghị (ví dụ), tôi nên gọi:

$stateMachine->apply('preview'). 

Câu hỏi của tôi là:

Làm cách nào để theo dõi tất cả các trạng thái và chuyển tiếp trên ứng dụng của tôi? Tôi có lưu trữ các tiểu bang trong mô hình Phiếu mua hàng của tôi không? Tôi có tạo thêm các bảng không?

+0

Xin hãy chia sẻ những phát hiện của bạn! :-) – menjaraz

+0

Làm thế nào để khởi động máy trạng thái với trạng thái bình thường? https://github.com/yohang/Finite/issues/114 –

Trả lời

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