Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
e82e017
wip: improve throwable logging and remove unused error handling methods
g105b Oct 17, 2025
50f5971
wip: fully test redirection functionality
g105b Oct 17, 2025
33c5090
ci: enable phpunit
g105b Oct 17, 2025
ad06b8e
build: upgrade dependencies
g105b Oct 17, 2025
c5a3c36
ci: ignore platform requirements
g105b Oct 17, 2025
263f007
tweak: custom glob to avoid glob_brace error
g105b Oct 17, 2025
441e23f
wip: write todo for next plan of attack
g105b Oct 17, 2025
f3fd611
test: unit test the debug timer
g105b Oct 18, 2025
1b668f5
test: gracefully handle warnings on broken regexes
g105b Oct 18, 2025
ac40b43
feature: outputbuffer stores all output content ready for displaying …
g105b Oct 18, 2025
78fe757
tidy: move to GT namespace
g105b Oct 18, 2025
525ecad
test: run quality tests
g105b Oct 18, 2025
927c28e
refactor: Gt->GT compatibility
g105b Oct 18, 2025
849f6e3
refactor: Gt->GT compatibility
g105b Oct 18, 2025
3bf9973
ci: enable all tests
g105b Oct 18, 2025
18ff78e
docs: type hints
g105b Oct 18, 2025
a292f9a
wip: plan v5 dispatch flow
g105b Oct 19, 2025
776c9bd
wip: dispatcher parity with v4
g105b Oct 19, 2025
a6c42f0
tidy: refactor extracted Dispatcher functions
g105b Oct 19, 2025
0d07afe
wip: jsonview
g105b Oct 19, 2025
5c1de8a
wip: revert Gt until functional parity with v4
g105b Oct 20, 2025
22b0390
wip: fix session cookie access
g105b Oct 21, 2025
91b7fca
wip: refactor - working on $viewREADYTHING
g105b Oct 21, 2025
95dc63a
wip: ignore test cache
g105b Oct 21, 2025
d3c4435
Merge branch 'new-v5--refactor' of github.com:PhpGt/WebEngine into ne…
g105b Oct 22, 2025
b3ccb7c
tweak: ignore phpunit cache files
g105b Oct 22, 2025
2024ff8
tweak: fix order of domtemplate initialisation
g105b Oct 22, 2025
e47c606
tweak: ensure only one DocumentBinder instance
g105b Oct 22, 2025
3416a15
test: redirection tests
g105b Oct 22, 2025
212f6ff
test: view tests
g105b Oct 22, 2025
28dee6a
test: view tests
g105b Oct 22, 2025
68838fb
wip: non-static protected globals
g105b Oct 24, 2025
b40ad1d
test: path normaliser
g105b Oct 24, 2025
e5be7aa
test: router factory
g105b Oct 24, 2025
951a23d
feature: handle errors with custom pages
g105b Oct 24, 2025
b080898
test: update phpunit tests post-refactor
g105b Oct 26, 2025
916cdb5
test: init namespace tests
g105b Oct 31, 2025
6203af1
test: service namespace tests
g105b Oct 31, 2025
b521613
test: logic namespace tests
g105b Oct 31, 2025
4e9d84f
test: debug namespace tests
g105b Nov 1, 2025
ac9a229
test: dispatch namespace tests (not dispatcher)
g105b Nov 1, 2025
39ee08a
tweak: output basic 404 without stack trace
g105b Nov 1, 2025
2444cbc
build: bump deps
g105b Dec 11, 2025
3240654
tweak: default cookie sessions
g105b Jan 8, 2026
c78f373
fix: allow optional view/logic files to determine 404
g105b Jan 20, 2026
b25d3f8
build: bump dependencies
g105b Mar 3, 2026
3991392
tweak: commit minor changes
g105b Mar 5, 2026
2540733
Merge remote-tracking branch 'origin/new-v5--refactor' into new-v5--r…
g105b Mar 5, 2026
190c703
tidy: remove all warnings from unit tests
g105b Mar 9, 2026
8f096ac
build: upgrade service container for case insensitivity
g105b Mar 9, 2026
34e3469
tidy: error page rendering
g105b Mar 9, 2026
339ffb7
feature: output errors to correct STDERR stream
g105b Mar 9, 2026
16eb309
Merge branch 'new-v5--refactor' of github.com:PhpGt/WebEngine into ne…
g105b Mar 9, 2026
0d15b3b
feature: configure logging of static files and 404 errors
g105b Mar 9, 2026
47f0e65
Merge branch 'new-v5--refactor' of github.com:PhpGt/WebEngine into ne…
g105b Mar 10, 2026
a52a73e
Merge branch 'master' of github.com:PhpGt/WebEngine into new-v5--refa…
g105b Mar 10, 2026
95296a9
build: bump dependencies
g105b Mar 10, 2026
4454b66
tweak: copy _www directory to root public dir
g105b Mar 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
280 changes: 150 additions & 130 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
php: [ 8.3, 8.4 ]
php: [ 8.4 ]

