Yapılandırma (Config) - muhametsafak/phpxi Wiki

PHPXI yapılandırılması basit ve kolay bir frameworktür. Projenize ait yapılandırmalara /PHPXI/APPLICATION/Config/ dizininde bulabilirsiniz.

Autoload.php Yapılandırması

PREFIX : PSR-4 standartlarına uygun otomatik yükleme sınıfı için ön ekleri ve dizin pathlerini tutan sabittir.

const PREFIX = [
    "Libraries" => APPLICATION_PATH . "/Libraries/",
];

DB : Otomatik olarak bağlanılacak veritabanlarını tanımlar.

const DB = [
    "db" => \Config\Database::DB
];

HELPER : Otomatik olarak yüklenecek helper dosyalarını belirten bir dizidir.

const HELPER = [
    "My"
];

CONFIG : Projenize ait özel config dosyaları oluşturduysanız dosyanın dahil edilmesi için belirtmenizi sağlar.

const CONFIG = [
    "MyConfig"
];

MODEL : Projeye otomatik olarak dahil edilecek modelleri tanımlamanızı sağlar.

const MODEL = [
    "mymodel" => "\Application\Model\MyModel"
];

LIBRARIES : PHPXI'nin dahili kütüphaneleri de dahil olmak üzere projenize dahil edeceğiniz tüm kütüphanelerin tanımlanmasını sağlar.

const LIBRARIES = [
    "file" => "\PHPXI\Libraries\File\File"
];

Cache.php Yapılandırması

HTML : HTML Önbellekleme ile ilgili ayarları tutar.

const HTML = [
    "status" => false,
    "timeout" => 86400,
    "path" WEIGHT_PATH . 'HTML/'
];

Config.php Yapılandırması

CHARSET : Karakter setini belirtir.

const CHARSET = 'UTF-8';

BASE_URL : Proje url adresini belirtir.

const BASE_URL = 'http://lvh.me/PHPXI/public_html';

TIMEZONE : Projeniz için bir zaman aralığı belirlemenizi sağlar.

const TIMEZONE = 'Europa/Istanbul';

Tüm liste için : https://www.php.net/manual/en/timezones.php

HTML_OUTPUT_MINIFY : Üretilen html kaynağına sıkıştırma uygulanıp, uygulanmayacağını belirler.

const HTML_OUTPUT_MINIFY = false;

MULTI_LANGUAGE : Projenizde çoklu dil desteğini kullanıp, kullanmayacağınızı belirtir.

const MULTI_LANGUAGE = false;

DEFAULT_LANGUAGE : Başlangıçta varsayılan olarak yüklenecek dili belirtir.

const DEFAULT_LANGUAGE = 'tr';

Cookie.php Yapılandırması

TIMEOUT : Çerezler için zaman aşımı süresini saniye cinsinden belirtir.

const TIMEOUT = 3600;

PREFIX : Oluşturulacak çerezler için bir ön ek belirtir.

const PREFIX = 'phpxi_';

Database.php Yapılandırması

Kullanılacak her veritabanı için bağlantı bilgilerinin bulunduğu bir sabit oluşturulur.

Örnek:

const DBConName = [
    "host" => "localhost",
    "port" => 3306,
    "user" => "root",
    "password" => "",
    "name" => "phpxi",
    "prefix" => "",
    "charset" => "utf-8",
    "collation" => "utf8mb4_general_ci",
    "driver" => "mysql",
    "class" => "mysqli"
];

Development.php Yapılandırması

DEVELOPMENT : Hata raporlama aracını açar ya da kapatır. Projenizi yayına aldığınızda kapatmanızı tavsiye ederiz.

const DEVELOPMENT = true;

ACTION : PHPXI hata raporlama aracı aktif durumda ise raporlama aracının işlevini belirtir.

Hataları herkese açık şekilde ekrana basmak için;

const ACTION = "view_report";

Hataları log dosyasına yazmak için;

const ACTION = "log";

Hataları e-mail olarak atmak için;

const ACTION = "[email protected]";

Hataları sadece belli bir IP adresiden gelen isteklerde ekrana basmak için;

const ACTION = "127.0.0.1";

PHP_DEFAULT_ERROR_REPORTING_STATUS : PHP'nin varsayılan hata raporlamasını açar ya da kapatır. Açılırsa PHPXI'nin hata raporlama aracı devre dışı bırakılır.

const PHP_DEFAULT_ERROR_REPORTING_STATUS = false;

PHP_DEFAULT_ERROR_REPORTING_ACTION : PHP'nin varsayılan hata raporlaması açık ise hangi hata raporlarının gösterilip gösterilmeyeceğini belirtir.

const PHP_DEFAULT_ERROR_REPORTING_ACTION = [
    E_ERROR => true,
    E_WARNING => true,
    E_PARSE => true,
    E_NOTICE => true,
    E_CORE_ERROR => true,
    E_CORE_WARNING => true,
    E_COMPILE_ERROR => true,
    E_COMPILE_WARNING => true,
    E_USER_ERROR => true,
    E_USER_WARNING => true,
    E_USER_NOTICE => true,
    E_STRICT => true,
    E_RECOVERABLE_ERROR => true,
    E_DEPRECATED => true,
    E_USER_DEPRECATED => true,
    E_ALL => false
];

Filters.php Yapılandırması

GLOBAL tüm sayfalarda otomatik olarak uygulanacak filtreleri tanımlamak için kullanılır.

const GLOBALS = [
    "filters" => [
        "birincifiltre"
    ],
    "before" => [
        "ikincifiltre"
    ],
    "after" => [
        "ücüncüfiltre"
    ]
];

