Acorn is a WinterCMS module that provides shared base classes and infrastructure for the Acorn plugin family. It extends Laravel/WinterCMS with PostgreSQL-aware migrations, permission-aware models, WebSocket support, and dirty-write protection.
Acorn\Migration— extends WinterCMS migrations with PostgreSQL-specific DDL:createFunction(),createExtension(),createTrigger(), native column types (integer[],interval, etc.), and intelligent drop-before-create helpersAcorn\Model— base Eloquent model with built-in owner/group/other permissions (linux-style rwx), dirty-write protection via PostgreSQL advisory locks, and audit timestampsAcorn\Collection— extended collection with additional query helpersAcorn\Controller/Acorn\BackendRequestController— base controllers with permission enforcement- JavaScript — hashbang routing utilities and WebSocket client helpers shared across plugins
- Traits — reusable mixins for lockable records, translatable fields, and more
| Plugin | Repository | Status |
|---|---|---|
| Calendar | anewholm/calendar | Production ready, Live, CI |
| DBAuth | anewholm/dbauth | Production ready, Live, CI |
| Location | anewholm/location | In-development |
| Messaging | anewholm/messaging | In-development |
| Reporting | anewholm/reporting | In-development |
| WinterCMS | Laravel | PHP |
|---|---|---|
| 1.2.0 | 9 | 8.1+ |
| 1.2.x | 10 | 8.1+ |
| 1.2.x | 11 | 8.2+ |
- WinterCMS 1.2+
- PostgreSQL 15+ (the Migration extensions target PostgreSQL; standard Laravel migrations still work on other databases)
-
Clone this repository into
modules/acorninside your WinterCMS root:git clone https://github.com/anewholm/acorn modules/acorn
-
Add
Acornto the module list inconfig/cms.phpafterCms:'loadModules' => ['System', 'Backend', 'Cms', 'Acorn'],
-
Run migrations:
php artisan winter:up
That is all that is required. The PSR-4 autoloader resolves Acorn\ from modules/acorn/ automatically once the module is registered.
MIT
