İçeriğe geç
FrankenPHP
Esc
↑↓gezin↵aç⌘Jönizle

Modern PHP Uygulama Sunucusu, Go ile yazılmıştır

FrankenPHP, PHP uygulamaları için yeni bir uygulama sunucusu (Caddy'nin üzerine inşa edilmiştir) ve PHP yorumlayıcısını Go web sunucularına yerleştirmek için bir kütüphanedir.

curl https://frankenphp.dev/install.sh | sh
Başlayın
  • Şunlar için yerel destek
  • Drupal
  • Sulu
  • WordPress
  • Laravel
  • Symfony
  • API Platform
  • Magento

Başlayın!

Sadece tek bir komutla canlı ortamdaki gibi bir PHP sunucusu kurun ve çalıştırın!

# Linux veya macOS'ta FrankenPHP'yi yükleyin
curl https://frankenphp.dev/install.sh | sh

# Veya Windows'ta, PowerShell ile
irm https://frankenphp.dev/install.ps1 | iex

# Public/ dizinine hizmet verin
frankenphp php-server -r public/

# Bir komut satırı betiği çalıştırın
frankenphp php-cli script.php

Worker modu

The FrankenPHP mascot in a hard hat, driving an excavator

public/index.php

<?php
// Boot your app once
require __DIR__.'/vendor/autoload.php';
$app = new \App\Kernel();
$app->boot();

$handler = static function () use ($app) {
    echo $app->handle($_GET, $_POST, $_COOKIE, $_FILES, $_SERVER);
};

// …then serve request after request
while (\frankenphp_handle_request($handler)) {
    gc_collect_cycles();
}
  • Worker komut dosyası

    Uygulamanızı bir kez başlatın, bellekte kalır!

  • Dümdüzilerleyin

    Symfony, API Platformu, Laravel tarafından yerel olarak desteklenir...

  • Basit

    Düz eski süper globalleri kullanır: PSR-7'ye gerek yok.

  • Hızlı

    Kıyaslamalarımıza göre, API Platform uygulamalarında FPM'den 3,5 kat daha hızlı.

  • Verimli

    FrankenPHP Go ve C dillerinde yazılmıştır. Go'nun ikonik özelliğine dayanır: goroutines!

  • Opsiyonel

    Uygulamanız, worker moduyla uyumlu olmasa bile olduğu gibi çalıştırılabilir.

  • Kolay Dağıtım

    İşletim sistemi süreci içinde çalışır: bir binary var ve harici servis gerekmez.

  • Gözlemci

    Çalışan, kodunuz değişir değişmez yeniden başlar.

Read the worker docs →

Caddyfile

localhost {
    # Sıkıştırmayı etkinleştir (isteğe bağlı)
    encode zstd br gzip
    # Geçerli dizindeki PHP dosyalarını çalıştırın ve varlıkları sunun
    php_server
}

Yapılandırması çok kolay!

Üç satırlık yapılandırma: artık Caddy tarafından desteklenen canlı ortamdaki gibi bir PHP sunucusu (otomatik HTTPS, HTTP/3, Brotli sıkıştırma...) başlatmak için ihtiyacınız olan tek şey bu.

  • HTTPS ✓
  • HTTP/3 ✓
  • zstd · br · gzip ✓
  • Early Hints ✓
Dokümantasyon →

FrankenPHP bir bakışta

The FrankenPHP elephant and the Go gopher in a laboratory, lightning crackling between them
Go + C + PHP

Born in a lab. Written in Go.

FrankenPHP is a Caddy module and a library: embed the PHP interpreter in any Go program and serve PHP scripts through net/http.

server, _ := frankenphp.NewServer("public/")
frankenphp.Init(frankenphp.WithServer(server))
defer frankenphp.Shutdown()

http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    server.ServeHTTP(w, r)
})
Use FrankenPHP as a Go library →

Modern PHP Her Zamankinden Daha İyi!

Hemen dene
The FrankenPHP mascot hugging a big red heart

Need a hand? We've got heart.

Les-Tilleuls.coop, the cooperative behind FrankenPHP, helps teams migrate, host and speed up their PHP apps.