Makale

Workflow motoru: YAML ile tanımlı, yeteneğe bağlı durum makinesi

CPalius çekirdeği hafif, kendi yazdığımız bir durum makinesi taşır. Geçişler YAML içinde; her geçiş bir yeteneğe bağlı.

· ZemoCA · 1 dk okuma

CPalius, symfony/workflow bağımlılığını almak yerine hafif, amaca özel bir durum makinesi getirdi. Neden? Çünkü çekirdek yalnızca her uygulamanın ihtiyaç duyduğu şeyi taşımalı ve tam kontrol bizde olmalı.

Tanım

İş akışları YAML ile tanımlanır: cp-content/config/sync/workflow/editorial.yaml. Bir tanım places (draft, review, published, archived), transitions ve her geçiş için gereken capability içerir. property alanı hangi kolonun durumu tuttuğunu söyler (Node için moderation_state).

Uygulama

WorkflowManager::apply() şunları yapar: kaynak yer kontrolü, geçiş başına yetenek kontrolü (content.moderate / content.publish), durum yazımı, denetim kaydı ve hook tetikleme — flush caller'a bırakılır. HookDispatcherInterface sayesinde her geçiş dinlenebilir.

Node dışında

Aynı motor #[CpResource] iş kayıtları için de çalışır. Resource makine API'sindeki transition uç noktası (eskiden 501) artık bu motora bağlı; fatura, rezervasyon, talep gibi kayıtlar kendi YAML yaşam döngülerini alır — Node yayın akışından tamamen ayrı.

publish_places: [published] sayesinde editoryal yer published olduğunda Node::status da otomatik senkronlanır; mevcut 'status = published' sorguları hiç değişmeden çalışmaya devam eder.

Yorumlar (0)

Henüz yorum yok. İlk yorumu sen yaz.

Yorum yaz

Yorumunuz yayınlanmadan önce incelenecektir.

İlgili Yazılar

CPalius CMF 2.2.68: Daha Hızlı, daha güvenli
Makale

CPalius CMF 2.2.68: Daha Hızlı, daha güvenli

CPalius 2.2.68 yayında. Bu sürümde üç şeye odaklandık: ana sayfayı baştan yazdık, sayfa önbelleğindeki gizli bir hatayı bulup düzelttik ve hız ile güvenliği, sa…