seymenkonuk/framework

Modern PHP uygulamaları geliştirmek için tasarlanmış, hafif ve sade bir MVC framework'ü.

Maintainers

Package info

github.com/seymenkonuk/framework

Type:framework

pkg:composer/seymenkonuk/framework

Statistics

Installs: 46

Dependents: 1

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.3 2026-06-13 11:08 UTC

This package is auto-updated.

Last update: 2026-06-13 11:11:03 UTC


README

Modern PHP uygulamaları geliştirmek için tasarlanmış, hafif ve sade bir MVC framework'ü.

Açıklama

Modern PHP uygulamaları geliştirmek için oluşturulmuş hafif, sade ve geliştirici dostu bir MVC framework'üdür.

Framework; yalnızca ihtiyaç duyulan temel bileşenleri sağlayarak gereksiz karmaşıklıklardan kaçınır. Attribute tabanlı routing, middleware desteği, Dependency Injection Container, otomatik request validation ve authorization kontrolleri, session yönetimi, flash mesaj sistemi, cache ve veri tabanı gibi modern web uygulamalarında sık kullanılan özellikleri sunar.

Büyük framework'lerde zamanla oluşan karmaşık yapıların aksine, küçük ve anlaşılabilir bir çekirdek üzerine inşa edilmiştir. Bu sayede framework'ün çalışma mantığını öğrenmek, özelleştirmek ve ihtiyaçlara göre genişletmek oldukça kolaydır.

Bu framework'ün amacı, geliştiricilere esneklikten ödün vermeden hızlı geliştirme imkânı sunmak ve modern PHP uygulamaları için sağlam bir temel oluşturmaktır.

Özellikler

  • MVC mimarisi
  • Dependency Injection Container
  • Constructor Injection & Method Injection
  • Klasik Routing & Attribute Routing
  • Middleware sistemi
  • Request / Response abstraction
  • UploadedFile abstraction
  • Session & Flash Messages
  • Redis Cache
  • PDO Database katmanı
  • Repository Pattern
  • Fluent API
  • Route bazlı schema validation sistemi

Kurulum

composer require seymenkonuk/framework

Kullanım

Klasik Routing

$router->get("/", [HomeController::class, "index"]);

Attribute Routing

class HomeController extends Controller {
    #[Get("/")]
    public function index(Response $response){
        return $response->view("home");
    }
}

Dependency Injection

class UserController extends Controller { 
    public function __construct(
        private UserRepository $users,
    ) {} 
    
    public function index(Response $response)
    { 
        return $response->json(
            $this->users->all()
        ); 
    } 
}

Dosya Yükleme

$path = $request
            ->file("avatar")
            ->move("path");

Route Bazlı Şema (Validation + Authorization)

Şema Tanımı

class ExampleSchema extends Schema
{
    public function __construct(
        protected Validator $validator
    ) {}

    public function body(): ObjectValidator
    {
        return $this->validator->object()->schema([
            "username" => $this->validator->field()
                ->string()
                ->min(3)
                ->required(),

            "email" => $this->validator->field()
                ->email()
                ->required(),
        ]);
    }

    public function query(): ObjectValidator
    {
        return $this->validator->object()->schema([]);
    }

    public function params(): ObjectValidator
    {
        return $this->validator->object()->schema([]);
    }

    public function files(): ObjectValidator
    {
        return $this->validator->object()->schema([]);
    }

    public function authorize(): ?array
    {
        if (true) {
            return [
                "title" => "Unauthorized",
                "description" => "Bu işlem için giriş yapmalısınız."
            ];
        }

        return null;
    }
}

Route Üzerinde Kullanımı

$router->post(
    "/users/{id}",
    [UserController::class, "update"],
)->schema(ExampleSchema::class);

Lisans

Bu proje MIT Lisansı ile lisanslanmıştır.