Feat: Acorn 5 - #47

Open
ictbeheer wants to merge 8 commits into
mainfrom
feat/acorn5
Open

Feat: Acorn 5#47
ictbeheer wants to merge 8 commits into
mainfrom
feat/acorn5

Conversation

@ictbeheer

@ictbeheerictbeheer commented Jun 9, 2026

Copy link
Copy Markdown
Member

This pull request introduces significant updates to the project to support Acorn v5, modernize dependencies, and simplify the codebase. The most notable changes include upgrading core dependencies, refactoring the application bootstrapping process, and removing custom integrations that are now handled natively or elsewhere.

Dependency and Compatibility Updates:

  • Upgraded the minimum PHP version requirement to 8.2 and updated key dependencies to support Acorn v5 and the latest versions of development tools in composer.json.

Application Bootstrapping and Structure:

  • Introduced a new Yard\Nutshell\Application class to encapsulate application configuration and bootstrapping, replacing the previous bootloader-based approach. This includes middleware, Sentry integration, custom providers, and logger setup.
  • Updated the documentation in README.md to reflect the new bootstrapping method using Yard\Nutshell\Application and removed references to the old bootloader helper.

Codebase Simplification and Cleanup:

  • Removed the custom Yard\Nutshell\Assets\Vite class and related documentation, as asset management is now handled natively. [1][2]
  • Removed the custom exception handler (Yard\Nutshell\Exceptions\Handler) and HTTP kernel (Yard\Nutshell\Http\Kernel), as their functionality is now integrated into the new application structure. [1][2]
  • Deleted the Yard\Nutshell\bootloader helper and its associated logic, consolidating all bootstrapping into the new application class.

Internal Refactoring:

  • Simplified provider replacement logic in DefaultProviders by using a dedicated replace method for provider mapping.

CopilotAI review requested due to automatic review settings June 9, 2026 12:42
@ictbeheer
ictbeheer requested a review from a team as a code ownerJune 9, 2026 12:42

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR upgrades Nutshell to support Roots Acorn v5 (and its newer Illuminate/Laravel stack), replacing the previous “bootloader helper + custom kernel/handler overrides” approach with an Application subclass that configures middleware, routing, paths, and exception handling via Acorn’s newer configuration builder API.

Changes:

  • Upgrade runtime/dev dependencies (Acorn v5, PHP >= 8.2, and associated Illuminate/Symfony ecosystem updates).
  • Replace the old bootloader() helper and custom Http\Kernel / exception handler wiring with Yard\Nutshell\Application::configure(...).
  • Update provider replacement logic and refresh README bootstrapping instructions.

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
src/Http/Kernel.phpRemoved old custom HTTP kernel (CSP middleware injection previously lived here).
src/helpers.phpRemoved old bootloader() helper and container bindings/aliases.
src/Exceptions/Handler.phpRemoved old Sentry exception reporting hook via custom handler.
src/DefaultProviders.phpSwitch to using replace(...) for provider substitution after Acorn default provider setup.
src/Assets/Vite.phpRemoved custom Vite asset path override.
src/Application.phpNew Acorn Application subclass configuring middleware, WordPress routing, public path, and Sentry integration.
README.mdUpdate bootstrap instructions to use the new Application::configure(...) entry point.
composer.jsonBump PHP requirement and Acorn major version; update dev tooling versions.
composer.lockLockfile refresh for the upgraded dependency graph.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadcomposer.json
Comment threadREADME.md Outdated

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 9 changed files in this pull request and generated 2 comments.

Comment threadREADME.md Outdated
Comment threadREADME.md
Comment on lines 79 to 90
```diff
-\Roots\bootloader()->boot();
+define('ACORN_BASEPATH', __DIR__);
+\Yard\Nutshell\bootloader()->boot();

add_action('after_setup_theme', function () {
- Application::configure()
- ->withProviders([
- App\Providers\ThemeServiceProvider::class,
- ])
+ Yard\Nutshell\Application::configure(__DIR__)
->boot();
}, 0);

```
@ictbeheerictbeheer linked an issue Jun 15, 2026 that may be closed by this pull request
SimonvanWijhe
SimonvanWijhe previously approved these changes Jun 18, 2026
@github-actions

Copy link
Copy Markdown
Composer package changes
Prod PackagesOperationBaseTargetLinkLicense
brick/mathUpgraded0.12.30.14.8CompareMIT
carbonphp/carbon-doctrine-typesUpgraded2.1.03.2.0CompareMIT
guzzlehttp/guzzleUpgraded7.15.27.15.3CompareMIT
guzzlehttp/promisesUpgraded2.5.12.5.2CompareMIT
guzzlehttp/uri-templateUpgradedv1.0.5v1.0.10CompareMIT
laravel/frameworkUpgraded10.50.2v12.65.0CompareMIT
laravel/promptsUpgradedv0.1.25v0.3.22CompareMIT
laravel/serializable-closureUpgradedv1.3.7v2.0.15CompareMIT
league/commonmarkUpgraded2.8.22.9.0CompareBSD-3-Clause
league/flysystemUpgraded3.33.03.35.2CompareMIT
league/mime-type-detectionUpgraded1.16.01.17.0CompareMIT
league/uriNew-7.8.1CompareMIT
league/uri-interfacesNew-7.8.1CompareMIT
nesbot/carbonUpgraded2.73.03.13.1CompareMIT
nette/utilsUpgradedv4.1.4v4.1.5CompareBSD-3-Clause, GPL-2.0-only, GPL-3.0-only
nunomaduro/termwindUpgradedv1.17.0v2.4.0CompareMIT
ramsey/uuidUpgraded4.9.24.9.3CompareMIT
roots/acornUpgradedv4.3.1v5.1.1CompareMIT
sentry/sentryUpgraded4.27.04.30.0CompareMIT
sentry/sentry-laravelUpgraded4.25.14.27.0CompareMIT
spatie/laravel-package-toolsUpgraded1.93.01.93.1CompareMIT
symfony/clockNew-v7.4.8CompareMIT
symfony/consoleUpgradedv6.4.37v7.4.15CompareMIT
symfony/error-handlerUpgradedv6.4.36v7.4.15CompareMIT
symfony/event-dispatcherUpgradedv7.4.9v7.4.15CompareMIT
symfony/event-dispatcher-contractsUpgradedv3.7.0v3.7.1CompareMIT
symfony/finderUpgradedv6.4.34v7.4.14CompareMIT
symfony/http-foundationUpgradedv6.4.41v7.4.15CompareMIT
symfony/http-kernelUpgradedv6.4.38v7.4.15CompareMIT
symfony/mailerUpgradedv6.4.40v7.4.15CompareMIT
symfony/mimeUpgradedv6.4.41v7.4.15CompareMIT
symfony/polyfill-intl-graphemeUpgradedv1.37.0v1.41.0CompareMIT
symfony/polyfill-php83Upgradedv1.38.2v1.41.0CompareMIT
symfony/polyfill-php84New-v1.38.1CompareMIT
symfony/polyfill-php85New-v1.41.0CompareMIT
symfony/processUpgradedv6.4.33v7.4.13CompareMIT
symfony/routingUpgradedv6.4.41v7.4.15CompareMIT
symfony/service-contractsUpgradedv3.7.0v3.7.1CompareMIT
symfony/stringUpgradedv7.4.8v7.4.15CompareMIT
symfony/translationUpgradedv6.4.38v7.4.14CompareMIT
symfony/translation-contractsUpgradedv3.7.0v3.7.1CompareMIT
symfony/uidUpgradedv6.4.32v7.4.9CompareMIT
symfony/var-dumperUpgradedv6.4.36v7.4.15CompareMIT
vlucas/phpdotenvUpgradedv5.6.3v5.6.4CompareBSD-3-Clause
Dev PackagesOperationBaseTargetLinkLicense
composer/pcreUpgraded3.3.23.4.0CompareMIT
ergebnis/agent-detectorNew-1.2.0CompareMIT
friendsofphp/php-cs-fixerUpgradedv3.94.2v3.95.18CompareMIT
iamcal/sql-parserUpgradedv0.5v0.7CompareMIT
larastan/larastanUpgradedv2.11.2v3.10.0CompareMIT
laravel/pailNew-v1.2.7CompareMIT
nikic/php-parserUpgradedv5.7.0v5.8.0CompareBSD-3-Clause
nunomaduro/collisionUpgradedv7.12.0v8.9.5CompareMIT
orchestra/canvasUpgradedv8.12.0v10.2.1CompareMIT
orchestra/canvas-coreUpgradedv8.11.0v10.2.0CompareMIT
orchestra/sidekickUpgradedv1.2.20v1.2.21CompareMIT
orchestra/testbenchUpgradedv8.37.0v10.11.0CompareMIT
orchestra/testbench-coreUpgradedv8.42.1v10.14.1CompareMIT
orchestra/workbenchUpgradedv8.19.0v10.2.0CompareMIT
php-stubs/wordpress-stubsUpgradedv6.9.1v6.9.4CompareMIT
phpstan/phpstanUpgraded1.12.332.2.8MIT
phpunit/php-code-coverageUpgraded10.1.1611.0.12CompareBSD-3-Clause
phpunit/php-file-iteratorUpgraded4.1.05.1.1CompareBSD-3-Clause
phpunit/php-invokerUpgraded4.0.05.0.1CompareBSD-3-Clause
phpunit/php-text-templateUpgraded3.0.14.0.1CompareBSD-3-Clause
phpunit/php-timerUpgraded6.0.07.0.1CompareBSD-3-Clause
phpunit/phpunitUpgraded10.5.6311.5.56CompareBSD-3-Clause
psy/psyshUpgradedv0.12.22v0.12.24CompareMIT
sebastian/cli-parserUpgraded2.0.13.0.2CompareBSD-3-Clause
sebastian/code-unitUpgraded2.0.03.0.3CompareBSD-3-Clause
sebastian/code-unit-reverse-lookupUpgraded3.0.04.0.1CompareBSD-3-Clause
sebastian/comparatorUpgraded5.0.56.3.3CompareBSD-3-Clause
sebastian/complexityUpgraded3.2.04.0.1CompareBSD-3-Clause
sebastian/diffUpgraded5.1.16.0.2CompareBSD-3-Clause
sebastian/environmentUpgraded6.1.07.2.1CompareBSD-3-Clause
sebastian/exporterUpgraded5.1.46.3.2CompareBSD-3-Clause
sebastian/global-stateUpgraded6.0.27.0.2CompareBSD-3-Clause
sebastian/lines-of-codeUpgraded2.0.23.0.1CompareBSD-3-Clause
sebastian/object-enumeratorUpgraded5.0.06.0.1CompareBSD-3-Clause
sebastian/object-reflectorUpgraded3.0.04.0.1CompareBSD-3-Clause
sebastian/recursion-contextUpgraded5.0.16.0.3CompareBSD-3-Clause
sebastian/typeUpgraded4.0.05.1.3CompareBSD-3-Clause
sebastian/versionUpgraded4.0.15.0.2CompareBSD-3-Clause
staabm/side-effects-detectorNew-1.0.5CompareMIT
symfony/filesystemUpgradedv7.4.8v7.4.15CompareMIT
symfony/polyfill-php81Upgradedv1.37.0v1.38.1CompareMIT
symfony/yamlUpgradedv6.4.41v7.4.15CompareMIT
szepeviktor/phpstan-wordpressUpgradedv1.3.5v2.0.3CompareMIT
symfony/polyfill-php73Removedv1.37.0-CompareMIT
symfony/polyfill-php84Removedv1.37.0-CompareMIT

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 9 changed files in this pull request and generated no new comments.

Suppressed comments (3)

src/Application.php:45

  • In a namespaced file, call WordPress global functions with a leading backslash to avoid namespace shadowing and improve lookup performance.
 do_action(Log::WP_ACTION_SET_LOGGER, $application->make('log'));

src/Application.php:37

  • In a namespaced file, unqualified WordPress global function calls rely on fallback resolution at runtime. Prefixing with a leading backslash avoids any accidental namespace shadowing and is slightly faster for function lookup.

This issue also appears on line 45 of the same file.

 ->withPaths(public: get_theme_file_path('public'))

README.md:75

  • This section heading still refers to the Acorn "Bootloader", but the PR removes the bootloader helper and switches the documented approach to Yard\Nutshell\Application::configure(). Renaming the heading will keep the docs consistent with the new bootstrapping mechanism.
2. **Update Acorn Bootloader**

@SimonvanWijhe

Copy link
Copy Markdown
Member

@rivanuff kan je PHPStan nog gerust stellen?

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Acorn 5 support

4 participants

@ictbeheer@SimonvanWijhe@rivanuff
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Feat: Acorn 5 - #47

