Bildiğiniz üzere PHP'de aynı kodları tekrar tekrar yazmamamız için geliştirilmiş yapılar var.(MVC,HMVC vs.)
MVC'ye yeni olduğum ve kendimi geliştirmek için bir MVC Framework hazırladım. Şuan için çok fazla eksiği var. GitHub üzerinde bir depo açtım ve yavaş yavaş geliştiriliyor. Eğer yardımcı olursanız sevinirim.
XTraFramework
MVC PHP Türkçe Framework
Github Deposu
Özellikler
[*] Türkçe!
[*] Güvenilir MVC Yapısı
[*] MySQL Desteği
[*] Kolay değiştirilebilir dizin ve ön ekler
Türkçe
Dosya ve dizin isimleri, kodlar Türkçe olarak hazırlanmıştır. Bu sayede Türk Geliştiriciler zorlanmayacaktır.
Güvenilir MVC Yapısı
Model - View - Controller yapısı ile hazırlanmıştır. Öncelikle ziyaretçinin gitmek istediği URl çözümlenir. Buna göre ilgili kontrol nesnesi başlatılır. Eğer varsa metot sorgu değeri ile çalıştırılır.
MySQL Desteği
Veritabanı olarak şuan sadece MySQL desteği bulunmakta. Bir sonraki güncelleme ile PDO sınıfı kullanacağız ve SQLite gibi veritabanlarını da kullanabileceksiniz. MySQL veritabanı ayarlamalarını ayar dosyasından yapabilirsiniz.
Dizin ve Ön Ekler
Dizin isimlerini ve ön ekleri değiştirmek için 'ayar.php' dosyasında bulunan aşağıdaki kısımları düzenlemeniz yeterlidir.
Dizin Yapısı
./.htaccess (Bütün linklerin index.phpye gitmesini sağlıyor)
./index.php (Anadizini belirtiyor,ayarları ve fonksiyon kütüphanesini içe aktarıyor ve önyükleyiciyi başlatıyor)
./ayar.php (SQL bilgileri, URl bilgileri ve özelleştirmeleri içeriyor)
./Uygulama
./ Kaynak (CSS,JS,SWF gibi dosyaları barındırıyor)
./ Kontroller (Kontrol nesnelerini barındırıyor)
./ kontrol.anasayfa.php
./ kontrol.sayfalar.php
....
./ Modeller (Model nesnelerini barındırıyor)
./ model.anasayfa.php
./ model.sayfalar.php
....
./ Sunumlar (Sunum dosyaları barındırıyor)
./ ust.php
./ alt.php
./ anasayfa.php
./ sayfalar.php
....
./ XTraFramework (Framework Dosyaları)
./ Hata (Eğer sunum içerisinde 404,403 vs. dosyaları yoksa)
./ Sinif (Ek isteğe bağlı eklenen sınıfları barındırır)
./ Sistem (Framework dosyalarını barındırır)
./ sistem.fonksiyon.php (Ana fonksiyon kütüphanesi) (autoloader)
./ sistem.kontrol.php (Ana kontrol nesnesi, modeli başlatır)
./ sistem.model.php (Ana model nesnesi, SQL kütüphanesini barındırır)
./ sistem.onyukleyici.php (Bel Kemiği, ilgili kontroller ve metotu belirler)
./ sistem.sqlsorgu.php (SQL Sorgularını güvenli bir şekilde gerçekleştirir)
./ sistem.tema.php (Tema sınıfıdır, gerekli sunum dosyasını içe aktarır)
./ Tmp (Geçici dosyalar)
./ Loglar (Kayıt Defteri)
./hata.log (Hata kayıtları)
Nasıl Yapılır?
MySQL Bilgilerini nasıl eklerim?
Ana dizinde bulunan 'ayar.php'i açın ve aşağıdaki kısmı düzenleyin.
/*
* SQL Bilgileri
*/
define("DBHOST", "localhost");
define("DBKUL", "root");
define("DBSIFRE", "1234");
define("DBADI", "xtramvc");
Dizin isimlerini nasıl değiştiririm?
Ana dizinde bulunan 'ayar.php'i açın ve aşağıdaki kısmı düzenleyin.
/*
* Dizin Bilgileri
*/
define("UYGULAMAYOL", ANADIZIN . DA . "Uygulama");
define("KONTROLLERYOL", UYGULAMAYOL . DA . "Kontroller");
define("MODELLERYOL", UYGULAMAYOL . DA . "Modeller");
define("SUNUMLARYOL", UYGULAMAYOL . DA . "Sunumlar");
define("FRAMEWORK", ANADIZIN . DA . "XTraFramework");
define("TMPYOL", FRAMEWORK . DA . "Tmp");
define("HATAYOL", FRAMEWORK . DA . "Hata");
define("SINIFYOL", FRAMEWORK . DA . "Sinif");
define("SISTEMYOL", FRAMEWORK . DA . "Sistem");
define("LOGLARYOL", TMPYOL . DA . "Loglar");
Dosya ön eklerini nasıl düzenlerim?
Ana dizinde bulunan 'ayar.php'i açın ve aşağıdaki kısmı düzenleyin.
/*
* Dosya Ön Ekler
*/
define("SISTEMONEK", "sistem.");
define("SINIFONEK", "sinif.");
define("KONTROLONEK", "kontrol.");
define("MODELONEK", "model.");
Link eklerken Site Adresini nasıl belirteceğim?
Öncelikle 'ayar.php'den site adresini düzenleyin.
/*
* Site URL
*/
define("SITEURL", "http://sunucu/xtramvc");
Artık sunum dosyalarınızda aşağıdaki gibi kullanabilirsiniz.
CSS, JS gibi dosyaları nasıl ekleyeceğim?
Ayar.php'den Site Url'i belirttikten sonra Uygulama/Kaynak klasörüne CSS ve JS dosyalarınızı atın. Sunum dosyalarınızda aşağıdaki şekilde kullanın.
css/stil.css
Ust.php ve Alt.php yerine Header.php ve Footer.php Yapmak İstiyorum
Bunun için ayar.php'den aşağıdaki kısmı düzenleyin.
/*
* Sunumlar
*/
define("SUNUMUST", "ust.php");
define("INDEXDOSYA", "index.php");
define("DOSYA404", "404.php");
define("SUNUMALT", "alt.php");
Varsayılan Anasayfa Kontrolünün Yerine Başka Bir Kontrol İstiyorum
Ayar.php'den aşağıdaki kısmı düzenleyin.
/*
* Anasayfa Metod ve Modeli
*/
define("VARSAYILANMETOD", "index");
define("VARSAYILANMODEL", "Anasayfa");