2010-06-04 33 views
8

Tôi biết PHP và chỉ mới bắt đầu với MySql (nhưng có kế hoạch sử dụng ODBC). Tôi không cần bất kỳ cuốn sách nào giải thích điều đó.Ứng dụng web: để khung hoặc không làm khung?

Tôi có thể đủ điều kiện để phát triển một trang web đơn giản, nhưng nhằm mục đích tham gia vào các ứng dụng khá tham vọng. Tôi tưởng tượng rằng hầu như tất cả các ứng dụng web có một số tính phổ biến như bảo mật, khả năng mở rộng, vv (tôi hoàn toàn không có ý tưởng làm thế nào để phân phối một cơ sở dữ liệu hoặc một ứng dụng trên máy chủ máy chủ, ví dụ).

Vì tôi không thể thấy trước được bản chất chính xác của các ứng dụng mà tôi có thể phát triển (ngoài PHP & ODBC sẽ tham gia), có bất kỳ điểm nào trong việc kết hôn với khung hay không. và cá nhân hóa nó để biến nó thành khung của riêng tôi.

Nếu khung hiện có, thì khung nào? Trợ giúp duy nhất tôi có thể đưa ra là tôi không có khả năng làm các trang web, cổng thông tin, trang web mua sắm, v.v., có thể dựa nhiều hơn vào theo dõi tài sản và khai thác dữ liệu.

Trả lời

6

Sử dụng một khuôn khổ giúp bạn tiết kiệm một lượng thời gian và giúp bạn tổ chức các ứng dụng của bạn mroe logic.

Nếu ứng dụng nhỏ thì các khung như CodeIgniter hoặc Kohana là lý tưởng.

Nếu bạn đang xây dựng một ứng dụng lớn hơn cần phải mở rộng quy mô Symfony hoặc possiby Zend là những thứ cần xem xét.

Nếu bạn đã bắt đầu ứng dụng của bạn trong Symfony bạn sẽ instanly nhận được:

  • url viết lại sử dụng các tuyến đường
  • một khuôn khổ hình thức để xử lý tất cả mọi thứ để làm với web của bạn tạo thành
  • quốc tế và nội địa hóa
  • gửi email
  • lưu vào bộ nhớ cache
  • trình tạo khu vực quản trị, để giúp bạn thêm dữ liệu nhanh chóng
  • khung kiểm tra đơn vị

Cộng với toàn bộ khuôn khổ có thể mở rộng và có thể bảo trì cho phù hợp với nhu cầu của bạn.

Bắt đầu không có khuôn khổ, bạn phải tự mình viết tất cả những điều này. Hoặc tích hợp một số mô-đun nguồn mở khác nhau.

Hy vọng điều này sẽ hữu ích.

2

Các khung công tác tốt cung cấp cho bạn giải pháp sẵn sàng cho các sự cố thường gặp. Tái phát minh các giải pháp cho chính mình có lẽ sẽ là công việc quá mức. Như một bài tập học tập sắp tới với các công cụ cho yourslef của bạn có một số giá trị. Để có được một công việc thực sự được thực hiện hiệu quả, hãy sử dụng một khung công tác.

Điều này cho rằng khung tốt tồn tại trong thế giới của bạn ...

+1

+1. Mặc dù hầu hết các khuôn khổ ra có cố gắng để giải quyết tất cả các vấn đề cùng một lúc và tương thích với bất kỳ công nghệ phổ biến, nhưng hiếm khi excell nhiệm vụ speficic. Hầu hết thời gian bạn gió lên hacking xung quanh rất nhiều trong khuôn khổ đó. Cách khác là viết khung ứng dụng cụ thể của riêng bạn. Một nguyên tắc nhỏ, mà tôi tìm thấy cho bản thân mình, đó là, nếu bạn làm chủ một khung công tác, bạn cực kỳ hiệu quả trong khi nó đáp ứng các yêu cầu của bạn, nhưng có thể làm chậm đáng kể băng qua đường đó. một khung làm việc riêng mất nhiều thời gian để thiết kế và viết, nhưng không có vấn đề đó (nếu bạn làm đúng!). – back2dos

1

