makeplus/sftinymce
Composer 安装命令:
composer require makeplus/sftinymce
包简介
Bundle Symfony 7.4 para integrar TinyMCE con gestor de archivos y AssetMapper.
README 文档
README
Bundle Symfony 7.4 para integrar TinyMCE como tipo de formulario, con soporte AssetMapper por defecto y adaptadores opcionales previstos para Webpack Encore, Symfony UX / Stimulus y WebLink.
Requisitos
- PHP 8.2 o superior
- Symfony 7.4
- Composer
Dependencias principales ya incluidas: TinyMCE (vía tinymce/tinymce), Doctrine ORM 3.6, componentes Form, Twig, Translation, Security y AssetMapper.
Instalación
Instalar dependencias PHP:
composer installCompilar el asset map cuando sea necesario:
bin/console asset-map:compileLimpieza de caché recomendada tras cambios en la configuración del bundle:
bin/console cache:clear
Configuración del bundle
Las opciones de config/packages/makeplus_tinymce.yaml permiten ajustar el comportamiento del bundle:
makeplus_tinymce:
default_profile: default
profiles:
default:
toolbar: null
plugins: []
file_manager_enabled: false
language: null
options: []
file_manager:
toolbar: "undo redo | styles | bold italic underline | alignleft aligncenter alignright | link image media | code"
plugins: ['link', 'image', 'media', 'code']
file_manager_enabled: true
file_manager: documents
file_manager_overrides:
image: media_library
language: null
security_roles: []
options:
height: 420
file_picker_types: 'file image media'
file_manager_path: 'articles'
file_manager:
enabled: true
base_route_prefix: "/makeplus/tinymce/file-manager"
default_template: "@MakeplusTinyMce/file_manager/browser.html.twig"
default_manager: media_library
managers:
media_library:
storage: media_storage
route_segment: media
default_path: "articles"
template: "@MakeplusTinyMce/file_manager/browser.html.twig"
upload:
allowed_mime_types: ['image/png', 'image/jpeg', 'image/gif']
max_file_size: 5242880
documents:
storage: documents_storage
route_segment: documents
default_path: "docs"
template: "@App/documents/file_manager.html.twig"
upload:
allowed_mime_types: ['application/pdf']
max_file_size: 10485760
storage:
default_adapter: media_storage
adapters:
media_storage:
service: Makeplus\TinyMceBundle\Service\FileStorage\LocalStorageService
options:
relative_path: "public/uploads/tinymce_media"
public_prefix: "/uploads/tinymce_media"
documents_storage:
service: Makeplus\TinyMceBundle\Service\FileStorage\DatabaseStorageService
options:
relative_path: "public/uploads/tinymce_documents"
public_prefix: "/uploads/tinymce_documents"
table_name: "makeplus_tinymce_documents"
default_profile: nombre del perfil aplicado cuando el formulario no especifica otro.profiles.<nombre>.toolbar: cadena onullcon la barra de herramientas de TinyMCE.profiles.<nombre>.plugins: lista de plugins a cargar.profiles.<nombre>.file_manager_enabled: habilita el file manager para el perfil.profiles.<nombre>.file_manager: alias del gestor configurado enfile_manager.managersque se usará por defecto.profiles.<nombre>.file_manager_overrides.<tipo>: permite asignar gestores distintos según el tipo solicitado por TinyMCE (file,image,media).profiles.<nombre>.language: código de idioma TinyMCE onullpara heredar el locale de Symfony.profiles.<nombre>.options: arreglo asociativo de opciones adicionales que se fusionan con la configuración base del tipo de formulario.file_manager.enabled: activa o desactiva el gestor de archivos globalmente.file_manager.base_route_prefix: prefijo común para las rutas generadas por el controlador del gestor.file_manager.default_template: ruta de la plantilla Twig utilizada cuando un gestor no define una propia.file_manager.default_manager: alias del gestor a utilizar cuando un perfil no declarefile_manager.file_manager.managers.<alias>.storage: adaptador configurado enstorage.adaptersque manejará los archivos del gestor.file_manager.managers.<alias>.route_segment: segmento de ruta que se añade al prefijo para diferenciar cada gestor.file_manager.managers.<alias>.default_path: carpeta inicial que abrirá el navegador de archivos.file_manager.managers.<alias>.template: plantilla Twig específica para renderizar la interfaz del gestor.file_manager.managers.<alias>.security.roles: lista de roles Symfony requeridos para acceder a este gestor.file_manager.managers.<alias>.upload.allowed_mime_types: lista de tipos MIME aceptados en las subidas.file_manager.managers.<alias>.upload.max_file_size: tamaño máximo de archivo en bytes.storage.default_adapter: adaptador utilizado cuando un gestor no especifica otro o para operaciones por defecto.storage.adapters.<nombre>.service: identificador de servicio (o clase) que implementaFileStorageInterface.storage.adapters.<nombre>.options.relative_path: ruta interna donde se almacenarán los archivos del adaptador.storage.adapters.<nombre>.options.public_prefix: prefijo público usado para exponer los archivos mediante AssetMapper o servidor web.storage.adapters.<nombre>.options.table_name: (opcional) nombre de tabla cuando se usa el almacenamiento basado en base de datos.
Adaptadores de almacenamiento
Makeplus\TinyMceBundle\Service\FileStorage\LocalStorageService: almacenamiento en disco sin estado adicional. Soporta paginación básica y búsquedas sobre los nombres de archivo.Makeplus\TinyMceBundle\Service\FileStorage\DatabaseStorageService: combina almacenamiento en disco con persistencia de metadatos vía Doctrine DBAL (table_name,relative_pathypublic_prefixconfigurables). La tabla se crea automáticamente si no existe y las consultaslist/searchdevuelven metadatos paginados.
Uso del formulario
use Makeplus\TinyMceBundle\Form\Type\TinyMceType;
$builder->add('content', TinyMceType::class, [
'profile' => 'default',
'security_roles' => ['ROLE_EDITOR'],
'options' => [
'height' => 500,
'branding' => false,
],
]);
- El atributo
data-makeplus-tinymce-configdel campo contiene la configuración resolviendo perfil, plugins, toolbar, idioma, roles y opciones adicionales listo para el controlador front-end (Stimulus/UX previsto). - Si
file_manager_enabledes verdadero, el bundle añade automáticamente el selector de archivos y el handler de subidas: bastará con definir los roles necesarios (víasecurity_rolesdel formulario o los roles globales configurados) para que TinyMCE abra el gestor integrado. - El bundle detecta automáticamente la presencia del tipo y añade los scripts y estilos de TinyMCE antes de cerrar el
<body>, sin necesidad de bloques Twig adicionales.
Demo incluida
- Ruta disponible:
/demo/tinymcerenderizaDemoSimpleArticleTypecon TinyMCE y muestra una vista previa HTML tras el envío. - Ruta adicional:
/demo/tinymce_files_pathutilizaDemoFilePathArticleType, habilita el gestor de archivos y conserva la vista previa con el mismo template. - Los controladores
App\Controller\DemoSimpleControlleryApp\Controller\DemoFilesPathControllerjunto al DTOApp\Dto\DemoArticlepermiten probar la integración sin persistencia. - La plantilla
templates/demo/tinymce.html.twigse limita a renderizar el formulario; el bundle inyecta los assets de TinyMCE automáticamente mediante AssetMapper preservando la estructura original. - Ajustá perfiles y opciones en
config/packages/makeplus_tinymce.yamly recargá la ruta para verificar los cambios de toolbar, plugins o idioma.
Gestor de archivos
- El bundle registra rutas bajo
config/routes/makeplus_tinymce.yaml; el prefijo se controla confile_manager.base_route_prefixy el navegador HTML se sirve en la ruta/browser. - Se valida tamaño y tipo de archivo según
file_manager.upload, ydefault_pathfija el directorio inicial que abre el navegador. - Roles admitidos: se pueden enviar como
roles[]=ROLE_EDITORen la query (o enviarse automáticamente desde el campo) o reutilizar los roles globales configurados. - Al marcar
file_manager_enabled, el bundle añadefile_picker_callbackeimages_upload_handlerpor defecto: se abre una ventana dedicada para seleccionar archivos y las subidas usan el adaptador configurado. - La ventana del gestor ahora permite buscar por texto en el árbol y navegar entre resultados paginados; los endpoints REST devuelven la clave
paginationcon metadatos (page,per_page,pages,total). - Las anulaciones declaradas en
file_manager_overridespermiten que acciones concretas (ej. insertar enlaces vs. imágenes) se resuelvan contra gestores distintos sin duplicar perfiles.
Assets TinyMCE
- La extensión del bundle añade automáticamente
vendor/tinymce/tinymceal AssetMapper, exponiéndolo bajo el namespacemakeplus/tinymce. - Para consumirlo desde Twig o JS, referenciar las rutas generadas por AssetMapper (
@makeplus/tinymce, etc.). - El bundle decora el
MappedAssetFactorypara publicar los archivos de TinyMCE sin digest, conservando la estructura de carpetas esperada por el cargador interno de TinyMCE. - Un suscriptor HTTP detecta la presencia de campos TinyMCE y emite el paquete de scripts y estilos justo antes de
</body>, garantizando la carga automática. - Se provee la función Twig
makeplus_tinymce_package_path()para obtener la ruta absoluta del paquete cuando se requiera servir assets directamente.
Pruebas
Ejecutar la suite PHPUnit:
./vendor/bin/phpunitSe incluye un test unitario para
TinyMceTypeque valida la fusión de perfiles y opciones.Estructura Cypress inicial disponible en
tests/cypress/(añadir pruebas end-to-end y configurarpackage.jsonsegún necesidades del proyecto consumidor).
makeplus/sftinymce 适用场景与选型建议
makeplus/sftinymce 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 6 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 01 月 11 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「symfony」 「bundle」 「wysiwyg」 「tinymce」 「richtext」 「filestorage」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 makeplus/sftinymce 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 makeplus/sftinymce 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 makeplus/sftinymce 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
2lenet/EasyAdminPlusBundle
The bundle for easy using json-rpc api on your project
Provide a way to secure accesses to all routes of an symfony application.
DMS Meetup API Bundle, enables Meetup API clients in services
Bundle Symfony DaplosBundle
WYSIWYG editor for Yii2 based on Bootstrap 3
统计信息
- 总下载量: 6
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 30
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-01-11