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

Xrowvideo Bundle Laravel Package

xrow/xrowvideo-bundle

xrow/xrowvideo-bundle is a Symfony bundle for integrating video functionality into eZ Platform/IBexa projects, providing video field types, content handling, and playback support to streamline embedding and managing video content within your CMS.

View on GitHub
Deep Wiki
Context7

Getting Started

Start by adjusting expectations: xrow/xrowvideo-bundle is not a Laravel package. It is a deprecated eZ Publish 5 (eZ5) legacy bundle that registers the xrowVideo custom datatype for the eZ5 content model. There is no service provider for Laravel, no facade, no config file you can php artisan vendor:publish, and no HTTP/queue/Eloquent integration. A Laravel developer cannot "leverage" it day-to-day in a Laravel application — the only realistic audience is someone maintaining an eZ Publish 5 site that already stores xrowVideo content-class attributes.

If you are in that narrow situation, the first steps are:

  1. Read composer.json and the bundle class first — confirm the required eZ Publish/Symfony version (this is Symfony 2.x-era eZ5, not eZ Platform/Ibexa).
  2. composer require xrow/xrowvideo-bundle inside the eZ5 project (not a Laravel project).
  3. Register the bundle in ezpublish/EzPublishKernel.php (or app/AppKernel.php) if it is not auto-loaded.
  4. Clear caches — eZ5 caches datatype/INI aggressively: php ezpublish/console cache:clear and clear the legacy var/cache and var/<site>/cache.
  5. Verify a content class with an xrowVideo attribute exists and can be edited in the admin UI.

First meaningful use case: rendering an existing xrowVideo attribute in an eZ5 template via the usual ez_... fetch/template operators, or reading it from a custom controller. If you have no eZ5 codebase, stop here — this package has nothing to offer a Laravel app.

Implementation Patterns

The package follows eZ Publish extension conventions, not Laravel ones. The patterns you will actually touch are:

  • Datatype registration — the bundle ships the xrowVideo datatype definition, handler, and type converter. This is wired through legacy extension paths (extension/xrowvideo/...) and eZ INI/datatype configuration, not Laravel config.
  • Content-class workflow — define an xrowVideo attribute on a content class, store video/embed metadata through the eZ object model, and render it in eZ templates. There is no Eloquent-style model; content is an eZ Content/ContentObjectAttribute tree.
  • Template rendering — use eZ template operators/fetch functions in .tpl files. If you want to expose the same field to a Laravel/API consumer, you must read it out of eZ (REST API, legacy stack, or direct DB) yourself.
  • Bridge pattern (if you must mix stacks) — run eZ5 as a separate backend, expose xrowVideo fields over an HTTP endpoint or nightly export, then normalize into a real Laravel model (Media/Video with a JSON column or dedicated table). Do not attempt to load this bundle into Laravel to get the data — extraction is the integration.
  • Migration pattern — treat xrowVideo as a source schema: dump attributes, map them to a Laravel video JSON column or a videos table with provider, url, embed_html, poster, then re-implement playback in Blade. This is the only "day-to-day leverage" that makes sense.

Gotchas and Tips

  • Deprecated and unmaintained since 2016. Zero stars, zero dependents, no tests, no security process. Do not adopt it for new work; assume it is frozen.
  • PHP/Symfony incompatibility risk. Code from the eZ5/Symfony 2 era will likely fail on PHP 7.4+/8.x. Expect fatal errors from old signatures and removed APIs if you try modern runtimes.
  • eZ5 itself is EOL. The successor line is eZ Platform/Ibexa. This custom datatype has no continuation there, so migration is the real long-term path regardless.
  • Cache and registration quirks. Missing datatype registration, wrong bundle ordering, or a stale var/cache produces silent "unknown datatype" behavior. Always clear both Symfony and legacy eZ caches after any change.
  • Legacy logging. Debug via eZ5's var/log/ezpublish.log and Symfony logs; use eZDebug::writeDebug() in legacy code. Standard Laravel Log:: calls will not exist here.
  • No Laravel extension points. There is no container binding, event, or middleware to hook. Any customization happens in eZ datatype handlers/templates, which is exactly the code you should be migrating away from.
  • If you inherit it: contain it. Pin the exact composer version, keep it behind an eZ5 service boundary, and prioritize an extraction + re-implementation in Laravel (video provider + JSON/relational storage + Blade partial) over any attempt to extend the bundle.
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.
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package