Open
ictbeheer wants to merge 8 commits into
mainfrom
feat/acorn5
Open

Feat: Acorn 5#47
ictbeheer wants to merge 8 commits into
mainfrom
feat/acorn5

Conversation

@ictbeheer

@ictbeheerictbeheer commented Jun 9, 2026

Copy link
Copy Markdown
Member

This pull request introduces significant updates to the project to support Acorn v5, modernize dependencies, and simplify the codebase. The most notable changes include upgrading core dependencies, refactoring the application bootstrapping process, and removing custom integrations that are now handled natively or elsewhere.

Dependency and Compatibility Updates:

  • Upgraded the minimum PHP version requirement to 8.2 and updated key dependencies to support Acorn v5 and the latest versions of development tools in composer.json.

Application Bootstrapping and Structure:

  • Introduced a new Yard\Nutshell\Application class to encapsulate application configuration and bootstrapping, replacing the previous bootloader-based approach. This includes middleware, Sentry integration, custom providers, and logger setup.
  • Updated the documentation in README.md to reflect the new bootstrapping method using Yard\Nutshell\Application and removed references to the old bootloader helper.

Codebase Simplification and Cleanup:

  • Removed the custom Yard\Nutshell\Assets\Vite class and related documentation, as asset management is now handled natively. [1][2]
  • Removed the custom exception handler (Yard\Nutshell\Exceptions\Handler) and HTTP kernel (Yard\Nutshell\Http\Kernel), as their functionality is now integrated into the new application structure. [1][2]
  • Deleted the Yard\Nutshell\bootloader helper and its associated logic, consolidating all bootstrapping into the new application class.

Internal Refactoring:

  • Simplified provider replacement logic in DefaultProviders by using a dedicated replace method for provider mapping.

CopilotAI review requested due to automatic review settings June 9, 2026 12:42
@ictbeheer
ictbeheer requested a review from a team as a code ownerJune 9, 2026 12:42

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR upgrades Nutshell to support Roots Acorn v5 (and its newer Illuminate/Laravel stack), replacing the previous “bootloader helper + custom kernel/handler overrides” approach with an Application subclass that configures middleware, routing, paths, and exception handling via Acorn’s newer configuration builder API.

Changes:

  • Upgrade runtime/dev dependencies (Acorn v5, PHP >= 8.2, and associated Illuminate/Symfony ecosystem updates).
  • Replace the old bootloader() helper and custom Http\Kernel / exception handler wiring with Yard\Nutshell\Application::configure(...).
  • Update provider replacement logic and refresh README bootstrapping instructions.

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
src/Http/Kernel.phpRemoved old custom HTTP kernel (CSP middleware injection previously lived here).
src/helpers.phpRemoved old bootloader() helper and container bindings/aliases.
src/Exceptions/Handler.phpRemoved old Sentry exception reporting hook via custom handler.
src/DefaultProviders.phpSwitch to using replace(...) for provider substitution after Acorn default provider setup.
src/Assets/Vite.phpRemoved custom Vite asset path override.
src/Application.phpNew Acorn Application subclass configuring middleware, WordPress routing, public path, and Sentry integration.
README.mdUpdate bootstrap instructions to use the new Application::configure(...) entry point.
composer.jsonBump PHP requirement and Acorn major version; update dev tooling versions.
composer.lockLockfile refresh for the upgraded dependency graph.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadcomposer.json
Comment threadREADME.md Outdated

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 9 changed files in this pull request and generated 2 comments.

Comment threadREADME.md Outdated
Comment threadREADME.md
Comment on lines 79 to 90
```diff
-\Roots\bootloader()->boot();
+define('ACORN_BASEPATH', __DIR__);
+\Yard\Nutshell\bootloader()->boot();

add_action('after_setup_theme', function () {
- Application::configure()
- ->withProviders([
- App\Providers\ThemeServiceProvider::class,
- ])
+ Yard\Nutshell\Application::configure(__DIR__)
->boot();
}, 0);

```
@ictbeheerictbeheer linked an issue Jun 15, 2026 that may be closed by this pull request
SimonvanWijhe
SimonvanWijhe previously approved these changes Jun 18, 2026
@github-actions

Copy link
Copy Markdown
Composer package changes
Prod PackagesOperationBaseTargetLinkLicense
brick/mathUpgraded0.12.30.14.8CompareMIT
carbonphp/carbon-doctrine-typesUpgraded2.1.03.2.0CompareMIT
guzzlehttp/guzzleUpgraded7.15.27.15.3CompareMIT
guzzlehttp/promisesUpgraded2.5.12.5.2CompareMIT
guzzlehttp/uri-templateUpgradedv1.0.5v1.0.10CompareMIT
laravel/frameworkUpgraded10.50.2v12.65.0CompareMIT
laravel/promptsUpgradedv0.1.25v0.3.22CompareMIT
laravel/serializable-closureUpgradedv1.3.7v2.0.15CompareMIT
league/commonmarkUpgraded2.8.22.9.0CompareBSD-3-Clause
league/flysystemUpgraded3.33.03.35.2CompareMIT
league/mime-type-detectionUpgraded1.16.01.17.0CompareMIT
league/uriNew-7.8.1CompareMIT
league/uri-interfacesNew-7.8.1CompareMIT
nesbot/carbonUpgraded2.73.03.13.1CompareMIT
nette/utilsUpgradedv4.1.4v4.1.5CompareBSD-3-Clause, GPL-2.0-only, GPL-3.0-only
nunomaduro/termwindUpgradedv1.17.0v2.4.0CompareMIT
ramsey/uuidUpgraded4.9.24.9.3CompareMIT
roots/acornUpgradedv4.3.1v5.1.1CompareMIT
sentry/sentryUpgraded4.27.04.30.0CompareMIT
sentry/sentry-laravelUpgraded4.25.14.27.0CompareMIT
spatie/laravel-package-toolsUpgraded1.93.01.93.1CompareMIT
symfony/clockNew-v7.4.8CompareMIT
symfony/consoleUpgradedv6.4.37v7.4.15CompareMIT
symfony/error-handlerUpgradedv6.4.36v7.4.15CompareMIT
symfony/event-dispatcherUpgradedv7.4.9v7.4.15CompareMIT
symfony/event-dispatcher-contractsUpgradedv3.7.0v3.7.1CompareMIT
symfony/finderUpgradedv6.4.34v7.4.14CompareMIT
symfony/http-foundationUpgradedv6.4.41v7.4.15CompareMIT
symfony/http-kernelUpgradedv6.4.38v7.4.15CompareMIT
symfony/mailerUpgradedv6.4.40v7.4.15CompareMIT
symfony/mimeUpgradedv6.4.41v7.4.15CompareMIT
symfony/polyfill-intl-graphemeUpgradedv1.37.0v1.41.0CompareMIT
symfony/polyfill-php83Upgradedv1.38.2v1.41.0CompareMIT
symfony/polyfill-php84New-v1.38.1CompareMIT
symfony/polyfill-php85New-v1.41.0CompareMIT
symfony/processUpgradedv6.4.33v7.4.13CompareMIT
symfony/routingUpgradedv6.4.41v7.4.15CompareMIT
symfony/service-contractsUpgradedv3.7.0v3.7.1CompareMIT
symfony/stringUpgradedv7.4.8v7.4.15CompareMIT
symfony/translationUpgradedv6.4.38v7.4.14CompareMIT
symfony/translation-contractsUpgradedv3.7.0v3.7.1CompareMIT
symfony/uidUpgradedv6.4.32v7.4.9CompareMIT
symfony/var-dumperUpgradedv6.4.36v7.4.15CompareMIT
vlucas/phpdotenvUpgradedv5.6.3v5.6.4CompareBSD-3-Clause
Dev PackagesOperationBaseTargetLinkLicense
composer/pcreUpgraded3.3.23.4.0CompareMIT
ergebnis/agent-detectorNew-1.2.0CompareMIT
friendsofphp/php-cs-fixerUpgradedv3.94.2v3.95.18CompareMIT
iamcal/sql-parserUpgradedv0.5v0.7CompareMIT
larastan/larastanUpgradedv2.11.2v3.10.0CompareMIT
laravel/pailNew-v1.2.7CompareMIT
nikic/php-parserUpgradedv5.7.0v5.8.0CompareBSD-3-Clause
nunomaduro/collisionUpgradedv7.12.0v8.9.5CompareMIT
orchestra/canvasUpgradedv8.12.0v10.2.1CompareMIT
orchestra/canvas-coreUpgradedv8.11.0v10.2.0CompareMIT
orchestra/sidekickUpgradedv1.2.20v1.2.21CompareMIT
orchestra/testbenchUpgradedv8.37.0v10.11.0CompareMIT
orchestra/testbench-coreUpgradedv8.42.1v10.14.1CompareMIT
orchestra/workbenchUpgradedv8.19.0v10.2.0CompareMIT
php-stubs/wordpress-stubsUpgradedv6.9.1v6.9.4CompareMIT
phpstan/phpstanUpgraded1.12.332.2.8MIT
phpunit/php-code-coverageUpgraded10.1.1611.0.12CompareBSD-3-Clause
phpunit/php-file-iteratorUpgraded4.1.05.1.1CompareBSD-3-Clause
phpunit/php-invokerUpgraded4.0.05.0.1CompareBSD-3-Clause
phpunit/php-text-templateUpgraded3.0.14.0.1CompareBSD-3-Clause
phpunit/php-timerUpgraded6.0.07.0.1CompareBSD-3-Clause
phpunit/phpunitUpgraded10.5.6311.5.56CompareBSD-3-Clause
psy/psyshUpgradedv0.12.22v0.12.24CompareMIT
sebastian/cli-parserUpgraded2.0.13.0.2CompareBSD-3-Clause
sebastian/code-unitUpgraded2.0.03.0.3CompareBSD-3-Clause
sebastian/code-unit-reverse-lookupUpgraded3.0.04.0.1CompareBSD-3-Clause
sebastian/comparatorUpgraded5.0.56.3.3CompareBSD-3-Clause
sebastian/complexityUpgraded3.2.04.0.1CompareBSD-3-Clause
sebastian/diffUpgraded5.1.16.0.2CompareBSD-3-Clause
sebastian/environmentUpgraded6.1.07.2.1CompareBSD-3-Clause
sebastian/exporterUpgraded5.1.46.3.2CompareBSD-3-Clause
sebastian/global-stateUpgraded6.0.27.0.2CompareBSD-3-Clause
sebastian/lines-of-codeUpgraded2.0.23.0.1CompareBSD-3-Clause
sebastian/object-enumeratorUpgraded5.0.06.0.1CompareBSD-3-Clause
sebastian/object-reflectorUpgraded3.0.04.0.1CompareBSD-3-Clause
sebastian/recursion-contextUpgraded5.0.16.0.3CompareBSD-3-Clause
sebastian/typeUpgraded4.0.05.1.3CompareBSD-3-Clause
sebastian/versionUpgraded4.0.15.0.2CompareBSD-3-Clause
staabm/side-effects-detectorNew-1.0.5CompareMIT
symfony/filesystemUpgradedv7.4.8v7.4.15CompareMIT
symfony/polyfill-php81Upgradedv1.37.0v1.38.1CompareMIT
symfony/yamlUpgradedv6.4.41v7.4.15CompareMIT
szepeviktor/phpstan-wordpressUpgradedv1.3.5v2.0.3CompareMIT
symfony/polyfill-php73Removedv1.37.0-CompareMIT
symfony/polyfill-php84Removedv1.37.0-CompareMIT

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 9 changed files in this pull request and generated no new comments.

Suppressed comments (3)

src/Application.php:45

  • In a namespaced file, call WordPress global functions with a leading backslash to avoid namespace shadowing and improve lookup performance.
 do_action(Log::WP_ACTION_SET_LOGGER, $application->make('log'));

src/Application.php:37

  • In a namespaced file, unqualified WordPress global function calls rely on fallback resolution at runtime. Prefixing with a leading backslash avoids any accidental namespace shadowing and is slightly faster for function lookup.

This issue also appears on line 45 of the same file.

 ->withPaths(public: get_theme_file_path('public'))

README.md:75

  • This section heading still refers to the Acorn "Bootloader", but the PR removes the bootloader helper and switches the documented approach to Yard\Nutshell\Application::configure(). Renaming the heading will keep the docs consistent with the new bootstrapping mechanism.
2. **Update Acorn Bootloader**

@SimonvanWijhe

Copy link
Copy Markdown
Member

@rivanuff kan je PHPStan nog gerust stellen?

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Acorn 5 support

4 participants

@ictbeheer@SimonvanWijhe@rivanuff
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Feat: Acorn 5 - #47

