2017 © Pedro Pel├íez
 

library elisa

Elisa is as Template Engine

image

atayahmet/elisa

Elisa is as Template Engine

  • Saturday, July 11, 2015
  • by atayahmet
  • Repository
  • 4 Watchers
  • 6 Stars
  • 8 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

Elisa PHP Template Language

Elisa bir template language k├╝t├╝phanesidir. Template Language nedir sorusuna k─▒sa cevap olarak g├Âr├╝n├╝m (view) dosyalar─▒ndan php kodlar─▒n─▒ ar─▒nd─▒rma y├Ântemi diyebiliriz., (*1)

Template dilinde kullan─▒lacak olan php taraf─▒ndaki kodlar─▒n kar┼č─▒l─▒─č─▒ olan terimlerin bir k─▒s─▒tlamas─▒ bulunmuyor. Bu tamamen paketi geli┼čtiren developer'lar─▒n hayal g├╝c├╝ne ba─čl─▒ olan bir ┼čey diyebiliriz., (*2)

Ama elbetteki buradaki ama├ž kullan─▒m─▒ kolay ve h─▒zl─▒ca ortaya bir ┼čeyler ├ž─▒karabilmek olmal─▒d─▒r., (*3)

Kurulum

Elisa composer ├╝zerinden kurulmaktad─▒r. A┼ča─č─▒daki json sat─▒r─▒n─▒ composer dosyan─▒zda require alan─▒na ekleyin., (*4)

"atayahmet/elisa": "1.0.0.*@dev"

sonra komut sat─▒r─▒nda a┼ča─č─▒daki komutu ├žal─▒┼čt─▒r─▒n:, (*5)

$ composer update

Yap─▒land─▒rma

use Elisa\Elisa;

$elisa = new Elisa;

$elisa->setup([
    'storage' => '/storage/path/',
    'cache'   => false,
    'ext'     => '.html',
    'master'  => 'master'
]);

Parametre detaylar─▒:, (*6)

Name Type Description Default
storage string Template dosyalar─▒n─▒n ├Ânbellekte saklanaca─č─▒ dizin /
cache boolean ├ľnbellekleme true
ext string Template dosyalar─▒n─▒n uzant─▒lar─▒ .html
tags array A├ž─▒l─▒┼č ve kapan─▒┼č tag'leri { }
master string Ana template dosyas─▒n─▒n ad─▒ master

Kullan─▒m

─░lk olarak master template dosyas─▒n─▒ g├Ârelim., (*7)

master.html, (*8)

<html>
    <head>

    </head>

    <body>
    { @content }
    </body>
</html>

┼×imdide master dosyas─▒nda @content alan─▒na gelecek olan dosyam─▒z─▒ g├Ârelim., (*9)

home.html, (*10)

<h1>Home Page</h1>
<p>This is home page.</p>

Gerekli olan master ve content dosyalar─▒n─▒ haz─▒rlad─▒ktan sonra bunlar─▒ tek seferde kullanmay─▒ ├Ârneklendirelim., (*11)

$elisa->composer('home', true);

yada, (*12)

$home = $elisa->composer('home');

Bu i┼člemlerin ard─▒ndan yap─▒land─▒rma a┼čamas─▒nda storage alan─▒na tan─▒mlad─▒─č─▒n─▒z dizine template dosyalar─▒n─▒n php dosyas─▒ olarak cache'lendi─čini g├Ârebilirsiniz., (*13)

Composer metodunu ├žal─▒┼čt─▒rd─▒ktan sonra sonu├ž ┼ču ┼čekilde olacakt─▒r:, (*14)

<html>
    <head>

    </head>
    <body>
        <h1>Home Page</h1>
        <p>This is home page.</p>
    </body>
</html>

Metod Referanslar─▒

Name Description
setup Yap─▒land─▒rma ayarlar─▒n─▒ kaydeder.
storage Sadece cache dizinini s─▒n─▒fa tan─▒mlar.
aliases Fonksiyonlara k─▒sa isimler ataman─▒z─▒ sa─člar.
ext Sadece dosya uzant─▒lar─▒n─▒ s─▒n─▒fa tan─▒mlar.
tags A├ž─▒l─▒┼č kapan─▒┼č tag'lerini de─či┼čtirir.
master Sadece master page dosyas─▒n─▒ s─▒n─▒fa tan─▒mlar.
cache Sadece cache durumunu s─▒n─▒fa tan─▒mlar.
composer Template dosyalar─▒n─▒ derler. (Render)
view Bir php dosyas─▒n─▒ oldu─ču gibi bir de─či┼čkene aktar─▒r.
show Bir php dosyas─▒n─▒ direkt ekrana basar.
with Template ve php dosyalar─▒na parametreler g├Ândermenizi sa─člar.
each Parametreleri t├╝m template ve php dosyalar─▒na g├Ânderir.
clear Php cache dosyalar─▒n─▒ temizler.
beforeEvent ─░┼člem ├Âncesinde (composer(), view(), show()) olaylar─▒ (event) ├žal─▒┼čt─▒r─▒r.
afterEvent ─░┼člem sonras─▒nda (show()) olaylar─▒ (event) ├žal─▒┼čt─▒r─▒r.

