<?php
declare(strict_types=1);
/**
* or http://dev1:8083/fwphp/glomodul/user/ if called from ibrowser directly
* http://dev1:8083 is web adress of one Apache site root, J:\awww\www is it`s Oper. Sys. adress
* J:\awww\www\fwphp\glomodul\user\index.php
* http://dev1:8083/fwphp/glomodul/blog/?i/admins/ if called from blog module
* In Home_ ctr :
* private function login(object $pp1) { utl_module::login($pp1, $pp1->dashboard) ; }
*/
// m o d u l e is processing (behavior) - optional as B12phpfw - named as we wish,
// only b12phpfw is r equired - see $shares_ path
// u s e r is cls dir (POSITIONAL part of NameSpace, CAREFULLY !)
namespace B12phpfw\module\user ;
use B12phpfw\core\b12phpfw\Autoload ;
//use B12phpfw\core\b12phpfw\Interf_Tbl_crud ;
//use B12phpfw\core\b12phpfw\Db_allsites ; //DB MySQL
use B12phpfw\core\b12phpfw\Config_allsites ;
use B12phpfw\dbadapter\user\Tbl_crud ;
use B12phpfw\module\user\Home_ctr ;
if (session_status() == PHP_SESSION_NONE) { session_start(); } // or if (!isset($_SESSION))
//} else { if(session_id() == '') { session_start(); } }
//$_SESSION = [] ; //unset($_SESSION) ;
//1. config - settings - properties - assign global variables to use them in any code part
$module_path = str_replace('\\','/', __DIR__) ; // .'/'
$dbicls = 'Db_allsites' ; //$dbicls = 'Db_allsites_ORA' ;
$dir_user = 'user' ;
$pp1 = (object) //=like Oracle Forms property palette (module level) but all sites level and dynamic
[
'pp1_group01' => '~~~~~ MODULE ELEMENTS IN PROPERTY PALLETE $pp1 : ~~~~~'
, 'module_version'=>'User ver. 11.0.1.0 Mart 2023' //, 'vendor_namesp_prefix'=>'B12phpfw'
, 'dbg'=>'1'
, 'dbicls' => $dbicls // for MySql DB or ...
, 'stack_trace'=>[[str_replace('\\','/', __FILE__ ).', lin='.__LINE__]]
//
, 'pp1_group02P' => '~~~~~ ADRESSES : PATHS ~~~~~'
, 'module_path' => $module_path
, 'dir_user' => $dir_user
] ;
require(dirname(dirname(dirname($module_path))) .'/vendor/b12phpfw/bootstrap.php');
//echo '<pre>$pp1->module_path_arr='; print_r($pp1->module_path_arr) ; echo '</pre>';
//2. global cls loads (includes, bootstrap) classes scripts automatically
//not Composer's autoload cls-es :
require($pp1->shares_path .'/Autoload.php'); //or Composer's autoload cls-es
$autoloader = new Autoload($pp1); //eliminates need to include class scripts
//require('Autoload.php'); //module-local or Composer's autoload cls-es
//$autoloader = new Autoload($pp1); //eliminates need to include class scripts
//3. SAME MODULE DB ADAPTER FOR ANY (NOT HARD CODED) SHARED DBADAPTER
//$pp1->dbicls = Db_allsites_ORA or Db_allsites for MySql :
$shared_dbadapter = 'B12phpfw\\core\\b12phpfw\\'. $pp1->dbicls ;
$pp1->shared_dbadapter_obj = new $shared_dbadapter() ;
//module DB adapter IS SAME for Db_allsites_ORA and Db_allsites for MySql !!
$module_dbadapter_obj = new Tbl_crud($pp1) ;
//4. process request from ibrowser & send response to ibrowser :
//Home_ ctr "inherits" index.php ee inherits $p p 1
$module = new Home_ctr($pp1) ; //also instatiates higher cls : Config_ allsites
if ('') {$module::jsmsg( [ str_replace('\\','/',__FILE__ ) //. __METHOD__
.', line '. __LINE__ .' SAYS'=>'where am I'
,'After Codeflow Step cs03 '=>'AFTER A u t o l o a d and $conf = new Home_ctr($pp1), cs01=bootstraping, cs02=INIT; config; routing, cs03=dispaching, cs04. PROCESSING (model or business logic - preCRUD onCRUD), cs05. OUTPUT (view)'
] ) ; }
exit(0);
|