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

Dialect Laravel Package

darrylkuhn/dialect

Dialect is a Laravel package for managing translations in the database. It scans your app for missing keys, provides a web UI for adding and editing translations, and helps keep localization strings organized without manually editing language files.

View on GitHub
Deep Wiki
Context7

Provides JSON datatype support for the Eloquent ORM

Frequently asked questions about Dialect
How do I install darrylkuhn/dialect in a Laravel application?
Install it with Composer by running composer require darrylkuhn/dialect, then apply the package's trait or model behavior to the Eloquent model that owns your JSON column. It is a single-dependency MIT package, so installation itself is trivial and adoption is per-model. The main caveat is that the last release was in 2021, so Composer may report constraint conflicts on current Laravel and PHP versions.
Which Laravel and PHP versions are supported by dialect?
The package's last release was 2021-08-18, which predates several Laravel major versions and PHP 8.2/8.3. Check its composer.json against your pinned Laravel and PHP matrix before adopting it. On current Laravel LTS, expect composer require constraints to conflict unless you ignore platform requirements or maintain a fork.
How do I cast a JSON column to an array in Eloquent without dialect?
Use native Laravel attribute casting: protected $casts = ['payload' => 'array'] encodes on write and decodes on read. For mutable nested updates use AsArrayObject, and for collections use AsCollection. Pair that with the json() migration column type and whereJsonContains for queries, which covers the same ground dialect was built for.
Is darrylkuhn/dialect still maintained?
No releases have been published since August 2021, and the project has a single maintainer and roughly 126 stars. That means a thin community surface for bug triage and a real bus factor if you need patches. Treat it as an unmaintained compatibility shim rather than a long-term dependency.
Does dialect work with MySQL, MariaDB, Postgres, and SQLite JSON columns?
JSON behavior differs across MySQL 5.7/8, MariaDB, Postgres jsonb, and SQLite, especially around nulls, numeric precision, and unicode. The package's encode/decode layer is generally portable, but any helper that emits raw JSON path syntax may lock you to one engine. Test each target engine version and column type before relying on it.
What is a good alternative to dialect for JSON data in Laravel?
Laravel's native casts and query helpers are the direct alternative: $casts with array, AsArrayObject, or AsCollection, plus whereJsonContains, whereJsonLength, and where('col->key', ...). The json() migration column type declares the column correctly on MySQL and Postgres. For most greenfield apps, native casting satisfies the requirement fully.
Can dialect break Eloquent dirty tracking or model events?
Because the package maps JSON on read and write, any override of getAttribute or setAttribute can affect isDirty(), wasChanged(), mass assignment, and model events. Laravel's Eloquent internals have changed since 2021, so an unmaintained casting override may silently misbehave. Add tests that assert dirty-tracking and event behavior before and after adoption, especially if auditing depends on it.
How do I migrate an existing model from dialect to native Laravel JSON casts?
Replace the trait with protected $casts = ['column' => 'array'] or AsArrayObject for mutable nested updates. Replace the package's query helpers with whereJsonContains, whereJsonLength, or where('col->key', ...), and make sure migrations declare the column as json(). This is a mechanical, test-covered change: assert serialized payload shape, null handling, and dirty-tracking behavior before and after.
Does dialect support partial updates or deep merges of JSON columns?
Its value is only where native casting is insufficient, such as specific deep-merge or partial-update semantics on older Laravel versions or non-standard drivers. If you genuinely need those behaviors, isolate them behind a repository or accessor so the trait is one swap away from removal. Otherwise prefer native casts, which already handle most nested-update cases via AsArrayObject.
Is darrylkuhn/dialect safe to use in production?
It is feasible as a brownfield shim for a legacy model, not as a greenfield platform dependency. Limit exposure by wrapping one model, testing your Laravel/PHP/engine matrix in CI, and deciding up front who owns a fork if patches are needed. If native $casts plus whereJsonContains meets the requirement, do not adopt it.
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.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console