Open
ictbeheer wants to merge 8 commits into
mainfrom
feat/acorn5
Open

Feat: Acorn 5#47
ictbeheer wants to merge 8 commits into
mainfrom
feat/acorn5

Conversation

@ictbeheer

@ictbeheerictbeheer commented Jun 9, 2026

Copy link
Copy Markdown
Member

This pull request introduces significant updates to the project to support Acorn v5, modernize dependencies, and simplify the codebase. The most notable changes include upgrading core dependencies, refactoring the application bootstrapping process, and removing custom integrations that are now handled natively or elsewhere.

Dependency and Compatibility Updates:

  • Upgraded the minimum PHP version requirement to 8.2 and updated key dependencies to support Acorn v5 and the latest versions of development tools in composer.json.

Application Bootstrapping and Structure:

  • Introduced a new Yard\Nutshell\Application class to encapsulate application configuration and bootstrapping, replacing the previous bootloader-based approach. This includes middleware, Sentry integration, custom providers, and logger setup.
  • Updated the documentation in README.md to reflect the new bootstrapping method using Yard\Nutshell\Application and removed references to the old bootloader helper.

Codebase Simplification and Cleanup:

  • Removed the custom Yard\Nutshell\Assets\Vite class and related documentation, as asset management is now handled natively. [1][2]
  • Removed the custom exception handler (Yard\Nutshell\Exceptions\Handler) and HTTP kernel (Yard\Nutshell\Http\Kernel), as their functionality is now integrated into the new application structure. [1][2]
  • Deleted the Yard\Nutshell\bootloader helper and its associated logic, consolidating all bootstrapping into the new application class.

Internal Refactoring:

  • Simplified provider replacement logic in DefaultProviders by using a dedicated replace method for provider mapping.

CopilotAI review requested due to automatic review settings June 9, 2026 12:42
@ictbeheer
ictbeheer requested a review from a team as a code ownerJune 9, 2026 12:42

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR upgrades Nutshell to support Roots Acorn v5 (and its newer Illuminate/Laravel stack), replacing the previous “bootloader helper + custom kernel/handler overrides” approach with an Application subclass that configures middleware, routing, paths, and exception handling via Acorn’s newer configuration builder API.

Changes:

  • Upgrade runtime/dev dependencies (Acorn v5, PHP >= 8.2, and associated Illuminate/Symfony ecosystem updates).
  • Replace the old bootloader() helper and custom Http\Kernel / exception handler wiring with Yard\Nutshell\Application::configure(...).
  • Update provider replacement logic and refresh README bootstrapping instructions.

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
src/Http/Kernel.phpRemoved old custom HTTP kernel (CSP middleware injection previously lived here).
src/helpers.phpRemoved old bootloader() helper and container bindings/aliases.
src/Exceptions/Handler.phpRemoved old Sentry exception reporting hook via custom handler.
src/DefaultProviders.phpSwitch to using replace(...) for provider substitution after Acorn default provider setup.
src/Assets/Vite.phpRemoved custom Vite asset path override.
src/Application.phpNew Acorn Application subclass configuring middleware, WordPress routing, public path, and Sentry integration.
README.mdUpdate bootstrap instructions to use the new Application::configure(...) entry point.
composer.jsonBump PHP requirement and Acorn major version; update dev tooling versions.
composer.lockLockfile refresh for the upgraded dependency graph.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadcomposer.json
Comment threadREADME.md Outdated

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 9 changed files in this pull request and generated 2 comments.

Comment threadREADME.md Outdated
Comment threadREADME.md
Comment on lines 79 to 90
```diff
-\Roots\bootloader()->boot();
+define('ACORN_BASEPATH', __DIR__);
+\Yard\Nutshell\bootloader()->boot();

add_action('after_setup_theme', function () {
- Application::configure()
- ->withProviders([
- App\Providers\ThemeServiceProvider::class,
- ])
+ Yard\Nutshell\Application::configure(__DIR__)
->boot();
}, 0);

```
@ictbeheerictbeheer linked an issue Jun 15, 2026 that may be closed by this pull request
SimonvanWijhe
SimonvanWijhe previously approved these changes Jun 18, 2026
@github-actions

Copy link
Copy Markdown
Composer package changes
Prod PackagesOperationBaseTargetLinkLicense
brick/mathUpgraded0.12.30.14.8CompareMIT
carbonphp/carbon-doctrine-typesUpgraded2.1.03.2.0CompareMIT
guzzlehttp/guzzleUpgraded7.15.27.15.3CompareMIT
guzzlehttp/promisesUpgraded2.5.12.5.2CompareMIT
guzzlehttp/uri-templateUpgradedv1.0.5v1.0.10CompareMIT
laravel/frameworkUpgraded10.50.2v12.65.0CompareMIT
laravel/promptsUpgradedv0.1.25v0.3.22CompareMIT
laravel/serializable-closureUpgradedv1.3.7v2.0.15CompareMIT
league/commonmarkUpgraded2.8.22.9.0CompareBSD-3-Clause
league/flysystemUpgraded3.33.03.35.2CompareMIT
league/mime-type-detectionUpgraded1.16.01.17.0CompareMIT
league/uriNew-7.8.1CompareMIT
league/uri-interfacesNew-7.8.1CompareMIT
nesbot/carbonUpgraded2.73.03.13.1CompareMIT
nette/utilsUpgradedv4.1.4v4.1.5CompareBSD-3-Clause, GPL-2.0-only, GPL-3.0-only
nunomaduro/termwindUpgradedv1.17.0v2.4.0CompareMIT
ramsey/uuidUpgraded4.9.24.9.3CompareMIT
roots/acornUpgradedv4.3.1v5.1.1CompareMIT
sentry/sentryUpgraded4.27.04.30.0CompareMIT
sentry/sentry-laravelUpgraded4.25.14.27.0CompareMIT
spatie/laravel-package-toolsUpgraded1.93.01.93.1CompareMIT
symfony/clockNew-v7.4.8CompareMIT
symfony/consoleUpgradedv6.4.37v7.4.15CompareMIT
symfony/error-handlerUpgradedv6.4.36v7.4.15CompareMIT
symfony/event-dispatcherUpgradedv7.4.9v7.4.15CompareMIT
symfony/event-dispatcher-contractsUpgradedv3.7.0v3.7.1CompareMIT
symfony/finderUpgradedv6.4.34v7.4.14CompareMIT
symfony/http-foundationUpgradedv6.4.41v7.4.15CompareMIT
symfony/http-kernelUpgradedv6.4.38v7.4.15CompareMIT
symfony/mailerUpgradedv6.4.40v7.4.15CompareMIT
symfony/mimeUpgradedv6.4.41v7.4.15CompareMIT
symfony/polyfill-intl-graphemeUpgradedv1.37.0v1.41.0CompareMIT
symfony/polyfill-php83Upgradedv1.38.2v1.41.0CompareMIT
symfony/polyfill-php84New-v1.38.1CompareMIT
symfony/polyfill-php85New-v1.41.0CompareMIT
symfony/processUpgradedv6.4.33v7.4.13CompareMIT
symfony/routingUpgradedv6.4.41v7.4.15CompareMIT
symfony/service-contractsUpgradedv3.7.0v3.7.1CompareMIT
symfony/stringUpgradedv7.4.8v7.4.15CompareMIT
symfony/translationUpgradedv6.4.38v7.4.14CompareMIT
symfony/translation-contractsUpgradedv3.7.0v3.7.1CompareMIT
symfony/uidUpgradedv6.4.32v7.4.9CompareMIT
symfony/var-dumperUpgradedv6.4.36v7.4.15CompareMIT
vlucas/phpdotenvUpgradedv5.6.3v5.6.4CompareBSD-3-Clause
Dev PackagesOperationBaseTargetLinkLicense
composer/pcreUpgraded3.3.23.4.0CompareMIT
ergebnis/agent-detectorNew-1.2.0CompareMIT
friendsofphp/php-cs-fixerUpgradedv3.94.2v3.95.18CompareMIT
iamcal/sql-parserUpgradedv0.5v0.7CompareMIT
larastan/larastanUpgradedv2.11.2v3.10.0CompareMIT
laravel/pailNew-v1.2.7CompareMIT
nikic/php-parserUpgradedv5.7.0v5.8.0CompareBSD-3-Clause
nunomaduro/collisionUpgradedv7.12.0v8.9.5CompareMIT
orchestra/canvasUpgradedv8.12.0v10.2.1CompareMIT
orchestra/canvas-coreUpgradedv8.11.0v10.2.0CompareMIT
orchestra/sidekickUpgradedv1.2.20v1.2.21CompareMIT
orchestra/testbenchUpgradedv8.37.0v10.11.0CompareMIT
orchestra/testbench-coreUpgradedv8.42.1v10.14.1CompareMIT
orchestra/workbenchUpgradedv8.19.0v10.2.0CompareMIT
php-stubs/wordpress-stubsUpgradedv6.9.1v6.9.4CompareMIT
phpstan/phpstanUpgraded1.12.332.2.8MIT
phpunit/php-code-coverageUpgraded10.1.1611.0.12CompareBSD-3-Clause
phpunit/php-file-iteratorUpgraded4.1.05.1.1CompareBSD-3-Clause
phpunit/php-invokerUpgraded4.0.05.0.1CompareBSD-3-Clause
phpunit/php-text-templateUpgraded3.0.14.0.1CompareBSD-3-Clause
phpunit/php-timerUpgraded6.0.07.0.1CompareBSD-3-Clause
phpunit/phpunitUpgraded10.5.6311.5.56CompareBSD-3-Clause
psy/psyshUpgradedv0.12.22v0.12.24CompareMIT
sebastian/cli-parserUpgraded2.0.13.0.2CompareBSD-3-Clause
sebastian/code-unitUpgraded2.0.03.0.3CompareBSD-3-Clause
sebastian/code-unit-reverse-lookupUpgraded3.0.04.0.1CompareBSD-3-Clause
sebastian/comparatorUpgraded5.0.56.3.3CompareBSD-3-Clause
sebastian/complexityUpgraded3.2.04.0.1CompareBSD-3-Clause
sebastian/diffUpgraded5.1.16.0.2CompareBSD-3-Clause
sebastian/environmentUpgraded6.1.07.2.1CompareBSD-3-Clause
sebastian/exporterUpgraded5.1.46.3.2CompareBSD-3-Clause
sebastian/global-stateUpgraded6.0.27.0.2CompareBSD-3-Clause
sebastian/lines-of-codeUpgraded2.0.23.0.1CompareBSD-3-Clause
sebastian/object-enumeratorUpgraded5.0.06.0.1CompareBSD-3-Clause
sebastian/object-reflectorUpgraded3.0.04.0.1CompareBSD-3-Clause
sebastian/recursion-contextUpgraded5.0.16.0.3CompareBSD-3-Clause
sebastian/typeUpgraded4.0.05.1.3CompareBSD-3-Clause
sebastian/versionUpgraded4.0.15.0.2CompareBSD-3-Clause
staabm/side-effects-detectorNew-1.0.5CompareMIT
symfony/filesystemUpgradedv7.4.8v7.4.15CompareMIT
symfony/polyfill-php81Upgradedv1.37.0v1.38.1CompareMIT
symfony/yamlUpgradedv6.4.41v7.4.15CompareMIT
szepeviktor/phpstan-wordpressUpgradedv1.3.5v2.0.3CompareMIT
symfony/polyfill-php73Removedv1.37.0-CompareMIT
symfony/polyfill-php84Removedv1.37.0-CompareMIT

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 9 changed files in this pull request and generated no new comments.

Suppressed comments (3)

src/Application.php:45

  • In a namespaced file, call WordPress global functions with a leading backslash to avoid namespace shadowing and improve lookup performance.
 do_action(Log::WP_ACTION_SET_LOGGER, $application->make('log'));

src/Application.php:37

  • In a namespaced file, unqualified WordPress global function calls rely on fallback resolution at runtime. Prefixing with a leading backslash avoids any accidental namespace shadowing and is slightly faster for function lookup.

This issue also appears on line 45 of the same file.

 ->withPaths(public: get_theme_file_path('public'))

README.md:75

  • This section heading still refers to the Acorn "Bootloader", but the PR removes the bootloader helper and switches the documented approach to Yard\Nutshell\Application::configure(). Renaming the heading will keep the docs consistent with the new bootstrapping mechanism.
2. **Update Acorn Bootloader**

@SimonvanWijhe

Copy link
Copy Markdown
Member

@rivanuff kan je PHPStan nog gerust stellen?

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Acorn 5 support

4 participants

@ictbeheer@SimonvanWijhe@rivanuff
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Feat: Acorn 5 - #47

