Aplikasi Fail Single Symfony (SFAS) Menggunakan MicrokernelTrait: Pendekatan yang Dilancarkan
Symfony 2.8 dan 3.0 memperkenalkan aplikasi fail tunggal (SFAS), pendekatan mudah untuk membina aplikasi simfoni, terutamanya berguna untuk microservices atau projek yang lebih kecil. Ini dicapai melalui MicroKernelTrait
. Artikel ini meneroka SFA, faedah, batasan, dan bagaimana mereka dibandingkan dengan persediaan simfoni penuh.
; Sebaliknya, ia berpusat di sekitar satu logik aplikasi pengurusan fail kernel.
Untuk membina SFA, anda memerlukan pelayan web dan komposer. Persekitaran pembangunan tempatan seperti Laravel Valet atau Homestead Peningkatan Menyediakan Persediaan.
Langkah 1: Pemasangan Symfony yang minimum
Pasang pakej Symfony Core menggunakan komposer:
composer require symfony/symfony
dan app
direktori dalam root projek anda. web
Langkah 2: Pengawal depan () web/app_dev.php
<?php use Symfony\Component\HttpFoundation\Request; require __DIR__.'/../vendor/autoload.php'; require __DIR__ . '/../app/SfaKernel.php'; $kernel = new SfaKernel('dev', true); $request = Request::createFromGlobals(); $response = $kernel->handle($request); $response->send(); $kernel->terminate($request, $response);
. Kaedah app/SfaKernel.php
ditinggalkan untuk kesederhanaan dalam persediaan minimum ini. loadClassCache()
Langkah 3: Kelas kernel (app/SfaKernel.php
Kelas ini memanjangkan Symfony's
: Kernel
MicroKernelTrait
<?php use Symfony\Component\HttpKernel\Kernel; use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait; use Symfony\Component\Config\Loader\LoaderInterface; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\Routing\RouteCollectionBuilder; use Symfony\Component\HttpFoundation\Response; use Symfony\Bundle\FrameworkBundle\FrameworkBundle; class SfaKernel extends Kernel { use MicroKernelTrait; public function registerBundles() { return [ new FrameworkBundle(), ]; } protected function configureRoutes(RouteCollectionBuilder $routes) { $routes->add('/', 'kernel:home'); $routes->add('/greet/{who}', 'kernel:greet'); } protected function configureContainer(ContainerBuilder $c, LoaderInterface $loader) { $c->loadFromExtension('framework', [ 'secret' => 'micr0', // Replace with a unique secret ]); } public function home() { return new Response('<p>Home, sweet home</p>'); } public function greet($who) { return new Response("<h1>Greeting</h1><p>Hello $who</p>"); } }
mengkonfigurasi bekas suntikan ketergantungan. Kaedah configureRoutes()
dan configureContainer()
bertindak sebagai pengawal mudah. home()
greet()
Walaupun SFA tidak dimaksudkan untuk aplikasi berskala besar, mereka sesuai untuk:
perbandingan dengan persediaan simfoni penuh
SFA menawarkan kesederhanaan dan kemudahan persediaan, tetapi pemasangan simfoni penuh memberikan fleksibiliti, skalabilitas, dan organisasi yang lebih baik untuk projek yang lebih besar.
Kesimpulan
Symfony's (Nota: URL imej dalam input asal semuanya sama. Saya telah menyimpannya seperti, tetapi dalam senario dunia sebenar, mereka mungkin berbeza.)MicroKernelTrait
menyediakan alat yang berharga untuk membina aplikasi Symfony ringan. Walaupun bukan pengganti untuk simfoni penuh dalam semua kes, ia menawarkan pendekatan yang diselaraskan untuk kes -kes penggunaan tertentu, yang membolehkan pemaju memanfaatkan kuasa simfoni dengan kerumitan yang dikurangkan.
Atas ialah kandungan terperinci Aplikasi Symfony Single-File? Ya, dengan Microkerneltrait!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!