Skip to content

perf: cache assets.json manifest, drop WP <6.0 patterns backport, declare PHP/WP requirements#503

Merged
herewithme merged 1 commit into
masterfrom
fix/perf-assets-editor-patterns
Jul 17, 2026
Merged

perf: cache assets.json manifest, drop WP <6.0 patterns backport, declare PHP/WP requirements#503
herewithme merged 1 commit into
masterfrom
fix/perf-assets-editor-patterns

Conversation

@herewithme

@herewithme herewithme commented Jul 16, 2026

Copy link
Copy Markdown
Member

Contexte

Revue de performance du framework. Trois hotspots corrigés, aucun changement de comportement attendu.

Changements

1. Assets::get_min_file() — memoïsation du manifest assets.json

Le fichier dist/assets.json était relu et re-décodé (file_exists + file_get_contents + json_decode) à chaque appel, et la méthode est appelée plusieurs fois par requête : register_assets() (JS), filtre stylesheet_uri (déclenché à chaque get_stylesheet_uri()), Editor::style(), login_stylesheet_uri().

Le manifest décodé est désormais memoïsé en static (get_assets_manifest()), sur le même modèle que get_asset_data() qui avait déjà son cache.

2. Editor_Patterns — suppression du backport WP < 6.0

register_patterns() (~140 lignes) s'auto-désactivait sur WP ≥ 6.0 mais restait accroché sur init à chaque requête. Le core enregistre lui-même les patterns du dossier ./patterns/ depuis la 6.0 (_register_theme_block_patterns()), et le thème requiert déjà WP 6.3 (style.css). Code supprimé, seul register_categories() est conservé.

3. Editor::style() — garde is_admin()

La méthode s'exécutait au boot sur toutes les requêtes (front incluse) : lookup manifest + is_file(), alors qu'add_editor_style() n'est consommé qu'en contexte admin/éditeur.

4. Pré-requis PHP/WP déclarés

  • style.css : ajout de Requires PHP: 8.3
  • README : nouvelle section PHP & WordPress (PHP 8.3+, WP 6.3+)

Versions alignées sur l'existant : phpcs.xml.dist (testVersion 8.3-), platform composer (php: 8.3.0), wp-env (PHP 8.3), Requires at least: 6.3.

Vérifications

  • php -l OK sur les 3 fichiers modifiés
  • phpcs OK (GrumPHP pre-commit au vert)

Piste non traitée ici (à discuter)

La dépendance jQuery imposée en dur sur le bundle front (Assets.php : array_merge( [ 'jquery' ], … )) + l'inline script du service Performance accroché sur jquery garantissent ~30 Ko gzip de JS sur chaque page, même si rien ne l'utilise. C'est le plus gros gain potentiel côté Core Web Vitals, mais c'est un breaking change pour les projets enfants — à traiter dans une PR dédiée si l'équipe valide.

🤖 Generated with Claude Code


Note

Low Risk
Performance and dead-code removal aligned with existing WP 6.3+ requirements; behavior should be unchanged except dropping unsupported WP <6.0 pattern registration.

Overview
This PR trims per-request overhead in the theme asset and editor bootstrap paths and documents minimum PHP/WordPress versions.

Assets now loads dist/assets.json through a private get_assets_manifest() with a static cache, so repeated get_min_file() calls (front scripts, stylesheet_uri, login CSS, editor assets) no longer re-read and decode the manifest on every invocation.

Editor::style() returns immediately on non-admin requests so editor CSS manifest and file checks do not run on the front end.

Editor_Patterns drops the custom register_patterns() backport and its init hook; pattern files under ./patterns/ are left to WordPress core (6.0+), while register_categories() remains. style.css adds Requires PHP: 8.3; the README adds an explicit PHP 8.3+ and WordPress 6.3+ requirements section.

Reviewed by Cursor Bugbot for commit 486448a. Bugbot is set up for automated code reviews on this repo. Configure here.

…p editor style on front

- Assets::get_min_file(): memoize the decoded dist/assets.json manifest
  (was re-read and re-decoded on every call, several times per request)
- Editor_Patterns: remove the register_patterns() WP <6.0 backport, core
  handles ./patterns/ registration since 6.0
- Editor::style(): skip manifest lookup and filesystem check on front-end
  requests, editor styles are only consumed in admin/editor context
- Declare PHP 8.3 / WP 6.3 requirements in style.css and README

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@herewithme herewithme self-assigned this Jul 16, 2026
@herewithme

Copy link
Copy Markdown
Member Author

bugbot run

@cursor cursor Bot 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.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 486448a. Configure here.

@herewithme
herewithme merged commit fe590c1 into master Jul 17, 2026
7 checks passed
@herewithme
herewithme deleted the fix/perf-assets-editor-patterns branch July 17, 2026 13:18
Sign up for free to 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.

2 participants