Skip to content
Snippets Groups Projects
App.php 17.4 KiB
Newer Older
  • Learn to ignore specific revisions
  • 
    use CodeIgniter\Config\BaseConfig;
    
    use CodeIgniter\Session\Handlers\FileHandler;
    
        /**
         * --------------------------------------------------------------------------
         * Base Site URL
         * --------------------------------------------------------------------------
         *
    
         * URL to your CodeIgniter root. Typically, this will be your base URL,
    
         * WITH a trailing slash:
         *
         *    http://example.com/
         */
    
        public string $baseURL = 'http://localhost:8080/';
    
        /**
         * Allowed Hostnames in the Site URL other than the hostname in the baseURL.
         * If you want to accept multiple Hostnames, set this.
         *
         * E.g. When your site URL ($baseURL) is 'http://example.com/', and your site
         *      also accepts 'http://media.example.com/' and
         *      'http://accounts.example.com/':
         *          ['media.example.com', 'accounts.example.com']
         *
         * @var string[]
         * @phpstan-var list<string>
         */
        public array $allowedHostnames = [];
    
    
        /**
         * --------------------------------------------------------------------------
         * Index File
         * --------------------------------------------------------------------------
         *
         * Typically this will be your index.php file, unless you've renamed it to
         * something else. If you are using mod_rewrite to remove the page set this
         * variable so that it is blank.
         */
    
        /**
         * --------------------------------------------------------------------------
         * URI PROTOCOL
         * --------------------------------------------------------------------------
         *
    
         * This item determines which server global should be used to retrieve the
    
         * URI string.  The default setting of 'REQUEST_URI' works for most servers.
         * If your links do not seem to work, try one of the other delicious flavors:
         *
         * 'REQUEST_URI'    Uses $_SERVER['REQUEST_URI']
         * 'QUERY_STRING'   Uses $_SERVER['QUERY_STRING']
         * 'PATH_INFO'      Uses $_SERVER['PATH_INFO']
         *
         * WARNING: If you set this to 'PATH_INFO', URIs will always be URL-decoded!
         */
    
        public string $uriProtocol = 'REQUEST_URI';
    
        /**
         * --------------------------------------------------------------------------
         * Default Locale
         * --------------------------------------------------------------------------
         *
         * The Locale roughly represents the language and location that your visitor
         * is viewing the site from. It affects the language strings and other
         * strings (like currency markers, numbers, etc), that your program
         * should run under for this request.
         */
    
        public string $defaultLocale = 'en';
    
        /**
         * --------------------------------------------------------------------------
         * Negotiate Locale
         * --------------------------------------------------------------------------
         *
         * If true, the current Request object will automatically determine the
         * language to use based on the value of the Accept-Language header.
         *
         * If false, no automatic detection will be performed.
         */
    
        public bool $negotiateLocale = true;
    
        /**
         * --------------------------------------------------------------------------
         * Supported Locales
         * --------------------------------------------------------------------------
         *
         * If $negotiateLocale is true, this array lists the locales supported
         * by the application in descending order of priority. If no match is
         * found, the first locale will be used.
         *
    
         * IncomingRequest::setLocale() also uses this list.
         *
    
        public array $supportedLocales = ['en', 'fr', 'pl', 'de', 'pt-BR', 'nn-NO', 'es', 'zh-Hans', 'ca'];
    
        /**
         * --------------------------------------------------------------------------
         * Application Timezone
         * --------------------------------------------------------------------------
         *
         * The default timezone that will be used in your application to display
         * dates with the date helper, and can be retrieved through app_timezone()
    
         *
         * @see https://www.php.net/manual/en/timezones.php for list of timezones supported by PHP.
    
        /**
         * --------------------------------------------------------------------------
         * Default Character Set
         * --------------------------------------------------------------------------
         *
         * This determines which character set is used by default in various methods
         * that require a character set to be provided.
         *
         * @see http://php.net/htmlspecialchars for a list of supported charsets.
         */
    
        /**
         * --------------------------------------------------------------------------
         * URI PROTOCOL
         * --------------------------------------------------------------------------
         *
         * If true, this will force every request made to this application to be
         * made via a secure connection (HTTPS). If the incoming request is not
         * secure, the user will be redirected to a secure version of the page
         * and the HTTP Strict Transport Security header will be set.
         */
    
        public bool $forceGlobalSecureRequests = true;
    
        /**
         * --------------------------------------------------------------------------
         * Session Driver
         * --------------------------------------------------------------------------
         *
         * The session storage driver to use:
         * - `CodeIgniter\Session\Handlers\FileHandler`
         * - `CodeIgniter\Session\Handlers\DatabaseHandler`
         * - `CodeIgniter\Session\Handlers\MemcachedHandler`
         * - `CodeIgniter\Session\Handlers\RedisHandler`
    
         *
         * @deprecated use Config\Session::$driver instead.
    
        public string $sessionDriver = FileHandler::class;
    
    
        /**
         * --------------------------------------------------------------------------
         * Session Cookie Name
         * --------------------------------------------------------------------------
         *
         * The session cookie name, must contain only [0-9a-z_-] characters
    
         *
         * @deprecated use Config\Session::$cookieName instead.
    
        public string $sessionCookieName = 'ci_session';
    
    
        /**
         * --------------------------------------------------------------------------
         * Session Expiration
         * --------------------------------------------------------------------------
         *
         * The number of SECONDS you want the session to last.
         * Setting to 0 (zero) means expire when the browser is closed.
    
         *
         * @deprecated use Config\Session::$expiration instead.
    
        public int $sessionExpiration = 7200;
    
    
        /**
         * --------------------------------------------------------------------------
         * Session Save Path
         * --------------------------------------------------------------------------
         *
         * The location to save sessions to and is driver dependent.
         *
         * For the 'files' driver, it's a path to a writable directory.
         * WARNING: Only absolute paths are supported!
         *
         * For the 'database' driver, it's a table name.
         * Please read up the manual for the format with other session drivers.
         *
         * IMPORTANT: You are REQUIRED to set a valid save path!
    
         *
         * @deprecated use Config\Session::$savePath instead.
    
        public string $sessionSavePath = WRITEPATH . 'session';
    
    
        /**
         * --------------------------------------------------------------------------
         * Session Match IP
         * --------------------------------------------------------------------------
         *
         * Whether to match the user's IP address when reading the session data.
         *
         * WARNING: If you're using the database driver, don't forget to update
         *          your session table's PRIMARY KEY when changing this setting.
    
         *
         * @deprecated use Config\Session::$matchIP instead.
    
        public bool $sessionMatchIP = false;
    
    
        /**
         * --------------------------------------------------------------------------
         * Session Time to Update
         * --------------------------------------------------------------------------
         *
         * How many seconds between CI regenerating the session ID.
    
         *
         * @deprecated use Config\Session::$timeToUpdate instead.
    
        public int $sessionTimeToUpdate = 300;
    
    
        /**
         * --------------------------------------------------------------------------
         * Session Regenerate Destroy
         * --------------------------------------------------------------------------
         *
         * Whether to destroy session data associated with the old session ID
         * when auto-regenerating the session ID. When set to FALSE, the data
         * will be later deleted by the garbage collector.
    
         *
         * @deprecated use Config\Session::$regenerateDestroy instead.
    
        public bool $sessionRegenerateDestroy = false;
    
        /**
         * --------------------------------------------------------------------------
         * Session Database Group
         * --------------------------------------------------------------------------
         *
         * DB Group for the database session.
         *
         * @deprecated use Config\Session::$DBGroup instead.
         */
        public ?string $sessionDBGroup = null;
    
    
        /**
         * --------------------------------------------------------------------------
         * Cookie Prefix
         * --------------------------------------------------------------------------
         *
         * Set a cookie name prefix if you need to avoid collisions.
         *
         * @deprecated use Config\Cookie::$prefix property instead.
         */
        public string $cookiePrefix = '';
    
        /**
         * --------------------------------------------------------------------------
         * Cookie Domain
         * --------------------------------------------------------------------------
         *
         * Set to `.your-domain.com` for site-wide cookies.
         *
         * @deprecated use Config\Cookie::$domain property instead.
         */
        public string $cookieDomain = '';
    
        /**
         * --------------------------------------------------------------------------
         * Cookie Path
         * --------------------------------------------------------------------------
         *
         * Typically will be a forward slash.
         *
         * @deprecated use Config\Cookie::$path property instead.
         */
        public string $cookiePath = '/';
    
        /**
         * --------------------------------------------------------------------------
         * Cookie Secure
         * --------------------------------------------------------------------------
         *
         * Cookie will only be set if a secure HTTPS connection exists.
         *
         * @deprecated use Config\Cookie::$secure property instead.
         */
        public bool $cookieSecure = false;
    
        /**
         * --------------------------------------------------------------------------
         * Cookie HttpOnly
         * --------------------------------------------------------------------------
         *
         * Cookie will only be accessible via HTTP(S) (no JavaScript).
         *
         * @deprecated use Config\Cookie::$httponly property instead.
         */
        public bool $cookieHTTPOnly = true;
    
        /**
         * --------------------------------------------------------------------------
         * Cookie SameSite
         * --------------------------------------------------------------------------
         *
         * Configure cookie SameSite setting. Allowed values are:
         * - None
         * - Lax
         * - Strict
         * - ''
         *
         * Alternatively, you can use the constant names:
         * - `Cookie::SAMESITE_NONE`
         * - `Cookie::SAMESITE_LAX`
         * - `Cookie::SAMESITE_STRICT`
         *
         * Defaults to `Lax` for compatibility with modern browsers. Setting `''`
         * (empty string) means default SameSite attribute set by browsers (`Lax`)
         * will be set on cookies. If set to `None`, `$cookieSecure` must also be set.
         *
    
         * @deprecated `Config\Cookie` $samesite property is used.
    
        public ?string $cookieSameSite = 'Lax';
    
        /**
         * --------------------------------------------------------------------------
         * Reverse Proxy IPs
         * --------------------------------------------------------------------------
         *
         * If your server is behind a reverse proxy, you must whitelist the proxy
         * IP addresses from which CodeIgniter should trust headers such as
    
         * X-Forwarded-For or Client-IP in order to properly identify
    
         * You need to set a proxy IP address or IP address with subnets and
         * the HTTP header for the client IP address.
    
         * Here are some examples:
         *     [
         *         '10.0.1.200'     => 'X-Forwarded-For',
         *         '192.168.5.0/24' => 'X-Real-IP',
         *     ]
    
         * @var array<string, string>
    
        public array $proxyIPs = [];
    
        /**
         * --------------------------------------------------------------------------
         * CSRF Token Name
         * --------------------------------------------------------------------------
         *
         * The token name.
         *
         * @deprecated Use `Config\Security` $tokenName property instead of using this property.
         */
        public string $CSRFTokenName = 'csrf_test_name';
    
        /**
         * --------------------------------------------------------------------------
         * CSRF Header Name
         * --------------------------------------------------------------------------
         *
         * The header name.
         *
         * @deprecated Use `Config\Security` $headerName property instead of using this property.
         */
        public string $CSRFHeaderName = 'X-CSRF-TOKEN';
    
        /**
         * --------------------------------------------------------------------------
         * CSRF Cookie Name
         * --------------------------------------------------------------------------
         *
         * The cookie name.
         *
         * @deprecated Use `Config\Security` $cookieName property instead of using this property.
         */
        public string $CSRFCookieName = 'csrf_cookie_name';
    
        /**
         * --------------------------------------------------------------------------
         * CSRF Expire
         * --------------------------------------------------------------------------
         *
         * The number in seconds the token should expire.
         *
         * @deprecated Use `Config\Security` $expire property instead of using this property.
         */
        public int $CSRFExpire = 7200;
    
        /**
         * --------------------------------------------------------------------------
         * CSRF Regenerate
         * --------------------------------------------------------------------------
         *
         * Regenerate token on every submission?
         *
         * @deprecated Use `Config\Security` $regenerate property instead of using this property.
         */
        public bool $CSRFRegenerate = true;
    
        /**
         * --------------------------------------------------------------------------
         * CSRF Redirect
         * --------------------------------------------------------------------------
         *
         * Redirect to previous page with error on failure?
         *
         * @deprecated Use `Config\Security` $redirect property instead of using this property.
         */
        public bool $CSRFRedirect = true;
    
        /**
         * --------------------------------------------------------------------------
         * CSRF SameSite
         * --------------------------------------------------------------------------
         *
         * Setting for CSRF SameSite cookie token. Allowed values are:
         * - None
         * - Lax
         * - Strict
         * - ''
         *
         * Defaults to `Lax` as recommended in this link:
         *
         * @see https://portswigger.net/web-security/csrf/samesite-cookies
         *
         * @deprecated Use `Config\Security` $samesite property instead of using this property.
         */
        public string $CSRFSameSite = 'Lax';
    
    
        /**
         * --------------------------------------------------------------------------
         * Content Security Policy
         * --------------------------------------------------------------------------
         *
         * Enables the Response's Content Secure Policy to restrict the sources that
         * can be used for images, scripts, CSS files, audio, video, etc. If enabled,
         * the Response object will populate default values for the policy from the
         * `ContentSecurityPolicy.php` file. Controllers can always add to those
         * restrictions at run time.
         *
         * For a better understanding of CSP, see these documents:
         *
         * @see http://www.html5rocks.com/en/tutorials/security/content-security-policy/
         * @see http://www.w3.org/TR/CSP/
         */
    
        /**
         * --------------------------------------------------------------------------
         * Instance / Site Config
         * --------------------------------------------------------------------------
         */
        public string $siteName = 'Castopod';
    
    
        public string $siteDescription = 'Castopod is an open-source hosting platform made for podcasters who want engage and interact with their audience.';
    
    
        /**
         * @var array<int|string, string>
         */
        public array $siteIcon = [
            'ico' => '/favicon.ico',
    
            '180' => '/icon-180.png',
            '192' => '/icon-192.png',
            '512' => '/icon-512.png',
        ];
    
        public string $theme = 'pine';
    
    
        /**
         * Storage limit in Gigabytes
         */
        public ?int $storageLimit = null;
    
        /**
         * Bandwidth limit (per month) in Gigabytes
         */
        public ?int $bandwidthLimit = null;