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

Url Field Type Laravel Package

anomaly/url-field_type

Anomaly URL Field Type adds a URL field type for Laravel Streams, letting you capture, validate, and display website links in control panels and forms with a simple, focused input field.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. This is not a general-purpose Laravel package. anomaly/url-field_type is a Streams Platform addon (the framework underlying PyroCMS 3.x) that contributes exactly one field type: a class extending the platform's FieldType base, a presenter, a config file, and a pair of Twig views for form input and output rendering, plus translations. It registers through the platform's addon service provider / auto-discovery mechanism and appears in the field-type picker once installed. Its architectural coupling is to the Streams field-type contract and to Twig — not to Laravel directly. Fit is therefore binary: correct and idiomatic if we run Streams/PyroCMS, entirely inert otherwise. There is no standalone Laravel integration path.

Integration feasibility. Straightforward where it applies. Adoption is composer require anomaly/url-field_type, then assigning the field to a stream; storage is a single string column, no package-owned migrations. Configured display options (link text, target, rel, CSS class) are the likely customization surface. Realistic effort is hours, dominated by verification rather than implementation.

Technical risk. The dominant risk is project health, not code quality. One star, zero dependents, and no visible release cadence indicate an effectively unmaintained micro-package. It was authored in the Laravel 5.x/6.x-era Streams generation, so Composer platform constraints may block installation on current PHP 8.x / Laravel 9+ stacks without a fork. Mitigating that: the code surface is small enough to audit fully in an afternoon, and MIT licensing permits forking or vendoring. The security-relevant surface is URL acceptance and rendering — validation historically relies on Laravel's url rule, which does not uniformly exclude dangerous schemes, and output rendering must guard against javascript:/data: URLs and apply rel="noopener noreferrer" for target="_blank".

Key questions.

  • Are we actually running Streams Platform / PyroCMS, and at which major version, PHP version, and Laravel constraint?
  • Is the requirement data capture only, or link rendering with title text, target/rel control, and analytics attributes?
  • Where is scheme/host allowlisting enforced — field type, form request, or downstream consumer?
  • Do we fork/vendor, reimplement in-house, or accept an unmaintained dependency?
  • Do URLs need normalization (protocol defaulting, trailing-slash policy) or should they be stored opaquely?

Integration Approach

Stack fit. Gate the decision on anomaly/streams-platform in the application's composer.json. If present, the field type is additive and low-friction. If absent, stop — there is nothing here to reuse, and a plain url validation rule plus a Blade/Twig partial covers the same ground in an hour.

Migration path. Three viable routes, in order of preference: (1) fork and vendor under our namespace, pinning and owning a ~200-line package we can patch; (2) reimplement as an in-house field type using the same Streams base class — genuinely cheap at this scope and it eliminates supply-chain ambiguity; (3) adopt upstream as-is if constraints resolve cleanly and the package is only used for straightforward link capture. A useful escape hatch in all cases: a plain string field type with an accessor/presenter delivers most of the value if rendering options are modest.

Compatibility. Verify the package's Composer platform constraints against our PHP/Laravel/PyroCMS versions before committing. Confirm the Streams field-type API surface it targets matches our platform release (this contract has moved across Streams versions), and that its config keys map to the UI we intend to expose. Test that its Twig views resolve under our theme.

Sequencing. Inventory existing streams and fields with URL semantics → trial install on a scratch branch → smoke-test the full path (form input and validation, table listing, output rendering, and programmatic entry creation via API, where field-type validation is frequently bypassed) → decide adopt vs. fork vs. replace → pin the exact version in composer.lock and record the decision in the dependency register with an explicit owner.

Operational Impact

Maintenance. Ongoing code maintenance is near zero; ongoing risk management is not. No upstream party is patching this. Budget a recurring review triggered by PHP, Laravel, or PyroCMS upgrades, or make a one-time fork decision that converts an external dependency into internal code.

Support. No vendor support, no meaningful community documentation, minimal issue history given the star count. Internal ownership is mandatory — any defect becomes ours to diagnose, and there is no upstream to escalate to.

Scaling. Negligible. This is a validation and rendering helper: one string column and one validation rule per submission. There are no runtime performance characteristics worth modeling at any realistic volume.

Failure modes.

  • Composer resolution failure after a platform upgrade, blocking builds until forked or replaced.
  • Validation gaps permitting non-http(s) schemes, creating a stored-XSS vector at render time.
  • View/API breakage if platform internals shift, surfacing as blank or malformed output rather than loud errors.
  • Data-quality drift from unnormalized URLs, producing broken links once downstream consumers assume a scheme or slash convention.
  • Bus factor / availability: repository archived or package removed from Packagist.

Ramp-up. Low for a Laravel developer already fluent in Streams — the package is fully readable in under an hour. The real onboarding cost is Streams Platform literacy (field types, addon registration, Twig views), which the team needs regardless to operate PyroCMS. Framed correctly, adopting this package is a small convenience, not an architectural commitment; the decision should be made on ownership grounds rather than on capability, since the capability itself is trivially reproducible.

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.
skyraptor/chatter
edlugz/sasapay
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