<?php /** * @see https://github.com/laminas/laminas-mvc-skeleton for the canonical source repository * @copyright https://github.com/laminas/laminas-mvc-skeleton/blob/master/COPYRIGHT.md * @license https://github.com/laminas/laminas-mvc-skeleton/blob/master/LICENSE.md New BSD License */ declare(strict_types=1); namespace Application; use Laminas\Router\Http\Literal; use Laminas\Router\Http\Segment; use Laminas\ServiceManager\Factory\InvokableFactory; return [ 'router' => [ 'routes' => [ '404' => [ 'type' => Segment::class, 'options' => [ 'route' => '/:*', 'defaults' => [ 'controller' => Master\RouteNotFoundController::class, 'action' => 'routenotfound', ], ], 'priority' => -1000, ], 'home' => [ 'type' => Literal::class, 'options' => [ 'route' => '/', 'defaults' => [ 'controller' => Controller\AdminController::class, 'action' => 'index', ], ], ], 'application' => [ 'type' => Segment::class, 'options' => [ 'route' => '/application[/:action]', 'defaults' => [ 'controller' => Controller\IndexController::class, 'action' => 'index', ], ], ], 'api' => [ 'type' => Segment::class, 'options' => [ 'route' => '/api[/][:action][/:id]', 'constraints' => array( 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 'id' => '[0-9]+', ), 'defaults' => [ 'controller' => Controller\ApiController::class, 'action' => 'index', ], ], ], 'jsondata' => [ 'type' => Segment::class, 'options' => [ 'route' => '/jsondata[/][:action][/:id]', 'constraints' => array( 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 'id' => '[0-9]+', ), 'defaults' => [ 'controller' => Controller\JsondataController::class, 'action' => 'index', ], ], ], 'signin' => [ 'type' => Segment::class, 'options' => [ 'route' => '/api/login', 'constraints' => array( 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', ), 'defaults' => [ 'controller' => Controller\ApiController::class, 'action' => 'login', ], ], ], 'login' => [ 'type' => Segment::class, 'options' => [ 'route' => '/login[/][:action][/:id]', 'constraints' => array( 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', ), 'defaults' => [ 'controller' => Controller\UserController::class, 'action' => 'login', ], ], ], 'content' => [ 'type' => Segment::class, 'options' => [ 'route' => '/content[/][:action][/:id]', 'constraints' => array( 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', ), 'defaults' => [ 'controller' => Controller\ContentController::class, 'action' => 'index', ], ], ], 'admin' => [ 'type' => Segment::class, 'options' => [ 'route' => '/admin[/][:action][/:id]', 'constraints' => array( 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', ), 'defaults' => [ 'controller' => Controller\AdminController::class, 'action' => 'index', ], ], ], 'koordinator' => [ 'type' => Segment::class, 'options' => [ 'route' => '/koordinator[/][:action][/:id]', 'constraints' => array( 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', ), 'defaults' => [ 'controller' => Controller\KoordinatorController::class, 'action' => 'index', ], ], ], 'superadmin' => [ 'type' => Segment::class, 'options' => [ 'route' => '/admin[/][:action][/:id]', 'constraints' => array( 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', ), 'defaults' => [ 'controller' => Controller\AdminController::class, 'action' => 'superadminidx', ], ], ], 'kaprodi' => [ 'type' => Segment::class, 'options' => [ 'route' => '/kaprodi[/][:action][/:id]', 'constraints' => array( 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', ), 'defaults' => [ 'controller' => Controller\KaprodiController::class, 'action' => 'index', ], ], ], 'jadwal' => [ 'type' => Segment::class, 'options' => [ 'route' => '/jadwal[/][:action][/:id]', 'constraints' => array( 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', ), 'defaults' => [ 'controller' => Controller\JadwalController::class, 'action' => 'index', ], ], ], 'mahasiswa' => [ 'type' => Segment::class, 'options' => [ 'route' => '/mahasiswa[/][:action][/:id]', 'constraints' => array( 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', ), 'defaults' => [ 'controller' => Controller\MahasiswaController::class, 'action' => 'index', ], ], ], 'dosen' => [ 'type' => Segment::class, 'options' => [ 'route' => '/dosen[/][:action][/:id]', 'constraints' => array( 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', ), 'defaults' => [ 'controller' => Controller\DosenController::class, 'action' => 'index', ], ], ], 'penilaian' => [ 'type' => Segment::class, 'options' => [ 'route' => '/penilaian[/][:action][/:id]', 'constraints' => array( 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', ), 'defaults' => [ 'controller' => Controller\PenilaianController::class, 'action' => 'index', ], ], ], 'index' => [ 'type' => Segment::class, 'options' => [ 'route' => '/index[/][:action][/:id]', 'constraints' => array( 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', ), 'defaults' => [ 'controller' => Controller\IndexController::class, 'action' => 'index', ], ], ], 'user' => [ 'type' => Segment::class, 'options' => [ 'route' => '/user[/][:action][/:id]', 'constraints' => array( 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', ), 'defaults' => [ 'controller' => Controller\UserController::class, 'action' => 'index', ], ], ], ], ], 'controllers' => [ 'factories' => [ Controller\IndexController::class => Factory\IndexControllerFactory::class, Controller\AdminController::class => Factory\AdminControllerFactory::class, Controller\KaprodiController::class => Factory\KaprodiControllerFactory::class, Controller\JadwalController::class => Factory\JadwalControllerFactory::class, Controller\MahasiswaController::class => Factory\MahasiswaControllerFactory::class, Controller\DosenController::class => Factory\DosenControllerFactory::class, Controller\PenilaianController::class => Factory\PenilaianControllerFactory::class, Controller\ContentController::class => Factory\ContentControllerFactory::class, Controller\UserController::class => Factory\UserControllerFactory::class, Controller\ApiController::class => InvokableFactory::class, Controller\JsondataController::class => Factory\JsondataControllerFactory::class, Controller\KoordinatorController::class => Factory\KoordinatorControllerFactory::class, ], ], 'view_manager' => [ 'display_not_found_reason' => true, 'display_exceptions' => true, 'doctype' => 'HTML5', 'not_found_template' => 'error/404', 'exception_template' => 'error/index', 'template_map' => [ 'layout/layout' => __DIR__ . '/../view/layout/layout.phtml', 'application/index/index' => __DIR__ . '/../view/application/index/index.phtml', 'error/404' => __DIR__ . '/../view/error/404.phtml', 'error/index' => __DIR__ . '/../view/error/index.phtml', ], 'template_path_stack' => [ __DIR__ . '/../view', ], ], 'databases' => array( 'primary' => array( 'driver' => 'pgsql', 'host' => getenv('ITB_HOST'), 'username' => getenv('ITB_UNAME'), 'password' => getenv('ITB_PASS'), 'port' => getenv('ITB_PORT'), 'schema' => getenv('ITB_SCH'), ), // 'primary' => array( // 'driver' => 'pgsql', // 'host' => '103.126.28.66', // 'username' => 'postgres', // 'password' => 'khansia215758', // 'port' => 5432, // 'schema' => 'ftmd_itb', // ), ), 'php' => array( 'display_errors' => false, 'error_reporting' => E_ALL, 'max_execution_time' => 200, 'session.gc_maxlifetime' => 86400, //24 jam - (second) ), ]; $secure = true; // if you only want to receive the cookie over HTTPS $httponly = true; // prevent JavaScript access to session cookie $samesite = 'lax'; $maxlifetime = 86400; if(PHP_VERSION_ID < 70300) { session_set_cookie_params($maxlifetime, '/; samesite='.$samesite, $_SERVER['HTTP_HOST'], $secure, $httponly); } else { session_set_cookie_params([ 'lifetime' => $maxlifetime, 'path' => '/', 'domain' => $_SERVER['HTTP_HOST'], 'secure' => $secure, 'httponly' => $httponly, 'samesite' => $samesite ]); } setcookie('cross-site-cookie', 'localhost', 'name', ['samesite' => 'None', 'secure' => true]); // Set a same-site cookie for first-party contexts setcookie('cookie1', 'value1', ['samesite' => 'Lax']); // Set a cross-site cookie for third-party contexts setcookie('cookie2', 'value2', ['samesite' => 'None', 'secure' => true]); // Set a same-site cookie for first-party contexts header('Set-Cookie: ACookieAvailableCrossSite; promo_shown=1; SameSite=Lax', false); // Set a cross-site cookie for third-party contexts header('Set-Cookie: ACookieAvailableCrossSite;promo_shown=1; SameSite=None; Secure', false);