Roadmap#
Milestones#
- 0.8: related work, open GitHub issues
- 0.9: all the PHP 5.4 - PHP 7.2 language features support, one serious big CMS working out of the box (WordPress), most of the commonly used PHP extensions implemented, compilation technical demo (try.peachpie.io)
- 0.9.9: pre-alpha. Signing assemblies, Phar support, more PHP extensions and core functions, migrate to latest Roslyn CodeAnalysis, MsBuild 15.0 Sdk
Peachpie.NET.Sdk
, opening in Visual Studio 2017/2019 - 1.0: PHP 7.4, related IDE support, user-friendly error messages, documentation, processing
composer.json
- 1.1:
include
of generated scripts, compile-time optimizations, runtime optimizations,dynamic
support in C#, more C# interoperability features, correctness fixes, standardized API - ?: edit & continue
General Tasks#
Test Environments#
- Travis CI
- AppVeyor CI
- DevOps CI
- Unit tests
- Comparison to PHP runtime tests
Public API Status#
- Variables
- Context
- Include
- Call function
- Class instantiation
- Global variables
- Reflection
- Dynamic compilation
- Peachpie NuGet packages
- Error handling
Optimization Tasks#
- .NET performance diagnostics
- Unreachable code elimination
- Unnecessary branching elimination
- Compile Regex tree in PHP code compile time
- Array literals one time construction
- Optimized array implementation
- Compile-time expression evaluation
- Lowering/simplifying expressions
- Resolving more inclusion in compile time
- Avoiding unnecessary value copying
- Typed array optimizations
- Asynchronous I/O (awaitable include, db and global code)
- Compile on multi-core CPU in parallel
- Do not declare unreachable declarations
.NET Both-Way Interoperability#
- Generating portable assemblies
- Calling .NET objects from PHP
- .NET generics
- Generate XML documentation
- MSBuild SDK (Peachpie.NET.Sdk)
- CLR/PHP Interoperability
- DynamicMetaObjectProvider
- Signing assemblies
- Custom Attributes
- Console Application
- Web Application
- Class Library
- Using value types (structs)
- .NET events
Cross Platform Demos#
- .NETCore 2.0, Mono, .NET 4.6.1 compatibility
- Sample Apps
- Sample GitHub projects
- Mobile app sample
Web Server Integration#
- ASP.NET Integrated Pipeline Request Handler
- ASP.NET Core Middleware