Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk menggunakan rangka kerja Symfony dalam pengaturcaraan PHP?

Bagaimana untuk menggunakan rangka kerja Symfony dalam pengaturcaraan PHP?

PHPz
PHPzasal
2023-06-12 12:00:101008semak imbas

Bahasa PHP telah menjadi salah satu piawaian untuk pembangunan aplikasi Internet, dan Symfony, sebagai rangka kerja PHP yang cekap dan fleksibel, digemari oleh semakin ramai pembangun PHP. Symfony menyediakan set komponen dan alatan yang kaya yang membolehkan pembangun membina aplikasi web berkualiti tinggi dengan cepat. Dalam artikel ini, kami akan memperkenalkan cara menggunakan rangka kerja Symfony dalam pengaturcaraan PHP.

  1. Pasang Symfony
    Cara paling mudah untuk memasang rangka kerja Symfony ialah menggunakan Composer ialah pengurus pergantungan PHP yang boleh membantu kami memuat turun dan memasang rangka kerja Symfony. Mula-mula, pastikan Komposer dipasang, dan kemudian masukkan arahan berikut dalam terminal:
composer create-project symfony/skeleton my-project

Arahan ini akan mencipta projek Symfony baharu bernama my-project dalam direktori semasa. Selepas ini, anda boleh memulakan aplikasi Symfony dengan menjalankan arahan berikut:

cd my-project
php -S localhost:8000 -t public
  1. Menggunakan Pengawal
    Dalam Symfony, pengawal digunakan untuk mengendalikan permintaan HTTP dan menjana respons. Pengawal boleh menjadi kelas atau fungsi penutupan. Dalam rangka kerja Symfony, kelas pengawal perlu mewarisi kelas SymfonyBundleFrameworkBundleControllerAbstractController.

Contoh pengawal mudah adalah seperti berikut:

<?php

namespace AppController;

use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;

class HelloController extends AbstractController
{
    public function index()
    {
        $message = "Hello Symfony";
        return new Response($message);
    }
}

Dalam contoh di atas, kami mencipta kelas yang dipanggil HelloController dan mencipta kaedah yang dipanggil indeks, Kaedah ini mengembalikan respons yang mengandungi rentetan "Hello Symfony".

Agar pengawal boleh diakses, laluan perlu ditentukan dalam penghala. Penghala memetakan permintaan kepada pengawal yang betul. Dalam pengawal, kami menggunakan anotasi untuk menentukan laluan. Berikut ialah contoh penghala mudah:

<?php

use SymfonyComponentRoutingLoaderConfiguratorRoutingConfigurator;

return function (RoutingConfigurator $routes) {
    $routes->add('hello', '/hello')
        ->controller([HelloController::class, 'index']);
};

Dalam penghala di atas, kami mentakrifkan laluan bernama "hello", laluannya ialah "/hello", dan permintaan akan dihalakan ke indeks kaedah HelloController.

  1. Gunakan templat Twig
    Twig ialah enjin templat PHP moden, fleksibel dan cekap yang disepadukan dengan lancar dengan rangka kerja Symfony. Enjin templat Twig boleh membantu anda menyusun kod anda dengan lebih cekap dan juga meningkatkan kebolehgunaan semula kod. Berikut ialah contoh templat Twig yang mudah:
<!DOCTYPE html>
<html>
    <head>
        <title>Hello Symfony</title>
    </head>
    <body>
        <h1>{{ message }}</h1>
    </body>
</html>

Dalam contoh templat di atas, kami menggunakan templat yang mengandungi pembolehubah mesej. Enjin templat Twig secara automatik akan menyuntik pembolehubah yang diperlukan. Berikut ialah pengubahsuaian pada pengawal dan penghala:

<?php

class HelloController extends AbstractController
{
    public function index()
    {
        return $this->render('hello.html.twig', [
            'message' => 'Hello Symfony'
        ]);
    }
}

<?php

use SymfonyComponentRoutingLoaderConfiguratorRoutingConfigurator;

return function (RoutingConfigurator $routes) {
    $routes->add('hello', '/hello')
        ->controller([HelloController::class, 'index'])
        ->methods(['GET'])
        ->defaults(['_format' => 'html']);
};

Dalam contoh di atas, kami mengubah suai fungsi indeks dalam HelloController supaya ia mengembalikan templat Twig yang diberikan. Pada masa yang sama, kami juga menambah item format HTML lalai dalam penghala supaya templat Twig boleh dipaparkan dengan betul.

  1. Menggunakan Doktrin ORM
    Doktrin ialah alat pemetaan hubungan objek PHP yang popular yang membantu anda memetakan kelas PHP ke jadual pangkalan data. Menggunakan ORM Doktrin, kami boleh menggunakan pangkalan data dengan mudah dalam aplikasi Symfony.

Berikut ialah contoh entiti ringkas untuk mewakili maklumat pengguna:

<?php

namespace AppEntity;

use DoctrineORMMapping as ORM;

/**
 * @ORMEntity
 * @ORMTable(name="users")
 */
class User
{
    /**
     * @ORMId
     * @ORMGeneratedValue
     * @ORMColumn(type="integer")
     */
    private $id;
    /**
     * @ORMColumn(type="string", length=255)
     */
    private $name;

    public function getId(): ?int
    {
        return $this->id;
    }

    public function getName(): ?string
    {
        return $this->name;
    }

    public function setName(string $name): self
    {
        $this->name = $name;

        return $this;
    }
}

Dalam contoh di atas, kami mentakrifkan kelas entiti bernama Pengguna, yang sepadan dengan jadual pangkalan data bernama pengguna. Kami juga mentakrifkan lajur integer yang meningkat secara automatik dipanggil id dan lajur rentetan dipanggil nama.

Dalam Symfony, kami boleh menggunakan Doctrine ORM untuk membuat pertanyaan dan mengubah suai entiti dalam pangkalan data dengan mudah. Berikut ialah contoh pertanyaan mudah:

<?php

namespace AppController;

use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAnnotationRoute;
use DoctrineORMEntityManagerInterface;
use AppEntityUser;

class UserController extends AbstractController
{
    /**
     * @Route("/users/{id}", name="user_show")
     */
    public function show($id)
    {
        $user = $this->getDoctrine()
            ->getRepository(User::class)
            ->find($id);

        if (!$user) {
            throw $this->createNotFoundException(
                'No user found for id '.$id
            );
        }

        return $this->render('user/show.html.twig', [
            'user' => $user,
        ]);
    }
}

Dalam contoh di atas, kami telah menentukan kelas pengawal yang dipanggil UserController yang mempunyai kaedah yang dipanggil show yang menerima parameter ID dan mengembalikan halaman HTML yang mengandungi maklumat pengguna.

Ringkasnya, rangka kerja Symfony ialah rangka kerja PHP yang sangat berkuasa dan cekap yang boleh membantu kami membina aplikasi web berkualiti tinggi. Menggunakan Symfony, kami boleh menulis kod yang cekap, boleh diguna semula dengan pantas dan menyepadukan dengan rangka kerja dan alatan luaran, seperti templat Twig dan Doctrine ORM. Jika anda seorang pembangun PHP, saya percaya anda akan sangat menghargai penggunaan Symfony untuk menulis kod.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan rangka kerja Symfony dalam pengaturcaraan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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