iefsoftware / ief-framework
IEF Framework - Lightweight PHP Framework
Installs: 3
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 1
Type:project
pkg:composer/iefsoftware/ief-framework
Requires
- php: >=8.0
- symfony/uid: ^6.0
- vlucas/phpdotenv: ^5.5
README
Version: 1.0.0
Author: IEF Software
License: MIT
🌟 Hakkında
IEF Framework, modern PHP uygulamaları geliştirmek için tasarlanmış, hafif (lightweight), hızlı ve esnek bir MVC (Model-View-Controller) çatısıdır. Gereksiz karmaşıklıktan uzak, anlaşılır yapısı ile hem öğrenmesi kolaydır hem de profesyonel projeler için güçlü bir temel sunar.
Framework; gelişmiş yönlendirme (routing), güvenli veritabanı işlemler (PDO & Active Record), otomatik CSRF koruması ve esnek middleware desteği ile gelir.
🚀 Özellikler
- ⚡ Yüksek Performans: Gereksiz yüklerden arındırılmış çekirdek yapı.
- 🛣️ Gelişmiş Router: RESTful rotalar, parametre desteği, gruplama ve middleware entegrasyonu.
- 💾 Active Record ORM: Veritabanı işlemlerini nesne tabanlı ve güvenli bir şekilde yönetin (UUID desteği dahil).
- 🛡️ Güvenlik: Dahili CSRF koruması, XSS filtreleme ve SQL Injection'a karşı PDO kullanımı.
- 🔌 CLI Aracı: Proje yönetimi için
iefkonsol uygulaması. - 📄 Şablon Motoru: Yalın PHP tabanlı, performanslı view sistemi.
- 🔧 Helper Fonksiyonlar: Geliştirme sürecini hızlandıran yardımcı araçlar.
🛠️ Kurulum
Gereksinimler
- PHP 8.0 veya üzeri
- Composer
- SQLite veya MySQL/MariaDB
Yeni Proje Oluşturma
-
Projeyi Klonlayın:
git clone https://github.com/iefsoftware/ief-framework.git my-app cd my-app -
Bağımlılıkları Yükleyin:
composer install
-
Yapılandırma:
config/database.phpveconfig/app.phpdosyalarını projenize göre düzenleyin. Varsayılan olarak SQLite kullanır. -
Sunucuyu Başlatın:
./ief serve
Tarayıcınızda
http://localhost:8000adresine gidin.
📖 Kullanım Kılavuzu
1. Dizin Yapısı
/
├── app/
│ ├── Controllers/ # İstekleri karşılayan sınıflar
│ ├── Core/ # Framework çekirdek dosyaları
│ ├── Models/ # Veritabanı modelleri
│ ├── Views/ # Arayüz dosyaları (HTML/PHP)
│ └── Helpers/ # Yardımcı fonksiyonlar
├── config/ # Ayar dosyaları (App, Database, Routes)
├── public/ # Web sunucusu kök dizini (assets vb.)
├── storage/ # Loglar ve veritabanı (SQLite)
├── vendor/ # Composer paketleri
├── ief # CLI aracı
└── index.php # Giriş noktası
2. Yönlendirme (Routing)
Rotalar config/routes.php dosyasında tanımlanır.
use App\Core\Router; // Basit GET isteği Router::get('/', 'WelcomeController@index'); // Parametreli ve POST isteği Router::post('/users/{id}/update', 'UserController@update'); // Callback fonksiyonu kullanımı Router::get('/api/test', function() { return json_encode(['status' => 'ok']); });
3. Controller
Controller sınıfları app/Controllers altında bulunur ve App\Core\Controller sınıfını miras almalıdır.
namespace App\Controllers; use App\Core\Controller; use App\Core\Request; class UserController extends Controller { public function show($id) { // Model kullanımı $user = User::find($id); // View döndürme return $this->view('users/profile', [ 'user' => $user ]); } }
4. Model (Veritabanı)
Modeller app/Models altında bulunur, App\Core\Model sınıfını miras alır ve veritabanı tablolarını temsil eder.
namespace App\Models; use App\Core\Model; class User extends Model { protected static string $table = 'users'; protected static array $fillable = ['name', 'email']; protected static bool $useUuid = true; // UUID aktif }
Kullanım Örnekleri:
// Tüm kullanıcıları getir $users = User::all(); // Yeni kullanıcı ekle User::create([ 'name' => 'Ali Veli', 'email' => 'ali@example.com' ]); // Id ile bul $user = User::find(1); // Güncelle User::update(1, ['name' => 'Ali Can']);
5. CLI Aracı
Proje kök dizinindeki ief komutu ile sunucuyu başlatabilir veya diğer işlemleri yapabilirsiniz.
./ief serve # Sunucuyu 8000 portunda başlatır ./ief serve 8080 # Sunucuyu 8080 portunda başlatır ./ief help # Yardım menüsü
🤝 Katkıda Bulunma
- Fork yapın.
- Branch oluşturun (
git checkout -b feature/yeni-ozellik). - Commit atın (
git commit -m 'Yeni özellik eklendi'). - Push yapın (
git push origin feature/yeni-ozellik). - Pull Request açın.
🏗️ Örnek Uygulama (Görev Yöneticisi)
Proje içerisinde hazır gelen basit bir Görev Yönetimi (CRUD) uygulaması bulunmaktadır.
- Veritabanını hazırlayın:
php setup_db.php
- Uygulamayı başlatın:
./ief serve
- Tarayıcıda test edin:
http://localhost:8000/tasks
IEF Framework © 2024 - Tüm Hakları Saklıdır.