Merge "mediawiki.page.gallery.resize: Remove weird mw.hook call"
[lhc/web/wiklou.git] / includes / parser / Preprocessor.php
index b8e262a..335bd61 100644 (file)
@@ -77,8 +77,9 @@ interface PPFrame {
        const STRIP_COMMENTS = 4;
        const NO_IGNORE = 8;
        const RECOVER_COMMENTS = 16;
+       const NO_TAGS = 32;
 
-       const RECOVER_ORIG = 27; // = 1|2|8|16 no constant expression support in PHP yet
+       const RECOVER_ORIG = 59; // = 1|2|8|16|32 no constant expression support in PHP yet
 
        /** This constant exists when $indexOffset is supported in newChild() */
        const SUPPORTS_INDEX_OFFSET = 1;
@@ -94,6 +95,11 @@ interface PPFrame {
         */
        function newChild( $args = false, $title = false, $indexOffset = 0 );
 
+       /**
+        * Expand a document tree node, caching the result on its parent with the given key
+        */
+       function cachedExpand( $key, $root, $flags = 0 );
+
        /**
         * Expand a document tree node
         */
@@ -160,6 +166,55 @@ interface PPFrame {
         */
        function isTemplate();
 
+       /**
+        * Set the "volatile" flag.
+        *
+        * Note that this is somewhat of a "hack" in order to make extensions
+        * with side effects (such as Cite) work with the PHP parser. New
+        * extensions should be written in a way that they do not need this
+        * function, because other parsers (such as Parsoid) are not guaranteed
+        * to respect it, and it may be removed in the future.
+        *
+        * @param bool $flag
+        */
+       function setVolatile( $flag = true );
+
+       /**
+        * Get the "volatile" flag.
+        *
+        * Callers should avoid caching the result of an expansion if it has the
+        * volatile flag set.
+        *
+        * @see self::setVolatile()
+        * @return bool
+        */
+       function isVolatile();
+
+       /**
+        * Get the TTL of the frame's output.
+        *
+        * This is the maximum amount of time, in seconds, that this frame's
+        * output should be cached for. A value of null indicates that no
+        * maximum has been specified.
+        *
+        * Note that this TTL only applies to caching frames as parts of pages.
+        * It is not relevant to caching the entire rendered output of a page.
+        *
+        * @return int|null
+        */
+       function getTTL();
+
+       /**
+        * Set the TTL of the output of this frame and all of its ancestors.
+        * Has no effect if the new TTL is greater than the one already set.
+        * Note that it is the caller's responsibility to change the cache
+        * expiry of the page as a whole, if such behavior is desired.
+        *
+        * @see self::getTTL()
+        * @param int $ttl
+        */
+       function setTTL( $ttl );
+
        /**
         * Get a title of frame
         *