Skip to content

CrustPHP enables rapid "development and choreography" of Event-brokering, Asynchronous, Enterprise-grade, In-memory, real-time "Microservices" by spinning REST-endpoints over multiple ports with only one CLI command, without needing a heavy web-server running in separate process. CrustPHP utilizes lighting fast (compiled) PHP-extensions "Swoole"…

License

Notifications You must be signed in to change notification settings

fakharak/CrustPHP

Repository files navigation

CrustPHP

Ease of Use (for all level PHP Developers):


Best about CrustPHP Framework is that the developer does not need knowledge of Architecture / Framework. Plain (core) PHP Developers can start delivering high-throughput REST-APIs ( / Micro-services) rapidly within hours.

Ready-made Modules


It includes DB configurations Module, JWT-based Authentication Module / Middleware, and sample Controllers to enable PHP developers to focus on coding Business Domain Logic.

CrustPHP Architecture:


The Architectrue supports development of "Gartner's Event-broker model" through "Enterprise Service Bus" for "dynamic choreography" of Event-driven Microservices.

CrustPHP enables not only rapid development of Micro-services, but also state-of-the-art dynamic choreography (spinning) of Microservices without Kubernetese.

Note: PHP Developers are free write code using Closures; without HTTP Controllers. The intent of Micro-service is not to provide implementation of MVC. So, a sample of Authentication Module extended with Controller is shown in the framework only to show a "proof of concept", not as mandatory part of Framework.

Underlying Technologies:


CrustPHP encapsulates Phalcon Micro ( ;a compiled PHP-Extension written in C language) and Swoole ( ;a compiled PHP-Extension for Asynchronous Progamming Models) in order to enable easy / quick development of Concurrent Microservices. Why PHP ? Please see at the end.

The framework uses lighting fast Phalcon's "Routing Module" in order to map API Reuqests to HTTP Controllers"

Integrations in-process:


To port AI/ML/Data Science libraries PHP-ML and Rubix-ML.

Why Swoole ?


  • Swoole extends PHP with Asynchronous Syntax. It does not require a heavy (resource-hungry hence slower) Web Server/s, running in a separate Process-space than PHP, like APACHE / Ngnix)

  • Swoole enables PHP code (or OPCache code) to load in RAM as Daemon (as an Asynchronous Web and Application Server) making it ultra fast and light-weight (so it is highly suitable for high throughput Micro-services). Swoole also allows IoT and Game Proramming as it supports ease of Network Programing using multiple Network Protocols like MQTT, Web Sockets, TCP, HTTP 1.0 and HTTP 2.0.

  • Unlike Node.js, Swoole spans multiple event-loops on Multiple-processes making effective utilization of all computing (CPU) resource for higher throughput (hence, Cloud-effective). This makes Swoole is not limited to only one Process. However, it may allow single-process environment through simple Configuration settings (Array).

  • Swoole's (pre-emptive) co-routine based Asynchronous Programming Model is superior to asynch/await in .NET and Node as Coroutiens avoid "maintenance complexities" associated with Asycn/Await styled concurrency. Swoole Architecture is inspired by Go-lang and Netty.

About

CrustPHP enables rapid "development and choreography" of Event-brokering, Asynchronous, Enterprise-grade, In-memory, real-time "Microservices" by spinning REST-endpoints over multiple ports with only one CLI command, without needing a heavy web-server running in separate process. CrustPHP utilizes lighting fast (compiled) PHP-extensions "Swoole"…

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages