besmartand-pro/tiptap-editor
Composer 安装命令:
composer require besmartand-pro/tiptap-editor
包简介
Reusable Symfony Tiptap editor bundle with optional EasyAdmin integration and Flysystem uploads.
README 文档
README
Reusable Symfony bundle with a compact Tiptap-based editor for classic Symfony forms and optional EasyAdmin integration.
It ships with:
BeSmartAndPro\TiptapEditorBundle\Form\Type\TiptapTypeBeSmartAndPro\TiptapEditorBundle\EasyAdmin\Field\TiptapField- a Stimulus controller namespace:
besmartand-pro--tiptap-editor - a compact icon-based toolbar with hover tooltips
- optional image uploads, including drag and drop and paste from clipboard
Requirements
- PHP
^8.3 - Symfony
^7.4 symfony/stimulus-bundle- a frontend build using Encore or Vite
- these frontend packages in the host app:
@tiptap/core@tiptap/starter-kit@tiptap/extension-image@tiptap/extension-link@tiptap/extension-placeholder@tiptap/extension-strike@tiptap/extension-underlinebootstrap-icons
Installation
composer require besmartand-pro/tiptap-editor php bin/console besmartand-pro:tiptap-editor:install
Then refresh frontend dependencies with your package manager:
pnpm install
or:
npm install
or:
yarn install
What The Install Command Does
php bin/console besmartand-pro:tiptap-editor:install is the "make it work in a real app" step.
It will:
- check whether
symfony/stimulus-bundleis installed - inspect
package.json - add missing Tiptap and
bootstrap-iconsdependencies - detect
webpack.config.jsorvite.config.* - create
assets/controllers/besmartand_pro/tiptap_editor_controller.ts - create
assets/styles/besmartand_pro_tiptap_editor.scss - try to import the stylesheet into a likely frontend entry file
- scaffold
config/packages/besmartand_pro_tiptap_editor.yaml - scaffold
config/routes/besmartand_pro_tiptap_editor.yaml
The generated frontend files are copied into the host app instead of importing TS or SCSS through vendor/, which keeps both Vite and Encore builds stable.
If your project layout is unusual, the copied asset files are still enough to wire things manually.
Symfony Flex
This bundle is ready for a Symfony Flex recipe, but Flex should be treated as the first half of the setup, not the whole installer.
Recommended approach:
- Flex recipe copies config, routes and asset bridge files into the host app
- the bundle install command finishes the smart bits like dependency checks and frontend entry imports
The included flex-recipe/ directory is a starter recipe template for publishing to your own Flex recipes repository or to symfony/recipes-contrib.
Encore
The install command will try to add:
import './styles/besmartand_pro_tiptap_editor.scss';
to a likely entry file such as assets/admin.ts or assets/app.ts.
Your Stimulus bootstrap should keep scanning assets/controllers.
The bundle stylesheet imports Bootstrap Icons using:
@import "bootstrap-icons/font/bootstrap-icons.css";
This works with Vite and with current Encore/Webpack setups. Legacy ~bootstrap-icons/... imports can still exist in host applications if their loader configuration supports them, but the bundle itself uses the bundler-neutral form so it can build cleanly in both environments.
Vite
The install command will try to add the same stylesheet import to a likely Vite entry such as assets/main.ts or assets/app.ts.
Your Stimulus bootstrap should still expose controllers from assets/controllers.
If you installed an older bundle version that generated vendor/... bridge imports, rerun:
php bin/console besmartand-pro:tiptap-editor:install
The installer will replace those legacy bridge files with local copied assets that Vite can build reliably.
Uploads
Uploads are optional.
If upload config is missing or disabled:
- the editor still works
- image upload buttons are hidden
- drag and drop image uploads are disabled
- paste-from-clipboard uploads are disabled
Example with Oneup Flysystem:
besmartand_pro_tiptap_editor: default_placeholder: 'Wpisz treść...' upload: enabled: true filesystem_service: 'oneup_flysystem.images_filesystem' public_url_prefix: '/cdn/images' security_attribute: 'ROLE_ADMIN' max_file_size: 8388608
The configured service only needs to expose writeStream(), so any Flysystem-compatible filesystem service is enough.
Usage
Symfony Form
use BeSmartAndPro\TiptapEditorBundle\Form\Type\TiptapType; $builder->add('content', TiptapType::class, [ 'tiptap_placeholder' => 'Wpisz treść...', ]);
EasyAdmin
use BeSmartAndPro\TiptapEditorBundle\EasyAdmin\Field\TiptapField; yield TiptapField::new('content', 'Treść') ->setPlaceholder('Wpisz treść...');
besmartand-pro/tiptap-editor 适用场景与选型建议
besmartand-pro/tiptap-editor 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 50 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 04 月 08 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 besmartand-pro/tiptap-editor 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 besmartand-pro/tiptap-editor 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 50
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 50
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: proprietary
- 更新时间: 2026-04-08