Open
ictbeheer wants to merge 8 commits into
mainfrom
feat/acorn5
Open

Feat: Acorn 5#47
ictbeheer wants to merge 8 commits into
mainfrom
feat/acorn5

Conversation

@ictbeheer

@ictbeheerictbeheer commented Jun 9, 2026

Copy link
Copy Markdown
Member

This pull request introduces significant updates to the project to support Acorn v5, modernize dependencies, and simplify the codebase. The most notable changes include upgrading core dependencies, refactoring the application bootstrapping process, and removing custom integrations that are now handled natively or elsewhere.

Dependency and Compatibility Updates:

  • Upgraded the minimum PHP version requirement to 8.2 and updated key dependencies to support Acorn v5 and the latest versions of development tools in composer.json.

Application Bootstrapping and Structure:

  • Introduced a new Yard\Nutshell\Application class to encapsulate application configuration and bootstrapping, replacing the previous bootloader-based approach. This includes middleware, Sentry integration, custom providers, and logger setup.
  • Updated the documentation in README.md to reflect the new bootstrapping method using Yard\Nutshell\Application and removed references to the old bootloader helper.

Codebase Simplification and Cleanup:

  • Removed the custom Yard\Nutshell\Assets\Vite class and related documentation, as asset management is now handled natively. [1][2]
  • Removed the custom exception handler (Yard\Nutshell\Exceptions\Handler) and HTTP kernel (Yard\Nutshell\Http\Kernel), as their functionality is now integrated into the new application structure. [1][2]
  • Deleted the Yard\Nutshell\bootloader helper and its associated logic, consolidating all bootstrapping into the new application class.

Internal Refactoring:

  • Simplified provider replacement logic in DefaultProviders by using a dedicated replace method for provider mapping.

CopilotAI review requested due to automatic review settings June 9, 2026 12:42
@ictbeheer
ictbeheer requested a review from a team as a code ownerJune 9, 2026 12:42

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR upgrades Nutshell to support Roots Acorn v5 (and its newer Illuminate/Laravel stack), replacing the previous “bootloader helper + custom kernel/handler overrides” approach with an Application subclass that configures middleware, routing, paths, and exception handling via Acorn’s newer configuration builder API.

Changes:

  • Upgrade runtime/dev dependencies (Acorn v5, PHP >= 8.2, and associated Illuminate/Symfony ecosystem updates).
  • Replace the old bootloader() helper and custom Http\Kernel / exception handler wiring with Yard\Nutshell\Application::configure(...).
  • Update provider replacement logic and refresh README bootstrapping instructions.

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
src/Http/Kernel.phpRemoved old custom HTTP kernel (CSP middleware injection previously lived here).
src/helpers.phpRemoved old bootloader() helper and container bindings/aliases.
src/Exceptions/Handler.phpRemoved old Sentry exception reporting hook via custom handler.
src/DefaultProviders.phpSwitch to using replace(...) for provider substitution after Acorn default provider setup.
src/Assets/Vite.phpRemoved custom Vite asset path override.
src/Application.phpNew Acorn Application subclass configuring middleware, WordPress routing, public path, and Sentry integration.
README.mdUpdate bootstrap instructions to use the new Application::configure(...) entry point.
composer.jsonBump PHP requirement and Acorn major version; update dev tooling versions.
composer.lockLockfile refresh for the upgraded dependency graph.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadcomposer.json
Comment threadREADME.md Outdated

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 9 changed files in this pull request and generated 2 comments.

Comment threadREADME.md Outdated
Comment threadREADME.md
Comment on lines 79 to 90
```diff
-\Roots\bootloader()->boot();
+define('ACORN_BASEPATH', __DIR__);
+\Yard\Nutshell\bootloader()->boot();

add_action('after_setup_theme', function () {
- Application::configure()
- ->withProviders([
- App\Providers\ThemeServiceProvider::class,
- ])
+ Yard\Nutshell\Application::configure(__DIR__)
->boot();
}, 0);

```
@ictbeheerictbeheer linked an issue Jun 15, 2026 that may be closed by this pull request
SimonvanWijhe
SimonvanWijhe previously approved these changes Jun 18, 2026
@github-actions

Copy link
Copy Markdown
Composer package changes
Prod PackagesOperationBaseTargetLinkLicense
brick/mathUpgraded0.12.30.14.8CompareMIT
carbonphp/carbon-doctrine-typesUpgraded2.1.03.2.0CompareMIT
guzzlehttp/guzzleUpgraded7.15.27.15.3CompareMIT
guzzlehttp/promisesUpgraded2.5.12.5.2CompareMIT
guzzlehttp/uri-templateUpgradedv1.0.5v1.0.10CompareMIT
laravel/frameworkUpgraded10.50.2v12.65.0CompareMIT
laravel/promptsUpgradedv0.1.25v0.3.22CompareMIT
laravel/serializable-closureUpgradedv1.3.7v2.0.15CompareMIT
league/commonmarkUpgraded2.8.22.9.0CompareBSD-3-Clause
league/flysystemUpgraded3.33.03.35.2CompareMIT
league/mime-type-detectionUpgraded1.16.01.17.0CompareMIT
league/uriNew-7.8.1CompareMIT
league/uri-interfacesNew-7.8.1CompareMIT
nesbot/carbonUpgraded2.73.03.13.1CompareMIT
nette/utilsUpgradedv4.1.4v4.1.5CompareBSD-3-Clause, GPL-2.0-only, GPL-3.0-only
nunomaduro/termwindUpgradedv1.17.0v2.4.0CompareMIT
ramsey/uuidUpgraded4.9.24.9.3CompareMIT
roots/acornUpgradedv4.3.1v5.1.1CompareMIT
sentry/sentryUpgraded4.27.04.30.0CompareMIT
sentry/sentry-laravelUpgraded4.25.14.27.0CompareMIT
spatie/laravel-package-toolsUpgraded1.93.01.93.1CompareMIT
symfony/clockNew-v7.4.8CompareMIT
symfony/consoleUpgradedv6.4.37v7.4.15CompareMIT
symfony/error-handlerUpgradedv6.4.36v7.4.15CompareMIT
symfony/event-dispatcherUpgradedv7.4.9v7.4.15CompareMIT
symfony/event-dispatcher-contractsUpgradedv3.7.0v3.7.1CompareMIT
symfony/finderUpgradedv6.4.34v7.4.14CompareMIT
symfony/http-foundationUpgradedv6.4.41v7.4.15CompareMIT
symfony/http-kernelUpgradedv6.4.38v7.4.15CompareMIT
symfony/mailerUpgradedv6.4.40v7.4.15CompareMIT
symfony/mimeUpgradedv6.4.41v7.4.15CompareMIT
symfony/polyfill-intl-graphemeUpgradedv1.37.0v1.41.0CompareMIT
symfony/polyfill-php83Upgradedv1.38.2v1.41.0CompareMIT
symfony/polyfill-php84New-v1.38.1CompareMIT
symfony/polyfill-php85New-v1.41.0CompareMIT
symfony/processUpgradedv6.4.33v7.4.13CompareMIT
symfony/routingUpgradedv6.4.41v7.4.15CompareMIT
symfony/service-contractsUpgradedv3.7.0v3.7.1CompareMIT
symfony/stringUpgradedv7.4.8v7.4.15CompareMIT
symfony/translationUpgradedv6.4.38v7.4.14CompareMIT
symfony/translation-contractsUpgradedv3.7.0v3.7.1CompareMIT
symfony/uidUpgradedv6.4.32v7.4.9CompareMIT
symfony/var-dumperUpgradedv6.4.36v7.4.15CompareMIT
vlucas/phpdotenvUpgradedv5.6.3v5.6.4CompareBSD-3-Clause
Dev PackagesOperationBaseTargetLinkLicense
composer/pcreUpgraded3.3.23.4.0CompareMIT
ergebnis/agent-detectorNew-1.2.0CompareMIT
friendsofphp/php-cs-fixerUpgradedv3.94.2v3.95.18CompareMIT
iamcal/sql-parserUpgradedv0.5v0.7CompareMIT
larastan/larastanUpgradedv2.11.2v3.10.0CompareMIT
laravel/pailNew-v1.2.7CompareMIT
nikic/php-parserUpgradedv5.7.0v5.8.0CompareBSD-3-Clause
nunomaduro/collisionUpgradedv7.12.0v8.9.5CompareMIT
orchestra/canvasUpgradedv8.12.0v10.2.1CompareMIT
orchestra/canvas-coreUpgradedv8.11.0v10.2.0CompareMIT
orchestra/sidekickUpgradedv1.2.20v1.2.21CompareMIT
orchestra/testbenchUpgradedv8.37.0v10.11.0CompareMIT
orchestra/testbench-coreUpgradedv8.42.1v10.14.1CompareMIT
orchestra/workbenchUpgradedv8.19.0v10.2.0CompareMIT
php-stubs/wordpress-stubsUpgradedv6.9.1v6.9.4CompareMIT
phpstan/phpstanUpgraded1.12.332.2.8MIT
phpunit/php-code-coverageUpgraded10.1.1611.0.12CompareBSD-3-Clause
phpunit/php-file-iteratorUpgraded4.1.05.1.1CompareBSD-3-Clause
phpunit/php-invokerUpgraded4.0.05.0.1CompareBSD-3-Clause
phpunit/php-text-templateUpgraded3.0.14.0.1CompareBSD-3-Clause
phpunit/php-timerUpgraded6.0.07.0.1CompareBSD-3-Clause
phpunit/phpunitUpgraded10.5.6311.5.56CompareBSD-3-Clause
psy/psyshUpgradedv0.12.22v0.12.24CompareMIT
sebastian/cli-parserUpgraded2.0.13.0.2CompareBSD-3-Clause
sebastian/code-unitUpgraded2.0.03.0.3CompareBSD-3-Clause
sebastian/code-unit-reverse-lookupUpgraded3.0.04.0.1CompareBSD-3-Clause
sebastian/comparatorUpgraded5.0.56.3.3CompareBSD-3-Clause
sebastian/complexityUpgraded3.2.04.0.1CompareBSD-3-Clause
sebastian/diffUpgraded5.1.16.0.2CompareBSD-3-Clause
sebastian/environmentUpgraded6.1.07.2.1CompareBSD-3-Clause
sebastian/exporterUpgraded5.1.46.3.2CompareBSD-3-Clause
sebastian/global-stateUpgraded6.0.27.0.2CompareBSD-3-Clause
sebastian/lines-of-codeUpgraded2.0.23.0.1CompareBSD-3-Clause
sebastian/object-enumeratorUpgraded5.0.06.0.1CompareBSD-3-Clause
sebastian/object-reflectorUpgraded3.0.04.0.1CompareBSD-3-Clause
sebastian/recursion-contextUpgraded5.0.16.0.3CompareBSD-3-Clause
sebastian/typeUpgraded4.0.05.1.3CompareBSD-3-Clause
sebastian/versionUpgraded4.0.15.0.2CompareBSD-3-Clause
staabm/side-effects-detectorNew-1.0.5CompareMIT
symfony/filesystemUpgradedv7.4.8v7.4.15CompareMIT
symfony/polyfill-php81Upgradedv1.37.0v1.38.1CompareMIT
symfony/yamlUpgradedv6.4.41v7.4.15CompareMIT
szepeviktor/phpstan-wordpressUpgradedv1.3.5v2.0.3CompareMIT
symfony/polyfill-php73Removedv1.37.0-CompareMIT
symfony/polyfill-php84Removedv1.37.0-CompareMIT

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 9 changed files in this pull request and generated no new comments.

Suppressed comments (3)

src/Application.php:45

  • In a namespaced file, call WordPress global functions with a leading backslash to avoid namespace shadowing and improve lookup performance.
 do_action(Log::WP_ACTION_SET_LOGGER, $application->make('log'));

src/Application.php:37

  • In a namespaced file, unqualified WordPress global function calls rely on fallback resolution at runtime. Prefixing with a leading backslash avoids any accidental namespace shadowing and is slightly faster for function lookup.

This issue also appears on line 45 of the same file.

 ->withPaths(public: get_theme_file_path('public'))

README.md:75

  • This section heading still refers to the Acorn "Bootloader", but the PR removes the bootloader helper and switches the documented approach to Yard\Nutshell\Application::configure(). Renaming the heading will keep the docs consistent with the new bootstrapping mechanism.
2. **Update Acorn Bootloader**

@SimonvanWijhe

Copy link
Copy Markdown
Member

@rivanuff kan je PHPStan nog gerust stellen?

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Acorn 5 support

4 participants

@ictbeheer@SimonvanWijhe@rivanuff
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Feat: Acorn 5 - #47

