@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
at upstream/main 45 lines 1.0 kB view raw
1<?php 2 3abstract class CelerityPostprocessor 4 extends Phobject { 5 6 private $default; 7 8 abstract public function getPostprocessorKey(); 9 abstract public function getPostprocessorName(); 10 abstract public function buildVariables(); 11 12 public function buildDefaultPostprocessor() { 13 return new CelerityDefaultPostprocessor(); 14 } 15 16 final public function getVariables() { 17 $variables = $this->buildVariables(); 18 19 $default = $this->getDefault(); 20 if ($default) { 21 $variables += $default->getVariables(); 22 } 23 24 return $variables; 25 } 26 27 final public function getDefault() { 28 if ($this->default === null) { 29 $this->default = $this->buildDefaultPostprocessor(); 30 } 31 return $this->default; 32 } 33 34 final public static function getPostprocessor($key) { 35 return idx(self::getAllPostprocessors(), $key); 36 } 37 38 final public static function getAllPostprocessors() { 39 return id(new PhutilClassMapQuery()) 40 ->setAncestorClass(self::class) 41 ->setUniqueMethod('getPostprocessorKey') 42 ->execute(); 43 } 44 45}