2009-01-27 35 views
5

Tôi khá mới đối với php và tôi đang cố gắng quyết định cách tốt nhất để tổ chức các trang và sử dụng PHP, phân phối chúng. Hai ý tưởng cơ bản mà tôi đã có là:Cấu trúc trang web

  • Một loạt các trang riêng lẻ với PHP bao gồm đầu trang, chân trang và menu.

  • Một trang chính có trình đơn, đầu trang và chân trang, cùng với phần bao gồm cho nội dung chính. Tên trang đến từ một biến trong URL.

Có ai có đề xuất hoặc ý tưởng nào khác không? Đây là những thứ khá cơ bản, nhưng tôi đã tìm ra nếu có ai có ý tưởng hay hơn.

Cảm ơn

Trả lời

0

nó thực sự phụ thuộc vào trang web bạn đang thiết kế. nếu bạn muốn sử dụng lại các thành phần của bạn thì cách tiếp cận bằng cách sử dụng bao gồm sẽ hoạt động. bạn có thể cố gắng để có một loại trang chủ và chỉ hiển thị trang bạn muốn ở bên trong trang đó

2

Tôi thích các trang riêng lẻ có chứa tiêu đề và không có gì.

Tôi phải duy trì trang web nơi nhà phát triển ban đầu đã sử dụng một trang có biến số trong URL và đó là một nỗi đau. Nó làm cho nó khó khăn để làm bất kỳ thay đổi khác hơn là thêm các trang tương tự mới. Mặc dù anh ta cũng sử dụng các khung hình, do đó cũng có thể là một phần của vấn đề.

2

Với hai lựa chọn này tôi sẽ đi với số 2. Nếu trang web của bạn phát triển đến mức bạn cần một khung thích hợp, hãy di chuyển các trang đơn lẻ mà không cần bao gồm tất cả ('header.php'); công cụ sẽ dễ dàng hơn nhiều. Đối với điểm thưởng sử dụng mô hình và xem các thư mục trong đó để đặt truy cập db và logic hiển thị tương ứng và bạn đang một nửa cách để một true MVC environment.

chỉnh sửa để thêm- một chỉ mục duy nhất với điều kiện bao gồm cũng cung cấp cho ứng dụng của bạn một điểm nhập cảnh có thể rất có giá trị cho bảo mật.

0

Nó làm cho cuộc sống của bạn dễ dàng hơn nhiều để có trình đơn và tiêu đề trong header.php và chân trang, sopyright vv trong footer.php. Sau đó, chỉ bao gồm các tệp đó vào mỗi trang bạn tạo.

0

Tùy thuộc.

Nội dung của trang được lưu trữ trong cơ sở dữ liệu phải không? Nếu có, bạn có thể là tốt nhất bằng cách có một mẫu cho mỗi trang nội dung chỉ nhận nội dung, tiêu đề và siêu thông tin từ cơ sở dữ liệu và chèn nó vào mẫu. Bạn thậm chí có thể có các loại trang khác nhau (tin tức, trang nội dung tĩnh, trang lưu trữ, vv), tất cả đều có thể có mẫu khác.

Nếu nội dung nằm trong nhiều tệp phẳng hoặc ít hơn, hai đề xuất bạn đã thực hiện và tôi nghĩ rằng gợi ý sau là cách dễ nhất để duy trì.

1

Chính bằng PHP là bạn cần phải "GIỮ TRÌNH ĐĂNG KÝ VÀ CHẾ ĐỘ ĐĂNG KÝ CHƯƠNG TRÌNH". Hay nói cách khác, hãy đảm bảo rằng bạn không lặp lại html tới màn hình ở giữa các tập lệnh mà bạn thực hiện công việc kinh doanh hoặc xử lý logic của mình.

Giải pháp thứ hai của bạn là khá phổ biến (và không tệ) giải pháp cho vấn đề. Nó cho phép bạn xây dựng một trang duy nhất với tất cả thông tin bố cục của bạn, sau đó bao gồm nội dung trang cụ thể được hiển thị.Rõ ràng điều này sẽ không hoạt động tốt nếu bạn cần trao đổi các phần lớn của mẫu bố cục từ trang này sang trang khác. Trong trường hợp đó, giải pháp đầu tiên của bạn sẽ hoạt động tốt hơn.

