11<?php
2- // filepath: c:\xampp\htdocs\warvilphp\app\init.php
2+ session_start ();
33
44require_once 'core/utils/Loader.php ' ;
55
6+ use app \core \Session ;
67use app \core \utils \Loader ;
78
8- // Allow cross-origin requests from any origin
9- header ('Access-Control-Allow-Origin: * ' );
10- // Allow only specified methods for cross-origin requests
11- header ('Access-Control-Allow-Methods: POST, GET, OPTIONS ' );
12- // Allow the Content-Type header for cross-origin requests
13- header ('Access-Control-Allow-Headers: Content-Type ' );
14-
159spl_autoload_register (function ($ class_name ) {
16- $ core = ['App ' , 'Router ' , 'RouterApi ' , 'Controller ' , 'Model ' , 'Response ' , 'Request ' , 'Database ' , 'Config ' , 'Layout ' , 'Storage ' , 'Env ' ];
17- $ coreUtils = ['Loader ' , 'Helpers ' , 'DateHelper ' , 'UrlHelper ' , 'Redirect ' , 'Session ' ];
10+ $ core = ['App ' , 'Router ' , 'RouterApi ' , 'Controller ' , 'Model ' , 'Response ' , 'Request ' , 'Database ' , 'Config ' , 'Layout ' , 'Storage ' , 'Session ' ];
11+ $ coreUtils = ['Loader ' , 'Helpers ' , 'DateHelper ' , 'UrlHelper ' , 'Factory ' , 'Pagination ' , ' Hash ' , ' Password ' , ' Toaster ' ];
1812 $ traits = ['Product ' ];
1913
20- // Load route files - ensure they exist first
21- $ routeFiles = ['web ' , 'api ' ];
22- foreach ($ routeFiles as $ route ) {
23- $ routePath = 'app/routes/ ' . $ route . '.php ' ;
24- if (file_exists ($ routePath )) {
25- require_once $ routePath ;
26- } else {
27- if (!is_dir ('app/routes ' )) {
28- mkdir ('app/routes ' , 0755 , true );
29- }
30-
31- // Create a default route file
32- if ($ route === 'web ' ) {
33- $ content = "<?php \n\nuse app\core\{Router}; \n\nRouter::get('/', 'WelcomeController', 'index'); \n" ;
34- file_put_contents ($ routePath , $ content );
35- require_once $ routePath ;
36- } else if ($ route === 'api ' ) {
37- $ content = "<?php \n\nuse app\core\{RouterApi}; \n\n// API Routes \n" ;
38- file_put_contents ($ routePath , $ content );
39- require_once $ routePath ;
40- }
41- }
14+ $ routes = ['web ' , 'api ' ];
15+
16+ // Load all classes in core/utils folder
17+ foreach ($ coreUtils as $ class ) {
18+ Loader::load ('app/core/utils ' , $ class );
19+ }
20+
21+ foreach ($ routes as $ route ) {
22+ Loader::load ('app/routes/ ' , $ route );
4223 }
4324
4425 foreach ($ traits as $ trait ) {
4829 foreach ($ core as $ class ) {
4930 Loader::load ('app/core/ ' , $ class );
5031 }
32+ // end of all classes in core/utils folder
5133
52- foreach ($ coreUtils as $ class ) {
53- Loader::load ('app/core/utils/ ' , $ class );
34+ // classes that needs to load separately
35+ $ model = 'app/models/ ' . getClassName ($ class_name ) . '.php ' ;
36+ $ helper = 'app/core/utils/ ' . $ class_name . '.php ' ;
37+ $ core = 'app/core/ ' . $ class_name . '.php ' ;
38+ $ controller = 'app/controllers/ ' . getClassName ($ class_name ) . '.php ' ;
39+ $ middleware = 'app/middlewares/ ' . getClassName ($ class_name ) . '.php ' ;
40+
41+ if (file_exists ($ model )) {
42+ require_once $ model ;
43+ }
44+
45+ if (file_exists ($ helper )) {
46+ Loader::load ('app/core/utils/ ' , $ class_name );
47+ }
48+
49+ if (file_exists ($ core )) {
50+ Loader::load ('app/core/ ' , $ class_name );
51+ }
52+
53+ if (file_exists ($ middleware )) {
54+ Loader::load ('app/middleware/ ' , getClassName ($ class_name ));
55+ }
56+
57+ if (file_exists ($ controller )) {
58+ Loader::load ('app/controllers/ ' , getClassName ($ class_name ));
59+ }
60+ });
61+
62+
63+ // save inputs in session
64+ $ excludeFields = ['password ' , 'password_confirmation ' ];
65+
66+ foreach ($ _POST as $ key => $ value ) {
67+ if (!in_array ($ key , $ excludeFields )) {
68+ Session::put ('old/ ' . $ key , $ value );
5469 }
55- });
70+ }
0 commit comments