如何创建自定义数据收集器篇文章。
主义事件篇文章。
主义事件篇文章。
如何创建自定义表单字段类型篇文章。
如何创建一个表单类型扩展篇文章。
形式猜测的过程。默认情况下,表单猜测是由基于验证元数据和Doctrine元数据(如果使用Doctrine)或Propel元数据(如果使用Propel)的“猜测者”完成的。
另请参阅
有关如何创建自己的类型猜测器的信息,请参见创建一个自定义类型猜测器.
另请参阅
有关如何创建自己的类型猜测器的信息,请参见创建一个自定义类型猜测器.
缓存:清晰命令。如果你的bundle缓存文件,你应该在缓存清理过程中添加一个自定义缓存清理器来清理这些文件。
为了注册你的自定义缓存清理器,首先你必须创建一个服务类:
12 3 4 5 6 7 8 9 10 11 12
/ / src /缓存/ MyClearer.php名称空间应用程序\缓存;使用ob娱乐下载\组件\HttpKernel\CacheClearer\CacheClearerInterface;类MyClearer实现了CacheClearerInterface{公共函数清晰的(字符串$cacheDirectory){//清除缓存}}
如果你在用默认的服务。yaml的配置,您的服务将自动标记为kernel.cache_clearer
.但是,你也可以手动注册:
- YAML
- XML
- PHP
1 2 3
服务:应用程序缓存\ \ MyClearer:标签:(kernel.cache_clearer)
12 3 4 5 6 7 8 9 10 11 12
/ / src /缓存/ MyClearer.php名称空间应用程序\缓存;使用ob娱乐下载\组件\HttpKernel\CacheClearer\CacheClearerInterface;类MyClearer实现了CacheClearerInterface{公共函数清晰的(字符串$cacheDirectory){//清除缓存}}
kernel.cache_clearer
.但是,你也可以手动注册:- YAML
- XML
- PHP
1 2 3
服务:应用程序缓存\ \ MyClearer:标签:(kernel.cache_clearer)
缓存:热身或缓存:清晰
命令(除非你通过——no-warmup
来缓存:清晰
).它也会在处理请求时运行,如果其中一个命令还没有完成请求的话。
目的是初始化应用程序将需要的任何缓存,并防止第一个用户在动态生成缓存的情况下受到任何重要的“缓存命中”。
要注册自己的缓存预热器,首先创建一个实现CacheWarmerInterface接口:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
/ / src /缓存/ MyCustomWarmer.php名称空间应用程序\缓存;使用应用程序\喷火\酒吧;使用ob娱乐下载\组件\HttpKernel\CacheWarmer\CacheWarmerInterface;类MyCustomWarmer实现了CacheWarmerInterface{公共函数热身($cacheDirectory){/ /……做一些操作来“加热”你的缓存$filesAndClassesToPreload= [];$filesAndClassesToPreload[] = Bar::类;foreach(scandir ($someCacheDir)作为$文件) {如果(!is_dir ($文件=$someCacheDir.' / '.$文件)) {$filesAndClassesToPreload[] =$文件;}}返回$filesAndClassesToPreload;}公共函数isOptional(){返回真正的;}}
的热身()
方法必须返回一个包含要预加载的文件和类的数组。文件必须是绝对路径,类必须是全限定类名。唯一的限制是文件必须存储在缓存目录中。如果不需要预加载任何东西,则返回一个空数组
5.1
方法返回的数组热身()
方法自Symfony 5.1以来已弃用。ob娱乐下载
的isOptional ()
方法应返回true,如果可以在不调用此缓存预热器的情况下使用应用程序。在Syob娱乐下载mfony中,默认情况下总是执行可选的暖器(您可以使用——no-optional-warmers
选项)。
如果你在用默认的服务。yaml的配置,您的服务将自动标记为kernel.cache_warmer
.但是,你也可以手动注册:
- YAML
- XML
- PHP
1 2 3 4
服务:应用程序缓存\ \ MyCustomWarmer:标签:-{名称:kernel.cache_warmer,优先级:0}
请注意
的优先级
是可选的,其值为正整数或负整数,默认为0
.数值越高,预热器执行得越早。
谨慎
如果您的缓存温暖器因为任何异常而执行失败,Symfony将不会尝试为下一个请求再次执行它。ob娱乐下载因此,当缓存预热器生成的内容不可用时,您的应用程序和/或包应该做好准备。
除了您自己的缓存预热器外,Symfony组件和第三方包也为自己的目的定义了缓存ob娱乐下载预热器。你可以用下面的命令列出它们:
1
$PHP bin/console debug:container——tag=kernel.cache_warm . PHP bin/console debug:container——tag=kernel.cache_warm . PHP
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
/ / src /缓存/ MyCustomWarmer.php名称空间应用程序\缓存;使用应用程序\喷火\酒吧;使用ob娱乐下载\组件\HttpKernel\CacheWarmer\CacheWarmerInterface;类MyCustomWarmer实现了CacheWarmerInterface{公共函数热身($cacheDirectory){/ /……做一些操作来“加热”你的缓存$filesAndClassesToPreload= [];$filesAndClassesToPreload[] = Bar::类;foreach(scandir ($someCacheDir)作为$文件) {如果(!is_dir ($文件=$someCacheDir.' / '.$文件)) {$filesAndClassesToPreload[] =$文件;}}返回$filesAndClassesToPreload;}公共函数isOptional(){返回真正的;}}
热身()
方法必须返回一个包含要预加载的文件和类的数组。文件必须是绝对路径,类必须是全限定类名。唯一的限制是文件必须存储在缓存目录中。如果不需要预加载任何东西,则返回一个空数组5.1
方法返回的数组热身()
方法自Symfony 5.1以来已弃用。ob娱乐下载
isOptional ()
方法应返回true,如果可以在不调用此缓存预热器的情况下使用应用程序。在Syob娱乐下载mfony中,默认情况下总是执行可选的暖器(您可以使用——no-optional-warmers
选项)。kernel.cache_warmer
.但是,你也可以手动注册:- YAML
- XML
- PHP
1 2 3 4
服务:应用程序缓存\ \ MyCustomWarmer:标签:-{名称:kernel.cache_warmer,优先级:0}
请注意
的优先级
是可选的,其值为正整数或负整数,默认为0
.数值越高,预热器执行得越早。
谨慎
如果您的缓存温暖器因为任何异常而执行失败,Symfony将不会尝试为下一个请求再次执行它。ob娱乐下载因此,当缓存预热器生成的内容不可用时,您的应用程序和/或包应该做好准备。
1
$PHP bin/console debug:container——tag=kernel.cache_warm . PHP bin/console debug:container——tag=kernel.cache_warm . PHP
EsiFragmentRenderer-创建一个实现FragmentRendererInterface,将其注册为服务,然后标记为kernel.fragment_renderer
.
kernel.terminate事件时,Symob娱乐下载fony将查找任何标记为kernel.reset
标记来重新初始化它们的状态。方法中配置名称的方法可以实现这一点方法
标记的参数。
当在应用服务器中运行项目时,这非常有用,这些应用服务器在请求之间重用Symfony应用程序以提高性能。ob娱乐下载例如,此标记应用于内置数据收集器删除他们所有的信息。
routing.loader:
- YAML
- XML
- PHP
1 2 3
服务:应用\ \ CustomLoader路由:标签:(routing.loader)
有关更多信息,请参见如何创建自定义路由加载器.
- YAML
- XML
- PHP
1 2 3
服务:应用\ \ CustomLoader路由:标签:(routing.loader)
表达式函数提供程序用于路由表达式组件。使用这些提供程序,您可以向路由表达式语言添加自定义函数。
表达式函数提供程序用于安全表达式组件。使用这些提供程序,您可以向安全表达式语言添加自定义函数。
AbstractFactory并扩展您的自定义身份验证侦听器AbstractAuthenticationListener,那么您的自定义身份验证侦听器将自动应用此标记并自动运行。
isGranted ()在Syob娱乐下载mfony的授权检查器上,一个“投票者”系统在幕后被用来决定用户是否应该拥有访问权限。的security.voter
标签允许您将自己的自定义投票人添加到该系统。
有关更多信息,请阅读如何使用选民检查用户权限篇文章。
NormalizerInterface而且DenormalizerInterface.
详情请参见如何使用序列化器.
默认归一化器的优先级可以在registerSerializerConfiguration ()方法。
翻译:更新命令时,它使用提取器从文件中提取翻译消息。默认情况下,Symfony框架有ob娱乐下载一个TwigExtractor和一个PhpExtractor,这有助于从Twig模板和PHP文件中查找和提取翻译键。
您可以通过创建实现的类来创建自己的提取器ExtractorInterface并将服务标记为translation.extractor
.标签有一个必需的选项:别名
,它定义了提取器的名称:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
/ / src / Acme / DemoBundle /翻译/ FooExtractor.php名称空间Acme\DemoBundle\翻译;使用ob娱乐下载\组件\翻译\器\ExtractorInterface;使用ob娱乐下载\组件\翻译\MessageCatalogue;类FooExtractor实现了ExtractorInterface{受保护的$前缀;/** *从模板目录提取翻译消息到编目。* /公共函数提取($目录, MessageCatalogue$目录){/ /……}/** *设置应用于新发现消息的前缀。* /公共函数setPrefix(字符串$前缀){$这->前缀=$前缀;}}
- YAML
- XML
- PHP
1 2 3 4
服务:应用翻译\ \ CustomExtractor:标签:-{名称:translation.extractor,别名:喷火}
译器从模板中提取所有消息后,将执行转储程序以将消息转储到特定格式的翻译文件中。
ob娱乐下载Symfony已经提供了许多转储器:
- CsvFileDumper
- IcuResFileDumper
- IniFileDumper
- MoFileDumper
- PoFileDumper
- QtFileDumper
- XliffFileDumper
- YamlFileDumper
您可以通过扩展创建自己的转储器FileDumper或实现DumperInterface并将服务标记为translation.dumper
.标签有一个选项:别名
这是用来确定应该使用哪个转储器的名称。
- YAML
- XML
- PHP
1 2 3 4
服务:应用翻译\ \ JsonFileDumper:标签:-{名称:translation.dumper,别名:json}
twig.extension.如果你在用默认的服务。yaml的配置,该服务是自动注册和自动标记的。但是,你也可以手动注册:
- YAML
- XML
- PHP
1 2 3 4 5 6 7 8 9
服务:App \树枝\ AppExtension:标签:(twig.extension)#你可以选择定义扩展的优先级(default = 0)。优先级高的扩展被更早地注册。这主要是#用于注册覆盖其他扩展的晚期扩展。App \树枝\ AnotherExtension:标签:[{名称:twig.extension,优先级:-100年})
- YAML
- XML
- PHP
1 2 3 4 5 6 7 8 9
服务:App \树枝\ AppExtension:标签:(twig.extension)#你可以选择定义扩展的优先级(default = 0)。优先级高的扩展被更早地注册。这主要是#用于注册覆盖其他扩展的晚期扩展。App \树枝\ AnotherExtension:标签:[{名称:twig.extension,优先级:-100年})
有关如何创建实际的树枝扩展类的信息,请参见树枝的文档欧宝官网下载app关于这个话题或阅读如何编写一个自定义树枝扩展篇文章。
树枝装载机-FilesystemLoader.如果您需要从其他资源加载Twig模板,您可以为新的加载器创建一个服务并标记它twig.loader
.
如果你使用默认的服务。yaml的配置,由于自动配置,该服务将被自动标记。但是,你也可以手动注册:
- YAML
- XML
- PHP
1 2 3 4
服务:App \树枝\ CustomLoader:标签:-{名称:twig.loader,优先级:0}
请注意
的优先级
是可选的,其值为正整数或负整数,默认为0
.先试数较大的装载机。
惰性加载树枝扩展定义为常规服务,但它们需要标记twig.runtime
.如果你在用默认的服务。yaml的配置,该服务是自动注册和自动标记的。但是,你也可以手动注册:
- YAML
- XML
- PHP
1 2 3
服务:App \树枝\ AppExtension:标签:(twig.runtime)
- YAML
- XML
- PHP
1 2 3
服务:App \树枝\ AppExtension:标签:(twig.runtime)
如何创建自定义验证约束篇文章。
ObjectInitializerInterface接口。然后,标记它与validator.initializer
标签(它没有选项)。
有关示例,请参见DoctrineInitializer
在教义桥里面上课。