2010-08-16 31 views
16

Tôi có một trang web đơn giản để phát triển và muốn học PHP khi tôi đi. Tôi muốn trang web được bảo mật, có thể mở rộng và dễ bảo trì. Tôi có nên học một khuôn khổ và PHP đồng thời không? Nếu tôi xây dựng ra khỏi một khuôn khổ sẽ có rất nhiều mã không quen thuộc trong chơi. Bạn có nói điều này làm tăng rủi ro an ninh không?Nếu một người không có kinh nghiệm sử dụng PHP có khung công tác như CakePHP hay Symfony?

+0

Xem chủ đề này về sự khác biệt giữa CakePHP và Symfony: http://stackoverflow.com/questions/1242060/symfony-vs-cakephp –

Trả lời

20

Không có gì về việc sử dụng khung làm cản trở bạn học PHP và sử dụng khung được thiết lập sẽ giảm rủi ro bảo mật vì bạn sẽ xử lý mã được kiểm tra tốt để xử lý các tác vụ phổ biến.

Tại cốt lõi của hầu hết các khuôn khổ PHP chơi trong những ngày này là việc ba bước đơn giản này

  1. URL được yêu cầu và chuyển qua một bootstrap trung tâm index.php tập tin

  2. Các Tên URL được sử dụng để lấy được tên lớp và tên phương thức (và phương thức hành động). Đây là điểm vào chính của bạn và nơi bạn bắt đầu viết PHP để xử lý yêu cầu

  3. Ở cuối phương pháp này, quyền kiểm soát được chuyển giao cho một mẫu xem có quyền truy cập vào các giá trị nhất định bạn đã đặt trong bước hai.

Chọn một khuôn khổ, tìm hiểu cách thức làm việc trên, và sau đó viết bất kỳ loại PHP bạn muốn trong phương thức hành động và quan điểm mẫu.

Có, sẽ có rất nhiều mã khuôn khổ PHP khác đang hoạt động, nhưng bạn không bao giờ phải xem xét nó.

Vâng, khung làm việc sẽ có vô số các tính năng và/hoặc cách "ưa thích" để xử lý mọi thứ, nhưng bạn chỉ cần sử dụng những tính năng mà bạn hiểu ngay lập tức.

Khi bạn bắt đầu nhận thấy các mẫu mã xấu xí, nhàm chán hoặc không an toàn, hãy xem lại các tính năng của khung công tác. Thường xuyên hơn không sau khi "làm sai" bạn sẽ nhận được thông tin chi tiết về lý do tại sao mã khung công việc đã làm một điều gì đó theo cách cụ thể và bạn sẽ sẵn lòng giải quyết trách nhiệm (tôi muốn nói mô hình kiểu ActiveRecord so với mã SQL Khi bạn bắt đầu sử dụng các hệ thống hướng đối tượng objet, khung công tác cung cấp cho bạn sẽ bắt đầu quan tâm đến cách họ đang làm những việc nhất định, và sau đó bạn có thể bắt đầu chọc vào mã khung cốt lõi.

4

Tuyệt đối. Khung sẽ làm tất cả các mã boilerplate cho bạn, cung cấp cho bạn một mức độ trừu tượng cao hơn. Nó có thể sẽ dễ dàng hơn cho bạn để viết mã mà không phải đối phó với một số idiosyncrasies của PHP.

Bất kỳ khung phân nửa nào cũng sẽ giải quyết các vấn đề bảo mật, vì vậy nếu bạn mới sử dụng ngôn ngữ, có thể ứng dụng của bạn được viết trên khung sẽ an toàn hơn ứng dụng bạn viết từ đầu.

0

Tôi nghĩ việc giảm thiểu số lượng mã tùy chỉnh bạn đang viết có lẽ là một điều tốt nếu bạn không tự tin vào khả năng tạo hệ thống an toàn (đặc biệt là đối với những thứ như xác thực). Kết quả là, tôi nghĩ rằng bằng cách sử dụng một khuôn khổ web theo cách này sẽ là lợi thế của bạn. Nó cũng sẽ cho phép bạn làm quen với cốt lõi của ngôn ngữ mà không phải lo lắng về các mối quan tâm ngoại vi.

0

Tôi đã thấy một vài người (với kiến ​​thức OOP trước đây lớn) để học PHP và symfony cùng một lúc mà không gặp khó khăn gì.

Trên thực tế, việc chuyển từ PHP từ ngôn ngữ hướng đối tượng chỉ là tìm hiểu một vài điều khái niệm và cú pháp và API của chính PHP.

1

Tôi sẽ không khuyên bạn nên bắt đầu với một khuôn khổ để bắt đầu các nhà phát triển. Nếu bạn có nhiều kinh nghiệm với các ngôn ngữ khác OOP, không có vấn đề gì. Nhưng ít nhất bạn nên biết những điều cơ bản (cú pháp ví dụ) trước khi nghĩ đến việc sử dụng các khung công tác.

0

Theo ý kiến ​​của tôi, không có gì sai khi học một khuôn khổ cùng lúc khi bạn đang học một ngôn ngữ. Đã có một số lượng hợp lý các tình huống mà đây là trường hợp cần thiết. Ví dụ, hầu hết mọi người học Objective-C tìm hiểu các khuôn khổ Cocoa cùng một lúc, hầu hết các lập trình viên C# sẽ học .Net cùng với nó, ngay cả JDK cũng nên được coi là một khung mà bạn học cùng với ngôn ngữ Java. Và đối với những gì nó có giá trị, tôi đã học được khuôn khổ Symfony với rất ít kinh nghiệm PHP trước.

0

Tôi khuyên bạn nên bắt đầu với PHP turorial trên w3schools.com. Nó ngắn và rõ ràng. Bạn có thể tìm hiểu tất cả các khái niệm cơ bản cần thiết trong một hai giờ. Để hiểu bất kỳ khung công tác nào bạn sẽ cần. Sau đó nghiên cứu first và chương second từ sổ tay CakePHP và tạo ứng dụng CakePHP đầu tiên của bạn bằng cách sử dụng tutorials. Phần còn lại tôi đồng ý với Alan Storm.

+0

php.net là hướng dẫn tốt nhất ở đây;) – Strae