Template Yap─▒land─▒r─▒c─▒lar─▒

Name Description
@content Sayfam─▒z─▒n g├Âvdesini (body) olu┼čturan terim.
@extend() Sayfam─▒z─▒ ba┼čka template dosyalar─▒ ile geni┼čletir.
@section() ─░├žerik alan─▒ olu┼čturur
@append() Olu┼čtururan i├žerik alanlar─▒na i├žerikleri iletir.

Terimlerin Kullan─▒m─▒

Kontrol terimleri, yazd─▒rma terimleri ve di─čer kullan─▒mlar i├žin linke t─▒klay─▒n─▒z: Terimler, (*15)

Metod Kullan─▒mlar─▒

setup

Paket yap─▒land─▒rma ayarlar─▒nda kullan─▒lan metod., (*16)

├ľrnek:, (*17)

$elisa->setup([
    'storage' => '/storage/path/',
    'cache'   => false,
    'ext'     => '.html',
    'master'  => 'master'
]);

storage

setup metodundan ba─č─▒ms─▒z yap─▒land─▒rma ayarlar─▒ndan template dosyalar─▒n─▒n hangi dizinde cache'lenece─či ayar─▒n─▒ tan─▒mlar., (*18)

├ľrnek:, (*19)

$elisa->storage('/storage/path/');

ext

setup metodundan ba─č─▒ms─▒z template dosyalar─▒n─▒n hangi uzant─▒da olaca─č─▒n─▒ tan─▒mlar., (*20)

├ľrnek:, (*21)

$elisa->ext('.html');

tags

setup metodundan ba─č─▒ms─▒z a├ž─▒l─▒┼č ve kapan─▒┼č tag'lerini de─či┼čtirir., (*22)

├ľrnek:, (*23)

$elisa->tags(['{{', '}}']);

master

setup metodundan ba─č─▒ms─▒z ana template ├žat─▒ dosyas─▒n─▒ tan─▒mlar., (*24)

├ľrnek:, (*25)

$elisa->master('master_layout');

cache

setup metodundan ba─č─▒ms─▒z render (derlenen) edilen template dosyalar─▒n─▒n ├Ânbellekte tutulup tutulmayaca─č─▒n─▒ tan─▒mlar., (*26)

├ľrnek:, (*27)

$elisa->cache(true); // default true

aliases

Fonksiyon isimlerine k─▒sa isimler yada farkl─▒ isimler vererek kendi fonksiyon terminolojinizi olu┼čturabilirsiniz., (*28)

├ľrnek:, (*29)

$elisa->aliases(['length' => 'strlen', 'dump' => 'var_dump']);

strlen:, (*30)

{ length('Hello World!') }

var_dump:, (*31)

{ dump('Hello World!') }

composer

Template dosyas─▒n─▒ ├Ânbellekte yok ise derler (render) ve ├Ânbelle─če ekler., (*32)

├ľrnek:, (*33)

$elisa->composer('home.index');

view

Php dosyas─▒n─▒n i├žeri─čini direkt olarak bir de─či┼čkene aktarman─▒z─▒ sa─člar. ├ľrnek:, (*34)

$elisa->view('common.sidebar');

show

Php dosyas─▒n─▒n i├žeri─čini direkt olarak ekrana basman─▒z─▒ sa─člar., (*35)

├ľrnek:, (*36)

$elisa->show('tools.slider');

with

Template ve view dosyalar─▒na parametre g├Ândermenizi sa─člar., (*37)

├ľrnek:, (*38)

$elisa->with(['name' => 'Ahmet']);

$elisa->composer('home.contet', true);

home/content.html:, (*39)

Hello {! $name }

each

T├╝m template ve view dosyalar─▒na her zaman gitmesi istedi─činiz parametreleri g├Ânderir., (*40)

├ľrnek:, (*41)

$elisa->each(['name' => 'Ahmet']);

Parametreler a┼ča─č─▒daki her iki view dosyas─▒na g├Ânderilecektir., (*42)

├ľrnek:, (*43)

$elisa->view('common.header');

$elisa->view('common.footer');

clear

├ľnbellekteki derlenmi┼č template dosyalar─▒n─▒ temizler., (*44)

├ľrnek:, (*45)

$elisa->clear();

beforeEvent

Dosya isimleri ile kay─▒t edilmi┼č event'ler dosyalar i┼čleme al─▒nmadan ├žal─▒┼čt─▒r─▒l─▒r., (*46)

Not: G├Ânderece─činiz parametreler ├žal─▒┼čt─▒r─▒lan event'e g├Ânderilecektir., (*47)

