- What is maalls/heisig-bundle used for?
- It is a Symfony bundle that packages James Heisig's Remembering the Kanji study data: kanji indexed by Heisig frame number and lesson, plus keyword and primitive lookups. You use it to build flashcards, lesson-based study sessions, or reference tools inside a PHP application. It ships the data model, lookup helpers, and Twig-ready UI scaffolding rather than a finished app, so you supply the review workflow.
- Can I use maalls/heisig-bundle in a Laravel application?
- It is written as a Symfony bundle, so it is not Laravel-native: there is no Laravel service provider, facade, or config publishing. You can still consume its models and kanji data from Laravel, but expect to handle autoloading, configuration, and any Twig templates yourself, and to resolve Symfony dependencies. For a Laravel-first project, weigh whether pulling in Symfony components is worth it versus a thin custom model over an RTK dataset.
- How do I install maalls/heisig-bundle with Composer?
- Require the package with Composer using the maalls/heisig-bundle name, then register the bundle in your Symfony kernel or bundles.php as described in the repository. Check the repo for supported Symfony and PHP versions plus any peer packages before running the install. Pin to a tagged release where one exists so future updates do not break your study app.
- Which Symfony versions does the bundle support?
- The bundle targets Symfony applications, and its composer.json defines the supported framework and PHP constraints; verify those on Packagist or in the repository before installing. If you are on a recent Symfony major release, test on a branch first, because smaller bundles often lag behind new versions. There is no Laravel-specific version support to rely on.
- How is the kanji data organized by Heisig frame and lesson?
- Each kanji is stored with its Heisig frame number and the Remembering the Kanji lesson it belongs to, so you can query characters by frame for ordered study or by lesson for curriculum-based sessions. That structure also supports progress tracking, since you can mark frames or whole lessons as complete. Exact entity names and repository methods are documented in the bundle source.
- Does the bundle include keyword and primitive lookup?
- Yes, keyword and primitive lookup across the RTK set is listed as a core feature alongside frame and lesson indexing. That lets you build search screens, reference views, or review prompts that match Heisig's keywords and primitive elements. The lookup helpers live in the bundle's model and repository layer, so you can call them from your own controllers or services.
- Are Twig templates included for the user interface?
- The bundle provides Symfony bundle configuration with Twig-ready templates and UI scaffolding, giving you a starting point for review screens instead of building everything from scratch. In Laravel you would need a Twig bridge or would port the templates to Blade. Expect to customize the markup and layout to match your own design and study flow.
- Can I build a flashcard or spaced-repetition app on top of it?
- Yes, the stated use cases are flashcards, lesson-based study sessions, and reference tools, and the frame and lesson structure gives you the ordering review queues need. The bundle supplies kanji data and lookups, but scheduling logic such as SRS intervals and per-user progress storage is yours to implement. It works best as the data layer beneath your own review application.
- How should I test an integration with maalls/heisig-bundle?
- Write feature tests that boot the bundle in a Symfony test kernel, load fixture data, and assert that lookups by frame, lesson, keyword, and primitive return the expected kanji. If you consume the models from Laravel, test autoloading and any custom repositories you add. Keep a small known set of kanji as fixtures so the suite stays fast and deterministic.
- Is maalls/heisig-bundle actively maintained, and what are the alternatives?
- Check the repository's commit history, open issues, and last release date before committing, since small study-data bundles can go quiet for long stretches. Alternatives include exporting RTK data from community datasets or Anki RTK decks, kanjidic-based packages, or mapping Heisig frame numbers into your own schema. If you need Laravel-native tooling, a thin custom model over an RTK dataset is often simpler than integrating a Symfony bundle.