承接 letkode/form-options-bundle 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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() calls registerAttributeForAutoconfiguration() so any service annotated with #[FormOption] is automatically tagged as letkode.form_options.provider.
  • FormOptionRegistry collects all tagged providers via #[AutowireIterator].
  • FormOptionsController resolves 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
  • 点击次数: 3
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-06-19

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固