| @@ -1,8 +1,8 @@ | ||
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | 3 | if ( ! defined( 'ABSPATH' ) ) { |
| 4 | - exit; // Exit if accessed directly | |
| 4 | + exit; // Exit if accessed directly | |
| 5 | 5 | } |
| 6 | 6 | |
| 7 | 7 | use WPDeveloper\BetterDocs\Utils\Views; |
| 8 | 8 | use WPDeveloper\BetterDocs\Utils\Enqueue; |
| @@ -8,17 +8,27 @@ | ||
| 8 | 8 | use WPDeveloper\BetterDocs\Utils\Enqueue; |
| 9 | 9 | use WPDeveloper\BetterDocs\Editors\Editor; |
| 10 | 10 | use WPDeveloper\BetterDocs\Editors\Elementor; |
| 11 | 11 | use WPDeveloper\BetterDocs\Editors\BlockEditor; |
| 12 | - | |
| 12 | +use WPDeveloper\BetterDocs\Core\Settings; | |
| 13 | +use WPDeveloper\BetterDocs\AI\ProviderFactory; | |
| 13 | 14 | return [ |
| 14 | - Enqueue::class => new Enqueue( BETTERDOCS_ABSURL, BETTERDOCS_ABSPATH, BETTERDOCS_VERSION ), | |
| 15 | - Views::class => function ( $container ) { | |
| 16 | - return new Views( BETTERDOCS_ABSPATH . 'views/', $container ); | |
| 17 | - }, | |
| 18 | - Editor::class => function ( $container ) { | |
| 19 | - return new Editor( $container, [ | |
| 20 | - 'elementor' => Elementor::class, | |
| 21 | - 'blockEditor' => BlockEditor::class | |
| 22 | - ] ); | |
| 23 | - } | |
| 15 | + Enqueue::class => new Enqueue( BETTERDOCS_ABSURL, BETTERDOCS_ABSPATH, BETTERDOCS_VERSION ), | |
| 16 | + // Resolves the active AI platform (OpenAI / Gemini / Claude / DeepSeek / OpenRouter). | |
| 17 | + // Pro / add-ons can swap providers via the `betterdocs_ai_providers` filter, or | |
| 18 | + // replace the whole factory via the `betterdocs_container_config` filter. | |
| 19 | + ProviderFactory::class => function ( $container ) { | |
| 20 | + return new ProviderFactory( $container->get( Settings::class ) ); | |
| 21 | + }, | |
| 22 | + Views::class => function ( $container ) { | |
| 23 | + return new Views( BETTERDOCS_ABSPATH . 'views/', $container ); | |
| 24 | + }, | |
| 25 | + Editor::class => function ( $container ) { | |
| 26 | + return new Editor( | |
| 27 | + $container, | |
| 28 | + [ | |
| 29 | + 'elementor' => Elementor::class, | |
| 30 | + 'blockEditor' => BlockEditor::class | |
| 31 | + ] | |
| 32 | + ); | |
| 33 | + }, | |
| 24 | 34 | ]; |