Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tukio v2 #24

Merged
merged 78 commits into from
Apr 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
e875fcf
Require PHP 8.1.
Crell Sep 12, 2023
110eccd
Remove version-conditional behavior.
Crell Sep 12, 2023
b189953
Fold all the attributes into one, and only allow one of them to make …
Crell Sep 14, 2023
a272c67
More PHP 8 syntax.
Crell Sep 14, 2023
cb52c63
Do a todo.
Crell Sep 14, 2023
cada8c8
Code simplification.
Crell Sep 14, 2023
a2b6c85
More language modernization.
Crell Sep 14, 2023
14ad120
Don't bother testing pre-8.1.
Crell Sep 14, 2023
350a858
PHPStan fixes.
Crell Sep 16, 2023
96ee5cc
PHP 8 syntax.
Crell Sep 16, 2023
0f80653
Convert the internal representation of ordering to a knock-off ADT, w…
Crell Sep 16, 2023
fd3a2d5
Short closure.
Crell Sep 16, 2023
6c4fc18
Remove even more code.
Crell Sep 16, 2023
bd0ce47
Fold even more code down together.
Crell Sep 16, 2023
7d146dc
Remove test for edge case feature we're no longer supporting.
Crell Sep 16, 2023
27a7acd
Refactor most of the provider and provider builder into a common base…
Crell Sep 16, 2023
3aaafbf
Doc improvements.
Crell Sep 16, 2023
0dbe353
Improve variable names to be more standardized.
Crell Sep 16, 2023
234afd3
More PHP 8 syntax.
Crell Sep 16, 2023
0b49129
More PHP 8 syntax.
Crell Sep 16, 2023
eed673f
Yet more PHP 8 syntax.
Crell Sep 16, 2023
12c7696
Eliminate a trait that we no longer need.
Crell Sep 16, 2023
0154395
PHPStan fixes.
Crell Sep 16, 2023
2c24dd4
Remove Docker setups for old PHP versions.
Crell Sep 16, 2023
0cb237d
Doc improvements.
Crell Sep 16, 2023
3fe59ea
Fix test class names.
Crell Oct 1, 2023
d29fc54
Upgrade PHPUnit to v10.
Crell Oct 1, 2023
1b2a15e
Test on PHP 8.3.
Crell Oct 1, 2023
3b9dd26
Don't double-run tests.
Crell Oct 1, 2023
277117d
Doc improvements.
Crell Oct 2, 2023
c4a52d2
Support compiling to an anonymous class.
Crell Oct 2, 2023
74b8173
PHPStan level 7.
Crell Oct 2, 2023
1eee2ad
Moar PHP 8 syntax.
Crell Oct 2, 2023
e22cba6
PHPStan Level 8.
Crell Oct 2, 2023
9f6f8cc
Remove Interface suffix from internal interface.
Crell Oct 2, 2023
e76d53c
More PHP 8 syntax.
Crell Oct 2, 2023
f801ada
Merge QA GHA files.
Crell Nov 14, 2023
4e6a221
Switch to PHPUnit attributes.
Crell Nov 14, 2023
8ac8299
Switch to OrderedCollection v2 and use the new multi-ordering collect…
Crell Nov 22, 2023
f2c2e44
Use proper PHPUnit assertion syntax.
Crell Nov 22, 2023
81270a2
Correct changelog.
Crell Nov 29, 2023
b864c38
Support multiple before/after directives, part 1.
Crell Nov 29, 2023
f1a3ff4
Remove the Order pseudo-enum, as before/after/priority are no longer …
Crell Dec 2, 2023
899ccb2
PHPStan fixes.
Crell Dec 2, 2023
145bb0d
Bug fix found by PHPStan.
Crell Dec 2, 2023
11dca37
Don't QA on unsupported PHP versions.
Crell Dec 5, 2023
c5b2133
Add auto-detection of simple service listeners.
Crell Dec 29, 2023
c16ebee
Refactor for cleanliness.
Crell Dec 29, 2023
f7b551a
More PHPUnit standardization.
Crell Dec 29, 2023
b9292ff
Add service derivation to the compiled container, too.
Crell Dec 29, 2023
5575936
PHPStan fixes (well, workarounds)
Crell Dec 29, 2023
e3427c8
Ignore IDE files.
Crell Dec 29, 2023
ec0da86
Support attributes on class-as-service-id compiled cases.
Crell Dec 31, 2023
258b6b1
Add attribute support to class-is-service-id non-compiled.
Crell Dec 31, 2023
ea8680c
Move mocks and fakes into dedicated namespaces for better organization.
Crell Dec 31, 2023
3821d1d
PHPStan fixes.
Crell Dec 31, 2023
c9f033e
Use AttributeUtils for introspecting listeners.
Crell Jan 10, 2024
fe4dd8f
Remove dead code.
Crell Jan 10, 2024
b1e36f8
Make the separate service name optional when registering a subscriber.
Crell Jan 10, 2024
62ad142
PHPStan fixes.
Crell Jan 10, 2024
211c227
Skip routing everything through listener() to avoid double-deriving e…
Crell Jan 10, 2024
ff1110a
Remove dead code.
Crell Jan 10, 2024
23946aa
Be consistent in ID generation.
Crell Jan 10, 2024
cb4ec6f
Minor refactor for performance and cleanliness.
Crell Jan 10, 2024
56b5674
Refactor to avoid parsing for an attribute if we can avoid it.
Crell Jan 10, 2024
377f51d
Add tests to confirm class-level attributes get propagated down to me…
Crell Jan 10, 2024
2c5827b
Use a cached function analyzer by default.
Crell Feb 18, 2024
2b14d49
Use stable release of AttributeUtils.
Crell Feb 24, 2024
02ae16a
Merge pull request #26 from Crell/attribute-utils
Crell Feb 24, 2024
e0223e4
Mark older registration mechanisms as deprecated.
Crell Mar 22, 2024
fa63133
Fix bug in inheriting attribute information.
Crell Mar 23, 2024
89d981b
If the method of a listener is __invoke, use the class name as the ID.
Crell Mar 23, 2024
2585916
Add a SECURITY.md file for GitHub.
Crell Mar 23, 2024
29df26b
Update README file for all the new goodies in version 2.
Crell Mar 23, 2024
41a34df
Update CHANGELOG.
Crell Mar 23, 2024
09b5417
Small fix.
Crell Mar 23, 2024
8bba312
Minor test improvement.
Crell Mar 23, 2024
954ac17
Use new stable version of OrderedCollection.
Crell Apr 8, 2024
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
23 changes: 0 additions & 23 deletions .github/workflows/phpstan.yaml

