Skip to content

tuncayteke/sword-framework

Repository files navigation

Sword Framework

Keskin. Hızlı. Ölümsüz.

Modern PHP web uygulamaları için tasarlanmış, hafif ve güçlü bir MVC framework'üdür. Fındık kırmak için balyoz kullanmak istemeyenlere özel geliştirilmiştir. En iyi ve en güçlü php frameworklerdeki en çok kullanılan özellikler ve wordpress tema yönetimine benzer bir yapıyla, geliştiricilerinin işininin kolaylaştırılması amaçlanmıştır.

🚀 Neden Sword Framework?

Basitlik ve Güç

  • Minimal Kurulum: Tek dosya ile başlayın
  • Sıfır Yapılandırma: Anında çalışmaya hazır
  • Maksimum Esneklik: İhtiyacınıza göre genişletin

Modern PHP Özellikleri

  • PHP 8+ Desteği: Modern PHP özelliklerini kullanır
  • PSR-4 Autoloading: Standart sınıf yükleme
  • Composer Uyumlu: Paket yönetimi desteği

🛠️ Temel Özellikler

Routing Sistemi

// Basit rotalar
Sword::routerGet('/', 'HomeController@index');
Sword::routerPost('/login', 'AuthController@login');

// Parametreli rotalar
Sword::routerGet('/user/:id', 'UserController@show');

// RESTful rotalar
Sword::routerResource('/users', 'UserController');

Event System

// Event dinleyici
Events::listen('order.created', function($order) {
    // Email gönder
    Mailer::send($order->email, 'Sipariş Onayı');
});

// Event tetikleme
Events::dispatch('order.created', $order);

Menu System

// Menü ekleme
Menu::add('admin', 'Dashboard', '/admin', [
    'id' => 'dashboard',
    'icon' => 'dashboard'
]);

// Submenu sistemi
Menu::add('admin', 'Ürünler', '#', [
    'id' => 'products',
    'icon' => 'box'
]);

Menu::add('admin', 'Tüm Ürünler', '/admin/products', [
    'parent_id' => 'products'
]);

// Menü gösterimi
echo Menu::render('admin', 'admin');
echo Menu::render('main', 'navbar');

Plugin System

// Plugin geliştirme
class SeoOptimizerPlugin extends BasePlugin
{
    public function init()
    {
        $this->addAction('before_render', [$this, 'addMetaTags']);
        $this->addMenu('admin', 'SEO Ayarları', '/admin/seo');
    }
}

// Plugin yönetimi
Plugin::activate('seo-optimizer');
Plugin::deactivate('payment-gateway');

Database & ORM

// Query Builder
$users = Sword::db()->table('users')
    ->where('active', 1)
    ->orderBy('name')
    ->get();

// ORM Models
$user = User::find(1);
$activeUsers = User::where('active', 1)->get();

View & Template

// Basit view
echo Sword::view('home/index', ['title' => 'Ana Sayfa']);

// Section sistemi
<?php $this->extend('layouts/app'); ?>
<?php $this->startSection('content'); ?>
<h1>İçerik</h1>
<?php $this->endSection(); ?>

Security

// CSRF koruması
echo Sword::security()->csrfField();

// XSS temizleme
$clean = Sword::security()->xssClean($userInput);

// Şifreleme
$encrypted = Sword::cryptor()->encrypt($data);

🚀 Hızlı Başlangıç

1. Kurulum

# Download
İndir
Zipten Çkar
docs klasörünü ve readme.md dosyalarını silin

2. Temel Yapılandırma

// index.php
require_once 'sword/Sword.php';
Sword::bootstrap();

// Basit rota
Sword::routerGet('/', function() {
    echo 'Merhaba Dünya!';
});

Sword::start();

3. İlk Controller

// app/controllers/HomeController.php
class HomeController extends Controller {
    public function index() {
        $data = ['title' => 'Ana Sayfa'];
        return $this->render('home/index', $data);
    }
}

🎯 Kullanım Senaryoları

  • E-ticaret siteleri
  • Blog ve CMS sistemleri
  • Kurumsal web uygulamaları
  • API servisleri
  • Prototip geliştirme
  • Mikroservisler

