Giống như @Cyprian cho biết một gói là một tập hợp các chức năng có thể hoạt động độc lập. Khi điều đó xảy ra trong khi phát triển, chúng ta không phải lúc nào cũng biết khi nào mọi thứ riêng biệt. Nó đi kèm với thời gian.
Cá nhân, tôi đang làm việc với Symfony2 kể từ tháng Hai và tôi không bao giờ ngừng đọc sách hướng dẫn và sách liên quan để hiểu sâu hơn. Điều đó đã giúp rất nhiều và đọc rất thú vị, tôi đảm bảo với bạn :)
Đây là top favourites documentation pages, en enlightening blog posts on delicious của tôi.
Đối với câu hỏi trực tiếp của bạn, hãy quên "frontend" và "backend" như chúng ta đã làm trong symfony 1.x. Chỉ cần nghĩ về các thực thể Model (như trong hàng A SINGLE) và xây dựng trong một gói. Khi mã của bạn sẽ phát triển, bạn sẽ thấy cách tháo rời và tách biệt trong các gói. Bạn chỉ cần lưu ý để tách các chức năng của bạn bằng các phương thức nhỏ và tái cấu trúc lại.
Tôi thực sự không biết github hoạt động như thế nào hoặc cách tìm một dự án phù hợp với những gì tôi muốn làm trong một khoảng thời gian khá. Nhưng những gì bạn nói là: tạo 1 gói (appBundle hoặc coreBundle) sẽ có trang web cơ bản và sau đó cho các phần đặc biệt có thể được sử dụng cho các dự án khác (thư viện và cửa hàng) có gói của riêng họ? –
Có - chính xác. Cách tiếp cận này có một số lợi thế. Ví dụ 1) Nó hiệu quả hơn một chút 2) Bạn có thể thấy những gì bạn có thể sử dụng ở một nơi khác ngay từ cái nhìn đầu tiên. 3) IMO có dễ dàng hơn để quản lý các thử nghiệm của bạn theo cách này 4) Ứng dụng của bạn là "di động" hơn. Ngoài các phần độc lập trong ứng dụng của bạn, bạn có thể cân nhắc tạo các gói riêng cho các thứ sử dụng (ví dụ như một số lớp hoặc lớp học định nghĩa trạng thái http) hoặc một phần logic khác với ứng dụng (ví dụ: AdminBundle). Và nói chung sau nhiều lần khám phá, tôi đã khám phá ra giải pháp thuận tiện và phổ biến nhất này. – Cyprian