This file was deleted.

41 changes: 41 additions & 0 deletions .github/workflows/quality-assurance.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
name: Quality assurance
on:
push:
branches: ['master']
pull_request: ~

jobs:
phpunit:
name: PHPUnit tests on ${{ matrix.php }} ${{ matrix.composer-flags }}
runs-on: ubuntu-latest
strategy:
matrix:
php: [ '8.1', '8.2', '8.3' ]
composer-flags: [ '' ]
phpunit-flags: [ '--coverage-text' ]
steps:
- uses: actions/checkout@v2
- uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
coverage: xdebug
tools: composer:v2
- run: composer install --no-progress ${{ matrix.composer-flags }}
- run: vendor/bin/phpunit ${{ matrix.phpunit-flags }}
phpstan:
name: PHPStan checks on ${{ matrix.php }}
runs-on: ubuntu-latest
strategy:
matrix:
php: [ '8.1', '8.2', '8.3' ]
composer-flags: [ '' ]
steps:
- uses: actions/checkout@v2
- uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
coverage: xdebug
tools: composer:v2
- run: composer install --no-progress ${{ matrix.composer-flags }}
- run: vendor/bin/phpstan
24 changes: 0 additions & 24 deletions .github/workflows/testing.yaml

This file was deleted.

2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,7 @@ build
composer.lock
vendor
.phpunit.result.cache
.phpunit.cache
/vendor-bin/**/vendor
.env
.idea
24 changes: 24 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,30 @@ All notable changes to `Tukio` will be documented in this file.

Updates should follow the [Keep a CHANGELOG](http://keepachangelog.com/) principles.

## 2.0.0 - YYYY-MM-DD

### Added
- Major internal refactoring.
- There is now a `listener()` method on the Provider and Compiler classes that allows specifying multiple before/after rules at once, in addition to priority. It is *recommended* to use this method in place of the older ones.
- Similarly, there is a `listenerService()` method for registering any service-based listener.
- Upgraded to OrderedCollection v2, and switched to a Topological-based sort. The main advantage is the ability to support multiple before/after rules. However, this has a side effect that the order of listeners that had no relative order specified may have changed. This is not an API break as that order was never guaranteed, but may still affect some order-sensitive code that worked by accident. If that happens, and you care about the order, specify before/after orders as appropriate.
- Attributes are now the recommended way to register listeners.
- Attributes may be placed on the class level, and will be inherited by method-level listeners.

### Deprecated
- `SubscriberInterface` is now deprecated. It will be removed in v3.
- the `addListener`, `addListenerBefore`, `addListenerAfter`, `addListenerService`, `addListenerServiceBefore`, and `addListenerServiceAfter` methods have been deprecated. They will be removed in v3. Use `listener()` and `listenerService()` instead.

### Fixed
- Nothing

### Removed
- Nothing

### Security
- Nothing


## 1.5.0 - 2023-03-25

### Added
Expand Down
Loading
Loading