Open
ictbeheer wants to merge 8 commits into
mainfrom
feat/acorn5
Open

Feat: Acorn 5#47
ictbeheer wants to merge 8 commits into
mainfrom
feat/acorn5

Conversation

@ictbeheer

@ictbeheerictbeheer commented Jun 9, 2026

Copy link
Copy Markdown
Member

This pull request introduces significant updates to the project to support Acorn v5, modernize dependencies, and simplify the codebase. The most notable changes include upgrading core dependencies, refactoring the application bootstrapping process, and removing custom integrations that are now handled natively or elsewhere.

Dependency and Compatibility Updates:

  • Upgraded the minimum PHP version requirement to 8.2 and updated key dependencies to support Acorn v5 and the latest versions of development tools in composer.json.

Application Bootstrapping and Structure:

  • Introduced a new Yard\Nutshell\Application class to encapsulate application configuration and bootstrapping, replacing the previous bootloader-based approach. This includes middleware, Sentry integration, custom providers, and logger setup.
  • Updated the documentation in README.md to reflect the new bootstrapping method using Yard\Nutshell\Application and removed references to the old bootloader helper.

Codebase Simplification and Cleanup:

  • Removed the custom Yard\Nutshell\Assets\Vite class and related documentation, as asset management is now handled natively. [1][2]
  • Removed the custom exception handler (Yard\Nutshell\Exceptions\Handler) and HTTP kernel (Yard\Nutshell\Http\Kernel), as their functionality is now integrated into the new application structure. [1][2]
  • Deleted the Yard\Nutshell\bootloader helper and its associated logic, consolidating all bootstrapping into the new application class.

Internal Refactoring:

  • Simplified provider replacement logic in DefaultProviders by using a dedicated replace method for provider mapping.

CopilotAI review requested due to automatic review settings June 9, 2026 12:42
@ictbeheer
ictbeheer requested a review from a team as a code ownerJune 9, 2026 12:42

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR upgrades Nutshell to support Roots Acorn v5 (and its newer Illuminate/Laravel stack), replacing the previous “bootloader helper + custom kernel/handler overrides” approach with an Application subclass that configures middleware, routing, paths, and exception handling via Acorn’s newer configuration builder API.

Changes:

  • Upgrade runtime/dev dependencies (Acorn v5, PHP >= 8.2, and associated Illuminate/Symfony ecosystem updates).
  • Replace the old bootloader() helper and custom Http\Kernel / exception handler wiring with Yard\Nutshell\Application::configure(...).
  • Update provider replacement logic and refresh README bootstrapping instructions.

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
src/Http/Kernel.phpRemoved old custom HTTP kernel (CSP middleware injection previously lived here).
src/helpers.phpRemoved old bootloader() helper and container bindings/aliases.
src/Exceptions/Handler.phpRemoved old Sentry exception reporting hook via custom handler.
src/DefaultProviders.phpSwitch to using replace(...) for provider substitution after Acorn default provider setup.
src/Assets/Vite.phpRemoved custom Vite asset path override.
src/Application.phpNew Acorn Application subclass configuring middleware, WordPress routing, public path, and Sentry integration.
README.mdUpdate bootstrap instructions to use the new Application::configure(...) entry point.
composer.jsonBump PHP requirement and Acorn major version; update dev tooling versions.
composer.lockLockfile refresh for the upgraded dependency graph.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadcomposer.json
Comment threadREADME.md Outdated

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 9 changed files in this pull request and generated 2 comments.

Comment threadREADME.md Outdated
Comment threadREADME.md
Comment on lines 79 to 90
```diff
-\Roots\bootloader()->boot();
+define('ACORN_BASEPATH', __DIR__);
+\Yard\Nutshell\bootloader()->boot();

add_action('after_setup_theme', function () {
- Application::configure()
- ->withProviders([
- App\Providers\ThemeServiceProvider::class,
- ])
+ Yard\Nutshell\Application::configure(__DIR__)
->boot();
}, 0);

```
@ictbeheerictbeheer linked an issue Jun 15, 2026 that may be closed by this pull request
SimonvanWijhe
SimonvanWijhe previously approved these changes Jun 18, 2026
@github-actions

Copy link
Copy Markdown
Composer package changes
Prod PackagesOperationBaseTargetLinkLicense
brick/mathUpgraded0.12.30.14.8CompareMIT
carbonphp/carbon-doctrine-typesUpgraded2.1.03.2.0CompareMIT
guzzlehttp/guzzleUpgraded7.15.27.15.3CompareMIT
guzzlehttp/promisesUpgraded2.5.12.5.2CompareMIT
guzzlehttp/uri-templateUpgradedv1.0.5v1.0.10CompareMIT
laravel/frameworkUpgraded10.50.2v12.65.0CompareMIT
laravel/promptsUpgradedv0.1.25v0.3.22CompareMIT
laravel/serializable-closureUpgradedv1.3.7v2.0.15CompareMIT
league/commonmarkUpgraded2.8.22.9.0CompareBSD-3-Clause
league/flysystemUpgraded3.33.03.35.2CompareMIT
league/mime-type-detectionUpgraded1.16.01.17.0CompareMIT
league/uriNew-7.8.1CompareMIT
league/uri-interfacesNew-7.8.1CompareMIT
nesbot/carbonUpgraded2.73.03.13.1CompareMIT
nette/utilsUpgradedv4.1.4v4.1.5CompareBSD-3-Clause, GPL-2.0-only, GPL-3.0-only
nunomaduro/termwindUpgradedv1.17.0v2.4.0CompareMIT
ramsey/uuidUpgraded4.9.24.9.3CompareMIT
roots/acornUpgradedv4.3.1v5.1.1CompareMIT
sentry/sentryUpgraded4.27.04.30.0CompareMIT
sentry/sentry-laravelUpgraded4.25.14.27.0CompareMIT
spatie/laravel-package-toolsUpgraded1.93.01.93.1CompareMIT
symfony/clockNew-v7.4.8CompareMIT
symfony/consoleUpgradedv6.4.37v7.4.15CompareMIT
symfony/error-handlerUpgradedv6.4.36v7.4.15CompareMIT
symfony/event-dispatcherUpgradedv7.4.9v7.4.15CompareMIT
symfony/event-dispatcher-contractsUpgradedv3.7.0v3.7.1CompareMIT
symfony/finderUpgradedv6.4.34v7.4.14CompareMIT
symfony/http-foundationUpgradedv6.4.41v7.4.15CompareMIT
symfony/http-kernelUpgradedv6.4.38v7.4.15CompareMIT
symfony/mailerUpgradedv6.4.40v7.4.15CompareMIT
symfony/mimeUpgradedv6.4.41v7.4.15CompareMIT
symfony/polyfill-intl-graphemeUpgradedv1.37.0v1.41.0CompareMIT
symfony/polyfill-php83Upgradedv1.38.2v1.41.0CompareMIT
symfony/polyfill-php84New-v1.38.1CompareMIT
symfony/polyfill-php85New-v1.41.0CompareMIT
symfony/processUpgradedv6.4.33v7.4.13CompareMIT
symfony/routingUpgradedv6.4.41v7.4.15CompareMIT
symfony/service-contractsUpgradedv3.7.0v3.7.1CompareMIT
symfony/stringUpgradedv7.4.8v7.4.15CompareMIT
symfony/translationUpgradedv6.4.38v7.4.14CompareMIT
symfony/translation-contractsUpgradedv3.7.0v3.7.1CompareMIT
symfony/uidUpgradedv6.4.32v7.4.9CompareMIT
symfony/var-dumperUpgradedv6.4.36v7.4.15CompareMIT
vlucas/phpdotenvUpgradedv5.6.3v5.6.4CompareBSD-3-Clause
Dev PackagesOperationBaseTargetLinkLicense
composer/pcreUpgraded3.3.23.4.0CompareMIT
ergebnis/agent-detectorNew-1.2.0CompareMIT
friendsofphp/php-cs-fixerUpgradedv3.94.2v3.95.18CompareMIT
iamcal/sql-parserUpgradedv0.5v0.7CompareMIT
larastan/larastanUpgradedv2.11.2v3.10.0CompareMIT
laravel/pailNew-v1.2.7CompareMIT
nikic/php-parserUpgradedv5.7.0v5.8.0CompareBSD-3-Clause
nunomaduro/collisionUpgradedv7.12.0v8.9.5CompareMIT
orchestra/canvasUpgradedv8.12.0v10.2.1CompareMIT
orchestra/canvas-coreUpgradedv8.11.0v10.2.0CompareMIT
orchestra/sidekickUpgradedv1.2.20v1.2.21CompareMIT
orchestra/testbenchUpgradedv8.37.0v10.11.0CompareMIT
orchestra/testbench-coreUpgradedv8.42.1v10.14.1CompareMIT
orchestra/workbenchUpgradedv8.19.0v10.2.0CompareMIT
php-stubs/wordpress-stubsUpgradedv6.9.1v6.9.4CompareMIT
phpstan/phpstanUpgraded1.12.332.2.8MIT
phpunit/php-code-coverageUpgraded10.1.1611.0.12CompareBSD-3-Clause
phpunit/php-file-iteratorUpgraded4.1.05.1.1CompareBSD-3-Clause
phpunit/php-invokerUpgraded4.0.05.0.1CompareBSD-3-Clause
phpunit/php-text-templateUpgraded3.0.14.0.1CompareBSD-3-Clause
phpunit/php-timerUpgraded6.0.07.0.1CompareBSD-3-Clause
phpunit/phpunitUpgraded10.5.6311.5.56CompareBSD-3-Clause
psy/psyshUpgradedv0.12.22v0.12.24CompareMIT
sebastian/cli-parserUpgraded2.0.13.0.2CompareBSD-3-Clause
sebastian/code-unitUpgraded2.0.03.0.3CompareBSD-3-Clause
sebastian/code-unit-reverse-lookupUpgraded3.0.04.0.1CompareBSD-3-Clause
sebastian/comparatorUpgraded5.0.56.3.3CompareBSD-3-Clause
sebastian/complexityUpgraded3.2.04.0.1CompareBSD-3-Clause
sebastian/diffUpgraded5.1.16.0.2CompareBSD-3-Clause
sebastian/environmentUpgraded6.1.07.2.1CompareBSD-3-Clause
sebastian/exporterUpgraded5.1.46.3.2CompareBSD-3-Clause
sebastian/global-stateUpgraded6.0.27.0.2CompareBSD-3-Clause
sebastian/lines-of-codeUpgraded2.0.23.0.1CompareBSD-3-Clause
sebastian/object-enumeratorUpgraded5.0.06.0.1CompareBSD-3-Clause
sebastian/object-reflectorUpgraded3.0.04.0.1CompareBSD-3-Clause
sebastian/recursion-contextUpgraded5.0.16.0.3CompareBSD-3-Clause
sebastian/typeUpgraded4.0.05.1.3CompareBSD-3-Clause
sebastian/versionUpgraded4.0.15.0.2CompareBSD-3-Clause
staabm/side-effects-detectorNew-1.0.5CompareMIT
symfony/filesystemUpgradedv7.4.8v7.4.15CompareMIT
symfony/polyfill-php81Upgradedv1.37.0v1.38.1CompareMIT
symfony/yamlUpgradedv6.4.41v7.4.15CompareMIT
szepeviktor/phpstan-wordpressUpgradedv1.3.5v2.0.3CompareMIT
symfony/polyfill-php73Removedv1.37.0-CompareMIT
symfony/polyfill-php84Removedv1.37.0-CompareMIT

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 9 changed files in this pull request and generated no new comments.

Suppressed comments (3)

src/Application.php:45

  • In a namespaced file, call WordPress global functions with a leading backslash to avoid namespace shadowing and improve lookup performance.
 do_action(Log::WP_ACTION_SET_LOGGER, $application->make('log'));

src/Application.php:37

  • In a namespaced file, unqualified WordPress global function calls rely on fallback resolution at runtime. Prefixing with a leading backslash avoids any accidental namespace shadowing and is slightly faster for function lookup.

This issue also appears on line 45 of the same file.

 ->withPaths(public: get_theme_file_path('public'))

README.md:75

  • This section heading still refers to the Acorn "Bootloader", but the PR removes the bootloader helper and switches the documented approach to Yard\Nutshell\Application::configure(). Renaming the heading will keep the docs consistent with the new bootstrapping mechanism.
2. **Update Acorn Bootloader**

@SimonvanWijhe

Copy link
Copy Markdown
Member

@rivanuff kan je PHPStan nog gerust stellen?

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Acorn 5 support

4 participants

@ictbeheer@SimonvanWijhe@rivanuff
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Feat: Acorn 5 - #47

