elaborate-code/laravel-algerian-provinces
Laravel package that adds Algeria's 58 provinces (wilayas) to your app, with names, codes, migrations, models, and helpers for seeding, validation, and select dropdowns. Quickly wire official Algerian province data into any Laravel project.
calebporzio/sushi means the package is now a static, read-only Eloquent model with no migration and no table. This is a genuine product-level change, not a cosmetic one:
JOIN provinces in SQL for reporting, enforce a real foreign key from orders.wilaya_id/users.wilaya_id, or let ops edit/translate province names per tenant or per locale without forking. Any analytics or BI work that expects a provinces table now needs an in-PHP join or a replicated lookup table you maintain yourself.Adopt when:
calebporzio/sushi (widely used, but a read-only static-model shim with known limits on querying/serialization).Look elsewhere or build your own table when:
belongs_to-style FK integrity from users/orders, or SQL-level aggregation by wilaya (v2.0.0's static model makes this awkward; v1.x's table-based approach did not).To executives: This is a small, free building block that removes a recurring data-maintenance chore for our Algeria launch — the official 58-province list, ready to drop into address and delivery flows. Cost is effectively zero and time-to-first-screen is hours, not days. The tradeoff to sign off on: as of v2.0.0 the data lives in application code rather than our database, which is perfect for a fast launch but means regional reporting and per-market customization would need custom work. Approve it as a launch accelerator, not as the permanent foundation of our geography/reporting model.
To engineering: composer require elaborate-code/laravel-algerian-provinces and you get a province model with no migration and no seeder — v2.0.0 delegates to calebporzio/sushi, so the data is a static, read-only Eloquent source. Treat it as a breaking upgrade from 1.x: if anything currently references a provinces table or FK, that assumption is gone. Pin the version, wrap it behind our own ProvinceRepository/enum so we can swap to a real table later without touching call sites, and don't build SQL joins or admin CRUD against it.
How can I help you explore Laravel packages today?