PyroCMS 3 - RC2

Ryan Thompson Releases

Once the stable release has been launched the Pre-sale Special will NO LONGER be available. Thank you again to everyone that has purchased and supported Pyro in getting to this point!

We've just tagged PyroCMS v3.0.0-rc2! This is our last scheduled RC and by far the strongest PyroCMS ever.

composer create-project pyrocms/pyrocms=3.0-rc2

Here are some of the highlights for this release:


We've improved stability in a lot of the situations around the edges. Various field types that use alternative schema strategies have been improved to support automated schema management like everything else.

Load / execution order has been altered slightly to improve migrations and seeds outside of add ons and core (like app seeders and migrations). Previously there were issues with streams not being finished scaffolding and apps trying to use said tables and services. Now they're deferred.

General stream teardown is now more thorough which prevents issues with development cycles and re/installing modules over and over.

The save & edit form action has been improved to better accommodate multi-form builders and also detect more complex section structure.

Valuation Improvements

Dot notated values have been drastically improved. You can now treat dot notated values (for table columns for example) as twig strings. Because now, they are.

protected $columns = [
    "files" => [
        "wrapper" => "<label>{value}</label> files",
        "value" => "entry.files.count"

Twig Cache

We've included a killer cache strategy for Twig based on You can use it like this:

{% cache 'key' ttl %}
// do your heavy lifting here
{% endcache %}

TTL supports numeric values or objects like an entry (which uses last modified value) or arrayable/array (which uses a hash of the array). Thanks to @schmidex from our Slack team for the suggestion!

Visual Cues / Safety Catches

We have implemented many more visual cues and safety catches for currently unsupported features. For example, some fields can not be translated. Like those that do not use a database column. Now those fields display a disabled translatable toggle and give a visual cue / message to the user letting them know what's up.

UI Details

We've added filters to streams, fields, and assignment tables. The search filter in general has been greatly improved to include searching translatable fields (as well as translatable eloquent attributes outside of streams). A few breadcrumbs have been improved and complex module sections improved to provide a more consistent user experience.

Streams Configuration

Until now, there hasn't been any way to broadcast how a table or form should look for any given stream. For example how a table of pages should look for a relationship field type's lookup input mode.

Now, you can store the streams configuration as an array in your module's streams.php configuration file as well as in the streams table itself. This helps assure that your stream can be displayed perfectly anywhere it's being used (and not just in your module).

What's next?

Currently life exists only to build the store and document Pyro for the world. The store is scheduled to be finished on June 3rd and is on track. Documentation is being written most every day. Currently, my plan is to ride out the RC2 release until the 3rd as well and tag stable release then. With the store launch following shortly after! Fun fun ^_^

- Ryan Thompson