🏗️ Mimari Yapı

app/
├── controllers/     # İş mantığı
├── models/         # Veri modelleri
├── views/          # Görünüm dosyaları
└── Routes.php      # Rota tanımları

content/
├── themes/         # Tema dosyaları
├── plugins/        # Eklenti sistemi
├── storage/        # Cache, logs, sessions
└── uploads/        # Yüklenen dosyalar

sword/
├── Core sınıfları
├── Events.php      # Event sistemi
├── Menu.php        # Menü yönetimi
├── Plugin.php      # Eklenti sistemi
├── ORM/            # Veritabanı katmanı
├── Cache/          # Önbellek sistemi
└── View/           # Görünüm motoru

🔧 Genişletilebilirlik

Özel Metodlar

// Framework'e özel metod ekle
Sword::map('apiCall', function($endpoint, $data = []) {
    return $response;
});

// Kullanım
$result = Sword::apiCall('users', ['name' => 'John']);

Event System

// Event dinleyici
Sword::on('user.created', function($user) {
    Sword::mailer()->send($user->email, 'Hoş Geldiniz', $message);
});

// Event tetikleme
Sword::trigger('user.created', $newUser);

🛡️ Güvenlik Özellikleri

  • CSRF Protection: Cross-site request forgery koruması
  • XSS Prevention: Cross-site scripting önleme
  • SQL Injection: Prepared statements ile koruma
  • Input Validation: Kapsamlı form doğrulama
  • Password Hashing: Güvenli şifre saklama
  • Rate Limiting: İstek sınırlama

📊 Performans

  • Lazy Loading: İhtiyaç duyulduğunda yükleme
  • Query Caching: Veritabanı sorgu önbellekleme
  • View Caching: Görünüm önbellekleme
  • Memory Management: Bellek optimizasyonu

📚 Dokümantasyon

Core Classes

Database & ORM

Security & Validation

System & Tools

📖 Tüm Dokümantasyon

🌟 Örnekler

Basit Blog

// Makale listesi
Sword::routerGet('/blog', function() {
    $posts = Sword::model('Post')->where('published', 1)->get();
    echo Sword::view('blog/index', ['posts' => $posts]);
});

// Makale detay
Sword::routerGet('/blog/:slug', function($slug) {
    $post = Sword::model('Post')->where('slug', $slug)->first();
    echo Sword::view('blog/post', ['post' => $post]);
});

API Endpoint

Sword::routerPost('/api/users', function() {
    $validation = Sword::validate($_POST, [
        'name' => 'required|min:2',
        'email' => 'required|email|unique:users'
    ]);

    if ($validation->passes()) {
        $user = Sword::model('User')->create($_POST);
        Sword::response()->json(['success' => true, 'user' => $user])->send();
    } else {
        Sword::response()->validationError($validation->errors())->send();
    }
});

Cache Kullanımı

// Pahalı sorguyu cache'le
$popularPosts = Sword::cache()->remember('popular_posts', 3600, function() {
    return Sword::model('Post')
        ->where('views', '>', 1000)
        ->orderBy('views', 'DESC')
        ->limit(10)
        ->get();
});

🤝 Katkıda Bulunma

  1. Fork edin
  2. Feature branch oluşturun (git checkout -b feature/amazing-feature)
  3. Commit edin (git commit -m 'Add amazing feature')
  4. Push edin (git push origin feature/amazing-feature)
  5. Pull Request açın

📄 Lisans

MIT License - Ticari ve açık kaynak projelerde özgürce kullanılabilir.

🔗 Bağlantılar


Sword Framework ile modern, güvenli ve performanslı web uygulamaları geliştirin.

Keskin kodlar, hızlı geliştirme, ölümsüz projeler!

About

Sword Framework ( Keskin. Hızlı. Ölümsüz. ) Modern PHP web uygulamaları için tasarlanmış, hafif ve güçlü bir MVC framework'üdür. Fındık kırmak için balyoz kullanmak istemeyenlere özel geliştirilmiştir.

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors