Skip to content

Releases: barak-framework/barak

v6.0.0

08 Apr 10:02
7e6a5af
Compare
Choose a tag to compare

Index.php

  • [Değişti]: Akış BarakApplication.php üzerinden yapılması sağlandı.

Composer

  • Değişiklik yok.

BarakApplication +

  • [Açıklama]: Ana Çekirdek ve Modüllerin yüklenip ilgili yönlendiricinin sevk edildiği sınıf oluşturuldu. kernel ve modules olmak üzere iki kütüphane yükleme ayarlandı. modules olarak: cacher, mailer, model, http ekleme olanağı eklendi.

lib/

kernel/

Application -+
  • [Değişti]: Tüm sınıf BarakApplication olarak yeni sınıf ismiyle taşındı.

  • [Eklendi]: Yeni config/application.php çekirdek yapılandırma dosyasını okuyan sınıf oluşturuldu.
    Çekirdek genel ayarları olarak debug, timezone, locale, logger set etme imkanı ve modül ayarları olarak cacher, mailer, model, http ekleme olanağı eklendi.

Application::config(function() {
  set("timezone", "Europe/Istanbul");
  set("debug", true);
  set("locale", "tr");
  set("logger", [
    "file" => "production", // dosya ismi
    "level" => "info",      // en kapsamlı yaz
    "driver" => "weekly",   // haftalık
    "rotate" => 4,          // 4 yedek
    "size" => 15728640      // 15 MB
  ]);

  modules(["cacher", "mailer", "model", "http"]);
});
ApplicationAlias
  • [Değişti]: ApplicationRoutes kısa yol fonksiyonları BarakApplication'a taşındı.

ApplicationCache -

  • [Açıklama]: Sınıf kaldırıldı. ApplicationCache → ApplicationCacher olarak taşındı.
ApplicationConfig
  • [Değişti]: Application için config/application.ini dosyası kaldırıldı, config/application.php dosyası eklendi.

  • [Kaldırıldı]: ApplicationLogger için kullanılan config/logger.ini yapılandırma dosyası kaldırıldı, config/application.php dosyası içerisinde yapılandırılacak şekilde taşındı.

  • [Eklendi]: ApplicationCacher için config/cacher.ini dosyası içerisinde datas, clear saniye cinsinden girilen değerlere göre anahtara göre ön bellekleme ve genel ön bellek temizliği imkanı sağlandı.

ApplicationController
ApplicationDebug
  • [Değişti]: Hata gösterme durumu varsayılan olarak true şeklinde değişti.
