Yapılandırma

Kurulum tamamlandıktan sonra "config/" dizini altında "config.php" dosyası oluşturulur.

Bu dosya içerisinde veritabanı bağlantı bilgileri ve site yapılandırmasına ait tanımlar bulunur.

Örnek dosya aşağıdaki gibidir.

<?php

use Src\BaseTheme\BaseTheme;

define("DB_SERVER", "%db_server");
define("DB_NAME", "%db_name");
define("DB_USER", "%db_user");
define("DB_PASSWORD", "%db_password");
define("HASH_SALT", "%hash_salt");

define("TIMEZONE", "Europe/Istanbul");

define("LANGUAGE", "tr");

define("TRUSTED_HOSTS", "localhost,127.0.0.1");

/**
 * production  -> Twig cache enabled, Mails send to exact location.
 * staging     -> Twig cache enabled, Mails send to test mail address.
 * development -> Twig cache disabled, Mails send to test mail address.
 */

define("ENVIROMENT", "development");

/**
 * notify_all_users  -> All users can login by one device. Other devices sessions will thrown when another device used.
 * role_based_notify -> Defined roles using LOGIN_POLICY_ROLES will be able to login using only one device.
 * not_notify -> No restrictions available.
 */

define("LOGIN_POLICY", "not_notify");

/**
 * Give roles definitions in an array if LOGIN_POLICY role_based_one_device_login used.
 * Ex: ['Admin', 'User']
 */
define("LOGIN_POLICY_ROLES", []);

/**
 * Write a time for strtotime().
 */
define("REMEMBER_ME_TIMEOUT", "1 week");

// To configure PWA feature use the section below.
if (!IS_CLI) {
    define("PWA_ENABLED", true);
    define(
        "PWA_MANIFEST",
        [
            "name" => "Core DB",
            "short_name" => "C DB",
            "description" => "Best practice web development tool.",
            "start_url" => ".",
            "display" => "standalone",
            "theme_color" => "#fff",
            "background_color" => "#fff",
            "icons" => [
                [
                    "src" => SITE_ROOT . "/assets/square_logo.png",
                    "sizes" => "120x120",
                    "type" => "image/png"
                ],
                [
                    "src" => SITE_ROOT . "/assets/square_logo-512x512.png",
                    "sizes" => "512x512",
                    "type" => "image/png"
                ]
            ]
        ]
    );
}

define("THEME", BaseTheme::class);



TIMEZONE: Sistemin kabul ettiği zaman dilimidir. Daha fazla bilgi için date_default_timezone_set

LANGUAGE: Sistemin varsayılan dilidir. Kullanıcı siteye uğradığında desteklenen bir dil ile ulaşıyorsa o dil ile site yüklenir. Ancak sistem tarafından desteklenmeyen bir dil ile siteye erişildiğini varsayılan olarak bu tanımdaki dil kullanılır. Google indekslemelerinde de bu tanımla yüklenen sayfa indekslenir.

 

TRUSTED_HOSTS: Güvenilir alan adlarının tanımlarını içerir. HTTP Host Header Saldırını engellemek için tanımlanmıştır. Sitenin çalışacağı alan adının tanımının yapılması gerekir. Örneğin site "example.com" alan adı altında bulunacaksa 

define("TRUSTED_HOSTS", "example.com");

şeklinde tanım yapılması gereklidir.

ENVIROMENT: Sistemin çalıştığı ortamın tanımlandığı yerdir. 

  • development: Geliştirme ortamları için tavsiye edilir. Twig şablon motoru önbelleklemesi etkisizleştirilmiştir. Bu yüzden nispeten daha düşük performans sağlanır. Ayrıca gönderilen e-postalar belirlenen test e-posta adresine iletilir. Bu sayede istemeksizin kullanıcılara test amaçlı e-posta gönderilmesi engellenmiştir.
  • staging: Test sunucuları için tavsiye edilir. Twig şablon motoru önbelleklemesi etkindir. Bu sayede performans daha yüksektir. E-postalar test e-posta adresine iletilir.
  • production: Canlı ortamlar için tavsiye edlir. Twig şablon motoru önbelleklemesi etkindir. E-postalar gerçek e-posta adresine iletilir.
LOGIN_POLICY: Kullanıcı sistem üzerinde oturum açtığı zaman açıyk olan diğer oturumlar ile ilgili bildirim yapılıp yapılmayacağını tanımlar. Bildirim sonucunda kullanıcı isterse diğer oturumları sonlandırabilir.
  • notify_all_users: Bütün kullanıcılar oturum açtıktan sonra açık olan diğer oturumlar ile ilgili bildirim alırlar.
  • role_based_notify:  Sadece LOGIN_POLICY_ROLES ile belirtilern roller diğer oturumlar ile ilgili bildirim alır.
  • not_notify: Diğer oturumlar ile ilgili bildirim hiçbir kullanıcıya yapılmaz.
REMEMBER_ME_TIMEOUT: Beni hatırla seçeneği oturum açarken kullanılmış ise hatırlama süresini belirtir. strtotime() fonksitonu ile uyumlu olmalıdır.
PWA_ENABLED: Web sitesinde PWA uygulamasının etkin olup olmadığı belirtilir.
PWA_MANIFEST: PWA uygulamasının özellikleri belirtilir. Daha fazla özellik için burayı kontrol edebilirsiniz.
THEME: Sistem içerinsinde tanımlı varsayılan tema sınıfını belirtir.