ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
#弃用的特性 这一章中,罗列出Twig的所有弃用的特性。弃用的特性保持了向后的兼容性,并在下一个主要版本中被移除(比如,某特性在 Twig 1.x中被弃用,那么在Twig 2.0就被移除)。 Deprecation Notices ------------------- As of Twig 1.21, Twig generates deprecation notices when a template uses deprecated features. See :ref:`deprecation-notices` for more information. Token Parsers ------------- * As of Twig 1.x, the token parser broker sub-system is deprecated. The following class and interface will be removed in 2.0: * ``Twig_TokenParserBrokerInterface`` * ``Twig_TokenParserBroker`` Extensions ---------- * As of Twig 1.x, the ability to remove an extension is deprecated and the ``Twig_Environment::removeExtension()`` method will be removed in 2.0. * As of Twig 1.23, the ``Twig_ExtensionInterface::initRuntime()`` method is deprecated. You have two options to avoid the deprecation notice: if you implement this method to store the environment for your custom filters, functions, or tests, use the ``needs_environment`` option instead; if you have more complex needs, explicitly implement ``Twig_Extension_InitRuntimeInterface`` (not recommended). * As of Twig 1.23, the ``Twig_ExtensionInterface::getGlobals()`` method is deprecated. Implement ``Twig_Extension_GlobalsInterface`` to avoid deprecation notices. PEAR ---- PEAR support has been discontinued in Twig 1.15.1, and no PEAR packages are provided anymore. Use Composer instead. Filters ------- * As of Twig 1.x, use ``Twig_SimpleFilter`` to add a filter. The following classes and interfaces will be removed in 2.0: * ``Twig_FilterInterface`` * ``Twig_FilterCallableInterface`` * ``Twig_Filter`` * ``Twig_Filter_Function`` * ``Twig_Filter_Method`` * ``Twig_Filter_Node`` * As of Twig 2.x, the ``Twig_SimpleFilter`` class is deprecated and will be removed in Twig 3.x (use ``Twig_Filter`` instead). In Twig 2.x, ``Twig_SimpleFilter`` is just an alias for ``Twig_Filter``. Functions --------- * As of Twig 1.x, use ``Twig_SimpleFunction`` to add a function. The following classes and interfaces will be removed in 2.0: * ``Twig_FunctionInterface`` * ``Twig_FunctionCallableInterface`` * ``Twig_Function`` * ``Twig_Function_Function`` * ``Twig_Function_Method`` * ``Twig_Function_Node`` * As of Twig 2.x, the ``Twig_SimpleFunction`` class is deprecated and will be removed in Twig 3.x (use ``Twig_Function`` instead). In Twig 2.x, ``Twig_SimpleFunction`` is just an alias for ``Twig_Function``. Tests ----- * As of Twig 1.x, use ``Twig_SimpleTest`` to add a test. The following classes and interfaces will be removed in 2.0: * ``Twig_TestInterface`` * ``Twig_TestCallableInterface`` * ``Twig_Test`` * ``Twig_Test_Function`` * ``Twig_Test_Method`` * ``Twig_Test_Node`` * As of Twig 2.x, the ``Twig_SimpleTest`` class is deprecated and will be removed in Twig 3.x (use ``Twig_Test`` instead). In Twig 2.x, ``Twig_SimpleTest`` is just an alias for ``Twig_Test``. * The ``sameas`` and ``divisibleby`` tests are deprecated in favor of ``same as`` and ``divisible by`` respectively. Tags ---- * As of Twig 1.x, the ``raw`` tag is deprecated. You should use ``verbatim`` instead. Nodes ----- * As of Twig 1.x, ``Node::toXml()`` is deprecated and will be removed in Twig 2.0. Interfaces ---------- * As of Twig 2.x, the following interfaces are deprecated and empty (they will be removed in Twig 3.0): * ``Twig_CompilerInterface`` (use ``Twig_Compiler`` instead) * ``Twig_LexerInterface`` (use ``Twig_Lexer`` instead) * ``Twig_NodeInterface`` (use ``Twig_Node`` instead) * ``Twig_ParserInterface`` (use ``Twig_Parser`` instead) * ``Twig_ExistsLoaderInterface`` (merged with ``Twig_LoaderInterface``) * ``Twig_TemplateInterface`` (use ``Twig_Template`` instead, and use those constants Twig_Template::ANY_CALL, Twig_Template::ARRAY_CALL, Twig_Template::METHOD_CALL) Loaders ------- * As of Twig 1.x, ``Twig_Loader_String`` is deprecated and will be removed in 2.0. You can render a string via ``Twig_Environment::createTemplate()``. Node Visitors ------------- * Because of the removal of ``Twig_NodeInterface`` in 2.0, you need to extend ``Twig_BaseNodeVisitor`` instead of implementing ``Twig_NodeVisitorInterface`` directly to make your node visitors compatible with both Twig 1.x and 2.x. Globals ------- * As of Twig 2.x, the ability to register a global variable after the runtime or the extensions have been initialized is not possible anymore (but changing the value of an already registered global is possible). * As of Twig 1.x, using the ``_self`` global variable to get access to the current ``Twig_Template`` instance is deprecated; most usages only need the current template name, which will continue to work in Twig 2.0. In Twig 2.0, ``_self`` returns the current template name instead of the current ``Twig_Template`` instance. Miscellaneous ------------- * As of Twig 1.x, ``Twig_Environment::clearTemplateCache()``, ``Twig_Environment::writeCacheFile()``, ``Twig_Environment::clearCacheFiles()``, ``Twig_Environment::getCacheFilename()``, and ``Twig_Environment::getTemplateClassPrefix()`` are deprecated and will be removed in 2.0. * As of Twig 1.x, ``Twig_Template::getEnvironment()`` and ``Twig_TemplateInterface::getEnvironment()`` are deprecated and will be removed in 2.0.