Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Field Types Bundle Laravel Package

xrow/field-types-bundle

xrow/field-types-bundle offers reusable field type definitions for PHP applications, helping developers register and manage custom fields with less boilerplate. Adoption and documentation are limited, so evaluate fit carefully before use.

View on GitHub
Deep Wiki
Context7

Getting Started

Before writing a single line of integration code, confirm what you are actually installing. xrow/field-types-bundle is a Symfony bundle for eZ Publish / eZ Platform, not a Laravel package. There is no ServiceProvider, no Facade, no config/*.php to publish, and no Artisan command. Composer will happily install it into vendor/, but Laravel's container will never instantiate the bundle class, so nothing happens at runtime.

The first place to look is the package's own composer.json — check type (symfony-bundle), the require block (it will pull in old ezsystems/ezpublish-kernel style dependencies), and the autoload PSR-0/PSR-4 mapping. Then read the bundle class under src/ (historically lowercase, e.g. xrowFieldTypesBundle) and Resources/config/, which is where the datatype service wiring lives. That is the entirety of the package.

Your first "use case" as a Laravel developer is almost never a greenfield one. It is: you have inherited a legacy eZ Platform codebase (Symfony 2/3 era) that already lists this bundle, or you are evaluating whether it belongs in a new app. In the second case the answer is no — do not add it. If you need custom field types in Laravel, reach for a JSON/EAV column with an Eloquent cast, spatie/laravel-schemaless-attributes, or a dedicated form-builder package. There is no bridging story from eZ datatypes to Laravel.

Implementation Patterns

In its native habitat (eZ Platform): the bundle fixes custom xrow datatypes exposed by various xrow extensions. The day-to-day pattern is registration, not coding — enable it in app/AppKernel.php (new xrow\FieldTypesBundle\xrowFieldTypesBundle()), make sure the corresponding xrow extension(s) and content classes exist, then clear caches and regenerate legacy autoloads (php bin/php/ezpgenerateautoloads.php, ezcache). After that the datatypes render correctly in the admin UI and legacy stack. You rarely touch this bundle's code directly; you extend the underlying datatype classes instead.

In a Laravel app: there is no idiomatic pattern, and that is the honest assessment. The package is inert. Two things you can legitimately do:

  1. Audit and remove. Run composer why xrow/field-types-bundle and grep -r "xrow" across app/, config/, and composer.json. If nothing references it, composer remove it. This is the most common real-world task.
  2. Vendor-extract if you truly need a class. The datatype PHP classes can be copied into app/Support/, but they inherit from eZ kernel types, so you would need to stub or replace those dependencies. This is a multi-day porting exercise, not an integration. Only do it if the field logic itself is the valuable asset.

Version-pinning matters either way. The 2017 release targets an EOL Symfony/kernel line; a Symfony 5/6 or Laravel 10/11 app will not boot the bundle. If legacy eZ is genuinely your target, pin it exactly and treat it as frozen.

Gotchas and Tips

  • The class name is lowercase. xrowFieldTypesBundle violates PSR-4 expectations; on case-sensitive filesystems (Linux CI, Docker) autoloading will fail if you "correct" the casing. Leave it.
  • php artisan vendor:publish silently does nothing. No publishes, no migrations, no assets. Don't debug an invisible publish step — there isn't one.
  • No Laravel discovery. composer dump-autoload and php artisan optimize:clear will not register anything. The bundle is dead weight in a Laravel process.
  • Abandoned since 2017, 1 star, 0 dependents. Treat it as unmaintained. Fork and vendor ("repositories": [{"type": "vcs", ...}]) rather than relying on Packagist, and pin the commit.
  • PHP constraint caps. Expect the composer.json to require PHP 5.6/7.x-era extensions; modern PHP 8.2+ installs will conflict. Use --ignore-platform-reqs only as a last resort, never in production.
  • Debugging in Symfony: bin/console debug:container --tag=ezpublish.fieldType, cache:clear, and check that the legacy settings files reference your xrow extension. Debugging in Laravel: composer show xrow/field-types-bundle — if it's there and unused, delete it.
  • Extension point: if you do need custom behavior, extend the datatype classes and register your own tagged service. Do not patch this bundle's internals; it is not maintained enough to carry your diffs.
  • Security audit before use. A 2017 dependency with no updates is a supply-chain liability; review it before letting it near a production autoloader.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums