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.
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
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.
<!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.
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!