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.