Khung là tuyệt vời để đảm bảo bạn mã hóa thời trang phù hợp và mã của bạn có thể đọc được. Họ cũng cung cấp rất nhiều thư viện mã mà sẽ có thể giúp bạn tiết kiệm rất nhiều thời gian trong việc phát triển các ứng dụng web.

Zend framework có một số lượng lớn thư viện mã mà bạn có thể đưa vào ứng dụng của mình để mở rộng nó dễ dàng và khai thác dữ liệu có quyền truy cập vào các thư viện này sẽ rất có lợi vì tôi chắc chắn đã có nhiều thư viện khai phá dữ liệu làm cho Zend.

Khuôn khổ Symfony tuyệt vời để phát triển trang web một cách nhanh chóng và rất nghiêm ngặt khi sử dụng innodb cho các bảng cơ sở dữ liệu của nó đảm bảo tính toàn vẹn của cơ sở dữ liệu và hữu ích nếu bạn định phát triển cơ sở dữ liệu quan hệ chặt chẽ. Trình tạo quản trị cũng rất nhanh để phát triển các hệ thống quản lý nội dung cho các trang web mà bạn thiết kế.

Nếu bạn định thực hiện một khung công tác, tôi sẽ xem hướng dẫn này http://anantgarg.com/2009/03/13/write-your-own-php-mvc-framework-part-1/ hướng dẫn bạn qua khung công tác MVC đầu tiên và đơn giản hơn nhiều so với việc chuyển thẳng vào một khung công tác đầy đủ như Zend. Tôi sẽ chỉ làm theo hướng dẫn này cho đến khi bạn có một nắm bắt phong nha mã hóa trong một phong cách mvc, nó không thực sự có giá trị tái phát minh ra bánh xe do số lượng thời gian liên quan và chất lượng của các khuôn khổ hiện có.

Hope this helps

Luke

1

Đã có một số câu trả lời hay cho câu hỏi "khung công tác" nào cho PHP trên StackOverflow, vì vậy tôi sẽ không tham gia vào các câu hỏi đó.

Tuy nhiên, theo như thư viện, tôi khuyên bạn nên sử dụng ADODB library (nhập dữ liệu đầu vào thích hợp dễ dàng hơn, hỗ trợ nhiều DB, API tốt hơn các lớp DB riêng của PHP) và viết một vài lớp của riêng bạn.

Một ví dụ điển hình về khuôn khổ "lite" cung cấp khuôn mẫu (và đó cũng là một ví dụ tốt về khung viết tốt) là Smarty (được W3C sử dụng trên trang web của họ - không phải là xác nhận xấu). Đối với một số người có vẻ dư thừa để có một ngôn ngữ lập trình trong PHP, nhưng nó giúp thực thi một mức độ đáng chú ý của việc tách logic trình bày so với logic ứng dụng.

Tôi nghĩ tốt nhất là nên tránh các khung công tác trên PHP cho đến khi bạn thấy điều gì đó thực sự đáp ứng nhu cầu mà bạn không thể giải quyết dễ dàng mà không có nó. Theo tôi, bạn vui lòng viết các lớp của riêng mình và các khung công tác cụ thể cho trang web nhỏ, bạn sẽ dễ dàng đánh giá các khung công tác khác dễ dàng hơn (tôi coi đây là một thách thức duy nhất với PHP vì có một chút qua việc cung cấp các khung công tác giả tạo để tìm ra những khung tốt).

+0

+1 Cảm ơn thư viện ADODB. Tôi đã làm đồ chơi với Smarty cho một trang web, trái ngược với một ứng dụng, nhưng đồng ý rằng khuyến nghị của W3C có nghĩa là một cái gì đó. Nhiều người dường như đề nghị Symfony, vì vậy nó giống như một chéo giữa đó và lăn của riêng tôi. Tôi sẽ điều tra thêm. – Mawg

+1

Đến trên ADODB là một lớn "Tại sao tôi chưa nghe nói về điều này trước khi ?!" thời điểm cho tôi.Sẽ được quan tâm để biết những gì kinh nghiệm của bạn là nếu bạn cảm thấy như cập nhật bài viết xuống dòng. –

+1

Tôi đến muộn bên, nhưng sau khi làm việc với cả ADODB và PDO, PDO đã làm việc tốt hơn cho các trường hợp của tôi. –

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