From 9e5128a0d782bac7f2356903ecb5da238d8a0083 Mon Sep 17 00:00:00 2001 From: Lee Jones Date: Sun, 11 Jan 2026 11:25:55 -0600 Subject: [PATCH] removes support for routes.yaml. --- examples/config/neuron.yaml | 1 - examples/config/routes.yaml | 174 ------- .../app/Initializers/AuthInitializer.php | 8 + .../Initializers/RegistrationInitializer.php | 9 + resources/config/neuron.yaml.example | 1 - resources/config/routes.yaml | 457 ------------------ src/Bootstrap.php | 23 + versionlog.md | 1 + 8 files changed, 41 insertions(+), 633 deletions(-) delete mode 100644 examples/config/routes.yaml delete mode 100644 resources/config/routes.yaml diff --git a/examples/config/neuron.yaml b/examples/config/neuron.yaml index b6fc488..84cad3f 100644 --- a/examples/config/neuron.yaml +++ b/examples/config/neuron.yaml @@ -1,7 +1,6 @@ system: timezone: US/Eastern base_path: examples - routes_path: examples/config logging: destination: \Neuron\Log\Destination\File diff --git a/examples/config/routes.yaml b/examples/config/routes.yaml deleted file mode 100644 index 63b35a5..0000000 --- a/examples/config/routes.yaml +++ /dev/null @@ -1,174 +0,0 @@ -# CMS Routes Configuration -# Admin routes with authentication - -routes: - # Authentication routes - - method: GET - route: /login - controller: Neuron\Cms\Controllers\Auth\LoginController@showLoginForm - - - method: POST - route: /login - controller: Neuron\Cms\Controllers\Auth\LoginController@login - - - method: POST - route: /logout - controller: Neuron\Cms\Controllers\Auth\LoginController@logout - filter: auth - - # Admin Dashboard - - method: GET - route: /admin - controller: Neuron\Cms\Controllers\Admin\DashboardController@index - filter: auth - - - method: GET - route: /admin/dashboard - controller: Neuron\Cms\Controllers\Admin\DashboardController@index - filter: auth - - # User Management - - method: GET - route: /admin/users - controller: Neuron\Cms\Controllers\Admin\UserController@index - filter: auth - - - method: GET - route: /admin/users/create - controller: Neuron\Cms\Controllers\Admin\UserController@create - filter: auth - - - method: POST - route: /admin/users - controller: Neuron\Cms\Controllers\Admin\UserController@store - filter: auth - - - method: GET - route: /admin/users/:id/edit - controller: Neuron\Cms\Controllers\Admin\UserController@edit - filter: auth - - - method: PUT - route: /admin/users/:id - controller: Neuron\Cms\Controllers\Admin\UserController@update - filter: auth - - - method: DELETE - route: /admin/users/:id - controller: Neuron\Cms\Controllers\Admin\UserController@destroy - filter: auth - - # Profile Management - - method: GET - route: /admin/profile - controller: Neuron\Cms\Controllers\Admin\ProfileController@edit - filter: auth - - - method: PUT - route: /admin/profile - controller: Neuron\Cms\Controllers\Admin\ProfileController@update - filter: auth - - # Settings - - method: GET - route: /admin/settings - controller: Neuron\Cms\Controllers\Admin\SettingsController@index - filter: auth - - - method: PUT - route: /admin/settings - controller: Neuron\Cms\Controllers\Admin\SettingsController@update - filter: auth - - # Blog Post Management - - method: GET - route: /admin/posts - controller: Neuron\Cms\Controllers\Admin\PostController@index - filter: auth - - - method: GET - route: /admin/posts/create - controller: Neuron\Cms\Controllers\Admin\PostController@create - filter: auth - - - method: POST - route: /admin/posts - controller: Neuron\Cms\Controllers\Admin\PostController@store - filter: auth - - - method: GET - route: /admin/posts/:id/edit - controller: Neuron\Cms\Controllers\Admin\PostController@edit - filter: auth - - - method: PUT - route: /admin/posts/:id - controller: Neuron\Cms\Controllers\Admin\PostController@update - filter: auth - - - method: DELETE - route: /admin/posts/:id - controller: Neuron\Cms\Controllers\Admin\PostController@destroy - filter: auth - - # Blog Category Management - - method: GET - route: /admin/categories - controller: Neuron\Cms\Controllers\Admin\CategoryController@index - filter: auth - - - method: GET - route: /admin/categories/create - controller: Neuron\Cms\Controllers\Admin\CategoryController@create - filter: auth - - - method: POST - route: /admin/categories - controller: Neuron\Cms\Controllers\Admin\CategoryController@store - filter: auth - - - method: GET - route: /admin/categories/:id/edit - controller: Neuron\Cms\Controllers\Admin\CategoryController@edit - filter: auth - - - method: PUT - route: /admin/categories/:id - controller: Neuron\Cms\Controllers\Admin\CategoryController@update - filter: auth - - - method: DELETE - route: /admin/categories/:id - controller: Neuron\Cms\Controllers\Admin\CategoryController@destroy - filter: auth - - # Blog Tag Management - - method: GET - route: /admin/tags - controller: Neuron\Cms\Controllers\Admin\TagController@index - filter: auth - - - method: GET - route: /admin/tags/create - controller: Neuron\Cms\Controllers\Admin\TagController@create - filter: auth - - - method: POST - route: /admin/tags - controller: Neuron\Cms\Controllers\Admin\TagController@store - filter: auth - - - method: GET - route: /admin/tags/:id/edit - controller: Neuron\Cms\Controllers\Admin\TagController@edit - filter: auth - - - method: PUT - route: /admin/tags/:id - controller: Neuron\Cms\Controllers\Admin\TagController@update - filter: auth - - - method: DELETE - route: /admin/tags/:id - controller: Neuron\Cms\Controllers\Admin\TagController@destroy - filter: auth diff --git a/resources/app/Initializers/AuthInitializer.php b/resources/app/Initializers/AuthInitializer.php index 5c98549..fb22663 100644 --- a/resources/app/Initializers/AuthInitializer.php +++ b/resources/app/Initializers/AuthInitializer.php @@ -61,6 +61,14 @@ public function run( array $argv = [] ): mixed if( !empty( $settingNames ) ) { // Get services from container + // Check if services exist before trying to get them (for fallback container scenarios) + if( !$container->has( Authentication::class ) || + !$container->has( CsrfToken::class ) ) + { + Log::warning( "Auth services not available in container, skipping auth filter registration" ); + return null; + } + $authentication = $container->get( Authentication::class ); $csrfToken = $container->get( CsrfToken::class ); diff --git a/resources/app/Initializers/RegistrationInitializer.php b/resources/app/Initializers/RegistrationInitializer.php index 658aaab..8fd0fe5 100644 --- a/resources/app/Initializers/RegistrationInitializer.php +++ b/resources/app/Initializers/RegistrationInitializer.php @@ -61,6 +61,15 @@ public function run( array $argv = [] ): mixed if( !empty( $settingNames ) ) { // Get services from container + // Check if services exist before trying to get them (for fallback container scenarios) + if( !$container->has( Authentication::class ) || + !$container->has( EmailVerifier::class ) || + !$container->has( RegistrationService::class ) ) + { + Log::warning( "Registration services not available in container, skipping member filter registration" ); + return null; + } + $authentication = $container->get( Authentication::class ); $emailVerifier = $container->get( EmailVerifier::class ); $registrationService = $container->get( RegistrationService::class ); diff --git a/resources/config/neuron.yaml.example b/resources/config/neuron.yaml.example index 333020d..2b527e3 100644 --- a/resources/config/neuron.yaml.example +++ b/resources/config/neuron.yaml.example @@ -5,7 +5,6 @@ system: timezone: UTC # Server timezone (e.g., America/New_York, Europe/London, UTC) base_path: resources # Base path for resources - routes_path: resources/config # Path to routes configuration routing: controller_paths: diff --git a/resources/config/routes.yaml b/resources/config/routes.yaml deleted file mode 100644 index 8e18de2..0000000 --- a/resources/config/routes.yaml +++ /dev/null @@ -1,457 +0,0 @@ -# CMS Routes Configuration -# Admin routes with authentication - -routes: - # Authentication routes - login: - method: GET - route: /login - controller: Neuron\Cms\Controllers\Auth\Login@showLoginForm - - login_post: - method: POST - route: /login - controller: Neuron\Cms\Controllers\Auth\Login@login - - logout: - method: POST - route: /logout - controller: Neuron\Cms\Controllers\Auth\Login@logout - filters: [auth, csrf] - - # Password Reset routes - forgot_password: - method: GET - route: /forgot-password - controller: Neuron\Cms\Controllers\Auth\PasswordReset@showForgotPasswordForm - - forgot_password_post: - method: POST - route: /forgot-password - controller: Neuron\Cms\Controllers\Auth\PasswordReset@requestReset - - reset_password: - method: GET - route: /reset-password - controller: Neuron\Cms\Controllers\Auth\PasswordReset@showResetForm - - reset_password_post: - method: POST - route: /reset-password - controller: Neuron\Cms\Controllers\Auth\PasswordReset@resetPassword - - # Admin Dashboard - admin: - method: GET - route: /admin - controller: Neuron\Cms\Controllers\Admin\Dashboard@index - filter: auth - - admin_dashboard: - method: GET - route: /admin/dashboard - controller: Neuron\Cms\Controllers\Admin\Dashboard@index - filter: auth - - # User Management - admin_users: - method: GET - route: /admin/users - controller: Neuron\Cms\Controllers\Admin\Users@index - filter: auth - - admin_users_create: - method: GET - route: /admin/users/create - controller: Neuron\Cms\Controllers\Admin\Users@create - filter: auth - - admin_users_store: - method: POST - route: /admin/users - controller: Neuron\Cms\Controllers\Admin\Users@store - filters: [auth, csrf] - - admin_users_edit: - method: GET - route: /admin/users/:id/edit - controller: Neuron\Cms\Controllers\Admin\Users@edit - filter: auth - - admin_users_update: - method: PUT - route: /admin/users/:id - controller: Neuron\Cms\Controllers\Admin\Users@update - filters: [auth, csrf] - - admin_users_destroy: - method: DELETE - route: /admin/users/:id - controller: Neuron\Cms\Controllers\Admin\Users@destroy - filters: [auth, csrf] - - # Profile Management - admin_profile: - method: GET - route: /admin/profile - controller: Neuron\Cms\Controllers\Admin\Profile@edit - filter: auth - - admin_profile_update: - method: PUT - route: /admin/profile - controller: Neuron\Cms\Controllers\Admin\Profile@update - filters: [auth, csrf] - - # Blog Post Management - admin_posts: - method: GET - route: /admin/posts - controller: Neuron\Cms\Controllers\Admin\Posts@index - filter: auth - - admin_posts_create: - method: GET - route: /admin/posts/create - controller: Neuron\Cms\Controllers\Admin\Posts@create - filter: auth - - admin_posts_store: - method: POST - route: /admin/posts - controller: Neuron\Cms\Controllers\Admin\Posts@store - filters: [auth, csrf] - - admin_posts_edit: - method: GET - route: /admin/posts/:id/edit - controller: Neuron\Cms\Controllers\Admin\Posts@edit - filter: auth - - admin_posts_update: - method: PUT - route: /admin/posts/:id - controller: Neuron\Cms\Controllers\Admin\Posts@update - filters: [auth, csrf] - - admin_posts_destroy: - method: DELETE - route: /admin/posts/:id - controller: Neuron\Cms\Controllers\Admin\Posts@destroy - filters: [auth, csrf] - - # Blog Category Management - admin_categories: - method: GET - route: /admin/categories - controller: Neuron\Cms\Controllers\Admin\Categories@index - filter: auth - - admin_categories_create: - method: GET - route: /admin/categories/create - controller: Neuron\Cms\Controllers\Admin\Categories@create - filter: auth - - admin_categories_store: - method: POST - route: /admin/categories - controller: Neuron\Cms\Controllers\Admin\Categories@store - filters: [auth, csrf] - - admin_categories_edit: - method: GET - route: /admin/categories/:id/edit - controller: Neuron\Cms\Controllers\Admin\Categories@edit - filter: auth - - admin_categories_update: - method: PUT - route: /admin/categories/:id - controller: Neuron\Cms\Controllers\Admin\Categories@update - filters: [auth, csrf] - - admin_categories_destroy: - method: DELETE - route: /admin/categories/:id - controller: Neuron\Cms\Controllers\Admin\Categories@destroy - filters: [auth, csrf] - - # Blog Tag Management - admin_tags: - method: GET - route: /admin/tags - controller: Neuron\Cms\Controllers\Admin\Tags@index - filter: auth - - admin_tags_create: - method: GET - route: /admin/tags/create - controller: Neuron\Cms\Controllers\Admin\Tags@create - filter: auth - - admin_tags_store: - method: POST - route: /admin/tags - controller: Neuron\Cms\Controllers\Admin\Tags@store - filters: [auth, csrf] - - admin_tags_edit: - method: GET - route: /admin/tags/:id/edit - controller: Neuron\Cms\Controllers\Admin\Tags@edit - filter: auth - - admin_tags_update: - method: PUT - route: /admin/tags/:id - controller: Neuron\Cms\Controllers\Admin\Tags@update - filters: [auth, csrf] - - admin_tags_destroy: - method: DELETE - route: /admin/tags/:id - controller: Neuron\Cms\Controllers\Admin\Tags@destroy - filters: [auth, csrf] - - # Page Management - admin_pages: - method: GET - route: /admin/pages - controller: Neuron\Cms\Controllers\Admin\Pages@index - filter: auth - - admin_pages_create: - method: GET - route: /admin/pages/create - controller: Neuron\Cms\Controllers\Admin\Pages@create - filter: auth - - admin_pages_store: - method: POST - route: /admin/pages - controller: Neuron\Cms\Controllers\Admin\Pages@store - filters: [auth, csrf] - - admin_pages_edit: - method: GET - route: /admin/pages/:id/edit - controller: Neuron\Cms\Controllers\Admin\Pages@edit - filter: auth - - admin_pages_update: - method: PUT - route: /admin/pages/:id - controller: Neuron\Cms\Controllers\Admin\Pages@update - filters: [auth, csrf] - - admin_pages_destroy: - method: DELETE - route: /admin/pages/:id - controller: Neuron\Cms\Controllers\Admin\Pages@destroy - filters: [auth, csrf] - - # Media Management Routes - admin_media: - method: GET - route: /admin/media - controller: Neuron\Cms\Controllers\Admin\Media@index - filter: auth - - admin_media_upload: - method: POST - route: /admin/upload/image - controller: Neuron\Cms\Controllers\Admin\Media@uploadImage - filters: [auth, csrf] - - admin_media_featured_upload: - method: POST - route: /admin/upload/featured-image - controller: Neuron\Cms\Controllers\Admin\Media@uploadFeaturedImage - filters: [auth, csrf] - - # Homepage - home: - method: GET - route: / - controller: Neuron\Cms\Controllers\Home@index - - # Public Blog Routes - blog: - method: GET - route: /blog - controller: Neuron\Cms\Controllers\Blog@index - - blog_post: - method: GET - route: /blog/post/:slug - controller: Neuron\Cms\Controllers\Blog@show - - blog_category: - method: GET - route: /blog/category/:slug - controller: Neuron\Cms\Controllers\Blog@category - - blog_tag: - method: GET - route: /blog/tag/:slug - controller: Neuron\Cms\Controllers\Blog@tag - - blog_author: - method: GET - route: /blog/author/:username - controller: Neuron\Cms\Controllers\Blog@author - - rss: - method: GET - route: /rss - controller: Neuron\Cms\Controllers\Blog@feed - - # Public Pages - page_show: - method: GET - route: /pages/:slug - controller: Neuron\Cms\Controllers\Pages@show - - # Member Registration Routes - register: - method: GET - route: /register - controller: Neuron\Cms\Controllers\Member\Registration@showRegistrationForm - - register_post: - method: POST - route: /register - controller: Neuron\Cms\Controllers\Member\Registration@processRegistration - - verify_email: - method: GET - route: /verify-email - controller: Neuron\Cms\Controllers\Member\Registration@verify - - verify_email_sent: - method: GET - route: /verify-email-sent - controller: Neuron\Cms\Controllers\Member\Registration@showVerificationSent - - resend_verification: - method: POST - route: /resend-verification - controller: Neuron\Cms\Controllers\Member\Registration@resendVerification - filter: csrf - - # Member Dashboard Routes - member: - method: GET - route: /member - controller: Neuron\Cms\Controllers\Member\Dashboard@index - filter: member - - member_dashboard: - method: GET - route: /member/dashboard - controller: Neuron\Cms\Controllers\Member\Dashboard@index - filter: member - - # Member Profile Routes - member_profile: - method: GET - route: /member/profile - controller: Neuron\Cms\Controllers\Member\Profile@edit - filter: member - - member_profile_update: - method: PUT - route: /member/profile - controller: Neuron\Cms\Controllers\Member\Profile@update - filters: [member, csrf] - - # Event Category Management - admin_event_categories: - method: GET - route: /admin/event-categories - controller: Neuron\Cms\Controllers\Admin\EventCategories@index - filter: auth - - admin_event_categories_create: - method: GET - route: /admin/event-categories/create - controller: Neuron\Cms\Controllers\Admin\EventCategories@create - filter: auth - - admin_event_categories_store: - method: POST - route: /admin/event-categories - controller: Neuron\Cms\Controllers\Admin\EventCategories@store - filters: [auth, csrf] - - admin_event_categories_edit: - method: GET - route: /admin/event-categories/:id/edit - controller: Neuron\Cms\Controllers\Admin\EventCategories@edit - filter: auth - - admin_event_categories_update: - method: PUT - route: /admin/event-categories/:id - controller: Neuron\Cms\Controllers\Admin\EventCategories@update - filters: [auth, csrf] - - admin_event_categories_destroy: - method: DELETE - route: /admin/event-categories/:id - controller: Neuron\Cms\Controllers\Admin\EventCategories@destroy - filters: [auth, csrf] - - # Event Management - admin_events: - method: GET - route: /admin/events - controller: Neuron\Cms\Controllers\Admin\Events@index - filter: auth - - admin_events_create: - method: GET - route: /admin/events/create - controller: Neuron\Cms\Controllers\Admin\Events@create - filter: auth - - admin_events_store: - method: POST - route: /admin/events - controller: Neuron\Cms\Controllers\Admin\Events@store - filters: [auth, csrf] - - admin_events_edit: - method: GET - route: /admin/events/:id/edit - controller: Neuron\Cms\Controllers\Admin\Events@edit - filter: auth - - admin_events_update: - method: PUT - route: /admin/events/:id - controller: Neuron\Cms\Controllers\Admin\Events@update - filters: [auth, csrf] - - admin_events_destroy: - method: DELETE - route: /admin/events/:id - controller: Neuron\Cms\Controllers\Admin\Events@destroy - filters: [auth, csrf] - - # Public Calendar Routes - calendar: - method: GET - route: /calendar - controller: Neuron\Cms\Controllers\Calendar@index - - calendar_event: - method: GET - route: /calendar/event/:slug - controller: Neuron\Cms\Controllers\Calendar@show - - calendar_category: - method: GET - route: /calendar/category/:slug - controller: Neuron\Cms\Controllers\Calendar@category diff --git a/src/Bootstrap.php b/src/Bootstrap.php index b568df4..796fdfe 100644 --- a/src/Bootstrap.php +++ b/src/Bootstrap.php @@ -108,6 +108,29 @@ function boot( string $configPath ) : Application // This allows the application to start even if advanced configuration fails $yaml = new Yaml( "$configPath/neuron.yaml" ); $settings = new SettingManager( $yaml ); + + // Create a minimal container to prevent initializer failures + // This ensures the Registry has a Container entry even if full DI setup fails + try + { + $builder = new \DI\ContainerBuilder(); + + // Add just the essential service (SettingManager) + $builder->addDefinitions([ + SettingManager::class => $settings + ]); + + $psr11Container = $builder->build(); + $container = new \Neuron\Cms\Container\ContainerAdapter( $psr11Container ); + + // Register the minimal container in Registry + Registry::getInstance()->set( 'Container', $container ); + } + catch( \Exception $containerException ) + { + \Neuron\Log\Log::error( 'Failed to create fallback container: ' . $containerException->getMessage() ); + // Container remains null, initializers will handle gracefully + } } // Create MVC application with our configured SettingManager diff --git a/versionlog.md b/versionlog.md index 989ca82..4485048 100644 --- a/versionlog.md +++ b/versionlog.md @@ -1,4 +1,5 @@ ## 0.8.36 +* Removed support for routes.yaml. ## 0.8.35 2026-01-07 * Enhancements for secrets.