├ľrnek:, (*48)

$elisa->beforeEvent(function($params){

    // do something...

});

afterEvent

Dosya isimleri ile kay─▒t edilmi┼č event'ler dosyalar i┼čleme al─▒nd─▒ktan sonra ├žal─▒┼čt─▒r─▒l─▒r., (*49)

Not: afterEvent sadece show() metodu ile ├žal─▒┼čmaktad─▒r., (*50)

Not: G├Ânderece─činiz parametreler ├žal─▒┼čt─▒r─▒lan event'e g├Ânderilecektir., (*51)

├ľrnek:, (*52)

$elisa->afterEvent(function($params){

    // do something...

});

Yap─▒land─▒r─▒c─▒lar

@content

Template i├žeri─činin g├Âvde k─▒sm─▒n─▒ olu┼čturan bir etikettir. Sadece master template sayfas─▒nda kullan─▒labilir., (*53)

├ľrnek:, (*54)

master.html, (*55)

<html>
    <head>

    </head>

    <body>
    { @content }
    </body>
</html>

Master template ile derlemek istedi─činiz g├Âvde (body) template dosyas─▒n─▒ ┼ču ┼čekilde kullanabilirisiniz:, (*56)

$elisa->composer('home.body');

@extend()

Template sayfalar─▒n─▒ geni┼čletmek i├žin yard─▒mc─▒ olur. Bu metod ile hem template dosyas─▒ hemde normal bir php dosyas─▒n─▒ dahil edebilirsiniz., (*57)

Ayr─▒ca bu dosyalara parametreler g├Ânderebilirsiniz., (*58)

profile.html, (*59)




User Profile

<header> { @extend('profile.header', ['name' => 'Can']) } </header> <footer> { @extend('profile.footer') } </footer>

Yukar─▒da profile.html template dosyas─▒na header ve footer template dosyalar─▒n─▒ dahil ettik. Ayr─▒ca header dosyas─▒na bir de parametre g├Ânderdik., (*60)

@section()

Belirtece─činiz section alanlar─▒na ba┼čka bir template dosyas─▒ndan i├žerik g├Ânderebilirsiniz., (*61)

├ľrnek:, (*62)

master.html:, (*63)

<html>

    <head>
        { @section('header') }

        { @end }
    </head>

    <body>
        { @content }

        { @section('footer') }

        { @end }
    </body>

</html>

login.html:, (*64)



Login page

{ @append('header') } <title>Login page</title> { @end } { @append('footer') } { @end }

Yukar─▒da bir master page dosyam─▒z var ve i├žinde tan─▒mlad─▒─č─▒m─▒z iki adet section alanlar─▒ bulunuyor., (*65)

Sonras─▒nda login.html ad─▒nda bir template dosyas─▒ olu┼čturduk ve append metodlar─▒yla master page alan─▒ndaki section'lara i├žerikler g├Ânderdik., (*66)

@append()

Belirtilen section alanlar─▒na i├žerik g├Ânderir., (*67)

Not: Yukar─▒da detayl─▒ ├Ârne─či bulabilirsiniz., (*68)

├ľrnek:, (*69)

{ @append('header') }
<title>Login page</title>
{ @end }

{ @append('footer') }





{ @end }

Terimler

Elisa'da PHP terimleri direkt olarak kullan─▒labilir. Kendi taglar─▒ aras─▒nda gerek d├Âng├╝ler gerekse kontrol yap─▒lar─▒ basitce kuygulanabilir., (*70)

if Operat├Âr├╝

├ľrnek 1:, (*71)

{ if($status === true) }
    <h1>Is logged in!</h1>
{ endif }

├ľrnek 2:, (*72)

{ if($status === true) }
    <h1>Is logged in!</h1>
{ else }
    <h1>Is not logged in!</h1>
{ endif }

├ľrnek 3:, (*73)

{ if($status == 1) }
    <span>status: 1</span>
{ elseif($status == 2) }
    <span>status: 2</span>
{ else }
    <span>--</span>
{ endif }

D├Âng├╝ler (for, foreach, while)

for:, (*74)

{ for($i=1; $i<=5; $i++) }
    <h3>{! $i }</h3>
{ endfor }

foreach:, (*75)

{ foreach($users as $user) }
    <div>{! $user['name']} {! $user['surname'] }</div>
{ endforeach }

while:, (*76)

{ while($product == $products) }
    <div>{! $proudct['name']}</div>
{ endwhile }

The Versions

11/07 2015

dev-master

9999999-dev https://github.com/atayahmet/elisa

Elisa is as Template Engine

  Sources   Download

MIT

The Requires

  • php >=5.3

 

template elisa less php code

11/07 2015

dev-dev

dev-dev https://github.com/atayahmet/elisa

Elisa is as Template Engine

  Sources   Download

MIT

The Requires

  • php >=5.3

 

template elisa less php code