phpgt / webengine
Rapid development engine.
Fund package maintenance!
PhpGt
Installs: 21 465
Dependents: 5
Suggesters: 0
Security: 0
Stars: 26
Watchers: 5
Forks: 6
Open Issues: 27
Requires
- php: >=8.1
- ext-dom: *
- ext-json: *
- phpgt/config: ^1.1
- phpgt/csrf: ^v1.9
- phpgt/database: ^1.4
- phpgt/dom: ^v4.1
- phpgt/domtemplate: dev-470-component-binder as v3.3.0
- phpgt/gtcommand: ^1.0
- phpgt/http: ^1.2
- phpgt/logger: ^1.0
- phpgt/protectedglobal: ^v1.1
- phpgt/routing: ^1.1
- phpgt/servicecontainer: dev-140-extra-args as v1.4.0
- phpgt/session: ^1.1
- phpgt/sync: ^1.3
- phpgt/ulid: ^1.0
- psr/http-server-middleware: ^1.0
- willdurand/negotiation: ^3.0
Requires (Dev)
- phpstan/phpstan: v1.8.0
- phpunit/phpunit: v9.5.21
This package is auto-updated.
Last update: 2024-12-08 11:21:39 UTC
README
Welcome to PHP.Gt webengine — an application development toolkit aimed at streamlining development and respecting web technologies.
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.
Features at a glance
- 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
- Inbuilt client side script building (SCSS, ES6, etc.)
- Web security as standard
- 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
Essential concepts
Static first
To increase development speed and lower the barrier to getting an idea prototyped, the technique of developing a static prototype first is promoted, dropping in logic when and where necessary to turn prototypes into fully functional production code with as few steps as possible.
Build using tech you already know
The main idea is to provide a platform where you can get as much done, using standard tech you've already learnt. Technologies that make up the world wide web, such as HTML and HTTP, are respected and enhanced by bringing useful tools and techniques to you, the developer.
Drop in tools without any fuss
There are a lot of useful tools included as standard, such as SCSS parsing, HTML templating and CSRF handling, but the highly modularised architecture keeps compatibility high. Packages from Packagist can be installed and loaded with zero configuration.
Develop locally or virtually
Preconfigured scripts are available to automatically set up local servers or virtualisation environments to get you going as quickly as possible, without having to change existing computer configuration.
Community of blueprints
To get projects going with full momentum, blueprint projects are available to base your projects off. Blueprints come with just enough level of design and functionality to get a prototype out the door as quickly as possible, without prescribing anything.
Getting started
Getting started developing WebEngine applications
If you are new to WebEngine development, check out the Quick Start guide in the documentation, or jump straight into the tutorials.
Getting started contributing to WebEngine
If you are looking to contribute to WebEngine itself, please read the Contribution guidelines document.
How to get help
Submit an issue
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.
Ask on Stack Overflow
If you have more of a "How do I do X in WebEngine?" question, it is preferred to ask this publically on Stack Overflow. If you tag your question with phpgt-webengine
, or the area of PHP.Gt that the question referrs to, a WebEngine contributor will answer your question as soon as possible.