It's been a long time coming, but thanks to the intrepid efforts of several contributors, Sculpin 3 is finally here.
This new release brings the project a bit more in line with modern PHP features and introduces some new commands and parameters.
Shout out to the following folks for all of their contributions - thanks for your help!
- lex111 (Alexey Pyltsyn)
- Xerkus (Aleksei Khudiakov)
- GawainLynch (Gawain Lynch)
- dbu (David Buchmann, from Liip)
- ChristianRiesen (Christian Riesen, from Liip)
New in Sculpin 3:
- Supports PHP 7.2 and higher!
- Initialize a bare-bones set of
source/
files using the newinit
command - The
generate
command now supports--source-dir
and--output-dir
parameters - Create custom content types with the new
content:create
command- Generates a very basic skeleton of templates
- Supports defining custom taxonomies (such as
tags
orcategories
or any other categorizations you need)
However, there are some changes that affect backwards compatibility.
- PHP 7.2 is the minimum PHP version that Sculpin 3 will run on
- Some new return typehints may require custom bundles to have their method signatures updated.
- A number of core classes are now
final
and some methods have been moved toprotected
andprivate
to help reduce the code's complexity.
- Changes to the
symfony/yaml
component mean that certain YAML front matter values will need to be enclosed in quotes, particularly if they contain colons.- Sculpin is quite verbose when this happens. It outputs the name of the affected file, the affected line number, and an excerpt of the line, alongside an explanation of the YAML syntax issue that caused the error.
- Changes to pagination mean that certain URLs, such as
"/blog/page/2.html", will change to a folder (e.g., "/blog/page/2/").
- A gist can be found here with a concept for providing HTML-based redirects for legacy pagination files: https://gist.github.com/beryllium/a1b0be7b603486f5e39f869db8ff3484
- Bundles that write to the
sculpin.output_dir
parameter should be updated to use thesculpin.writer
service instead, in order to respect the--output-dir
parameter.
Also, the Sculpin Blog Skeleton has begun being modernized, and the first stage of this involves setting things up with Yarn and Encore and Webpack instead of the previous solution for assets.
If you encounter issues with the new release or have suggestions, please use GitHub Issues or the comments below.
Enjoy!