yukarıdaki gibi bir yapılandırmada tüm sayfalarda birincifiltrenin hem before hem de after metodu çalışacaktır. ikincifiltrenin sadece before metodu ve ucuncufiltrenin sadece after metodu uygulanacaktır.

FILTERS : Bir url yapısına uygulanmak istenen filtreleri tanımlar.

    const FILTERS = [
        "Auth" => [
            "before" => [
                "/admin/:any"
            ],
            "after" => [
                "/admin/:any"
            ]
        ],
    ];

yukarıdaki örnekte /admin/ ile başlayan tüm urllerde Auth filtresinin before ve after metodu uygulanır.

Hash.php Yapılandırması

ALGORITHM : Şifrelemede kullanılacak algoritmayı tanımlar. Sunucunuzun desteklediği algoritmaları hash_algos() fonksiyonu ile görebilirsiniz.

const ALGORITHM = 'md5';

METHOD : Şifreleme için kullanılacak metodu tanımlar. Sunucunuzun desteklediği metotları openssl_get_cipher_methods() fonksyionundan görebilirsiniz.

const METHOD = 'aes-128-cbc';

KEY : Şifreleme ve şifre çözmede kullanılacak anahtarı tanımlar. Bu anahtar şiflemelerinizi güvenliği açısından önemlidir.

const KEY = 'String herhangi bir değer olabilir.';

IV : 16 byte uzunluğunda string bir değer.

const IV = '1234567890123456';

Session.php Yapılandırması

Not : Bazı sunucularda sorunlara neden olabilecek yapılandırmalar vardır. Böyle bir durumda varsayılan PHP oturum ayarlarını kullanmak zorunda kalabilirsiniz.

REPOSITORY : Oturumların depolanacağı dizinin tam (path) yolunu belirtir. PHP varsayılan dizini kullanmak isterseniz null olarak tanımlayabilirsiniz.

const REPOSITORY = WEIGHT_PATH . 'Session';

PATH : Oturumların hangi pathde kullanılabileceğini tanımlar.

const PATH = '/';

TIME : Oturumlar için saniye cinsinden bir zaman aşımı süresi belirler. PHP varsayılanını kullanmak için sıfır 0 tanımlanabilir.

const TIME = 3600;

DOMAIN : Oturumların hangi domainde kullanılacağını belirtir. PHP varsayılanını kullanmak için boş bir string tanımlanabilir.

const DOMAIN = 'localhost';

SECURE : Oturumlar için HTTPS protokolünü şart koşmayı sağlar.

const SECURE = true;

HTTPONLY : Oturumlar için HTTP protokolünü şart koşar.

const HTTPONLY = true;

REGENERATE_ID : Her defasında yeni bir oturum kimliği oluşturmayı açar ya da kapatır. PHP varsayılanını kullanmak için null tanımlayın.

const REGENERATE_ID = false;

Upload.php Yapılandırması

SIZE_LIMIT : Yüklenebilecek maksimum dosya boyutunu byte cinsinden tam sayı olarak tanımlar.

const SIZE_LIMIT = 3145728;

PATH : Yükleme işleminin yapılacağı dizin yolunu (path) belirtir. Not : Dosya izinleri doğru şekilde ayarlanmış olmalıdır.

const PATH = PUBLIC_PATH . "uploads/";

DIR_URL : Yükleme işleminin yapılacağı dizinin url adresini belirtir.

const DIR_URL = \Config\Config::BASE_URL . "/uploads/";

FILE_TYPE : Yüklenmesine izin verilecek dosyaların mime türlerini bir dizi olarak belirtir.

const FILE_TYPE = ["image/png", "image/jpeg", "image/jpg", "image/gif"];

FILE_EXTENSION : Yüklenmesine izin verilecek dosyaların dosya uzantılarını bir dizi olarak belirtir.

const FILE_EXTENSION = ["jpg", "jpeg", "png", "gif"];

JPG_COMPRESS : jpg dosyalarına uygulanacak sıkıştırma işleminin seviyesini belirtir. 0-100 arası bir tam sayı olmalıdır. Sayı küçüldükçe dosya boyutu küçülür ve kalite düşer.

const JPG_COMPRESS = 75;

PNG_COMPRESS : png dosyalarına uygulanacak sıkıştırma işleminin seviyesini belirtir. 0-9 arası bir tam sayı olmalıdır. Sayı büyüdükçe dosya boyutu küçülür ve kalite düşer.

const PNG_COMPRESS = 3;

Bir Yapılandırma Dosyası Oluşturmak

Projeniz için bir yapılandırma dosyası oluşturacaksanız;

  1. /PHPXI/APPLICATION/Config/ dizininde bulunmalıdır.
  2. Dosya adı büyük harfle başlamalıdır.
  3. Dosya adı ile yapılandırma sınıfınızın adı aynı olmalıdır.
  4. Namespace Config olarak belirlenmelidir.

Örnek bir yapılandırma dosyası oluşturalım. Örneğin yapılandırma adı Seo olacaksa; /PHPXI/APPLICATION/Config/Seo.php yolunda bir dosya oluşturun. İçeriği;

namespace Config;
class Seo{
    public const TITLE = "Arama motoru optimizasyonu";
    public $title = "Arama motoru optimizasyonu";
}

Yapılandırmaları projenizin herhangi bir yerinde kullanmak istediğiniz de \Config\Seo::TITLE ya da \Config\Seo::$title kullanabilirsiniz.