Cuối cùng, tôi thực sự khuyên bạn nên xem xét các khung công tác PHP khác nhau ở đó như Zend Framework, Symfony hoặc CakePHP để xem cách chúng xử lý vấn đề này như thế nào. Nếu bạn tìm thấy một trong những bạn thích, sau đó chỉ cần sử dụng nó. Nếu không, bạn vẫn có khả năng nhận được một số ý tưởng tuyệt vời về cách cấu trúc trang web của riêng bạn.

0

Sau khi sử dụng với cả hai kỹ thuật trong quá khứ, tôi thấy rằng trước đây là linh hoạt hơn, nhưng nó có thể khuyến khích thực hành kém. Sau này cung cấp trải nghiệm người dùng nhất quán hơn, vì nó giữ tất cả logic trên toàn trang web của bạn ở một nơi và ngăn cản bạn thực hiện một ngoại lệ một lần.

Tôi thực sự đang trong quá trình chuyển đổi trang web tôi đã viết một vài năm trước từ mô hình trình đơn/chân trang/trình đơn được đưa vào mô hình trang chính. Hệ thống ban đầu bao gồm được làm sạch và đơn giản và hoạt động rất tốt. Tuy nhiên, tôi càng tạo thêm nội dung, tôi càng nhận ra rằng dự án đã bắt đầu vi phạm DRY principle. Mỗi trang trên trang web bắt đầu và kết thúc theo cùng một cách (lặp lại phải luôn gửi tín hiệu cảnh báo) và tôi đã bị cám dỗ để đưa ra ngoại lệ đối với bố cục chuẩn bằng cách bỏ bao gồm cá nhân và viết thay thế một lần. (Rất may, tôi đã không mang đến sự cám dỗ đó thường xuyên!)

Tái cấu trúc trang web làm cho các trang nhất quán hơn, bố cục dễ cập nhật hơn (bạn có thể xem toàn bộ điều "trong nháy mắt") và các trang mới dễ tạo hơn.

6

Tôi đã đi theo cả hai hướng trước và mặc dù cả hai đều có ưu và khuyết điểm tôi nghiêng về tùy chọn thứ hai của bạn, trang chính duy nhất chứa bố cục. Điều này tương tự như cách các trang chủ hoạt động trong các ứng dụng xuất bản trên máy tính để bàn và ASP.NET có một triển khai tốt đẹp về ý tưởng này - không phải là tôi đang nói bạn nên chuyển đổi công nghệ.

Tuy nhiên, nếu bạn thực hiện tuyến đường này, hãy sử dụng mod_rewrite để đưa đường dẫn của bạn vào trang cái PHP, thay vì truy vấn trong URL của bạn. tập tin .htaccess của bạn nên chứa một cái gì đó như:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [S=1] 
RewriteRule ^(.*)$ /index.php?path=$1 [QSA] 

này về cơ bản nói nếu các tập tin họ yêu cầu không tồn tại, thay vì đưa ra một tay lỗi 404 tắt chế biến để index.php với đường dẫn URL trong một chuỗi truy vấn biến. Vì vậy, "http://example.com/path/to/page" kết thúc bằng cách nhấn index.php với $ _GET ['path'] được đặt thành "/ path/to/page". Từ đó bạn có thể lấy nội dung từ cơ sở dữ liệu, tệp phẳng hoặc những gì có bạn. Bạn cũng có thể chọn các mẫu khác nhau dựa trên đường dẫn được yêu cầu.

+0

đồng ý với quy tắc viết lại. bạn muốn thực thi một điểm nhập cảnh duy nhất và không cho phép người dùng gọi một cái gì đó như qry_deleteUser.php mà không phải trải qua chỉ mục. –

+0

@Nick: Quy tắc ghi đè này sẽ không ngăn chặn loại truy cập đó, vì nó cho phép yêu cầu các tệp tồn tại đi thẳng. –

2

Tại sao chỉ đi nửa hướng đúng hướng? Sử dụng một trong các khung công tác MVC hiện có. Chúng là những công cụ mạnh mẽ cấu trúc mã có thể tốt hơn nhiều so với bất kỳ giải pháp tùy chỉnh nào. Đi cho MVC, tìm hiểu cách tách logic nghiệp vụ khỏi logic trình bày và từ cấu trúc dữ liệu, tăng giá trị của bạn trên thị trường việc làm với tư cách là nhân viên tiềm năng, tiết kiệm thời gian của bạn và vui vẻ.

Bạn có lẽ nên bắt đầu (nhưng không giới hạn mình) Kohana PHP vì nó có đường cong học tập nhẹ.

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