Open
ictbeheer wants to merge 8 commits into
mainfrom
feat/acorn5
Open

Feat: Acorn 5#47
ictbeheer wants to merge 8 commits into
mainfrom
feat/acorn5

Conversation

@ictbeheer

@ictbeheerictbeheer commented Jun 9, 2026

Copy link
Copy Markdown
Member

This pull request introduces significant updates to the project to support Acorn v5, modernize dependencies, and simplify the codebase. The most notable changes include upgrading core dependencies, refactoring the application bootstrapping process, and removing custom integrations that are now handled natively or elsewhere.

Dependency and Compatibility Updates:

  • Upgraded the minimum PHP version requirement to 8.2 and updated key dependencies to support Acorn v5 and the latest versions of development tools in composer.json.

Application Bootstrapping and Structure:

  • Introduced a new Yard\Nutshell\Application class to encapsulate application configuration and bootstrapping, replacing the previous bootloader-based approach. This includes middleware, Sentry integration, custom providers, and logger setup.
  • Updated the documentation in README.md to reflect the new bootstrapping method using Yard\Nutshell\Application and removed references to the old bootloader helper.

Codebase Simplification and Cleanup:

  • Removed the custom Yard\Nutshell\Assets\Vite class and related documentation, as asset management is now handled natively. [1][2]
  • Removed the custom exception handler (Yard\Nutshell\Exceptions\Handler) and HTTP kernel (Yard\Nutshell\Http\Kernel), as their functionality is now integrated into the new application structure. [1][2]
  • Deleted the Yard\Nutshell\bootloader helper and its associated logic, consolidating all bootstrapping into the new application class.

Internal Refactoring:

  • Simplified provider replacement logic in DefaultProviders by using a dedicated replace method for provider mapping.

CopilotAI review requested due to automatic review settings June 9, 2026 12:42
@ictbeheer
ictbeheer requested a review from a team as a code ownerJune 9, 2026 12:42

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR upgrades Nutshell to support Roots Acorn v5 (and its newer Illuminate/Laravel stack), replacing the previous “bootloader helper + custom kernel/handler overrides” approach with an Application subclass that configures middleware, routing, paths, and exception handling via Acorn’s newer configuration builder API.

Changes:

  • Upgrade runtime/dev dependencies (Acorn v5, PHP >= 8.2, and associated Illuminate/Symfony ecosystem updates).
  • Replace the old bootloader() helper and custom Http\Kernel / exception handler wiring with Yard\Nutshell\Application::configure(...).
  • Update provider replacement logic and refresh README bootstrapping instructions.

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
src/Http/Kernel.phpRemoved old custom HTTP kernel (CSP middleware injection previously lived here).
src/helpers.phpRemoved old bootloader() helper and container bindings/aliases.
src/Exceptions/Handler.phpRemoved old Sentry exception reporting hook via custom handler.
src/DefaultProviders.phpSwitch to using replace(...) for provider substitution after Acorn default provider setup.
src/Assets/Vite.phpRemoved custom Vite asset path override.
src/Application.phpNew Acorn Application subclass configuring middleware, WordPress routing, public path, and Sentry integration.
README.mdUpdate bootstrap instructions to use the new Application::configure(...) entry point.
composer.jsonBump PHP requirement and Acorn major version; update dev tooling versions.
composer.lockLockfile refresh for the upgraded dependency graph.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadcomposer.json
Comment threadREADME.md Outdated

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 9 changed files in this pull request and generated 2 comments.

Comment threadREADME.md Outdated
Comment threadREADME.md
Comment on lines 79 to 90
```diff
-\Roots\bootloader()->boot();
+define('ACORN_BASEPATH', __DIR__);
+\Yard\Nutshell\bootloader()->boot();

add_action('after_setup_theme', function () {
- Application::configure()
- ->withProviders([
- App\Providers\ThemeServiceProvider::class,
- ])
+ Yard\Nutshell\Application::configure(__DIR__)
->boot();
}, 0);

```
@ictbeheerictbeheer linked an issue Jun 15, 2026 that may be closed by this pull request
SimonvanWijhe
SimonvanWijhe previously approved these changes Jun 18, 2026
@github-actions

Copy link
Copy Markdown
Composer package changes
Prod PackagesOperationBaseTargetLinkLicense
brick/mathUpgraded0.12.30.14.8CompareMIT
carbonphp/carbon-doctrine-typesUpgraded2.1.03.2.0CompareMIT
guzzlehttp/guzzleUpgraded7.15.27.15.3CompareMIT
guzzlehttp/promisesUpgraded2.5.12.5.2CompareMIT
guzzlehttp/uri-templateUpgradedv1.0.5v1.0.10CompareMIT
laravel/frameworkUpgraded10.50.2v12.65.0CompareMIT
laravel/promptsUpgradedv0.1.25v0.3.22CompareMIT
laravel/serializable-closureUpgradedv1.3.7v2.0.15CompareMIT
league/commonmarkUpgraded2.8.22.9.0CompareBSD-3-Clause
league/flysystemUpgraded3.33.03.35.2CompareMIT
league/mime-type-detectionUpgraded1.16.01.17.0CompareMIT
league/uriNew-7.8.1CompareMIT
league/uri-interfacesNew-7.8.1CompareMIT
nesbot/carbonUpgraded2.73.03.13.1CompareMIT
nette/utilsUpgradedv4.1.4v4.1.5CompareBSD-3-Clause, GPL-2.0-only, GPL-3.0-only
nunomaduro/termwindUpgradedv1.17.0v2.4.0CompareMIT
ramsey/uuidUpgraded4.9.24.9.3CompareMIT
roots/acornUpgradedv4.3.1v5.1.1CompareMIT
sentry/sentryUpgraded4.27.04.30.0CompareMIT
sentry/sentry-laravelUpgraded4.25.14.27.0CompareMIT
spatie/laravel-package-toolsUpgraded1.93.01.93.1CompareMIT
symfony/clockNew-v7.4.8CompareMIT
symfony/consoleUpgradedv6.4.37v7.4.15CompareMIT
symfony/error-handlerUpgradedv6.4.36v7.4.15CompareMIT
symfony/event-dispatcherUpgradedv7.4.9v7.4.15CompareMIT
symfony/event-dispatcher-contractsUpgradedv3.7.0v3.7.1CompareMIT
symfony/finderUpgradedv6.4.34v7.4.14CompareMIT
symfony/http-foundationUpgradedv6.4.41v7.4.15CompareMIT
symfony/http-kernelUpgradedv6.4.38v7.4.15CompareMIT
symfony/mailerUpgradedv6.4.40v7.4.15CompareMIT
symfony/mimeUpgradedv6.4.41v7.4.15CompareMIT
symfony/polyfill-intl-graphemeUpgradedv1.37.0v1.41.0CompareMIT
symfony/polyfill-php83Upgradedv1.38.2v1.41.0CompareMIT
symfony/polyfill-php84New-v1.38.1CompareMIT
symfony/polyfill-php85New-v1.41.0CompareMIT
symfony/processUpgradedv6.4.33v7.4.13CompareMIT
symfony/routingUpgradedv6.4.41v7.4.15CompareMIT
symfony/service-contractsUpgradedv3.7.0v3.7.1CompareMIT
symfony/stringUpgradedv7.4.8v7.4.15CompareMIT
symfony/translationUpgradedv6.4.38v7.4.14CompareMIT
symfony/translation-contractsUpgradedv3.7.0v3.7.1CompareMIT
symfony/uidUpgradedv6.4.32v7.4.9CompareMIT
symfony/var-dumperUpgradedv6.4.36v7.4.15CompareMIT
vlucas/phpdotenvUpgradedv5.6.3v5.6.4CompareBSD-3-Clause
Dev PackagesOperationBaseTargetLinkLicense
composer/pcreUpgraded3.3.23.4.0CompareMIT
ergebnis/agent-detectorNew-1.2.0CompareMIT
friendsofphp/php-cs-fixerUpgradedv3.94.2v3.95.18CompareMIT
iamcal/sql-parserUpgradedv0.5v0.7CompareMIT
larastan/larastanUpgradedv2.11.2v3.10.0CompareMIT
laravel/pailNew-v1.2.7CompareMIT
nikic/php-parserUpgradedv5.7.0v5.8.0CompareBSD-3-Clause
nunomaduro/collisionUpgradedv7.12.0v8.9.5CompareMIT
orchestra/canvasUpgradedv8.12.0v10.2.1CompareMIT
orchestra/canvas-coreUpgradedv8.11.0v10.2.0CompareMIT
orchestra/sidekickUpgradedv1.2.20v1.2.21CompareMIT
orchestra/testbenchUpgradedv8.37.0v10.11.0CompareMIT
orchestra/testbench-coreUpgradedv8.42.1v10.14.1CompareMIT
orchestra/workbenchUpgradedv8.19.0v10.2.0CompareMIT
php-stubs/wordpress-stubsUpgradedv6.9.1v6.9.4CompareMIT
phpstan/phpstanUpgraded1.12.332.2.8MIT
phpunit/php-code-coverageUpgraded10.1.1611.0.12CompareBSD-3-Clause
phpunit/php-file-iteratorUpgraded4.1.05.1.1CompareBSD-3-Clause
phpunit/php-invokerUpgraded4.0.05.0.1CompareBSD-3-Clause
phpunit/php-text-templateUpgraded3.0.14.0.1CompareBSD-3-Clause
phpunit/php-timerUpgraded6.0.07.0.1CompareBSD-3-Clause
phpunit/phpunitUpgraded10.5.6311.5.56CompareBSD-3-Clause
psy/psyshUpgradedv0.12.22v0.12.24CompareMIT
sebastian/cli-parserUpgraded2.0.13.0.2CompareBSD-3-Clause
sebastian/code-unitUpgraded2.0.03.0.3CompareBSD-3-Clause
sebastian/code-unit-reverse-lookupUpgraded3.0.04.0.1CompareBSD-3-Clause
sebastian/comparatorUpgraded5.0.56.3.3CompareBSD-3-Clause
sebastian/complexityUpgraded3.2.04.0.1CompareBSD-3-Clause
sebastian/diffUpgraded5.1.16.0.2CompareBSD-3-Clause
sebastian/environmentUpgraded6.1.07.2.1CompareBSD-3-Clause
sebastian/exporterUpgraded5.1.46.3.2CompareBSD-3-Clause
sebastian/global-stateUpgraded6.0.27.0.2CompareBSD-3-Clause
sebastian/lines-of-codeUpgraded2.0.23.0.1CompareBSD-3-Clause
sebastian/object-enumeratorUpgraded5.0.06.0.1CompareBSD-3-Clause
sebastian/object-reflectorUpgraded3.0.04.0.1CompareBSD-3-Clause
sebastian/recursion-contextUpgraded5.0.16.0.3CompareBSD-3-Clause
sebastian/typeUpgraded4.0.05.1.3CompareBSD-3-Clause
sebastian/versionUpgraded4.0.15.0.2CompareBSD-3-Clause
staabm/side-effects-detectorNew-1.0.5CompareMIT
symfony/filesystemUpgradedv7.4.8v7.4.15CompareMIT
symfony/polyfill-php81Upgradedv1.37.0v1.38.1CompareMIT
symfony/yamlUpgradedv6.4.41v7.4.15CompareMIT
szepeviktor/phpstan-wordpressUpgradedv1.3.5v2.0.3CompareMIT
symfony/polyfill-php73Removedv1.37.0-CompareMIT
symfony/polyfill-php84Removedv1.37.0-CompareMIT

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 9 changed files in this pull request and generated no new comments.

Suppressed comments (3)

src/Application.php:45

  • In a namespaced file, call WordPress global functions with a leading backslash to avoid namespace shadowing and improve lookup performance.
 do_action(Log::WP_ACTION_SET_LOGGER, $application->make('log'));

src/Application.php:37

  • In a namespaced file, unqualified WordPress global function calls rely on fallback resolution at runtime. Prefixing with a leading backslash avoids any accidental namespace shadowing and is slightly faster for function lookup.

This issue also appears on line 45 of the same file.

 ->withPaths(public: get_theme_file_path('public'))

README.md:75

  • This section heading still refers to the Acorn "Bootloader", but the PR removes the bootloader helper and switches the documented approach to Yard\Nutshell\Application::configure(). Renaming the heading will keep the docs consistent with the new bootstrapping mechanism.
2. **Update Acorn Bootloader**

@SimonvanWijhe

Copy link
Copy Markdown
Member

@rivanuff kan je PHPStan nog gerust stellen?

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Acorn 5 support

4 participants

@ictbeheer@SimonvanWijhe@rivanuff
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Feat: Acorn 5 - #47

