2012-06-18 39 views
8

Ứng dụng mới mà tôi đang làm là sử dụng Symfony2. Không có kết nối cơ sở dữ liệu để sử dụng. Thay vào đó nó được xây dựng dựa trên nhiều cuộc gọi dịch vụ web. Theo Symfony/app/config, tôi muốn xóa tất cả các mục nhập database_ * nhưng khi tôi làm điều đó, tôi nhận được một sốcách tắt cấu hình cơ sở dữ liệu trong symfony2

ParameterNotFoundException: You have requested a non-existent parameter "database_driver" 

Lỗi là hiển nhiên. Nhưng làm cách nào để tách và xóa cấu hình cơ sở dữ liệu khỏi ứng dụng?

Trả lời

10

Xóa khởi tạo DoctrineBundle khỏi cấu hình AppKernel và doctrine từ các tệp app/config/config*.yml của bạn. Nó đăng ký cấu hình học thuyết trong thùng chứa. Đó là lý do tại sao container phàn nàn nếu bạn cố gắng loại bỏ các tham số (gói được kích hoạt và tìm kiếm các tham số đó).

Trong các phiên bản mới nhất của Symfony, bạn cũng sẽ cần xóa kênh học thuyết khỏi cấu hình monolog trong config_dev.yml (loại bỏ đường dây channels: ["doctrine"]).

+1

Tôi cũng đã phải bình luận/loại bỏ dòng "kênh: [" học thuyết "]" trong cấu hình monolog của config_dev.yml – Xosofox

+0

Cảm ơn! Đã cập nhật câu trả lời. –

1

Symfony2 được tích hợp với Doctrine2 theo mặc định. Bạn không thể xóa cấu hình, trừ khi bạn đặt một gói tích hợp khác.

Sẽ rất dễ dàng nếu bạn chỉ để trống các trường này. Một kết nối đến cơ sở dữ liệu sẽ chỉ được thực hiện khi ứng dụng yêu cầu nó, trong trường hợp của bạn, không nên xảy ra.

+0

Điều đó không đúng. Bạn không cần phải sử dụng Doctrine và nó có thể vô hiệu hóa nó. –

+0

Bạn nói đúng, nhưng tôi vẫn không khuyên bạn nên làm như vậy. :) –

+1

Tại sao vậy? Không có hại trong việc vô hiệu hóa Doctrine. Nếu bạn sử dụng chú thích, bạn cần phải giữ cho học thuyết phổ biến nhưng điều đó không giống như dbal/orm. –

Các vấn đề liên quan