steps:
- uses: actions/checkout@v4

- name: Cache Composer dependencies
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: /tmp/composer-cache
key: ${{ runner.os }}-${{ matrix.php }}-${{ hashFiles('**/composer.lock') }}
Expand All @@ -22,139 +22,159 @@ jobs:
uses: php-actions/composer@v6
with:
php_version: ${{ matrix.php }}
args: --ignore-platform-reqs

- name: Archive build
run: mkdir /tmp/github-actions/ && tar -cvf /tmp/github-actions/build.tar ./
run: mkdir /tmp/github-actions/ && tar --exclude=".git" -cvf /tmp/github-actions/build.tar ./

- name: Upload build archive for test runners
uses: actions/upload-artifact@v4
with:
name: build-artifact-${{ matrix.php }}
path: /tmp/github-actions
#
# phpunit:
# runs-on: ubuntu-latest
# needs: [ composer ]
# strategy:
# matrix:
# php: [ 8.1, 8.2, 8.3 ]
#
# outputs:
# coverage: ${{ steps.store-coverage.outputs.coverage_text }}
#
# steps:
# - uses: actions/download-artifact@v4
# with:
# name: build-artifact-${{ matrix.php }}
# path: /tmp/github-actions
#
# - name: Extract build archive
# run: tar -xvf /tmp/github-actions/build.tar ./
#
# - name: PHP Unit tests
# uses: php-actions/phpunit@v3
# env:
# XDEBUG_MODE: cover
# with:
# version: 10
# php_version: ${{ matrix.php }}
# php_extensions: xdebug
# coverage_text: _coverage/coverage.txt
# coverage_clover: _coverage/clover.xml
#
# - name: Store coverage data
# uses: actions/upload-artifact@v4
# with:
# name: code-coverage-${{ matrix.php }}-${{ github.run_number }}
# path: _coverage
#
# coverage:
# runs-on: ubuntu-latest
# needs: [ phpunit ]
# strategy:
# matrix:
# php: [ 8.1, 8.2, 8.3 ]
#
# steps:
# - uses: actions/download-artifact@v4
# with:
# name: code-coverage-${{ matrix.php }}-${{ github.run_number }}
# path: _coverage
#
# - name: Output coverage
# run: cat "_coverage/coverage.txt"
#
# - name: Upload to Codecov
# uses: codecov/codecov-action@v4
# with:
# token: ${{ secrets.CODECOV_TOKEN }}
#
# phpstan:
# runs-on: ubuntu-latest
# needs: [ composer ]
# strategy:
# matrix:
# php: [ 8.1, 8.2, 8.3 ]
#
# steps:
# - uses: actions/download-artifact@v4
# with:
# name: build-artifact-${{ matrix.php }}
# path: /tmp/github-actions
#
# - name: Extract build archive
# run: tar -xvf /tmp/github-actions/build.tar ./
#
# - name: PHP Static Analysis
# uses: php-actions/phpstan@v3
# with:
# php_version: ${{ matrix.php }}
# path: src/
# level: 6
#
# phpmd:
# runs-on: ubuntu-latest
# needs: [ composer ]
# strategy:
# matrix:
# php: [ 8.1, 8.2, 8.3 ]
#
# steps:
# - uses: actions/download-artifact@v4
# with:
# name: build-artifact-${{ matrix.php }}
# path: /tmp/github-actions
#
# - name: Extract build archive
# run: tar -xvf /tmp/github-actions/build.tar ./
#
# - name: PHP Mess Detector
# uses: php-actions/phpmd@v1
# with:
# php_version: ${{ matrix.php }}
# path: src/
# output: text
# ruleset: phpmd.xml
#
# phpcs:
# runs-on: ubuntu-latest
# needs: [ composer ]
# strategy:
# matrix:
# php: [ 8.1, 8.2, 8.3 ]
#
# steps:
# - uses: actions/download-artifact@v4
# with:
# name: build-artifact-${{ matrix.php }}
# path: /tmp/github-actions
#
# - name: Extract build archive
# run: tar -xvf /tmp/github-actions/build.tar ./
#
# - name: PHP Code Sniffer
# uses: php-actions/phpcs@v1
# with:
# php_version: ${{ matrix.php }}
# path: src/
# standard: phpcs.xml