Open
ictbeheer wants to merge 8 commits into
mainfrom
feat/acorn5
Open

Feat: Acorn 5#47
ictbeheer wants to merge 8 commits into
mainfrom
feat/acorn5

Conversation

@ictbeheer

@ictbeheerictbeheer commented Jun 9, 2026

Copy link
Copy Markdown
Member

This pull request introduces significant updates to the project to support Acorn v5, modernize dependencies, and simplify the codebase. The most notable changes include upgrading core dependencies, refactoring the application bootstrapping process, and removing custom integrations that are now handled natively or elsewhere.

Dependency and Compatibility Updates:

  • Upgraded the minimum PHP version requirement to 8.2 and updated key dependencies to support Acorn v5 and the latest versions of development tools in composer.json.

Application Bootstrapping and Structure:

  • Introduced a new Yard\Nutshell\Application class to encapsulate application configuration and bootstrapping, replacing the previous bootloader-based approach. This includes middleware, Sentry integration, custom providers, and logger setup.
  • Updated the documentation in README.md to reflect the new bootstrapping method using Yard\Nutshell\Application and removed references to the old bootloader helper.

Codebase Simplification and Cleanup:

  • Removed the custom Yard\Nutshell\Assets\Vite class and related documentation, as asset management is now handled natively. [1][2]
  • Removed the custom exception handler (Yard\Nutshell\Exceptions\Handler) and HTTP kernel (Yard\Nutshell\Http\Kernel), as their functionality is now integrated into the new application structure. [1][2]
  • Deleted the Yard\Nutshell\bootloader helper and its associated logic, consolidating all bootstrapping into the new application class.

Internal Refactoring:

  • Simplified provider replacement logic in DefaultProviders by using a dedicated replace method for provider mapping.

CopilotAI review requested due to automatic review settings June 9, 2026 12:42
@ictbeheer
ictbeheer requested a review from a team as a code ownerJune 9, 2026 12:42

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR upgrades Nutshell to support Roots Acorn v5 (and its newer Illuminate/Laravel stack), replacing the previous “bootloader helper + custom kernel/handler overrides” approach with an Application subclass that configures middleware, routing, paths, and exception handling via Acorn’s newer configuration builder API.

Changes:

  • Upgrade runtime/dev dependencies (Acorn v5, PHP >= 8.2, and associated Illuminate/Symfony ecosystem updates).
  • Replace the old bootloader() helper and custom Http\Kernel / exception handler wiring with Yard\Nutshell\Application::configure(...).
  • Update provider replacement logic and refresh README bootstrapping instructions.

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
src/Http/Kernel.phpRemoved old custom HTTP kernel (CSP middleware injection previously lived here).
src/helpers.phpRemoved old bootloader() helper and container bindings/aliases.
src/Exceptions/Handler.phpRemoved old Sentry exception reporting hook via custom handler.
src/DefaultProviders.phpSwitch to using replace(...) for provider substitution after Acorn default provider setup.
src/Assets/Vite.phpRemoved custom Vite asset path override.
src/Application.phpNew Acorn Application subclass configuring middleware, WordPress routing, public path, and Sentry integration.
README.mdUpdate bootstrap instructions to use the new Application::configure(...) entry point.
composer.jsonBump PHP requirement and Acorn major version; update dev tooling versions.
composer.lockLockfile refresh for the upgraded dependency graph.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadcomposer.json
Comment threadREADME.md Outdated

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 9 changed files in this pull request and generated 2 comments.

Comment threadREADME.md Outdated
Comment threadREADME.md
Comment on lines 79 to 90
```diff
-\Roots\bootloader()->boot();
+define('ACORN_BASEPATH', __DIR__);
+\Yard\Nutshell\bootloader()->boot();

add_action('after_setup_theme', function () {
- Application::configure()
- ->withProviders([
- App\Providers\ThemeServiceProvider::class,
- ])
+ Yard\Nutshell\Application::configure(__DIR__)
->boot();
}, 0);

```
@ictbeheerictbeheer linked an issue Jun 15, 2026 that may be closed by this pull request
SimonvanWijhe
SimonvanWijhe previously approved these changes Jun 18, 2026
@github-actions

Copy link
Copy Markdown
Composer package changes
Prod PackagesOperationBaseTargetLinkLicense
brick/mathUpgraded0.12.30.14.8CompareMIT
carbonphp/carbon-doctrine-typesUpgraded2.1.03.2.0CompareMIT
guzzlehttp/guzzleUpgraded7.15.27.15.3CompareMIT
guzzlehttp/promisesUpgraded2.5.12.5.2CompareMIT
guzzlehttp/uri-templateUpgradedv1.0.5v1.0.10CompareMIT
laravel/frameworkUpgraded10.50.2v12.65.0CompareMIT
laravel/promptsUpgradedv0.1.25v0.3.22CompareMIT
laravel/serializable-closureUpgradedv1.3.7v2.0.15CompareMIT
league/commonmarkUpgraded2.8.22.9.0CompareBSD-3-Clause
league/flysystemUpgraded3.33.03.35.2CompareMIT
league/mime-type-detectionUpgraded1.16.01.17.0CompareMIT
league/uriNew-7.8.1CompareMIT
league/uri-interfacesNew-7.8.1CompareMIT
nesbot/carbonUpgraded2.73.03.13.1CompareMIT
nette/utilsUpgradedv4.1.4v4.1.5CompareBSD-3-Clause, GPL-2.0-only, GPL-3.0-only
nunomaduro/termwindUpgradedv1.17.0v2.4.0CompareMIT
ramsey/uuidUpgraded4.9.24.9.3CompareMIT
roots/acornUpgradedv4.3.1v5.1.1CompareMIT
sentry/sentryUpgraded4.27.04.30.0CompareMIT
sentry/sentry-laravelUpgraded4.25.14.27.0CompareMIT
spatie/laravel-package-toolsUpgraded1.93.01.93.1CompareMIT
symfony/clockNew-v7.4.8CompareMIT
symfony/consoleUpgradedv6.4.37v7.4.15CompareMIT
symfony/error-handlerUpgradedv6.4.36v7.4.15CompareMIT
symfony/event-dispatcherUpgradedv7.4.9v7.4.15CompareMIT
symfony/event-dispatcher-contractsUpgradedv3.7.0v3.7.1CompareMIT
symfony/finderUpgradedv6.4.34v7.4.14CompareMIT
symfony/http-foundationUpgradedv6.4.41v7.4.15CompareMIT
symfony/http-kernelUpgradedv6.4.38v7.4.15CompareMIT
symfony/mailerUpgradedv6.4.40v7.4.15CompareMIT
symfony/mimeUpgradedv6.4.41v7.4.15CompareMIT
symfony/polyfill-intl-graphemeUpgradedv1.37.0v1.41.0CompareMIT
symfony/polyfill-php83Upgradedv1.38.2v1.41.0CompareMIT
symfony/polyfill-php84New-v1.38.1CompareMIT
symfony/polyfill-php85New-v1.41.0CompareMIT
symfony/processUpgradedv6.4.33v7.4.13CompareMIT
symfony/routingUpgradedv6.4.41v7.4.15CompareMIT
symfony/service-contractsUpgradedv3.7.0v3.7.1CompareMIT
symfony/stringUpgradedv7.4.8v7.4.15CompareMIT
symfony/translationUpgradedv6.4.38v7.4.14CompareMIT
symfony/translation-contractsUpgradedv3.7.0v3.7.1CompareMIT
symfony/uidUpgradedv6.4.32v7.4.9CompareMIT
symfony/var-dumperUpgradedv6.4.36v7.4.15CompareMIT
vlucas/phpdotenvUpgradedv5.6.3v5.6.4CompareBSD-3-Clause
Dev PackagesOperationBaseTargetLinkLicense
composer/pcreUpgraded3.3.23.4.0CompareMIT
ergebnis/agent-detectorNew-1.2.0CompareMIT
friendsofphp/php-cs-fixerUpgradedv3.94.2v3.95.18CompareMIT
iamcal/sql-parserUpgradedv0.5v0.7CompareMIT
larastan/larastanUpgradedv2.11.2v3.10.0CompareMIT
laravel/pailNew-v1.2.7CompareMIT
nikic/php-parserUpgradedv5.7.0v5.8.0CompareBSD-3-Clause
nunomaduro/collisionUpgradedv7.12.0v8.9.5CompareMIT
orchestra/canvasUpgradedv8.12.0v10.2.1CompareMIT
orchestra/canvas-coreUpgradedv8.11.0v10.2.0CompareMIT
orchestra/sidekickUpgradedv1.2.20v1.2.21CompareMIT
orchestra/testbenchUpgradedv8.37.0v10.11.0CompareMIT
orchestra/testbench-coreUpgradedv8.42.1v10.14.1CompareMIT
orchestra/workbenchUpgradedv8.19.0v10.2.0CompareMIT
php-stubs/wordpress-stubsUpgradedv6.9.1v6.9.4CompareMIT
phpstan/phpstanUpgraded1.12.332.2.8MIT
phpunit/php-code-coverageUpgraded10.1.1611.0.12CompareBSD-3-Clause
phpunit/php-file-iteratorUpgraded4.1.05.1.1CompareBSD-3-Clause
phpunit/php-invokerUpgraded4.0.05.0.1CompareBSD-3-Clause
phpunit/php-text-templateUpgraded3.0.14.0.1CompareBSD-3-Clause
phpunit/php-timerUpgraded6.0.07.0.1CompareBSD-3-Clause
phpunit/phpunitUpgraded10.5.6311.5.56CompareBSD-3-Clause
psy/psyshUpgradedv0.12.22v0.12.24CompareMIT
sebastian/cli-parserUpgraded2.0.13.0.2CompareBSD-3-Clause
sebastian/code-unitUpgraded2.0.03.0.3CompareBSD-3-Clause
sebastian/code-unit-reverse-lookupUpgraded3.0.04.0.1CompareBSD-3-Clause
sebastian/comparatorUpgraded5.0.56.3.3CompareBSD-3-Clause
sebastian/complexityUpgraded3.2.04.0.1CompareBSD-3-Clause
sebastian/diffUpgraded5.1.16.0.2CompareBSD-3-Clause
sebastian/environmentUpgraded6.1.07.2.1CompareBSD-3-Clause
sebastian/exporterUpgraded5.1.46.3.2CompareBSD-3-Clause
sebastian/global-stateUpgraded6.0.27.0.2CompareBSD-3-Clause
sebastian/lines-of-codeUpgraded2.0.23.0.1CompareBSD-3-Clause
sebastian/object-enumeratorUpgraded5.0.06.0.1CompareBSD-3-Clause
sebastian/object-reflectorUpgraded3.0.04.0.1CompareBSD-3-Clause
sebastian/recursion-contextUpgraded5.0.16.0.3CompareBSD-3-Clause
sebastian/typeUpgraded4.0.05.1.3CompareBSD-3-Clause
sebastian/versionUpgraded4.0.15.0.2CompareBSD-3-Clause
staabm/side-effects-detectorNew-1.0.5CompareMIT
symfony/filesystemUpgradedv7.4.8v7.4.15CompareMIT
symfony/polyfill-php81Upgradedv1.37.0v1.38.1CompareMIT
symfony/yamlUpgradedv6.4.41v7.4.15CompareMIT
szepeviktor/phpstan-wordpressUpgradedv1.3.5v2.0.3CompareMIT
symfony/polyfill-php73Removedv1.37.0-CompareMIT
symfony/polyfill-php84Removedv1.37.0-CompareMIT

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 9 changed files in this pull request and generated no new comments.

Suppressed comments (3)

src/Application.php:45

  • In a namespaced file, call WordPress global functions with a leading backslash to avoid namespace shadowing and improve lookup performance.
 do_action(Log::WP_ACTION_SET_LOGGER, $application->make('log'));

src/Application.php:37

  • In a namespaced file, unqualified WordPress global function calls rely on fallback resolution at runtime. Prefixing with a leading backslash avoids any accidental namespace shadowing and is slightly faster for function lookup.

This issue also appears on line 45 of the same file.

 ->withPaths(public: get_theme_file_path('public'))

README.md:75

  • This section heading still refers to the Acorn "Bootloader", but the PR removes the bootloader helper and switches the documented approach to Yard\Nutshell\Application::configure(). Renaming the heading will keep the docs consistent with the new bootstrapping mechanism.
2. **Update Acorn Bootloader**

@SimonvanWijhe

Copy link
Copy Markdown
Member

@rivanuff kan je PHPStan nog gerust stellen?

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Acorn 5 support

4 participants

@ictbeheer@SimonvanWijhe@rivanuff
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Feat: Acorn 5 - #47

