Hướng dẫn dùng symfony form trong PHP

Đã đăng vào thg 4 14, 2020 2:38 CH 5 phút đọc

Tuần vừa qua mình mới join vào dự án ec-cube là một cms xây dựng dựa trên symfony framework, trong bài viết này mình sẽ hướng dẫn các bạn xây dựng ứng dụng CRUD cơ bản.

Giới thiệu

Symfony is a set of PHP Components, a Web Application framework, a Philosophy, and a Community — all working together in harmony.

  • Symfony framework: Một PHP framework hàng đầu để tạo các trang web và ứng dựng web. Được xây dựng dựng dựa trên các Symfony Component.
  • Symfony component: Tập các thành phần tách rời và có thể tái sử dụng, một số ứng dụng PHP được xây dựng như Drupal, phpBB, eZ Publish...
  • Community: Cộng đồng khoảng hơn 600.000 developers đến từ hơn 120 quốc gia.
  • Philosophy: Thúc đẩy tính chuyên nghiệp, thực tiễn tốt nhất, tiêu chuẩn hóa và khả năng tương tác của các ứng dụng.

Cài đặt

  • Chạy lên command line wget //get.symfony.com/cli/installer -O - | bash

  • Cài đặt nó trên global: mv /home/linhdn1198/.symfony/bin/symfony /usr/local/bin/symfony

  • Kiểm tra version

  • Tạo project mới symfony new my_project_name hoặc composer create-project symfony/website-skeleton my_project_name

Bắt đầu

Cài đặt một số component

  • composer require annotations: Cho phép bạn sử dụng chú thích để định nghĩa 1 route VD:
  • composer require twig: Template cho phép bạn sử dụng một số cú pháp đặc thù ngoài view.
  • composer require symfony/maker-bundle --dev: Cho phép bạn thực hiện lệnh command make để tạo entity, controller, form ...
  • composer require symfony/orm-pack: Hỗ trợ thao tác với database.
  • composer require form validator security-csrf: Hỗ trợ tạo form, validate dữ liệu và bảo mật csrf cho form.

Các thành phần trong symfony

  • Entity: Lớp này sử dụng Doctrine để tạo các thực thể và giao tiếp với CSDL.
    • @ORM\Entity[repositoryClass="App\Repository\SimNumberRepository"]: Định nghĩa lớp Repository cho Entity.
    • @ORM\Id[] Set $id là khóa chính.
    • @ORM\GeneratedValue[] Set giá trị tự sinh.
    • @ORM\Column[type="integer"] Set kiểu dữ liệu.
    • Ngoài ra còn có quan hệ: @OneToMany, @ManyToOne, @ManyToMany...

Chủ Đề