All notable changes to ajthinking/archetype are documented here.
This project follows Semantic Versioning.
2.0.1 - 2026-08-25
Maintenance only. No API changes, and nothing here can break existing usage.
- Support for PHP 8.2, 8.3 and 8.4, and for Laravel 10, 11 and 12 — now verified in CI across ten combinations rather than assumed.
- A
phprequirement (^8.1) incomposer.json. The package never declared one, so Composer could not warn anybody. 8.1 is the floor the code actually needs and the whole range CI exercises; the upper bound is deliberate, because PHP 9 removes dynamic properties and the AST node-identity mechanism still relies on them. LICENSE.md. The package has always been MIT; the file was missing.- This changelog.
.github/dependabot.yml, so dependency updates are configured rather than running on defaults.
- The test suite now runs against a pinned application skeleton in
tests/fixtures/laravelinstead of copying one out ofvendor/laravel/laravelat runtime. Laravel 11 removed most of the files the suite relied on (app/Console/Kernel.php,app/Exceptions/Handler.php,RouteServiceProviderand the middleware), which made the old approach untestable on current Laravel.laravel/laravelis no longer a dev dependency. - CI runs on
actions/checkout@v4andactions/cache@v4, and no longer uses the::set-outputcommand that GitHub has disabled. phpunit.xmlmigrated to the PHPUnit 10+ schema.Archetype\Tests\moved out of the production autoloader intoautoload-dev.minimum-stabilityis nowstable.
- Seven implicit-nullable parameters that raised deprecation notices on PHP 8.4
(
PHPFile::namespace(),Namespace_::namespace(),FileInput::load(),InputInterface::load(),EndpointProvider::__construct(),PHPParserPropertyMap::propertyMap()andASTQueryBuilder::traverseIntoClass()). getReflection()now catchesThrowablerather thanException. A file whose parent class or trait cannot be autoloaded raises anError, which previously escaped and killed the entire query instead of skipping that one file. This affectsLaravelFile::models(),controllers()andserviceProviders().tests/Pest.phpno longer defines a globalcontext()helper. Laravel 11 ships its owncontext(), and the collision brought the whole suite down before a single test could run.
2.0.0 - 2024-05-11
- Breaking: upgraded to
nikic/php-parser^5.0. Thanks to @jasonvarga (#85).
1.1.5 - 2022-08-24
Last release of the 1.x line, which requires nikic/php-parser ^4.11.
1.x cannot be installed alongside anything that needs php-parser 5 — including
Pest 3 and newer. If Composer refuses to resolve ajthinking/archetype, upgrade
to 2.x.