Dahil Etme Yöntemleri
"Şablon sihirbazında (Wizard) (5.5.60) sürümünden beri döngülerin sonunda kullanılan : sembolünün kullanım zorunluluğu kaldırılmıştır."
Bu kütüphane görünüm, js, css, font gibi varlık dosyalarını dahil etmek için kullanılır. Kütüphanelerin ise ZN Framework'ün oto yükleyici özelliğinden dolayı dahil edilmesine gerek yoktur.
# Dahil Edilme Önceliği
Dosyalar genellikle External/ ve Projects/ dizininde yer alan ilgili dizinlerden dahil edilir. Ama burada bilmeniz gereken aynı isimli dosyaların varlığı durumunda öncelikle hangi dizindeki dosyanın dahil edileceğidir. Bu sıralama;
1 - Projects
2 - External
gibidir. Dosya yükleme önceliği Internal (Dahili) yapılardır. Eğer burada dosya mevcut değilse bu defa External (Harici) dizine bakılır. Dosya her 2 dizin de mevcut değilse herhangi bir dahil edilme işlemi yapılmaz.
# Yöntemler
# Usable [3.0.0]
Dahil edilen dosyaların içeriğinin değişkene aktarılabilmesine olanak sağlar. Peki neden böyle bir kullanıma ihtiyaç duyulur sorusu aklımıza gelebilir. Bazen bir sayfanın içeriğini başka bir sayfaya veri olarak göndermek gerekebilir. Özellikle kendi masterpage'inizi tasarlamışsanız masterpage olarak ayarlanan sayfaya içerik sayfalarını veri olarak gönderebilmenizi sağlar. Opsiyonel yöntem olduğu için kullanılmak zorunda değildir.
Parametreler
bool $usable = true | Aktarılabilir olsun mu? |
return this |
Kullanımı
<?php namespace Project\Controllers;
use Import;
class Home extends Controller
{
public function main()
{
$content = Import::usable()->view('content');
$styles = Import::usable()->styles('mystyle', 'sitestyle');
View::content($content)->styles($styles);
}
}
# Data [3.0.0]
Dahil edilen PHP sayfalarına veri göndermek için kullanılır. Opsiyonel yöntem olduğu için kullanılmak zorunda değildir.
Parametreler
array $data | Görünüm sayfalarına gönderilecek veriler dizisidir. |
return this |
Aşağıda belirtilen yöntemlerin 2. parametresi yerine kullanılır.
Kullanımı
<?php namespace Project\Controllers;
use Import;
class Home extends Controller
{
public function main()
{
$data =
[
'content' => Import::usable()->view('content'),
'styles' => Import::usable()->styles('mystyle', 'sitestyle')
];
Import::data($data)->view('home');
}
}
# View (1.0.0)
Views/ dizini içerisindeki sayfaların dahil edilmesi veya çağrılması için kullanılır.
Parametreler
string $page | Views/ dizininden çağrılacak görünüm sayfasının yolu. .php veya .wizard uzantısı eklemeye gerek yok. |
array $data = NULL | Görünüme gönderilecek veriler dizisi. |
bool $usable = false | Görünümün içeriği aktarılabilir olsun mu? |
return mixed |
Kullanımı
<?php namespace Project\Controllers;
use Import;
class Home extends Controller
{
public function main()
{
Import::view('home');
}
}
Data gönderimi 2. parametre ile yapılır. Bu parametreye gönderilecek datalar anahtar => değe
r formunda yazılan bir dizi gönderilmelidir.
<?php namespace Project\Controllers;
use Import;
class Home extends Controller
{
public function main()
{
$content = Import::usable()->view('content');
$styles = Import::usable()->styles('mystyle', 'sitestyle');
Import::view('home',
[
'content' => $content,
'styles' => $styles
]);
}
}
Değişkene aktarım için 3. parametrenin true olarak ayarlanması ya da usable(true) yönteminin kullanılması gerekir. Eğer 3. parametreyi kullanıyor ve data göndermiyorsanız 2. parametreyi NULL ya da [] ayarlamanız gereklidir.
<?php namespace Project\Controllers;
use Import;
class Home extends Controller
{
public function main()
{
$content = Import::view('content', NULL, true);
Import::view('home',
[
'content' => $content
]);
}
}
# Template (1.0.0)
Bu yöntem görünüm kullanımına benzer olup 2 dizinden çağrım yapar. Çağrım önceliğine göre bu dizinler aşağıdaki gibidir.
Genellikle bu dizinlerde .php uzantılı html içerikli tablolar, şemalar, formlar yer alır.
Parametreler
string $page | Resources/Templates/ dizininden çağrılacak şablon dosyasının yolu. .php veya .wizard uzantısı eklemeye gerek yok. |
array $data = NULL | Görünüme gönderilecek veriler dizisi. |
bool $usable = false |
Görünümün içeriği aktarılabilir olsun mu? |
return mixed |
Kullanımı
<?php namespace Project\Controllers;
use Import;
class Home extends Controller
{
public function main()
{
$templateData =
[
'subject' => 'Example Subject',
'message' => 'Example Message'
];
$emailTemplate = Import::template('MyEmailTemplate', $templateData, true);
View::emailTemplate($emailTemplate);
}
}
# Style / Script (1.0.0)
Harici olarak .css veya .js uzantılı stil ve script dosyalarını görünüme dahil etmek için kullanılır. Import::style() ve Import::script() yöntemlerinin kullanımları bire bir aynı olduğu için anlatım sadece Import::style() üzerinden götürülmüştür.
Theme::active() yöntemi ile herhangi bir tema dizini (Resources/Themes/Default/) aktif edilmişse yol bilgisi bu aktif edilen dizini gösterecek şekilde içerisine oluşturulmuş stil dosyalarını dahil etmek için kullanılır. Bu yöntem ile herhangi bir tema aktive işlemi yapılmamışsa yol bilgisi belirtmeye Resources/Themes/ dizini içerisinden başlar. Aynı anda birden fazla dosyayı dahil edebilmeniz mümkündür.
Aşağıdaki gibi örnek bir dosya dizin yapısına sahip olduğumuzu varsayalım;
Resources/Themes/Blue/
site.css
contact.css
panel.css
Parametreler
mixed ...$args | Resources/Themes/ dizininden çağrılacak css dosyasının yolu. |
return mixed |
Kullanımı
Herhangi bir tema ative işlemi gerçekleştirilmemişse aşağıdaki kullanımlar yukarıdaki örnek dizin yapısına göre yol bilgisi Resources/Themes/ dizinini gösterecek şekilde belirtilerek dahil edilir.
Import::style('Blue/site');
Birden çok stil dosyasını aynı anda dahil etmek istersek aşağıdaki şekilde kullanırız.
Import::style('Blue/site', 'Blue/contact', 'Blue/panel');
Eğer tema aktif edilmişse bu defa yol bilgisi aktif edilen bu tema dizini gösterecek şekilde belirtilir.
Theme::active('Blue');
Import::style('site', 'contact', 'panel');
Eğer import edilen stil dosyasını bir değişkene veri olarak aktarmak istersek son parametre true olarak girilmelidir.
$style = Import::style('site', 'contact', 'panel' , true);
Settings/CDNLinks.php yapılandırma dosyasında yer alan link anahtarları ilgili stili yüklemek için kullanılabilir.
Import::style('bootstrap', 'awesome');
# Font (1.0.0)
Resources/Themes/Any/ dizini içerisine eklenmiş font dosyalarını dahil etmek için kullanılır. Desteklenen fontlar SVG, WOFF, OTF, TTF, EOT uzantılı fontlardır. Istenirse Settings/Expressions.php ayar dosyasında yer alan 'differentFontExtensions' => [] ayarından desteklenmesi istenen farklı bir font türleri belirtilebilir.
Parametreler
mixed ...$args | Resources/Themes/ dizininden çağrılacak font dosyasının yolu. |
return mixed |
Kullanımı
Değişkene aktarılabilirlik ve Tema aktivasyonu kullanımları Import::style() gibidir.
Import::font('Elips');
Birden çok font dosyasını aynı anda dahil etmek istersek aşağıdaki şekilde kullanırız. Aynı anda birden fazla font dahil edilebilir.
Import::font('Elips', 'Abode', 'Secrcode/secrcode');
Eğer font dosyanızın farklı uzantılı türleri de varsa onlarda yüklenir.
Aşağıdaki gibi örnek bir font dosyalarınızın olduğunu varsayalım;
Resources/Themes/Blue/fonts/
akrobat.svg
akrobat.ttf
akrobat.eot
Aşağıdaki kullanım bu fontların hepsini dahil eder.
Import::font('fonts/akrobat');
Kullanımı daha iyi anlamanız için basit bir kod üzerinde inceleyelim.
<?php namespace Project\Controllers;
use Import;
class Home extends Controller
{
public function main()
{
Import::font('Akrobat/Black');
}
}
<div style="font-family:AkrobatBlack">Font Example</div>
# Something (1.0.0)
Daha çok standart dizinler (Views/, Resources/) dışından .php, .css veya .js uzantılı dosyaları dahil etmek için kullanılır.
Parametreler
string $page | Herhangi bir dizinden çağrılacak dosyanın yolu. |
array $data = NULL | Görünüme gönderilecek veriler dizisi. |
bool $usable = false | Görünümün içeriği aktarılabilir olsun mu? |
return mixed |
Kullanımı
Import::something(THEMES_DIR . 'site.css');
Import::something(EXTERNAL_THEMES_DIR . 'site.js');
Import::something(VIEWS_DIR. 'contact.php', ['data1' => 1, 'data2' => 2]);
$page = Import::something(VIEWS_DIR . 'contact.php', NULL, true);
Bu kullanım css ve js yüklemeleri içinde geçerlidir.
# Recursive [3.0.0]
İç dizin taramasını yapılıp yapılmayacağını belirlemek için kullanılan opsiyonel yöntemdir. Import::plugin() ve Import::theme() yöntemlerinin 2. parametresi yerine kullanılır.
Parametreler
bool $recursive = true | İç içe dizin taraması yapılsın mı? |
return this |
Kullanımı
Import::recursive()->plugin('Bootstrap');
Import::recursive()->theme('BluePrint');
# Theme [3.0.0]
Aşağıdaki dizinlerin içinde yer alan tema dizininin adı belirtilerek dizin içindeki tema ile alakalı her dosyanın otomatik olarak yüklenmesi sağlanır.
Parametreler
mixed $theme | Tema adı. |
bool $recursive = false | İç içe dizin taraması yapılsın mı? |
bool $usable = false | Görünümün içeriği aktarılabilir olsun mu? |
return mixed |
Kullanımı
Import::theme('MyTheme');
Belirtilen dizin içindeki tüm alt dizinlerde bulunan dosyaları yüklemek için kullanılır. Yani alt dizinlerin içerisinde de tarama yapar. 2. parametre true olarak ayarlanmalı veya recursive() yönteminden yararlanılmalıdır.
Import::theme('Slider', true);
Bir değişkene aktarılarak kullanılmak istenirse 3. parametre true olarak ayarlanmalı veya usable() yönteminden yararlanılmalıdır.
Import::theme('Slider', false, true);
Birden fazla dosya veya dizin de dahil etme işlemi yapabilmek için 1. parametre array veri türünde belirtilir. Dizi içerisinde bir tema dizini veya tema dizine bağlı dosyalar yer alabilir.
Import::theme(['BlueTheme', 'RedTheme', 'BlackTheme/black.css', 'style.css']);
Yukarıdaki örnek kullanımda aşağıdaki dosyaların yüklenmesi sağlanmıştır.
● Resources/Themes/BlueTheme/ içindeki .css ve .js dosyaları.
● Resources/Themes/RedTheme/ içindeki .css ve .js dosyaları.
● Resources/Themes/BlackTheme/black.css dosyası.
● Resources/Themes/style.css dosyası.
# Plugin [3.0.0]
Aşağıdaki dizinlerin içinde yer alan eklenti dizininin adı belirtilerek dizin içindeki eklenti ile alakalı her dosyanın otomatik olarak yüklenmesi sağlanır.
Parametreler
mixed $plugin | Eklenti adı. |
bool $recursive = false | İç içe dizin taraması yapılsın mı? |
bool $usable = false | Görünümün içeriği aktarılabilir olsun mu? |
return mixed |
Kullanımı
Import::plugin('MyPlugin');
Belirtilen dizin içindeki tüm alt dizinlerde bulunan dosyaları yüklemek için kullanılır. Yani alt dizinlerin içerisinde de tarama yapar. 2. parametre true olarak ayarlanmalı veya recursive() yönteminden yararlanılmalıdır.
Import::plugin('Slider', true);
Bir değişkene aktarılarak kullanılmak istenirse 3. parametre true olarak ayarlanmalı veya usable() yönteminden yararlanılmalıdır.
Import::plugin('Slider', false, true);
Birden fazla dosya veya dizinde dahil etme işlemi yapabilmek için 1. parametre array veri türünde belirtilir.
Import::plugin(['MyPlugins', 'bootstrap/bootstrap.css', 'bootstrap/boostrap.js']);
Yukarıdaki örnek kullanımda aşağıdaki dosyaların yüklenmesi sağlanmıştır.
● Resources/Plugins/MyPlugins/ içindeki .css ve .js dosyaları.
● Resources/Plugins/bootstrap/bootstrap.css dosyası.
● Resources/Plugins/bootstrap/bootstrap.js dosyası.
# Handload [3.0.0]
Aşağıdaki dizinlerin içerisinde yer alan fonksiyon içerikli dosyaları dahil etmek için kullanılır. Uzantı belirtmeye gerek yoktur. Özellikle projeniz için gerekli fonksiyon tanımlamaları yapmak için kullanışlıdır.
Parametreler
mixed ...$args | Dosya adı. |
return mixed |
Kullanımı
Import::handload('funcFile1', 'funcFile2');