Dự án Doctrine là ngôi nhà của một bộ thư viện PHP được chọn chủ yếu tập trung vào việc cung cấp các dịch vụ bền vững và chức năng liên quan. Các dự án giải thưởng của nó là Trình ánh xạ quan hệ đối tượng và Lớp trừu tượng cơ sở dữ liệu mà nó được xây dựng trên. Bạn có thể đọc thêm về các dự án bên dưới hoặc xem danh sách tất cả các dự án
Trình ánh xạ quan hệ đối tượng [ORM] cho PHP nằm trên lớp trừu tượng cơ sở dữ liệu mạnh mẽ [DBAL]. Một trong những tính năng chính của nó là tùy chọn viết các truy vấn cơ sở dữ liệu bằng một phương ngữ SQL hướng đối tượng độc quyền có tên là Doctrine Query Language [DQL], lấy cảm hứng từ Hibernates HQL. Điều này cung cấp cho các nhà phát triển một giải pháp thay thế mạnh mẽ cho SQL, duy trì tính linh hoạt mà không yêu cầu sao chép mã không cần thiết
DBAL là một lớp trừu tượng hóa cơ sở dữ liệu mạnh mẽ với nhiều tính năng để xem xét nội quan lược đồ cơ sở dữ liệu, quản lý lược đồ và trừu tượng hóa PDO
Tài liệu
Tài liệu được render trên symfony. trang web com. Nguồn của tài liệu có sẵn trong thư mục Tài nguyên/tài liệu
Các ứng dụng web đọc và lưu dữ liệu vào cơ sở dữ liệu. Trong Symfony, điều này có thể được thực hiện bằng cách sử dụng PDO hoặc khung tùy chỉnh. Nhiều nhà phát triển đang sử dụng Doctrine, vì Symfony cung cấp khả năng tích hợp tốt cho nó. Plugin Symfony cung cấp một số phương tiện điều hướng và hoàn thành mã cho Doctrine
Hoàn thành mã cho các lược đồ, kho lưu trữ và thực thể của Doctrine
Trong trình chỉnh sửa, nhấn Ctrl+Space để gọi hoàn thành mã và thực hiện bất kỳ thao tác nào sau đây
Chỉ định một mục trong lược đồ cơ sở dữ liệu YAML .
Truy xuất một kho lưu trữ cụ thể bằng trình quản lý đối tượng của Doctrine
Gọi các phương thức của một kho lưu trữ cụ thể
Gọi các phương thức của một thực thể cụ thể được tìm nạp từ kho lưu trữ
Tạo truy vấn trên đối tượng/mô hình quan hệ với Doctrine QueryBuilder .
Chỉ định các trường để tìm kiếm khi gọi các chức năng như
findBy
,findAllBy
hoặc
0symfony console doctrine:database:create
PhpStorm cũng cho phép bạn làm việc trực tiếp với cơ sở dữ liệu
Điều hướng mã cho các thực thể và trường
Để điều hướng đến phần khai báo của một thực thể, đặt dấu mũ tại vị trí sử dụng của nó và nhấn Ctrl+B. Ngoài ra, Ctrl + Nhấp vào cách sử dụng. Nếu cả khai báo thực thể và kho lưu trữ đều được định vị, hãy chọn một khai báo cụ thể để điều hướng đến từ menu bật lên
Doctrine hiện được định cấu hình để nói chuyện với cơ sở dữ liệu của chúng tôi, nằm bên trong bộ chứa Docker. Đó là nhờ máy chủ nhà phát triển Symfony hiển thị biến môi trường
symfony console doctrine:database:create
1 này, biến này trỏ đến vùng chứa. Đối với tôi, vùng chứa có thể truy cập được trên cổng 50739Bây giờ hãy chắc chắn rằng cơ sở dữ liệu thực tế đã được tạo. Nhưng trước tiên, trong
symfony console doctrine:database:create
2, hãy xóa symfony console doctrine:database:create
3. sau đó đóng tập tin đóQuay qua thiết bị đầu cuối của bạn và chạy
Điều này in mọi lệnh
symfony console doctrine:database:create
4 có sẵn, bao gồm một loạt lệnh mới bắt đầu bằng từ symfony console doctrine:database:create
5. ồ. Hầu hết những thứ này không quan trọng lắm và chúng ta sẽ đi qua những thứ còn thiếuVí dụ: một tên là
symfony console doctrine:database:create
6. Tuyệt, hãy thử nóphp bin/console doctrine:database:create
Và. lỗi. Nhìn kĩ. nó đang cố kết nối với cổng 5432. Nhưng biến môi trường của chúng tôi đang trỏ đến cổng 50739. Như thể nó đang sử dụng giá trị
symfony console doctrine:database:create
1 từ tệp symfony console doctrine:database:create
8 của chúng tôi thay vì giá trị thực được đặt bởi tệp nhị phân SymfonyVà, trên thực tế, đó chính xác là những gì đang xảy ra. Và, nó có ý nghĩa. Khi chúng tôi làm mới trang trong trình duyệt của bạn, trang đó được xử lý thông qua mã nhị phân ________ 10, giúp trang có cơ hội thêm biến môi trường
Nhưng khi chúng tôi chạy lệnh
symfony console doctrine:database:create
4 - trong đó symfony console doctrine:database:create
2 chỉ là một tệp PHP nằm trong thư mục symfony console doctrine:database:create
3, tệp nhị phân symfony console doctrine:database:create
0 không bao giờ được sử dụng như một phần của quy trình đó. Điều này có nghĩa là nó không bao giờ có cơ hội thêm biến môi trường. Và vì vậy, Symfony quay lại sử dụng giá trị từ symfony console doctrine:database:create
8Để khắc phục điều này, bất cứ khi nào chúng tôi chạy lệnh
symfony console doctrine:database:create
4 cần biến môi trường Docker, thay vì chạy symfony console doctrine:database:create
4, hãy chạy symfony console doctrine:database:create
8symfony console doctrine:database:create
Đó thực sự là một lối tắt để chạy
symfony console doctrine:database:create
4. nó không khác. Nhưng thực tế là chúng tôi đang thực hiện nó thông qua mã nhị phân symfony console doctrine:database:create
0 mang lại cho nó cơ hội để thêm các biến môi trườngKhi chúng tôi thử cái này. Vâng. Chúng tôi gặp lỗi vì dường như cơ sở dữ liệu đã tồn tại, nhưng nó đã kết nối thành công và nói chuyện với cơ sở dữ liệu
Ok, còn một chút cấu hình cuối cùng mà chúng ta cần thiết lập. Mở
symfony console doctrine:database:create
11. Tập tin này đến từ công thức. Tìm symfony console doctrine:database:create
12 và bỏ bình luận nóhọc thuyết. dbal. dòng 3 - 6server_version. '13'. dòng 8 - 43
Giá trị "13" này đề cập đến phiên bản công cụ cơ sở dữ liệu của tôi. Vì tôi đang sử dụng Postgres phiên bản 13, tôi cần 13 ở đây. Nếu bạn đang sử dụng MySQL, bạn có thể cần 8 hoặc 5. 7
Điều này giúp Doctrine xác định những tính năng mà cơ sở dữ liệu của bạn hỗ trợ hoặc không hỗ trợ. vì phiên bản mới hơn của cơ sở dữ liệu có thể hỗ trợ các tính năng mà phiên bản cũ hơn không có. Đây không phải là một phần cấu hình đặc biệt thú vị, chúng tôi chỉ cần đảm bảo rằng nó được đặt
đội được rồi. tất cả các thiết lập nhàm chán đã được thực hiện. Tiếp theo. hãy tạo lớp thực thể đầu tiên của chúng tôi. Thực thể là khái niệm cơ bản nhất trong Doctrine và là chìa khóa để nói chuyện với bảng cơ sở dữ liệu đầu tiên của chúng tôi