WebEngine is an ergonomic toolkit for building web applications. It follows a static-first approach: development begins using plain HTML files, with PHP introduced only when needed. Dynamic behaviour is handled through server-side DOM manipulation, mirroring well-known client-side techniques.
Web frameworks offer many features, but often come with steep learning curves or imposing rules. The motivation behind this project is the belief that what a framework can offer can be achieved by eliminating code rather than adding more.
Head over to the Github Wiki for documentation.
- Simple routing: A page's view in
page.html
has optional logic separated withinpage.php
- Pages made dynamic via server-side DOM Document access
- HTML templates
- Database organisation
- Create web pages or web services (APIs) with the same code structure
- Preconfigured client-side build steps (SCSS, ES6, etc.)
- Strong separation of concerns over PHP, HTML, SQL, JavaScript, CSS
- Preconfigured PHPUnit and Behat test environment
- Workflow tools to quickly create, integrate and deploy projects
Start with a static HTML prototype to move fast and remove barriers. Add logic only where needed to turn it into production code, keeping the steps minimal.
WebEngine builds on the core technologies of the World Wide Web, such as HTML and HTTP. Use familiar tools to get real work done, with helpful enhancements layered on top.
SCSS parsing, HTML templating, CSRF handling, and other tools are included out of the box. The modular architecture keeps compatibility high, so you can install packages from NPM or Packagist with no configuration.
Scripts are provided to spin up local servers or virtualised environments quickly, without changing your system configuration.
Blueprint projects help you start fast. They provide just enough structure and design to get a prototype running, without locking you into a specific style of development or design.
If you are new to WebEngine development, check out the Quick Start guide in the documentation, or jump straight into the tutorials.
If you are looking to contribute to WebEngine itself, please read the Contribution guidelines document.
The Github issue tracker is used to submit bug reports, feature requests or certain types of technical support requests. If you think something is not working correctly, or the documentation doesn't cover your issue, feel free to open a new issue, describing what you have tried, what you expect, and what went wrong.
It would be helpful if you could create your issue in the appropriate repository - for instance, if the issue/question is regarding using a database in WebEngine, https://github.com/phpgt/Database/issues would be the best place - but it's fine to create the issue on WebEngine's issue tracker, and someone can then move the issue if necessary.
A hands-on dev chat system is currently being planned