Open
ictbeheer wants to merge 8 commits into
mainfrom
feat/acorn5
Open

Feat: Acorn 5#47
ictbeheer wants to merge 8 commits into
mainfrom
feat/acorn5

Conversation

@ictbeheer

@ictbeheerictbeheer commented Jun 9, 2026

Copy link
Copy Markdown
Member

This pull request introduces significant updates to the project to support Acorn v5, modernize dependencies, and simplify the codebase. The most notable changes include upgrading core dependencies, refactoring the application bootstrapping process, and removing custom integrations that are now handled natively or elsewhere.

Dependency and Compatibility Updates:

  • Upgraded the minimum PHP version requirement to 8.2 and updated key dependencies to support Acorn v5 and the latest versions of development tools in composer.json.

Application Bootstrapping and Structure:

  • Introduced a new Yard\Nutshell\Application class to encapsulate application configuration and bootstrapping, replacing the previous bootloader-based approach. This includes middleware, Sentry integration, custom providers, and logger setup.
  • Updated the documentation in README.md to reflect the new bootstrapping method using Yard\Nutshell\Application and removed references to the old bootloader helper.

Codebase Simplification and Cleanup:

  • Removed the custom Yard\Nutshell\Assets\Vite class and related documentation, as asset management is now handled natively. [1][2]
  • Removed the custom exception handler (Yard\Nutshell\Exceptions\Handler) and HTTP kernel (Yard\Nutshell\Http\Kernel), as their functionality is now integrated into the new application structure. [1][2]
  • Deleted the Yard\Nutshell\bootloader helper and its associated logic, consolidating all bootstrapping into the new application class.

Internal Refactoring:

  • Simplified provider replacement logic in DefaultProviders by using a dedicated replace method for provider mapping.

CopilotAI review requested due to automatic review settings June 9, 2026 12:42
@ictbeheer
ictbeheer requested a review from a team as a code ownerJune 9, 2026 12:42

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR upgrades Nutshell to support Roots Acorn v5 (and its newer Illuminate/Laravel stack), replacing the previous “bootloader helper + custom kernel/handler overrides” approach with an Application subclass that configures middleware, routing, paths, and exception handling via Acorn’s newer configuration builder API.

Changes:

  • Upgrade runtime/dev dependencies (Acorn v5, PHP >= 8.2, and associated Illuminate/Symfony ecosystem updates).
  • Replace the old bootloader() helper and custom Http\Kernel / exception handler wiring with Yard\Nutshell\Application::configure(...).
  • Update provider replacement logic and refresh README bootstrapping instructions.

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
src/Http/Kernel.phpRemoved old custom HTTP kernel (CSP middleware injection previously lived here).
src/helpers.phpRemoved old bootloader() helper and container bindings/aliases.
src/Exceptions/Handler.phpRemoved old Sentry exception reporting hook via custom handler.
src/DefaultProviders.phpSwitch to using replace(...) for provider substitution after Acorn default provider setup.
src/Assets/Vite.phpRemoved custom Vite asset path override.
src/Application.phpNew Acorn Application subclass configuring middleware, WordPress routing, public path, and Sentry integration.
README.mdUpdate bootstrap instructions to use the new Application::configure(...) entry point.
composer.jsonBump PHP requirement and Acorn major version; update dev tooling versions.
composer.lockLockfile refresh for the upgraded dependency graph.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadcomposer.json
Comment threadREADME.md Outdated

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 9 changed files in this pull request and generated 2 comments.

Comment threadREADME.md Outdated
Comment threadREADME.md
Comment on lines 79 to 90
```diff
-\Roots\bootloader()->boot();
+define('ACORN_BASEPATH', __DIR__);
+\Yard\Nutshell\bootloader()->boot();

add_action('after_setup_theme', function () {
- Application::configure()
- ->withProviders([
- App\Providers\ThemeServiceProvider::class,
- ])
+ Yard\Nutshell\Application::configure(__DIR__)
->boot();
}, 0);

```
@ictbeheerictbeheer linked an issue Jun 15, 2026 that may be closed by this pull request
SimonvanWijhe
SimonvanWijhe previously approved these changes Jun 18, 2026
@github-actions

Copy link
Copy Markdown
Composer package changes
Prod PackagesOperationBaseTargetLinkLicense
brick/mathUpgraded0.12.30.14.8CompareMIT
carbonphp/carbon-doctrine-typesUpgraded2.1.03.2.0CompareMIT
guzzlehttp/guzzleUpgraded7.15.27.15.3CompareMIT
guzzlehttp/promisesUpgraded2.5.12.5.2CompareMIT
guzzlehttp/uri-templateUpgradedv1.0.5v1.0.10CompareMIT
laravel/frameworkUpgraded10.50.2v12.65.0CompareMIT
laravel/promptsUpgradedv0.1.25v0.3.22CompareMIT
laravel/serializable-closureUpgradedv1.3.7v2.0.15CompareMIT
league/commonmarkUpgraded2.8.22.9.0CompareBSD-3-Clause
league/flysystemUpgraded3.33.03.35.2CompareMIT
league/mime-type-detectionUpgraded1.16.01.17.0CompareMIT
league/uriNew-7.8.1CompareMIT
league/uri-interfacesNew-7.8.1CompareMIT
nesbot/carbonUpgraded2.73.03.13.1CompareMIT
nette/utilsUpgradedv4.1.4v4.1.5CompareBSD-3-Clause, GPL-2.0-only, GPL-3.0-only
nunomaduro/termwindUpgradedv1.17.0v2.4.0CompareMIT
ramsey/uuidUpgraded4.9.24.9.3CompareMIT
roots/acornUpgradedv4.3.1v5.1.1CompareMIT
sentry/sentryUpgraded4.27.04.30.0CompareMIT
sentry/sentry-laravelUpgraded4.25.14.27.0CompareMIT
spatie/laravel-package-toolsUpgraded1.93.01.93.1CompareMIT
symfony/clockNew-v7.4.8CompareMIT
symfony/consoleUpgradedv6.4.37v7.4.15CompareMIT
symfony/error-handlerUpgradedv6.4.36v7.4.15CompareMIT
symfony/event-dispatcherUpgradedv7.4.9v7.4.15CompareMIT
symfony/event-dispatcher-contractsUpgradedv3.7.0v3.7.1CompareMIT
symfony/finderUpgradedv6.4.34v7.4.14CompareMIT
symfony/http-foundationUpgradedv6.4.41v7.4.15CompareMIT
symfony/http-kernelUpgradedv6.4.38v7.4.15CompareMIT
symfony/mailerUpgradedv6.4.40v7.4.15CompareMIT
symfony/mimeUpgradedv6.4.41v7.4.15CompareMIT
symfony/polyfill-intl-graphemeUpgradedv1.37.0v1.41.0CompareMIT
symfony/polyfill-php83Upgradedv1.38.2v1.41.0CompareMIT
symfony/polyfill-php84New-v1.38.1CompareMIT
symfony/polyfill-php85New-v1.41.0CompareMIT
symfony/processUpgradedv6.4.33v7.4.13CompareMIT
symfony/routingUpgradedv6.4.41v7.4.15CompareMIT
symfony/service-contractsUpgradedv3.7.0v3.7.1CompareMIT
symfony/stringUpgradedv7.4.8v7.4.15CompareMIT
symfony/translationUpgradedv6.4.38v7.4.14CompareMIT
symfony/translation-contractsUpgradedv3.7.0v3.7.1CompareMIT
symfony/uidUpgradedv6.4.32v7.4.9CompareMIT
symfony/var-dumperUpgradedv6.4.36v7.4.15CompareMIT
vlucas/phpdotenvUpgradedv5.6.3v5.6.4CompareBSD-3-Clause
Dev PackagesOperationBaseTargetLinkLicense
composer/pcreUpgraded3.3.23.4.0CompareMIT
ergebnis/agent-detectorNew-1.2.0CompareMIT
friendsofphp/php-cs-fixerUpgradedv3.94.2v3.95.18CompareMIT
iamcal/sql-parserUpgradedv0.5v0.7CompareMIT
larastan/larastanUpgradedv2.11.2v3.10.0CompareMIT
laravel/pailNew-v1.2.7CompareMIT
nikic/php-parserUpgradedv5.7.0v5.8.0CompareBSD-3-Clause
nunomaduro/collisionUpgradedv7.12.0v8.9.5CompareMIT
orchestra/canvasUpgradedv8.12.0v10.2.1CompareMIT
orchestra/canvas-coreUpgradedv8.11.0v10.2.0CompareMIT
orchestra/sidekickUpgradedv1.2.20v1.2.21CompareMIT
orchestra/testbenchUpgradedv8.37.0v10.11.0CompareMIT
orchestra/testbench-coreUpgradedv8.42.1v10.14.1CompareMIT
orchestra/workbenchUpgradedv8.19.0v10.2.0CompareMIT
php-stubs/wordpress-stubsUpgradedv6.9.1v6.9.4CompareMIT
phpstan/phpstanUpgraded1.12.332.2.8MIT
phpunit/php-code-coverageUpgraded10.1.1611.0.12CompareBSD-3-Clause
phpunit/php-file-iteratorUpgraded4.1.05.1.1CompareBSD-3-Clause
phpunit/php-invokerUpgraded4.0.05.0.1CompareBSD-3-Clause
phpunit/php-text-templateUpgraded3.0.14.0.1CompareBSD-3-Clause
phpunit/php-timerUpgraded6.0.07.0.1CompareBSD-3-Clause
phpunit/phpunitUpgraded10.5.6311.5.56CompareBSD-3-Clause
psy/psyshUpgradedv0.12.22v0.12.24CompareMIT
sebastian/cli-parserUpgraded2.0.13.0.2CompareBSD-3-Clause
sebastian/code-unitUpgraded2.0.03.0.3CompareBSD-3-Clause
sebastian/code-unit-reverse-lookupUpgraded3.0.04.0.1CompareBSD-3-Clause
sebastian/comparatorUpgraded5.0.56.3.3CompareBSD-3-Clause
sebastian/complexityUpgraded3.2.04.0.1CompareBSD-3-Clause
sebastian/diffUpgraded5.1.16.0.2CompareBSD-3-Clause
sebastian/environmentUpgraded6.1.07.2.1CompareBSD-3-Clause
sebastian/exporterUpgraded5.1.46.3.2CompareBSD-3-Clause
sebastian/global-stateUpgraded6.0.27.0.2CompareBSD-3-Clause
sebastian/lines-of-codeUpgraded2.0.23.0.1CompareBSD-3-Clause
sebastian/object-enumeratorUpgraded5.0.06.0.1CompareBSD-3-Clause
sebastian/object-reflectorUpgraded3.0.04.0.1CompareBSD-3-Clause
sebastian/recursion-contextUpgraded5.0.16.0.3CompareBSD-3-Clause
sebastian/typeUpgraded4.0.05.1.3CompareBSD-3-Clause
sebastian/versionUpgraded4.0.15.0.2CompareBSD-3-Clause
staabm/side-effects-detectorNew-1.0.5CompareMIT
symfony/filesystemUpgradedv7.4.8v7.4.15CompareMIT
symfony/polyfill-php81Upgradedv1.37.0v1.38.1CompareMIT
symfony/yamlUpgradedv6.4.41v7.4.15CompareMIT
szepeviktor/phpstan-wordpressUpgradedv1.3.5v2.0.3CompareMIT
symfony/polyfill-php73Removedv1.37.0-CompareMIT
symfony/polyfill-php84Removedv1.37.0-CompareMIT

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 9 changed files in this pull request and generated no new comments.

Suppressed comments (3)

src/Application.php:45

  • In a namespaced file, call WordPress global functions with a leading backslash to avoid namespace shadowing and improve lookup performance.
 do_action(Log::WP_ACTION_SET_LOGGER, $application->make('log'));

src/Application.php:37

  • In a namespaced file, unqualified WordPress global function calls rely on fallback resolution at runtime. Prefixing with a leading backslash avoids any accidental namespace shadowing and is slightly faster for function lookup.

This issue also appears on line 45 of the same file.

 ->withPaths(public: get_theme_file_path('public'))

README.md:75

  • This section heading still refers to the Acorn "Bootloader", but the PR removes the bootloader helper and switches the documented approach to Yard\Nutshell\Application::configure(). Renaming the heading will keep the docs consistent with the new bootstrapping mechanism.
2. **Update Acorn Bootloader**

@SimonvanWijhe

Copy link
Copy Markdown
Member

@rivanuff kan je PHPStan nog gerust stellen?

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Acorn 5 support

4 participants

@ictbeheer@SimonvanWijhe@rivanuff