Artisan Serve no Lumen

王林
Lepaskan: 2024-07-16 21:21:11
asal
912 orang telah melayarinya

Artisan Serve no Lumen

Laravel ialah rangka kerja yang paling banyak digunakan pada masa ini dalam ekosistem PHP. Tetapi bagi mereka yang tidak mengenalinya, mereka tidak akan tahu bahawa dia mempunyai seorang yang lebih muda, tetapi tidak kurang menarik, abang yang dipanggil Lumen.

Lumen bertujuan untuk mencipta API Sebenarnya, ia adalah rangka kerja mikro dengan pangkalan kod yang sangat dekat dengan abangnya, tetapi dengan perbezaan penting: Lumen mengorbankan beberapa ciri demi prestasi yang lebih baik. .

Antara ciri yang anda akan terlepas apabila menggunakan Lumen ialah:

  • Enjin templat
  • ORM (Fasih dilumpuhkan secara lalai)
  • Fasad (Dilumpuhkan secara lalai)
  • Mekanisme pengurusan sesi
  • Ciri Artisan

Perkara terakhir ialah perkara yang benar-benar menarik perhatian saya kerana kekurangan beberapa ciri dalam Artisan tidak memberi kesan langsung kepada prestasi aplikasi.

Jika anda tidak pernah mendengar tentang Artisan, sila ambil perhatian bahawa ia adalah utiliti baris perintah yang berkuasa yang berinteraksi dengan Laravel atau Lumen, membantu anda membangunkan aplikasi anda.

Ketiadaan sumber ini secara langsung memberi kesan kepada produktiviti pembangun.

Dalam hubungan pertama saya dengan Lumen, saya terlepas arahan:

$ php artisan serve
Salin selepas log masuk

Jika tiada arahan "serve", alternatifnya ialah menggunakan pelayan terbina dalam PHP sendiri, menggunakan arahan:

$ php -S localhost:8000 -t public/
Salin selepas log masuk

Nampak simple tapi tak praktikal.

Dan dengan mengambil kira perkara ini, tentang mengelak daripada menaip arahan ini setiap kali anda memuat naik pelayan, saya membuat pelarasan yang diperlukan untuk membawa kembali arahan "serve" ke Lumen.

Mari kita pergi selangkah demi selangkah.

  1. Buat fail ServeCommand.php
<?php

// File: app/Console/Commands/ServeCommand.php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use Symfony\Component\Console\Input\InputOption;

class ServeCommand extends Command
{

    protected $name = 'serve';
    protected $description = "Serve the application on the PHP development server";

    public function handle(): void
    {
        $base = $this->laravel->basePath();
        $host = $this->input->getOption('host');
        $port = $this->input->getOption('port');

        $this->info("Lumen development server started on http://{$host}:{$port}/");

        passthru('"' . PHP_BINARY . '"' . " -S {$host}:{$port} -t \"{$base}/public\"");
    }

    protected function getOptions(): array
    {
        $url = env('APP_URL', '');
        $host = parse_url($url, PHP_URL_HOST);
        $port = parse_url($url, PHP_URL_PORT);

        // Defaults
        $host = $host ? $host : 'localhost';
        $port = $port ? $port : 8080;

        return [
            ['host', null, InputOption::VALUE_OPTIONAL, 'The host address to serve the application on.', $host],
            ['port', null, InputOption::VALUE_OPTIONAL, 'The port to serve the application on.', $port],
        ];
    }

}

Salin selepas log masuk
  1. Sertakan panggilan dalam Kernel.php
<?php

// File: app/Console/Kernel.php

namespace App\Console;

use Laravel\Lumen\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel
{
    protected $commands = [
        // Add Support to Artisan Serve
        Commands\ServeCommand::class,
    ];
}

Salin selepas log masuk

Sedia!! Sekarang gunakan sahaja.

$ php artisan serve 
Salin selepas log masuk
Lumen development server started on http://localhost:8080/
[Mon Sep 27 19:38:07 2021] PHP 8.1.0RC2 Development Server (http://localhost:8080) started
Salin selepas log masuk

Atas ialah kandungan terperinci Artisan Serve no Lumen. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!