ApplicationDispatcher
  • [Eklendi]: Controller isminin tam adı loglanması sağlandı. (Ör.:Processing by WritepageController#show as HTML gibi)
ApplicationHelper
  • Değişiklik yok.
ApplicationI18n
  • [Eklendi]: Tembel anahtar özelliği eklendi. Her template dosyasının bir title vermek isterseniz ve buna kolayca erişmek istenirse kullanılır.

Ör.:

<title><?= t(".title"); ?></title>
  • [Eklendi]: Anahtara parametre gönderme özelliği eklendi.

Ör.:

<title><?= t(".title", ["writer_name" => $writer_name]); ?></title>
ApplicationLogger
  • [Değişti]: driver, file, rotate, level, size anahtarları ile logger çalışma şekli değişti.
ApplicationRequest
  • [Değişti]: Kullanıcı istek zamanına GMT eklenerek değişti.
ApplicationResponse
  • Değişiklik yok.
ApplicationRoute
  • Değişiklik yok.
ApplicationRoutes
  • [Değişti]: Normalde head, options gibi (get, post harici) method isteklerinde expection yönlendirmesi sonucu public/500.php sayfası gösteriliyordu. Buna uygun bir http status buluna kadar diğer frameworklerde kullanılan genel davranış olarak public/404.php sayfasına yönlendirme yapılarak değişti.
ApplicationView
  • [Değişti]: Görünüm dosyasına(Template) gönderilen değişkenlere sadece o görünüm dosyasında ve alt görünüm dosyalarında erişim sağlanıyordu. Şimdi görünüm yerleştirme dosyasında da(Layout) bu değişkenlere erişme imkanı sağlanacak şekilde değişti.

  • [Eklendi]: Ana render için log kaydı oluşturulması eklendi.(Ör.:Rendering home/index.php within layouts/home.php gibi)

modules/

cacher/
ApplicationCacher +
  • [Açıklama]: Sınıf oluşturuldu. ApplicationCache → ApplicationCacher olarak taşındı.

  • [Değişti]: reset() fonksiyonu clear() olarak değişti.

  • [Değişti]: Değişkenler sadece ismine göre kaydedilecek şekilde değişti. (Değişken kaydederken her istek_urlye özgü ön ek eklenmesi silindi. Bir değişken her yerden erişilebilir olduğu için tekil(unique) yapmak istenirse Helper sınıfı oluşturulup fonksiyon_ismi + değiken_değeri kullanılabilir.)

http/
ApplicationHttp
  • Değişiklik yok.
mailer/
ApplicationMailer
  • [Onarıldı]: Web sunucular sistemi çalıştırmaya devam etsede fazla olan "/" path kaldırıldı, bug onarıldı.

  • [Eklendi]: Mail render için log kaydı eklendi. (Ör.: Rendering mail/notice/home.php within layouts/mailer.php gibi)

model/
ApplicationDatabase
  • Değişiklik yok.
ApplicationModel
  • Değişiklik yok.
ApplicationQuery
  • Değişiklik yok.
ApplicationSql
  • Değişiklik yok.

v5.0.0

09 Jan 05:52
cecb039
Compare
Choose a tag to compare

Index.php

  • Değişiklik yok.

Composer +

Bağımlılık yöneticisi olarak Composer paket yöneticisi eklendi.

lib/

Application

  • [Eklendi]: Akış ApplicationDispatcher::dispatch() üzerinden sağlanması için eklendi.

ApplicationAlias

  • [Kaldırıldı]: ApplicationUtil kısa yol fonksiyonları kaldırıldı.

ApplicationCache

  • Değişiklik yok.

ApplicationConfig

  • [Eklendi]: ApplicationLogger içinconfig/logger.ini dosyasında yapılandırma dosyasını okuması için fonksiyon eklendi.

ApplicationController

  • [Değişti]: render ve redirect üzerimdeki option artık / ile başlamayacak şekilde ayarlandı.

  • [Eklendi]: send_data şeklinde dosya yollama fonksiyonu eklendi.

  • [Eklendi]: render ve send_data için veri gönderim türü content_type ayarlandı.

  • [Eklendi]: scope özelliği ile path kullananlar için süper(üst kapsayan) sınıf oluşturma özelliği eklendi.

ApplicationDatabase

  • [Eklendi]: Veritabanı modelleri config/database.ini içerisinden adapter anahtarı ile seçilerek bağlantı yapma imkanı eklendi. Destek verilen veritabanı modelleri PDO'nun destekledikleridir.

ApplicationDebug

  • [Eklendi]: Hata izi sürmek için trace özelliği eklendi.

  • [Onarıldı]: ApplicationDebug::exception(Exception $exception) verilen hatayı üreten Exception ön tanımlanması kaldırıldı, çünkü php artık Throriawble şeklinde veri de yollayabiliyor.

ApplicationDispatcher +

  • [Açıklama]: Sınıf oluşturuldu. Akış işlemlerinin gerçekleştiği ve loglandığı sınıf oluşturuldu.

ApplicationHelper

  • Değişiklik yok.

ApplicationHttp +

  • [Açıklama]: Sınıf oluşturuldu. get, post gibi curl işlemlerini sağlayan ve loglamada gösteren sınıf oluşturuldu.

ApplicationI18n

  • Değişiklik yok.

ApplicationLogger

  • [Onarıldı]: Ölümcül hatalarda(ApplicationDebug::shutdown) log yazmıyordu, full path verilerek open_basedir engellemesi aşıldı.

ApplicationMailer

  • [Değişti]: İstek için mail işlemlerinde sadece 1 mail bağlantısı yapması sağlandı.

ApplicationModel

  • [Değişti]: ApplicationModel(Bir kayıt üzerinde işlem) ile ApplicationQuery(Sorgulama dilleri) ayrılarak işler kolaylaştırıldı ve kullanıcı deneyim güvenliği arttırılmış oldu.

ApplicationMySQL -

  • [Açıklama]: Sınıf kaldırıldı. ApplicationMySQL → ApplicationSql olarak taşındı.

ApplicationQuery +

  • [Açıklama]: ApplicationModel üzerinde ::load üzeri yapılacak Query işlemlerinin yapan sınıf oluşturuldu.

ApplicationRequest +

  • [Açıklama]: Sınıf oluşturuldu. İstek yapan istemcinin isteklerini, bilgilerini tutan sınıf oluşturuldu.
    İstekler: REQUEST_URI, REQUEST_METHOD, Bilgiler: Ip, Datetime.

ApplicationResponse +

  • [Açıklama]: Sınıf oluşturuldu. Görüntüyü(body) sevk ederken ek olarak header, status_code, content_type özelliği ile servis eden sınıf oluşturuldu.
    Durum Kodları(status_code): 0:Ek, 200:Tamam, 302:Yönlendirme, 404:Hata, 500:Ayıklama desteklemektedir.
    İçerik Tipleri(content_type): Her içerik tipi destekleniyor. Varsayılan text/html.
    Başlık(header): Her başlık destekleniyor. Varsayılan güvenli başlıklar yüklü geliyor. public/404.html, public/500.html sayfalarının bu sınıfın değişkeninde tutulması sağlandı.

ApplicationRoute

  • Ufak değişiklikler yapıldı.

ApplicationRoutes

  • Ufak değişiklikler yapıldı.

ApplicationSql +

  • [Açıklama]: Sınıf oluşturuldu. ApplicationMySQL → ApplicationSql olarak taşındı.

ApplicationUtil -

  • [Açıklama]: Sınıf kaldırıldı.

ApplicationView

  • [Kaldırıldı]: public/404.html, public/500.html sayfalarının değişkende tutulması kaldırıldı.

v4.0.0

25 Feb 06:18
291740d
Compare
Choose a tag to compare

Index.php

  • Değişiklik yok

lib/

Application

  • Değişiklik yok

ApplicationAlias

  • [Değişti]: ApplicationRoute sınıfından gösterilen link yolları, ApplicationRoutes olarak değişti.

ApplicationCache

  • [Değişti]: Değişkenlerin için varsayılan süresi ~= 600000 (yaklaşık 1 hafta) olarak değişti.

ApplicationConfig

  • Değişiklik yok

ApplicationController

  • [Değişti]: Ufak değişiklikler yapıldı.

ApplicationDatabase

  • Değişiklik yok

ApplicationDebug

  • [Eklendi]: Hata gösterme durumunun varsayılan olarak false şeklinde eklendi.

  • [Değişti]: Hataya ait satırların HTML taglarından kurtularak loglanması sağlandı.

ApplicationHelper

  • [Eklendi]: Tüm Helper'i eklemek için all anahtar özelliği eklendi.

ApplicationI18n

  • Değişiklik yok

ApplicationLogger

  • [Değişti]: Log yazma formatı değişti.

ApplicationMailer

  • [Eklendi]: Mail gönderim hataların loglanması eklendi.

  • [Değişti]: mailer fonksiyonun parametre alma yapısının değişti.

mail (["to" => [$email1 => $name1, ...], "subject" => $subject])

ApplicationModel

  • [Değişti]: first,last,count hataları önlenecek tedbir alınması için değişti.

  • [Değişti]: count: yapısı değişti.

$user_count = User::load()
                ->group("first_name") // or ->group("user.first_name")
                ->count();

// [4 => ["First_name" => "Gökhan"], 2 => ["first_name" => "Gökçe"]]
  • [Değişti]: joins: yapısı değişti.

İlk tablo sütunları hariç join işleminde select çakışmasını önlemek için diğer tablo alan bilgileri $TABLE_$field şeklinde gelmektedir. (Ör.: address.phone as address_phone gibi)

// user ["id", "first_name", "phone"]
// address ["id", "user_id", "phone"]

User:load()->joins("address")->get_all();
/*
SELECT user.id, user.first_name, user.phone,
             address.id as address_id,
             address.user_id as address_user_id,
             address.phone as address_phone
FROM user
INNER JOIN address ON address.user_id=user.id;
*/
  • [Değişti]: limit: varsayılan değer 1 olacak şekilde ve 0ın altında bir değerde hata verecek şekilde değişti.

ApplicationMySQL

  • [Kaldırıldı]: Loglamada yazılan debug_backtrace fonksiyonunun hataları, kaldırıldı.

ApplicationRoute

  • [Değişti]: scope, resource, resources, root, _get, _post fonksiyonlarının ApplicationRoute sınıfından ApplicationRoutes sınıfına taşındı.

ApplicationRoutes

  • [Değişti]: scope, resource, resources, root, _get, _post fonksiyonlarının ApplicationRoute sınıfından ApplicationRoutes sınıfına taşındı.

  • [Eklendi]: get, post methodları harici gelen istekleri hata kaydı olarak kaydettirildi.

  • [Değişti]: draw fonksiyonuna tanımlamanan rotaları parametre yerine toplu olarak için fonksiyon şeklinde gönderecek şekilde değiştirildi. Ayrıca tekrarlı bir draw fonksiyonu çağrıldığında işleme alması engellendi.

ApplicationRoutes::draw(function() {
  // functions here
});
  • [Eklendi]: Kapsam şeklinde birden çok parametreyi özyinemeli şekilde almasını sağlayan scope fonksiyonun eklendi.
scope("/admin", function() {
  scope("/producst",function() {
    // functions here
  });
});
  • [Eklendi]: İstek gelen method, rule ve isteği yapanın ip bilgisinin ms olarak loglanması eklendi.

  • [Eklendi]: Her çalışan controller dosyası için ms cinsinden loglanması eklendi.

ApplicationUtil

  • Değişiklik yok

ApplicationView

  • [Eklendi]: public/404.html, public/500.html sayfalarının değişkende tutulması eklendi.

  • [Eklendi]: Her render edilen template dosyasının ms cinsinden loglanması eklendi.

v3.0.0

19 Jan 08:33
aaf4549
Compare
Choose a tag to compare

Index.php

  • [Değişti]: Akış Application.php üzerinden yapılması sağlandı.

lib/

Application +

  • [Eklendi]: Sınıf oluşturuldu. Index.php içeriği (sistem akışı) buraya taşındı.

  • [Eklendi]: ApplicationDebug ilklendirilmesi eklendi.

// Fatal error handling
register_shutdown_function('ApplicationDebug::shutdown');

// Exception handling
set_exception_handler('ApplicationDebug::exception');

// Error handling
set_error_handler('ApplicationDebug::error');
  • [Eklendi]: ApplicationDatabase bağlantı kapatması eklendi.
// Database : close
ApplicationDatabase::close();

ApplicationAlias +

  • [Açıklama]: Bazı fonksiyonlara kısa takma isimle erişmek için sınıf eklendi.
 "ApplicationI18n::translate();" -> "t();" gibi

ApplicationCache +

  • [Açıklama]: Her istek_url'ye özgü değişkenlerin veritabanı olmadan belirli süre dosyada depolanması için yeni sınıf eklendi.

ApplicationConfig

  • [Eklendi]: ApplicationCache için config/application.ini içerisinde cacheexpiration = 604800 şeklinde anahtar eklendi.

  • [Eklendi]: ApplicationMailer için config/mailer.ini dosyasında yapılandırma dosyasını okuması için fonksiyon eklendi.

  • [Eklendi]: ApplicationDebug için config/application.ini içerisinde hataların gösterilmesi (public/500.html) veya gösterilmemesi için debug = true şeklinde anahtar eklendi.

  • [Eklendi]: ApplicationLogger için config/application.ini içerisinde günlük log dosyaların boyutunun girilmesi için
    logsize = 5242880 şeklinde anahtar eklendi.

ApplicationController

  • [Değişti]: Ufak değiklikler yapıldı.

ApplicationDatabase

  • [Eklendi]: İstek sonrası veritabanı bağlantısını kapatma fonksiyonu eklendi.

  • [Değişti]: İstek için veritabanı işlemlerinde (static değişken ile) sadece bir bağlantı yapması sağlandı.

ApplicationDebug +

  • [Açıklama]: Tüm hataların + istisna + ölümcül hataların bir yönetildiği şeklinde yeni sınıf eklendi.

ApplicationException -

  • [Açıklama]: Sınıf kaldırıldı.

ApplicationHelper -+

  • [Değişti]: Tüm sınıf ApplicationAlias olarak yeni sınıf ismiyle taşındı. ApplicationController içerisinde kullanmak üzere app/helpers/* içindeki helper sınıflarını ekleme için değiştirildi.

ApplicationI18n

  • [Değişti]: Sadece SESSION olarak dil değişkenlerinin depolanması sağlandı.

ApplicationLogger +

  • [Açıklama]: Hataların her daim günlük olarak tmp/log/* altına kaydı sağlayan sınıf eklendi.

ApplicationMailer +

  • [Açıklama]: ApplicationMailer sınıfı ApplicationController sınıfı gibi before, after özelliği olan yeni sınıf eklendi.

ApplicationModel

  • [Eklendi]: Tanımlı olmayan fonksiyonlara erişmeye çalıştığında hata yönlendirilmesi yapıldı.

  • [Eklendi]: update_all, get, get_all fonksiyonları eklendi.

  • [Kaldırıldı]: primary_keyname, tablename, take, fonksiyonları kaldırıldı.

ApplicationMySQL +

  • [Açıklama]: Sınıf oluşturuldu. ApplicationSql → ApplicationMySQL olarak taşındı.

  • [Değişti]: read tek kayıt dönecek şekilde değiştirildi.

  • [Eklendi]: read_all şeklinde çok kayıt dönecek fonksiyon eklendi.

ApplicationRoute

  • [Değişti]: Ufak değşiklikler yapıldı.

ApplicationRoutes

  • [Değişti]: Tanımlanmayan route'ları public/404.html sayfasından çekip gösterecek şekilde ayarlandı.

ApplicationSql -

  • [Açıklama]: Sınıf kaldırıldı. ApplicationSql → ApplicationMySQL olarak taşındı.

ApplicationView

  • [Değişti]: HTML yada PHP dosyası içerisinde çağrılan render methodu içeriği ekrana basmak yerine, döndürecek şekilde ayarlandı. <?php render(); ?> yerine <?= render(); ?> şeklinde kullanılacak şekilde ayarlandı.

ApplicationUtil +

  • [Açıklama]: url_encode, url_decode, html_escape fonksiyonları barındıran yeni sınıf eklendi.

v2.0.0

03 Jun 18:08
Compare
Choose a tag to compare

ApplicationSql

  • [Değişti]: join methodunun genişletilmesi sağlandı.