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 new
generatecommand now supports
- Create custom content types with the new
- Generates a very basic skeleton of templates
- Supports defining custom taxonomies (such as
categoriesor 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
finaland some methods have been moved to
privateto help reduce the code's complexity.
- Changes to the
symfony/yamlcomponent 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_dirparameter should be updated to use the
sculpin.writerservice instead, in order to respect the
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.