letkode/form-options-bundle
Composer 安装命令:
composer require letkode/form-options-bundle
包简介
Attribute-driven form options registry and endpoint for Symfony applications
README 文档
README
Attribute-driven form options registry and endpoint for Symfony applications.
Allows any service to expose named option sets via a #[FormOption] PHP Attribute, which are then discoverable at runtime through a single REST endpoint.
Installation
composer require letkode/form-options-bundle
Symfony Flex will register the bundle automatically. If not using Flex, add it manually:
// config/bundles.php return [ Letkode\FormOptionsBundle\LetkodeFormOptionsBundle::class => ['all' => true], ];
Import the routes to expose the endpoint:
# config/routes/letkode_form_options.yaml letkode_form_options: resource: '@LetkodeFormOptionsBundle/config/routes.yaml'
Usage
1. Mark a service as a provider
use Letkode\FormOptionsBundle\Attribute\FormOption; use Letkode\FormOptionsBundle\Attribute\FormOptionMethod; #[FormOption(alias: 'countries')] final class CountryRepository extends ServiceEntityRepository { #[FormOptionMethod(alias: 'active')] public function findActiveAsOptions(): array { return $this->createQueryBuilder('c') ->select('c.uuid, c.code, c.name') ->where('c.active = true') ->getQuery() ->getArrayResult(); } }
2. Fetch options via the API
GET /api/form-options/countries/active
[
{ "uuid": "...", "code": "CL", "name": "Chile" },
{ "uuid": "...", "code": "AR", "name": "Argentina" }
]
How it works
LetkodeFormOptionsBundle::build()callsregisterAttributeForAutoconfiguration()so any service annotated with#[FormOption]is automatically tagged asletkode.form_options.provider.FormOptionRegistrycollects all tagged providers via#[AutowireIterator].FormOptionsControllerresolves provider + method by alias and returns the result as JSON.
Requirements
- PHP
^8.4 - Symfony
^7.0 || ^8.0
License
MIT — see LICENSE.
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 4
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-06-19