From da08800966f0f47115985b4d1cd258b2307cfabd Mon Sep 17 00:00:00 2001 From: Yash Kukreja Date: Fri, 11 Apr 2025 12:58:40 +0530 Subject: [PATCH 1/6] WP-126 Register named_paths for identifying separate folders with prefix --- inc/class-blade.php | 7 +++++++ inc/namespace.php | 25 +++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/inc/class-blade.php b/inc/class-blade.php index bd2bff2..57f0f9a 100644 --- a/inc/class-blade.php +++ b/inc/class-blade.php @@ -40,6 +40,13 @@ class Blade { */ public array $paths_to_views = []; + /** + * Store named paths for AnonymousComponentPaths. + * + * @var array Named paths for views. + */ + public array $named_paths = []; + /** * Store the path to the directory where all compiled views are cached. * diff --git a/inc/namespace.php b/inc/namespace.php index ea61d9f..cefcdc9 100644 --- a/inc/namespace.php +++ b/inc/namespace.php @@ -77,16 +77,41 @@ function get_blade(): Blade { $blade_config = get_configuration(); $blade = new Blade(); $blade->paths_to_views = apply_filters( 'wordpress_blade_view_paths', $blade_config['paths_to_views'] ); + $blade->named_paths = apply_filters( 'wordpress_blade_named_paths', $blade_config['named_paths'] ); $blade->path_to_compiled_views = apply_filters( 'wordpress_blade_compiled_path', $blade_config['path_to_compiled_views'] ); $blade->never_expire_cache = apply_filters( 'wordpress_blade_never_expire_cache', $blade_config['never_expire_cache'] ); $blade->base_path = apply_filters( 'wordpress_blade_base_path', $blade_config['base_path'] ); $blade->view_callback = __NAMESPACE__ . '\\view_callback'; $blade->initialize(); + register_component_namespaces( $blade ); + // Return initialized Blade object. return $blade; } + +/** + * Register component namespaces with the Blade compiler. + * + * @param Blade $blade The Blade instance. + * + * @return void + */ +function register_component_namespaces( Blade $blade ): void { + // Get the blade compiler + $compiler = $blade->blade_compiler; + + // Register each named path as an anonymous component path + foreach ( $blade->named_paths as $prefix => $path ) { + // Create absolute paths. + $absolute_path = $blade->base_path . $path; + + // Register the anonymous component path + $compiler->anonymousComponentPath( $absolute_path, $prefix ); + } +} + /** * Load or return a view in Blade. * From dba117fb03ec277708bdafefbb034d2b7205bc5b Mon Sep 17 00:00:00 2001 From: Yash Kukreja Date: Fri, 11 Apr 2025 13:11:15 +0530 Subject: [PATCH 2/6] WP-126 Fix lint issues --- inc/namespace.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/inc/namespace.php b/inc/namespace.php index cefcdc9..4b0b9b8 100644 --- a/inc/namespace.php +++ b/inc/namespace.php @@ -84,13 +84,13 @@ function get_blade(): Blade { $blade->view_callback = __NAMESPACE__ . '\\view_callback'; $blade->initialize(); + // Register named_paths components. register_component_namespaces( $blade ); // Return initialized Blade object. return $blade; } - /** * Register component namespaces with the Blade compiler. * @@ -98,16 +98,16 @@ function get_blade(): Blade { * * @return void */ -function register_component_namespaces( Blade $blade ): void { - // Get the blade compiler +function register_component_namespaces( Blade $blade = null ): void { + // Get the blade compiler. $compiler = $blade->blade_compiler; - // Register each named path as an anonymous component path + // Register each named path as an anonymous component path. foreach ( $blade->named_paths as $prefix => $path ) { // Create absolute paths. $absolute_path = $blade->base_path . $path; - // Register the anonymous component path + // Register the anonymous component path. $compiler->anonymousComponentPath( $absolute_path, $prefix ); } } From 27817af32b4f7d2b3b50eec30a251aefc14be375 Mon Sep 17 00:00:00 2001 From: Yash Kukreja Date: Fri, 11 Apr 2025 18:45:44 +0530 Subject: [PATCH 3/6] WP-126 Send absolute path from config file itself --- inc/namespace.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/inc/namespace.php b/inc/namespace.php index 4b0b9b8..6162417 100644 --- a/inc/namespace.php +++ b/inc/namespace.php @@ -104,11 +104,8 @@ function register_component_namespaces( Blade $blade = null ): void { // Register each named path as an anonymous component path. foreach ( $blade->named_paths as $prefix => $path ) { - // Create absolute paths. - $absolute_path = $blade->base_path . $path; - // Register the anonymous component path. - $compiler->anonymousComponentPath( $absolute_path, $prefix ); + $compiler->anonymousComponentPath( $path, $prefix ); } } From b445908059a78f764056ea23083dcec42a779918 Mon Sep 17 00:00:00 2001 From: Yash Kukreja Date: Sat, 19 Apr 2025 15:08:20 +0530 Subject: [PATCH 4/6] WP-126 Move anonymousComponentPath in blade class --- inc/class-blade.php | 6 ++++++ inc/namespace.php | 23 +---------------------- 2 files changed, 7 insertions(+), 22 deletions(-) diff --git a/inc/class-blade.php b/inc/class-blade.php index 57f0f9a..d6822dc 100644 --- a/inc/class-blade.php +++ b/inc/class-blade.php @@ -138,6 +138,12 @@ public static function getFacadeAccessor() { } )::getFacadeAccessor() ); + // Register each named path as an anonymous component path. + foreach ( $this->named_paths as $prefix => $path ) { + // Register the anonymous component path. + $this->blade_compiler->anonymousComponentPath( $path, $prefix ); + } + // Callback function for every view. if ( is_callable( $this->view_callback ) ) { $this->view_factory->composer( '*' , function( $view ) { diff --git a/inc/namespace.php b/inc/namespace.php index 6162417..dfacc9e 100644 --- a/inc/namespace.php +++ b/inc/namespace.php @@ -77,38 +77,17 @@ function get_blade(): Blade { $blade_config = get_configuration(); $blade = new Blade(); $blade->paths_to_views = apply_filters( 'wordpress_blade_view_paths', $blade_config['paths_to_views'] ); - $blade->named_paths = apply_filters( 'wordpress_blade_named_paths', $blade_config['named_paths'] ); + $blade->named_paths = apply_filters( 'wordpress_blade_named_paths', $blade_config['named_paths'] ?? [] ); $blade->path_to_compiled_views = apply_filters( 'wordpress_blade_compiled_path', $blade_config['path_to_compiled_views'] ); $blade->never_expire_cache = apply_filters( 'wordpress_blade_never_expire_cache', $blade_config['never_expire_cache'] ); $blade->base_path = apply_filters( 'wordpress_blade_base_path', $blade_config['base_path'] ); $blade->view_callback = __NAMESPACE__ . '\\view_callback'; $blade->initialize(); - // Register named_paths components. - register_component_namespaces( $blade ); - // Return initialized Blade object. return $blade; } -/** - * Register component namespaces with the Blade compiler. - * - * @param Blade $blade The Blade instance. - * - * @return void - */ -function register_component_namespaces( Blade $blade = null ): void { - // Get the blade compiler. - $compiler = $blade->blade_compiler; - - // Register each named path as an anonymous component path. - foreach ( $blade->named_paths as $prefix => $path ) { - // Register the anonymous component path. - $compiler->anonymousComponentPath( $path, $prefix ); - } -} - /** * Load or return a view in Blade. * From b84f608eb5810ff92f3e1769e2cfaa672328d625 Mon Sep 17 00:00:00 2001 From: Yash Kukreja Date: Tue, 22 Apr 2025 20:08:57 +0530 Subject: [PATCH 5/6] WP-126 Use path_to_views for registering anonymousComponentPath --- inc/class-blade.php | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/inc/class-blade.php b/inc/class-blade.php index d6822dc..16ca244 100644 --- a/inc/class-blade.php +++ b/inc/class-blade.php @@ -40,13 +40,6 @@ class Blade { */ public array $paths_to_views = []; - /** - * Store named paths for AnonymousComponentPaths. - * - * @var array Named paths for views. - */ - public array $named_paths = []; - /** * Store the path to the directory where all compiled views are cached. * @@ -138,8 +131,13 @@ public static function getFacadeAccessor() { } )::getFacadeAccessor() ); - // Register each named path as an anonymous component path. - foreach ( $this->named_paths as $prefix => $path ) { + // Register each path as an anonymous component path with its prefix. + foreach ( $this->paths_to_views as $prefix => $path ) { + // Skip paths without a prefix in the key. + if ( is_numeric( $prefix ) ) { + continue; + } + // Register the anonymous component path. $this->blade_compiler->anonymousComponentPath( $path, $prefix ); } From 83211905cbfc8a826341fc9aa67c28b90de12763 Mon Sep 17 00:00:00 2001 From: Yash Kukreja Date: Tue, 22 Apr 2025 20:09:56 +0530 Subject: [PATCH 6/6] WP-126 Remove named_path --- inc/namespace.php | 1 - 1 file changed, 1 deletion(-) diff --git a/inc/namespace.php b/inc/namespace.php index dfacc9e..ea61d9f 100644 --- a/inc/namespace.php +++ b/inc/namespace.php @@ -77,7 +77,6 @@ function get_blade(): Blade { $blade_config = get_configuration(); $blade = new Blade(); $blade->paths_to_views = apply_filters( 'wordpress_blade_view_paths', $blade_config['paths_to_views'] ); - $blade->named_paths = apply_filters( 'wordpress_blade_named_paths', $blade_config['named_paths'] ?? [] ); $blade->path_to_compiled_views = apply_filters( 'wordpress_blade_compiled_path', $blade_config['path_to_compiled_views'] ); $blade->never_expire_cache = apply_filters( 'wordpress_blade_never_expire_cache', $blade_config['never_expire_cache'] ); $blade->base_path = apply_filters( 'wordpress_blade_base_path', $blade_config['base_path'] );