Cấu trúc tổ chức ứng dụng thông minh PHP?


10

Có một triệu cấu trúc hệ thống tệp đi vào vô số các dự án Nguồn mở có sẵn. Những thứ như mô-đun, tệp ngôn ngữ, tên miền, thư viện của bên thứ ba, di chuyển, quốc tế hóa, sao lưu và liên kết hệ thống đến các phần khác của hệ thống đã tạo ra nhiều cách tiếp cận để tổ chức hệ thống tệp của dự án.

Là một nhà phát triển PHP, tôi tự hỏi liệu có bất kỳ loại tiêu chuẩn hóa nào đang bắt đầu xuất hiện giữa các dự án hay không. Với PSR-0 cuối cùng chúng ta cũng có một tiêu chuẩn để đặt tên và tải tệp - nhưng tôi không biết gì về phần còn lại của hệ thống tạo nên hệ thống hoặc cách chúng có thể được xử lý một cách lành mạnh.

Chúng tôi đang xử lý nhiều vấn đề hơn là chỉ MVC, vậy ví dụ nào có các dự án lớn xử lý chính xác tất cả những điều này?


3
Là một nhà phát triển PHP đồng nghiệp, tôi sẽ không mong đợi sự tỉnh táo từ các thành phần PHP
CamelBlues

2
@CamelBlues Dựa trên tỷ lệ cơ hội thuần túy, một số nhà phát triển PHP cuối cùng đã phải làm rối và làm điều gì đó đúng đắn.
Xeoncross

Tôi đã không nhìn thấy nhiều như tiêu chuẩn hóa. Cho đến vài năm trước, bạn sẽ có các thư mục của mình cho những thứ ở phía trước (js, css) và sau đó bạn sẽ có bao gồm hoặc lib và sau đó là các mẫu hoặc chủ đề và đó là nó. Gần đây với các khung MVC được phổ biến, tất cả đều không rõ ràng. Tôi sẽ nói đừng lo lắng về việc sử dụng một tiêu chuẩn cho đến bây giờ và chỉ cần làm cho nó rõ ràng những gì đi đâu trong ứng dụng cụ thể của bạn.
Jason

Câu trả lời:


3

Thật sự không thể chuẩn hóa cách các dự án nên được đặt ra, bởi vì "nó phụ thuộc".

Nếu bạn giới thiệu một cấu trúc tiêu chuẩn, nhưng một số cấu trúc không liên quan đến các yêu cầu đang được phát triển, bạn có thể kết thúc bằng tiếng ồn bổ sung mà bạn không cần. Tương tự, nếu các tiêu chuẩn cần phải làm việc cho một loạt các dự án, chúng sẽ cần kết hợp quá nhiều kịch bản khác nhau.

Công việc của chúng tôi là các nhà phát triển là tìm kiếm các mẫu và thực tiễn tốt nhất và áp dụng chúng vào nhiệm vụ trong tay. Chúng tôi sử dụng kinh nghiệm và chuyên môn của mình để chọn cấu trúc hệ thống tệp phù hợp cho dự án mà chúng tôi đang thực hiện.


+1 Như tôi đã đồng ý với bạn, đây chắc chắn là một điểm hợp lệ. Tuy nhiên, nếu bạn loại bỏ những thứ bên ngoài ngôn ngữ (thư mục sao lưu, tập lệnh cron / build, tài sản tĩnh, v.v.) và chỉ tập trung vào chính ngôn ngữ - tôi không tin có thể đưa ra lập luận tương tự. Ngôn ngữ đã có giới hạn áp đặt. Tìm hiểu làm thế nào để sắp xếp tất cả các lớp và codeblocks của bạn để chúng có ý nghĩa cho mọi dự án là một mục tiêu thực sự và có thể đạt được.
Xeoncross

0

Dường như không có nhiều nỗ lực tiêu chuẩn hóa đang diễn ra, và thành thật mà nói, tôi không thấy lợi ích. Chỉ có một quy tắc bạn nên tuân thủ, đó là bạn không bao giờ nên có những thứ theo tài liệu không thuộc về đó (một biện pháp phòng ngừa an ninh cơ bản).

Ngoài ra, tôi chỉ đi với những gì có ý nghĩa cho dự án.

Nếu bạn đang sử dụng MVC (thông qua khung hoặc quảng cáo), thì cấu trúc cơ sở với / mô hình, / khung nhìn và / bộ điều khiển có ý nghĩa. Nhưng ngay cả khi bạn không, bạn thường có một số loại lớp truy cập dữ liệu với các lớp ánh xạ tới các thực thể dữ liệu của bạn; nó có ý nghĩa để có một thư mục cho những người đó; bạn cũng thường có một loạt các lớp logic nghiệp vụ và các hàm tiện ích, vì vậy một thư mục khác dành cho chúng; nếu bạn sử dụng một hệ thống mẫu, các mẫu sẽ chuyển sang một thư mục khác; và sau đó bạn có thể muốn có một thư mục 'thư viện', nơi bạn đặt tất cả các thư viện của bên thứ ba. (Khi bạn đã đạt đến điểm này, dù sao bạn cũng đang thực hiện MVC).

Nếu dự án thực sự lớn, nó có thể được chia thành các mô đun con chức năng; nếu các mô hình con khá độc lập, thay vào đó, nên sử dụng chúng làm mức cao nhất của bạn, với một thư mục bổ sung cho mã chung.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.