plank / publisher
A workflow for publishing content in Laravel applications.
Installs: 1 990
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 0
Open Issues: 5
pkg:composer/plank/publisher
Requires
- php: ^8.2
- illuminate/contracts: ^12
- plank/before-and-after-model-events: ^12.0
- plank/laravel-hush: ^12.1
- plank/laravel-model-resolver: ^12.1.2
- plank/laravel-pivot-events: ^1.0
- plank/laravel-schema-events: ^12.2
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^8.1.1
- orchestra/testbench: ^10.0.0
- pestphp/pest: ^3.0
- pestphp/pest-plugin-arch: ^3.0
- pestphp/pest-plugin-laravel: ^3.0
- dev-main
- 12.x-dev
- v12.10.1
- v12.10.0
- v12.9.5
- v12.9.4
- v12.9.3
- v12.9.2
- v12.9.1
- v12.9.0
- v12.8.2
- v12.8.1
- v12.8.0
- v12.7.6
- v12.7.5
- v12.7.4
- 12.7.3
- v12.7.2
- v12.7.1
- v12.7.0
- v12.6.0
- v12.5.1
- v12.5.0
- 11.x-dev
- v11.10.1
- v11.10.0
- v11.9.5
- v11.9.4
- v11.9.3
- v11.9.2
- v11.9.1
- v11.9.0
- v11.8.2
- v11.8.1
- v11.8.0
- v11.7.6
- v11.7.5
- v11.7.4
- v11.7.3
- v11.7.2
- v11.7.1
- v11.7.0
- v11.6.0
- v11.5.1
- v11.5.0
- v11.4.0
- v11.3.0
- v11.2.4
- v11.2.3
- v11.2.2
- v11.2.1
- v11.2.0
- v11.1.2
- v11.1.1
- v11.1.0
- v11.0.1
- v11.0.0
- 10.x-dev
- v10.10.1
- v10.10.0
- v10.9.5
- v10.9.4
- v10.9.3
- 10.9.2
- v10.9.1
- v10.9.0
- v10.8.2
- v10.8.1
- v10.8.0
- v10.7.6
- v10.7.5
- 10.7.4
- v10.7.3
- v10.7.2
- 10.7.1
- v10.7.0
- v10.6.0
- v10.5.1
- v10.5.0
- v10.4.0
- v10.3.0
- v10.2.4
- v10.2.3
- v10.2.2
- v10.2.1
- v10.2.0
- v10.1.2
- v10.1.1
- v10.1.0
- v10.0.1
- v10.0.0
- v0.0.27
- v0.0.26
- v0.0.25
- v0.0.24
- v0.0.23
- v0.0.22
- v0.0.21
- v0.0.20
- v0.0.19
- v0.0.18
- v0.0.17
- v0.0.16
- v0.0.15
- v0.0.14
- v0.0.13
- v0.0.12
- v0.0.11
- v0.0.10
- v0.0.9
- v0.0.8
- v0.0.7
- v0.0.6
- v0.0.5
- v0.0.4
- v0.0.3
- v0.0.2
- v0.0.1
- dev-dependabot/github_actions/actions/cache-5
- dev-dependabot/github_actions/actions/checkout-6
- dev-dependabot/github_actions/stefanzweifel/git-auto-commit-action-7
- dev-publishable-pivots
- dev-migration-schema-change-detection
- dev-revert-draft-changes
- dev-custom-workflow-cast
- dev-bump-11
- dev-5-model-events-bug
- dev-queued-deletes
- dev-publishable-attributes
This package is auto-updated.
Last update: 2026-01-08 00:27:22 UTC
README
Laravel Publisher
Publisher is a Laravel package that provides a complete content publishing workflow, allowing you to maintain both published and draft versions of your content simultaneously. Editors can work on changes without affecting the live published version until changes are explicitly published.
Installation
-
Install the package via composer:
composer require plank/publisher
-
Add the
Publishableinterface andIsPublishabletrait to your models:<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Plank\Publisher\Concerns\IsPublishable; use Plank\Publisher\Contracts\Publishable; class Post extends Model implements Publishable { use IsPublishable; }
-
Run the install command:
php artisan publisher:install
-
Add the publisher columns to your model if you did not generate them automatically:
<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends SnapshotMigration { public function up() { Schema::table('posts', function (Blueprint $table) { $table->string('status'); $table->boolean('has_been_published'); $table->boolean('should_delete'); $table->json('draft')->nullable(); }); } }
-
Run migrations:
php artisan migrate
Documentation
For complete documentation including configuration, features, and advanced usage, see the Documentation.
Quick Links:
Contributing
Please see CONTRIBUTING for details.
Credits
License
The MIT License (MIT). Please see License File for more information.
Security Vulnerabilities
If you discover a security vulnerability within Publisher, please send an e-mail to security@plank.co. All security vulnerabilities will be promptly addressed.
Check Us Out!
Plank focuses on impactful solutions that deliver engaging experiences to our clients and their users. We're committed to innovation, inclusivity, and sustainability in the digital space. Learn more about our mission to improve the web.
