Ön Tanımlı Sabit ve Fonksiyonlar
"Başlangıç kontrolcüsü tanımlayarak bu kontrolcüde yer alan kodların diğer tüm kontrolcüler için geçerli olmasını sağlayabilirsiniz."
ZN Framework'te ön tanımlı yer alan sabit ve fonksiyonların listesi aşağıda verilmiştir.
# {INFO}_VERSION
Versiyon bilgileri ile ilgili sabitler.
ZN Framework'ün mevcut version bilgisini verir.
echo ZN_VERSION;
ZN Framework'ün kullanılabilir minimum PHP versiyon bilgisini verir.
echo REQUIRED_PHP_VERSION;
# {DIRECTORY_NAME}_DIRS
ZN Framework'ün her bir dizininin yol bilgisini tutan bir sabit mevcuttur. Bu sabitin tuttuğu yol bilgisi ilgili projeye göre değişmektedir.
Sabitler
Proje Dizini Sabitleri | Karşılıkları | External Dizini Sabitleri | Karşılıkları |
BUTCHERY_DIR | Projects/Any/Butchery/ | EXTERNAL_BUTCHERY_DIR | Extenal/Butchery/ |
CONTROLLERS_DIR | Projects/Any/Controllers/ | EXTERNAL_CONTROLLERS_DIR | Extenal/Controllers/ |
VIEWS_DIR | Projects/Any/Views/ | ||
MODELS_DIR | Projects/Any/Models/ | EXTERNAL_MODELS_DIR | Extenal/Models/ |
ROUTES_DIR | Projects/Any/Routes/ | EXTERNAL_ROUTES_DIR | Extenal/Routes/ |
CONFIG_DIR | Projects/Any/Config/ | ||
DATABASES_DIR | Projects/Any/Databases/ | ||
STORAGE_DIR | Projects/Any/Storage/ | ||
COMMANDS_DIR | Projects/Any/Commands/ | EXTERNAL_COMMANDS_DIR | Extenal/Commands/ |
LIBRARIES_DIR | Projects/Any/Libraries/ | EXTERNAL_LIBRARIES_DIR | Extenal/Libraries/ |
STARTING_DIR | Projects/Any/Starting/ | EXTERNAL_STARTING_DIR | Extenal/Starting/ |
AUTOLOAD_DIR | Projects/Any/Starting/Autoload/ | EXTERNAL_AUTOLOAD_DIR | Extenal/Starting/Autoload/ |
HANDLOAD_DIR | Projects/Any/Starting/Handload/ | EXTERNAL_HANDLOAD_DIR | Extenal/Starting/Handload/ |
LAYERS_DIR | Projects/Any/Starting/Layers/ | EXTERNAL_LAYERS_DIR | Extenal/Starting/Layers/ |
RESOURCES_DIR | Projects/Any/Resources/ | EXTERNAL_RESOURCES_DIR | Extenal/Resources/ |
FILES_DIR | Projects/Any/Resources/Files/ | EXTERNAL_FILES_DIR | Extenal/Resources/Files/ |
TEMPLATES_DIR | Projects/Any/Templates/ | EXTERNAL_TEMPLATES_DIR | Extenal/Resources/Templates/ |
THEMES_DIR | Projects/Any/Themes/ | EXTERNAL_THEMES_DIR | Extenal/Resources/Themes/ |
PLUGINS_DIR | Projects/Any/Plugins/ | EXTERNAL_PLUGINS_DIR | Extenal/Resources/Plugins/ |
UPLOADS_DIR | Projects/Any/Uploads/ | EXTERNAL_UPLOADS_DIR | Extenal/Resources/Uploads/ |
EXTERNAL_DIR | External/ | ||
intERNAL_DIR | internal/ | ||
PROJECTS_DIR | Projects/ | ||
SETTINGS_DIR | Settings |
echo FILES_DIR;
echo THEMES_DIR;
echo CONTROLLERS_DIR;
echo RESOURCES_DIR;
Theme::active() ile belirlenen aktif temanın dizin yol bilgisini verir.
echo CURRENT_THEME_DIR;
# CURRENT_C{CONSTS} (ZN >= 4.0.0)
O an ki aktif olan sayfaya yönelik URI ve PATH bilgilerini içeren sabitlerdir. Sabitler aşağıdaki URL üzerinden örneklendirilmiştir.
Aktif kontrolcünün uzantısız dosya adını verir.
echo CURRENT_CONTROLLER;
Aktif kontrolcünün çalıştırdığı yöntem bilgisini verir.
echo CURRENT_CFUNCTION;
Aktif kontrolcünün isim alanı bilgisini verir.
echo CURRENT_CNAMESPACE;
Aktif kontrolcünün sınıf ismini verir. Sınıf ismi doğal olarak isim alanını da içerir.
echo CURRENT_CCLASS;
İstek yapılan aktif kontrolcü ve yöntem bilgisini verir.
echo CURRENT_CFPATH;
İstek yapılan aktif kontrolcü ve yöntem bilgisini daima küçük harfe çevrilmiş olarak verir.
echo CURRENT_CFURI;
İstek yapılan aktif kontrolcü ve yöntem bilgisini url adresi ile birlikte verir.
echo CURRENT_CFURL;
İstek yapılan aktif kontrolcünün dosya adını verir.
echo CURRENT_CPAGE;
İstek yapılan aktif kontrolcünün dosya yol bilgisini verir.
echo CURRENT_CFILE;
# {SPACE_CHARS}
Boşluk karakterleri ile ilgili sabitler.
echo EOL;
echo CRLF;
echo CR;
echo LF;
echo HT;
echo FF;
# {INFO}_PROJECT
Aktif proje ile ilgili sabitler.
Ön tanımlı açılış proje dizinin adını verir.
echo DEFAULT_PROJECT;
İstek yapılan aktif proje dizinin adını verir.
echo CURRENT_PROJECT;
İstek yapılan aktif proje bir başka proje dizini tarafından kapsanıyorsa kapsayan proje dizini bilgisini verir. Eğer herhangi bir proje tarafından kapsanmıyorsa aktif proje dizini bilgisi döner.
echo CONTAINER_PROJECT;
Theme::active() ile belirlenen aktif temanın isim bilgisini verir.
echo CURRENT_THEME;
# SYSTEM_CONSTS (ZN >= 1.0.0)
ZN Framework sistemi için kullanılan diğer dahili sabitlerin listesi aşağıdaki gibidir.
PROJECTS_CONFIG |
DIRECTORY_INDEX |
EXTERNAL_* |
START_BENCHMARK |
END_BENCHMARK |
ZN_DEDICATED |
PROJECT_TYPE |
SSL_STATUS |
PROJECT_CONTROLLER_NAMESPACE |
PROJECT_COMMAND_NAMESPACE |
intERNAL_ACCESS |
GET_DIRS |
BASE_DIR |
ZEROCORE |
REAL_BASE_DIR |
REQUESTED_CURRENT_PROJECT |
DEFINED_CURRENT_PROJECT |
STUCTURE_DATA |
PROJECT_CONFIG |
PROJECT_MODE |
HTACCESS_CONFIG |
# CSRFInput
Rota işlemlerinde ya da Security sınıfı ile CSRF token datası oluşturulduğunda o datayı kontrol etmek ve eşleştirmek için hidden input nesnesi oluşturmak için kullanılır.
Parametreler
return string |
Kullanımı
echo CSRFInput();
# Output
Çıktılanabilen veya çıktılanamayan verileri çıktılamak için kullanılır. Özellikle dizi türündeki verilerin çıktısını görmek açısından oldukça kullanışlıdır.
Parametreler
mixed $data | Çıktılanacak dizge veya dizi. |
return mixed |
Kullanımı
output([1, 2, true, ['a' => 1, 'b']]);
1 => integer 2 ( length = 1 ),
2 => boolean true ( length = 4 ),
3 => array
(
a => integer 1 ( length = 1 ),
0 => string 'b' ( length = 3 ),
)
# Redirect
Belli bir süre sonra sayfa yenilemek veya başka bir sayfaya yönlendirme yapmak için kullanılır.
Parametreler
string | string $uri | Nereye yönlendirileceği. |
int | int $time = 0 | Bekleme süresi. |
array | array $data = [] | Gönderilecek data. |
bool | bool $exit = true | Sayfa kod akışı durdurulsun mu? |
Kullanımı
redirect('profile', 2);
# Against [6.4.0][2021-01-15]
PHP 8 kullanımı ile gelen match() kullanımının bir benzeri olan ancak 8 öncesi sürümlerde benzer bir kullanım sağlamak amacı ile oluşturulmuştur. Switch kullanımının bir benzeridir.
Parametreler
mixed $data | Karşılaştırılacak herhangi bir veri. |
array $match | Karşılaştırma dizisi. |
return mixed |
Kullanımı
$data = 2;
$return = against($data,
[
1 => 1,
'2|3' => '2 or 3',
'default' => 4
]);
echo $return;
Eğer default belirtilmezse ve herhangi bir eşleşme sağlanmazsa false döner.
# Length [6.5.0][2021-01-29]
Dizi, obje veya scalar verinin uzunluğunu hesaplar.
Parametreler
scalar | array | object $uri | Karakter sayısı hesaplanacak veri. |
return int |
Kullanımı
echo length('abc');
[$uri = array]
echo length(['a', 'b', 'c']);
# Wizard [6.24.0][2021-10-09]
Görünümde kullanılan şablon sihirbazı söz dizimini herhangi bir sınıf veya fonksiyon içerisinde kullanabilmenizi salar.
Parametreler
array $content | Wizard söz dizimi. |
array $data = [] | Şablonda yer alan değişkenlere değer göndermek için kullanılır. |
array $config = [] | Şablon sihirbazının yapılandırmalarını değiştirmek için kullanılır. |
return string |
Kullanımı
$content = '
@foreach( $arr as $val )
$val
@endforeach
';
$arr = [1, 2, 3, 4, 5];
echo wizard($content, ['array' => $arr]);
# Once [7.7.1][2022-12-09]
Bir kodun bir anahtar ifadeye bağlı olarak tekrar kullanımlarında sadece bir kez çalışmasını sağlayan yardımcı fonksiyondur. Genellikle aynı sonucu verecek bir yöntem içinde kullanılacak bir veritabanı sorgusunun her kullanımda tekrarını engellemek için oldukça kullanışlıdır.
Parametreler
string $key | Çalıştırılacak kodun bir kez çalışmasını sağlayacak anahtar ifade. |
callable $data | Çalıştırılacak kod. |
return mixed |
Kullanımı
function config($key)
{
return once($key, function($key)
{
# Aynı anahtara bağlı olarak 1 kez çalıştırılır.
output('working');
return DB::where('name', $key)->select('name')->get('configs')->value();
});
}
output( config('pencil') );
output( config('pencil') );
pencil
pencil
Yukarıda yer alan sonuçtan anlaşıldığı üzere istenen sonucun 2 kez (pencil) çıktı vermesine karşın kod 1 kez (working) çalıştırılmıştır.
Verilerin $GLOBALS dizisinde saklanmasından dolayı bu yöntemin anahtarı eşsiz seçilmesine dikkat edilmelidir.
function config($key)
{
return once(md5($key), function() use($key)
{
return DB::where('name', $key)->select('name')->get('configs')->value();
});
}
Yukarıda yer alan örnekte string $key parametresinin md5() ile şifrelendiği görülmektedir.