- Can I use this bundle in a Laravel project, or is it strictly for Symfony?
- This bundle is designed exclusively for Symfony applications. While Laravel and Symfony share some similarities, this package relies heavily on Symfony’s form system, Stimulus bundle, and EasyAdmin integration, making it incompatible with Laravel out of the box. If you need a Tiptap solution for Laravel, consider alternatives like Spatie’s Laravel packages or standalone frontend implementations.
- What Laravel/Symfony versions does this bundle support?
- The bundle requires **Symfony 7.4+** and **PHP 8.3+**, which aligns with Symfony’s current LTS support. If you’re using an older Symfony version (e.g., 6.x) or PHP 8.2 or below, this bundle will not work. Check your project’s compatibility before installation.
- How do I integrate this with EasyAdmin for a content-heavy admin panel?
- The bundle includes a `TiptapField` specifically for EasyAdmin, which simplifies adding rich-text editors to CRUD interfaces. Just include it in your EasyAdmin configuration like any other field. The bundle handles the Stimulus integration automatically, so no additional frontend setup is required beyond the initial installation command.
- Does this bundle support custom Tiptap extensions like tables or mentions?
- No, the bundle ships with a fixed set of Tiptap extensions (e.g., links, images, basic formatting) and does not provide built-in support for custom extensions like tables or mentions. If you need these, you’ll either have to fork the bundle or implement them manually in your frontend assets, which may require overriding the Stimulus controller.
- What frontend build tools are required, and will it work with Webpack 4?
- This bundle requires **Encore or Vite** for asset compilation, as it relies on modern JavaScript tooling. Webpack 4 is not supported, and attempting to use it may lead to compatibility issues with the generated Stimulus controller or SCSS files. If your project uses Webpack 4, you’ll need to migrate to Vite or Encore first.
- How do I handle image uploads with this bundle?
- The bundle provides optional drag-and-drop and paste-to-upload functionality, but it assumes you already have a backend solution for handling file storage (e.g., **Flysystem** or **VichUploader**). You’ll need to configure your Symfony app to process uploads separately, including validation, storage, and security measures like CORS and file type restrictions.
- Is there a way to customize the toolbar or styling without forking the bundle?
- Customization is limited due to the bundle’s hardcoded Stimulus namespace and SCSS structure. You can override the default toolbar or styles by extending the generated `tiptap_editor_controller.ts` and `tiptap_editor.scss` files in your project’s assets directory. However, deep customization (e.g., adding new extensions) may require modifying the bundle’s source or using a different approach.
- What happens if I don’t have `symfony/stimulus-bundle` installed?
- The bundle’s installation command (`php bin/console besmartand-pro:tiptap-editor:install`) will fail if `symfony/stimulus-bundle` is missing. This is a hard dependency, so you must install it first via Composer (`composer require symfony/stimulus-bundle`). The bundle does not support alternative frontend architectures like Alpine.js or standalone JavaScript.
- Are there any known issues with Bootstrap Icons or CSS conflicts?
- The bundle includes **Bootstrap Icons** as a dependency, which may conflict with existing CSS frameworks like **Tailwind** or **Bootstrap** if they also use icon libraries. To avoid conflicts, inspect your project’s CSS and either exclude Bootstrap Icons from the bundle’s SCSS or override its styles in your global CSS file.
- How do I test this bundle in a CI/CD pipeline or staging environment?
- Since the bundle requires frontend dependencies (`@tiptap/*` and `bootstrap-icons`), ensure your CI/CD pipeline installs these packages (e.g., via `npm install` or `pnpm install`) before running tests. The backend components (Symfony form types and Stimulus controller) can be tested independently, but full integration tests will need a working frontend build. Use Symfony’s `kernel.test` environment for backend testing.