As 2017 is drawing to a close, let’s take a look back at the progress we made this year and preview what you can expect in the next year.
Peachpie is a modern open source compiler and runtime of PHP on top of .NET and .NET Core, built on top of Microsoft’s Roslyn compiler platform. We started developing the project in early 2016, drawing heavily from our previous Phalanger compiler. Like Phalanger, Peachpie aims to be fully compatible with the PHP language, to increase the performance of PHP applications and enhance their security. Both projects also provide a bidirectional interoperability between PHP and .NET, but only Peachpie is fully cross-platform thanks to .NET Core.
February: WordPress running on .NET (Core)
Without a doubt the biggest achievement until this time was the implementation of all features necessary to run an almost unmodified clone of WordPress on the .NET (Core) platform. Our article detailing the necessary steps drew quite a bit of attention. Today, modifications to the WordPress source code are no longer needed; you can run WordPress on .NET out of the box, as is.
March: Peachpie Snips
Intended as a demonstration of the power of the Peachpie platform, we created a service that produces beautiful code snippets such as this:
The snippets offer interactive elements, such as tooltips, error underlining and warnings/recommendations.
April: moving to MSBuild
We followed Microsoft and migrated Peachpie projects over to the new MSBuild system instead of the old project.json. The new project format is compatible with tons of existing tools (Xamarin, VSCode, VS 2017) and can be customized in industry standard ways, like writing your own targets or even better – using existing targets. More on this can be found in this article.
April: Evil Eval
Also in April, we implemented the most demanded PHP feature into Peachpie: eval(). Even though we discourage scripting with eval, the option of in-memory compilation is definitely a popular one. Read about the details of this implementation in the corresponding blog post.
July: Joining the .NET Foundation
In a significant step towards the continuity of the Peachpie project, we were incredibly honored to join the .NET Foundation. Aside from providing us with IP rights counseling, tooling and other services, the Foundation also means that the project is guaranteed to continue even if we were to abandon it. Check out our announcement post to read about all of the benefits of the .NET Foundation.
November: PHP on .NET Standard 2.0
Starting with Peachpie version
0.8.0-CI-460, you only have to have .NET Core 2.0 or newer installed and you can now compile PHP code to .NET Standard 2.0 and also reference any packages targeting up to
netstandard2.0. As Peachpie makes PHP a first-class citizen in the .NET ecosystem, PHP apps can also benefit from the wide-ranging platform support the new .NET Standard offers.
December: yield and traits
We are thrilled to have finished the implementation of these two constructs, as they were among the toughest to implement. C# doesn’t support traits or yield from, but these are two constructs that can significantly simplify and shorten your code. For your interest, Peachpie implements traits similarly to the Java compiler. If you would like to read about the details of our trait support, please refer to this issue.
What about 2018?
Our plans for the next year are grand. First of all, we expect to bring Peachpie all the way to version 1.0. With the implementation of `yield` and traits we should be fairly close to being able to run MediaWiki and possibly Drupal, which might be our next move. In 2018, we are planning on focus a little bit on performance tuning as well, so you can expect a plethora of benchmarks and hopefully some serious speed boosts of popular PHP applications.
We also plan on introducing a number of tools to simplify working with the compiler and allowing you to harness the full power of Peachpie. We can’t fully reveal these plans yet, but the tools will be introduced soon, so stay tuned.
The only thing left to do is to wish you happy holidays and a great start to the new year from all of us in the Peachpie development team. Thanks for your support and interest!