elaborate-code/laravel-algerian-states
Laravel package providing Algeria's wilayas (states) with official codes and names, ready to seed and use in address forms, validation rules, and dropdowns. Simple installation, publishable migrations, and a clean API for querying states in any Laravel app.
belongsTo/hasMany relationships and where/pluck/find queries against reference data with no migration. That materially changes the "store province as a string, an int code, or a foreign key?" decision in favor of a keyed reference — a decision that is expensive to reverse once addresses and orders depend on it.Adopt when:
Look elsewhere when:
Specific to v2.0.0: this is a major version bump that introduces a hard dependency on calebporzio/sushi. If you are on 1.0.0, treat it as a migration, not a patch — verify model class names and public API, and confirm nothing in your code relies on behavior Sushi-backed models don't support (no create, no migrations, no insert). If you haven't adopted it yet, start at 2.0.0 directly. Either way, wrap it behind your own repository/adapter so the underlying source can be swapped later without touching call sites.
This is a small, single-purpose open-source Laravel package that supplies the official Algerian wilaya (province) list as Eloquent-readable reference data. The v2.0.0 release rebuilds it on calebporzio/sushi, so the data is served from a bundled file through a normal Eloquent model — no database table, no migration, but full query and relationship support. For us, that means we can add a correct, officially numbered province picker to Algerian address flows in hours rather than a sprint, and we can key addresses and shipping rules to a stable wilaya code instead of a free-text string. Risks are modest but real: it is maintained by a single author, the data is read-only (any admin editing requires our own table), and the 2.0 release is a breaking change with a new transitive dependency, so any upgrade needs a quick API check. Recommendation: adopt only if Algeria is a committed market, wrap it behind our own adapter so we can swap to an internal table or a broader dataset later, and revisit if we expand to communes, postal codes, or additional countries.
How can I help you explore Laravel packages today?