phpunit:
runs-on: ubuntu-latest
needs: [ composer ]
strategy:
matrix:
php: [ 8.4 ]

outputs:
coverage: ${{ steps.store-coverage.outputs.coverage_text }}

steps:
- uses: actions/download-artifact@v4
with:
name: build-artifact-${{ matrix.php }}
path: /tmp/github-actions

- name: Extract build archive
run: tar -xvf /tmp/github-actions/build.tar ./

- name: PHP Unit tests
uses: php-actions/phpunit@v3
env:
XDEBUG_MODE: cover
with:
version: 10
php_version: ${{ matrix.php }}
php_extensions: xdebug
coverage_text: _coverage/coverage.txt
coverage_clover: _coverage/clover.xml

- name: Store coverage data
uses: actions/upload-artifact@v4
with:
name: code-coverage-${{ matrix.php }}-${{ github.run_number }}
path: _coverage

coverage:
runs-on: ubuntu-latest
needs: [ phpunit ]
strategy:
matrix:
php: [ 8.4 ]

steps:
- uses: actions/download-artifact@v4
with:
name: code-coverage-${{ matrix.php }}-${{ github.run_number }}
path: _coverage

- name: Output coverage
run: cat "_coverage/coverage.txt"

- name: Upload to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}

phpstan:
runs-on: ubuntu-latest
needs: [ composer ]
strategy:
matrix:
php: [ 8.4 ]

steps:
- uses: actions/download-artifact@v4
with:
name: build-artifact-${{ matrix.php }}
path: /tmp/github-actions

- name: Extract build archive
run: tar -xvf /tmp/github-actions/build.tar ./

- name: PHP Static Analysis
uses: php-actions/phpstan@v3
with:
php_version: ${{ matrix.php }}
path: src/
configuration: phpstan.neon

phpmd:
runs-on: ubuntu-latest
needs: [ composer ]
strategy:
matrix:
php: [ 8.4 ]

steps:
- uses: actions/download-artifact@v4
with:
name: build-artifact-${{ matrix.php }}
path: /tmp/github-actions

- name: Extract build archive
run: tar -xvf /tmp/github-actions/build.tar ./

- name: PHP Mess Detector
uses: php-actions/phpmd@v1
with:
php_version: ${{ matrix.php }}
path: src/
output: text
ruleset: phpmd.xml

phpcs:
runs-on: ubuntu-latest
needs: [ composer ]
strategy:
matrix:
php: [ 8.4 ]

steps:
- uses: actions/download-artifact@v4
with:
name: build-artifact-${{ matrix.php }}
path: /tmp/github-actions

- name: Extract build archive
run: tar -xvf /tmp/github-actions/build.tar ./

- name: PHP Code Sniffer
uses: php-actions/phpcs@v1
with:
php_version: ${{ matrix.php }}
path: src/
standard: phpcs.xml

remove_old_artifacts:
runs-on: ubuntu-latest

permissions:
actions: write

steps:
- name: Remove old artifacts for prior workflow runs on this repository
env:
GH_TOKEN: ${{ github.token }}
run: |
gh api "/repos/${{ github.repository }}/actions/artifacts" | jq ".artifacts[] | select(.name | startswith(\"build-artifact\")) | .id" > artifact-id-list.txt
while read id
do
echo -n "Deleting artifact ID $id ... "
gh api --method DELETE /repos/${{ github.repository }}/actions/artifacts/$id && echo "Done"
done <artifact-id-list.txt

3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/.idea
/vendor
/test/behaviour/project/*/vendor
/test/unit/_coverage
/test/phpunit/.phpunit.cache
.phpunit*.cache
4 changes: 0 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,10 +85,6 @@ The [Github issue tracker][issues] is used to submit bug reports, feature reques

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.

### Chat to a developer

A hands-on dev chat system is currently being planned

[quick-start]: https://github.com/PhpGt/WebEngine/wiki/Quick-start
[tutorials]: https://github.com/PhpGt/WebEngine/wiki/hello-world-tutorial
[contributing]: https://github.com/PhpGt/WebEngine/blob/master/CONTRIBUTING.md
Expand Down
10 changes: 10 additions & 0 deletions build.default.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,16 @@
}
},

"asset/_www/*": {
"require": {
"vendor/bin/sync": "*"
},
"execute": {
"command": "vendor/bin/sync",
"arguments": ["asset/_www", "www"]
}
},

"asset/**/*": {
"require": {
"vendor/bin/sync": "*"
Expand Down
Loading
Loading