Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bermula dengan PHP: Symfony Framework

Bermula dengan PHP: Symfony Framework

WBOY
WBOYasal
2023-05-20 08:13:351182semak imbas

Bermula dengan PHP: Symfony Framework

Disebabkan aplikasinya yang meluas dalam bidang pembangunan web, PHP telah menjadi bahasa pengaturcaraan yang sangat penting. Rangka kerja Symfony, sebagai rangka kerja PHP yang terkemuka, telah mendapat pujian yang meluas, kebolehlanjutan, sokongan komuniti dan sokongan untuk pengaturcaraan berorientasikan objek menjadikannya sangat berguna apabila membangunkan projek berskala besar. Dalam artikel ini, kami akan menyediakan beberapa sumber berguna untuk membantu pemula memahami rangka kerja Symfony dan mula menggunakannya.

  1. Gambaran Keseluruhan Rangka Kerja

Symfony ialah rangka kerja aplikasi web PHP sumber terbuka percuma dan persekitaran pembangunan bersepadu. Ia adalah cara yang cekap untuk bekerja untuk pembangunan web, direka untuk mengoptimumkan produktiviti pembangun dan melaksanakan amalan terbaik.

Symfony terdiri daripada berbilang komponen PHP yang boleh diguna semula. Pustaka lain rangka kerja memanjangkan komponen ini dan mungkin termasuk enjin templat, lapisan abstraksi pangkalan data, pembina borang dan banyak tugas pembangunan web biasa yang lain.

  1. Pemasangan dan Konfigurasi

Mula-mula kita perlu memasang Composer, Composer ialah pengurus pakej PHP yang boleh memasang rangka kerja Symfony dengan mudah. Untuk memasang Komposer, lawati http://getcomposer.org dan ikuti tindakan yang diperlukan.

Selepas memasang Komposer, kami boleh menggunakannya untuk memasang rangka kerja Symfony. Jalankan arahan berikut dalam baris arahan:

composer create-project symfony/skeleton my_project_name

Perintah ini akan mencipta direktori bernama my_project_name dalam direktori semasa dan memasang rangka Symfony.

  1. Lihat

Dalam aplikasi web, paparan ialah segala-galanya yang dilihat pengguna. Enjin templat ranting Symfony menjadikan membina antara muka pengguna dengan sangat mudah. Twig ialah enjin templat moden untuk PHP yang boleh digunakan untuk membina aplikasi web dalam sebarang saiz.

Sintaks Twig sangat ringkas dan mudah dibaca serta diselenggara. Berikut ialah contoh templat Twig:

<!DOCTYPE html>
<html>
    <head>
        <title>{% block title %}Welcome!{% endblock %}</title>
        {% block stylesheets %}{% endblock %}
    </head>
    <body>
        {% block body %}{% endblock %}
        {% block javascripts %}{% endblock %}
    </body>
</html>
  1. Pengawal

Pengawal ialah salah satu komponen penting dalam rangka kerja Symfony, ia biasanya bertanggungjawab untuk mengendalikan permintaan, mendapatkan semula data dan Tunjukkan pandangan yang sesuai. Pengawal hendaklah pendek dan ringkas, dan hendaklah mengikut garis panduan pengekodan berorientasikan objek.

Berikut ialah contoh asas pengawal Symfony:

namespace AppController;

use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAnnotationRoute;

class HelloController
{
    /**
     * @Route("/hello/{name}", name="hello")
     */
    public function hello($name)
    {
        return new Response('Hello '.$name);
    }
}

Dalam contoh ini, kami telah mencipta kelas yang dipanggil HelloController yang mengandungi kaedah yang dipanggil hello. Parameter kaedah ini dinamakan $name, yang digunakan untuk menerima parameter daripada URL permintaan. Apabila pengawal diminta, kaedah hello akan mengembalikan respons ringkas yang mengandungi teks "Hello" bersama-sama dengan parameter nama yang diluluskan.

  1. Pangkalan Data dan Doktrin

Dalam Symfony, kami boleh mengendalikan pangkalan data dengan mudah menggunakan Doctrine ORM. Doktrin ialah ORM sumber terbuka untuk PHP yang menyediakan cara mudah tetapi berkuasa untuk memanipulasi pangkalan data.

Berikut ialah langkah-langkah untuk mengkonfigurasi Doctrine ORM dalam Symfony:

  • Buat fail dalam config/packages/doctrine.yaml dan tambah baris berikut:
doctrine:
    dbal:
        url: '%env(resolve:DATABASE_URL)%'
        driver: pdo_mysql
  • Kemudian tambah baris berikut dalam config/packages/orm.yaml:
doctrine:
    orm:
        auto_generate_proxy_classes: true
        naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
        auto_mapping: true
  • Kemudian gunakan EntityManager dalam aplikasi Symfony.

Berikut ialah contoh pertanyaan pangkalan data menggunakan Symfony EntityManager:

namespace AppController;

use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAnnotationRoute;
use DoctrineORMEntityManagerInterface;

class HelloController
{
    /**
     * @Route("/hello/{name}", name="hello")
     */
    public function hello($name, EntityManagerInterface $entityManager)
    {
        $user = $entityManager->getRepository('App:User')->find($userId);

        return new Response('Hello ' . $user->getFirstName());
    }
}
  1. Laluan

Dalam pengawal Symfony kita boleh menggunakan definisi laluan Pengendali permintaan berasaskan URL. Symfony menjadikan penentuan laluan sangat mudah dan menyokong parameter dinamik.

Berikut ialah contoh mentakrifkan laluan dalam Symfony:

use SymfonyComponentRoutingAnnotationRoute;

class HelloController
{
    /**
     * @Route("/hello/{name}", name="hello")
     */
    public function hello($name)
    {
        return new Response('Hello '.$name);
    }
}

Dalam contoh ini, kami telah menentukan laluan dengan laluan /hello/{name} menggunakan anotasi @Route pada Kelas HelloController. Parameter {name} digunakan untuk memadankan parameter nama yang dihantar dalam URL.

  1. Ringkasan

Rangka kerja Symfony menyediakan set alat yang berkuasa dan fleksibel untuk membina aplikasi web moden. Dalam artikel ini, kami menyediakan beberapa sumber dan panduan yang berguna untuk membantu anda memahami rangka kerja Symfony dan mula menggunakannya. Kini anda boleh meneroka lebih banyak ciri Symfony, seperti borang, keselamatan, perkhidmatan dan acara, untuk menggunakan rangka kerja Symfony dengan lebih berkesan semasa pembangunan web.

Atas ialah kandungan terperinci Bermula dengan PHP: Symfony Framework. 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