Các khung công tác có thực sự cần thiết trong PHP không?
Những lợi thế và bất lợi của việc sử dụng một là gì?
Các khung công tác có thực sự cần thiết trong PHP không?
Những lợi thế và bất lợi của việc sử dụng một là gì?
Câu trả lời:
Không. Nhưng họ tốt.
Ưu điểm : Tiết kiệm thời gian không phải tự xây dựng lại mã. Sử dụng vô số các tính năng, chức năng và cấu trúc dữ liệu mà người khác xây dựng áp dụng cho dự án của bạn.
Nhược điểm : Không tự mình xây dựng mã có thể là một mất mát ở mức độ hiểu biết tốt hơn trên nền tảng mà dự án của bạn hoạt động.
Các khung ứng dụng web chỉ tốt như trải nghiệm của bạn với chúng.
Mọi khung công tác đều có một đường cong học tập, cho đến khi bạn vượt qua đường cong đó, có thể bạn sẽ kết thúc mọi việc để khẳng định ngược lại rằng bạn phủ nhận tất cả các lợi ích của việc sử dụng khung. Ứng dụng của bạn sẽ chậm phát triển, mã sẽ khó theo dõi và toàn bộ sự việc sẽ bị phá vỡ khi một phiên bản mới của khung được phát hành. Tôi sẽ khuyên bạn không nên cố gắng sử dụng một khung công tác xa lạ (hoặc bất kỳ công nghệ xa lạ nào) cho các dự án có thời hạn chặt chẽ.
Làm thế nào để một người có được tốt hơn trong việc sử dụng các khung?
Bạn sẽ phải xây dựng một số ít các ứng dụng khủng khiếp và lặp đi lặp lại. Cuối cùng, bạn sẽ tìm ra các yêu cầu và sử dụng khung sẽ cho phép bạn rút ngắn thời gian phát triển và mã được tổ chức tốt hơn.
Bạn có nên sử dụng một khung công tác PHP?
Tất cả những người viết mã đủ PHP cuối cùng đều sử dụng một khung công tác. Câu hỏi là, bạn sẽ sử dụng khuôn khổ của riêng bạn hay do một bên thứ ba phát triển? Theo kinh nghiệm của tôi, bạn có thể sẽ không bao giờ phát triển khuôn khổ của riêng mình, điều này sẽ phù hợp với sự mạnh mẽ và chất lượng của khung bên thứ ba. Điều đó nói rằng, phát triển khung công tác của riêng bạn dường như là một quyền trong cộng đồng PHP, vì vậy, đừng để tôi ngăn cản bạn viết lớp trừu tượng cơ sở dữ liệu của riêng bạn.
Đây là một biểu đồ hữu ích:
Theo Rasmus Lerdorf , bạn không cần bất kỳ khung bổ sung nào, vì bản thân PHP là một khung. http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html
Vâng, nó thực sự phụ thuộc vào quy mô của dự án của bạn. Một trang chủ không có cơ sở dữ liệu và không quá 10 trang, một khung sẽ quá nhiều, chủ yếu là vì các framewroks luôn cần rất nhiều cấu hình và tùy chỉnh trong hầu hết các trường hợp, để phù hợp với nhu cầu cụ thể. Và trong một số trường hợp, chúng có thể chậm hơn một chút so với một số trang có trong một tệp (nghĩ về tất cả các khung cần tải để sử dụng các tính năng của nó.).
Bây giờ, nếu bạn đang lập kế hoạch cho một trang web có kích thước trung bình / lớn, với các tương tác cơ sở dữ liệu, dịch vụ web, v.v., bạn sẽ cần một khung để giúp bạn tương tác với các công nghệ khác nhau và sắp xếp mã của bạn theo cách mà khi mọi thứ bị hỏng, bạn sẽ có các habilitie để nhanh chóng phát hiện và sửa chữa nó. Ngoài ra nếu bạn nghĩ về khách hàng, họ luôn thay đổi suy nghĩ về phần mềm, vì vậy nếu khách hàng cần sửa đổi hoặc thêm một tính năng mới, bạn không cần phải tìm hiểu tất cả mã của mình và suy nghĩ về cách tôi cắm tính năng mới này vào tất cả Sphagetti này.
Có rất nhiều ưu và nhược điểm khác, nhưng đây là những điều đầu tiên tôi nghĩ đến.
Chỉnh sửa: Tôi sử dụng khung symfony trong các cơ sở hàng ngày và cũng đã làm việc với php cho trường đại học (tôi có một số khóa học về phát triển web không được phép sử dụng bất kỳ khung nào), vì vậy hầu hết điều này xuất phát từ trải nghiệm đó.
Bạn đang đùa, phải không?
Sự cần thiết phụ thuộc vào việc sử dụng. Máy tính không cần thiết cho nhân loại, cả ô tô, v.v.
Đối với ưu điểm / nhược điểm, đối với mỗi sở hữu!
Tôi muốn hiển thị một số mã ví dụ ra khỏi khuôn khổ của riêng tôi:
class Product extends DatabaseRow {
public $name='';
public $price=0.0;
public $images=array();
public $description='';
public table(){
return 'products';
}
}
$p=new Product();
$p->name='Bread';
$p->price=0.5;
$p->images=array('loaf1.jpg','bakery.jpg');
$p->description='Our premium diet bread.';
$p->save();
Xem những gì tôi đã làm ở đó? Lớp học đó phục vụ như là một mô hình cho một cửa hàng. Có gì đặc biệt ngoài OO? Nếu bảng hoặc bất kỳ cột nào không tồn tại, nó sẽ được tạo động. 0 tập lệnh cài đặt. Tất nhiên, đây là một tính năng cụ thể trong khuôn khổ của tôi. Nhưng bạn hiểu ý rồi đấy.
$p=new Product($the_id); $p->load();
Các load()
là đến một hàng hợp nhất chứ không phải ghi đè lên toàn bộ hàng.
Không phải tất cả các ứng dụng yêu cầu một khung, nhưng hầu hết các ứng dụng đều có.
Những ưu điểm là:
Những nhược điểm là:
Tất cả trong tất cả, tốt hơn là sử dụng một.