+0

Không dành cho người mới bắt đầu :) – bancer

0

Bắt đầu với một khung trong PHP, cũng phụ thuộc vào thực tế cho dù bạn có một số kinh nghiệm lập trình trước và nếu có, loại nào.

Nếu bạn đã lúng túng trong một số ngôn ngữ lập trình khác như java, c, học một khuôn khổ php đồng thời trong khi tạo trang web của bạn có thể không quá khó khăn.

Hầu như tất cả các khung công tác PHP bạn sẽ gặp phải sử dụng mẫu thiết kế MVC - nếu bạn hiểu những điều cơ bản về MVC, nếu bạn đã triển khai hoặc có các mẫu thiết kế trong các ngôn ngữ lập trình khác, thì nó sẽ bắt đầu dễ dàng Các khung công tác PHP.

Ngoài ra, lựa chọn khung công tác PHP của bạn sẽ là yếu tố quyết định. Nếu bạn sử dụng các khung công tác PHP như Codeigniter, Yii, thậm chí có thể CakePHP có các đường cong học tập tương đối nhỏ hơn, bạn sẽ tìm thấy đường dẫn của bạn được lưu cho bạn trong PHP. Mặc dù nếu chọn một số khung như Symfony, Zend - bạn có thể cảm thấy thất vọng khi dành quá nhiều thời gian để thực hiện những việc đơn giản, lần lượt làm nổ tung dự án của bạn.

Đối với một phần về nguy cơ bảo mật, tất cả các khuôn khổ tôi đã đề cập ở trên và một số người khác mà tôi chưa đề cập, đã dành đủ thời gian trên sân khấu để đè bẹp những rủi ro bảo mật.

Hy vọng điều này sẽ giúp bạn trong việc quyết định.

1

Tôi sẽ nói điều đó phụ thuộc vào trải nghiệm trước đây của bạn. Nó không phải là quá nhiều PHP chính nó, nhưng môi trường máy chủ web nó sống trong đó có thể bị mất tập trung. Nếu bạn đã quen thuộc với vòng đời yêu cầu HTTP và đã viết các ứng dụng web theo cách không trạng thái tương tự như bạn làm với PHP, bạn không nên gặp phải vấn đề lớn khi nhảy ngay vào khung công tác.

Nếu bạn đến từ nền "trạng thái" hoặc hoàn toàn không có nền nào, thì các phần tóm tắt mà khung công tác cung cấp có thể trở thành một vấn đề. Ít nhất bạn nên biết cách xử lý các phiên, cookie, tiêu đề, $_POST và các dịch vụ tương tự trong PHP thuần túy trước khi có một chi tiết trừu tượng cách xa khung công tác của bạn. Xem thêm this previous answer của tôi.

0

Mặc dù tôi là người hâm mộ các khung công tác, tôi đồng ý với một số nhận xét khác ở trên. Bắt đầu với một khuôn khổ có thể khá khó hiểu, đặc biệt là nếu bạn không có kinh nghiệm trong lý thuyết về lập trình hướng đối tượng (MVC) Model View Controller (MVC).

Sự thật là tôi đã thấy nhiều dự án khung chưa hoàn thành hơn trong ngày so với các ứng dụng được xây dựng không có khung. Nếu ứng dụng của bạn được viết bằng một số PHP phức tạp và ứng dụng sẽ cất cánh, thì bạn có thể thuê các tài nguyên cần thiết để chuyển sang một khuôn khổ và làm cho nó phát triển để chịu được rất nhiều cách sử dụng và sử dụng hiệu quả các tài nguyên.

Lời khuyên của tôi là làm chủ PHP trước, sau đó chuyển sang khung công tác. Lưu ý cuối cùng của tôi về điều này, nhiều khung công tác cũng có sai sót - vì vậy tùy thuộc vào nhu cầu ứng dụng của bạn, việc áp dụng khung sai có thể đưa nó vào mặt đất.

Chỉ 2 xu của tôi là một anh chàng đã phát hành một vài ứng dụng doanh nghiệp thành công - mà không cần sử dụng khung công tác PHP.

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