Các framework php cơ bản. Cách chọn khung PHP phù hợp. Kiểm tra so sánh

Sự lựa chọn quá lớn và việc lựa chọn khuôn khổ phù hợp đã trở nên khá khó khăn. Giống như nhiều nhà phát triển khác, bạn có thể chú ý đến các framework Bootstrap và Foundation phổ biến, đã được chứng minh và đáng tin cậy. Tuy nhiên, các framework mới hơn, ít nổi tiếng hơn có thể phù hợp hơn với nhu cầu của bạn. Trong điều kiện như vậy, bạn chỉ cần hiểu rõ các framework phổ biến nhất hiện nay.

Những điều cần tìm khi chọn một framework front-end

Trước khi tìm kiếm framework front-end cho dự án tiếp theo của bạn, điều quan trọng là bạn phải làm quen với các tính năng thú vị nhất. Biết chúng, bạn sẽ có thể cân nhắc tất cả ưu và nhược điểm của các khung giao diện người dùng phổ biến nhất nhanh hơn nhiều:

Trình độ của bạn – hãy xem xét trình độ kiến ​​thức của bạn khi chọn một framework giao diện người dùng. Nếu là người mới bắt đầu, bạn có thể muốn xem xét khung Bootstrap mạnh mẽ, có nhiều tiện ích tích hợp sẵn và yêu cầu kỹ năng viết mã tối thiểu. Nếu bạn là một nhà phát triển nâng cao hơn thì một khung công tác đơn giản hơn sẽ phù hợp với bạn, nó sẽ mang lại cho bạn nhiều không gian hơnđể tùy chỉnh. Những khung như vậy nhỏ gọn hơn và có ít mã hơn, đây sẽ chỉ là một điểm cộng.

Thiết kế đáp ứng – bất kỳ trang web nào bạn phát triển đều phải hiển thị tốt trên tất cả các thiết bị vì ngày càng có nhiều người truy cập Internet thông qua thiết bị di động. Trang web tương tự đã công bố báo cáo Trạng thái Internet di động năm 2015 tại Hoa Kỳ, cho thấy 56% người tiêu dùng lưu lượng truy cập trang web hàng đầu của Hoa Kỳ truy cập Internet từ thiết bị di động. Tìm kiếm các framework front-end hỗ trợ thiết kế thích ứng, thì bạn sẽ gặp ít vấn đề hơn.

Xu hướng và cách tiếp cận hiện đại trong phát triển web

Tìm hiểu thuật toán để tăng trưởng nhanh chóng từ đầu trong việc xây dựng trang web

Bộ tiền xử lý CSS – Nếu bạn đang sử dụng bộ tiền xử lý CSS, chẳng hạn như Sass hoặc LESS, hãy đảm bảo chúng tương thích với khung.

Ngoại hình – chọn một khuôn khổ mà bạn có thể đạt được một cái nhìn tuyệt vời vẻ bề ngoài với ít nỗ lực nhất.

Tạo mẫu – Khung giao diện người dùng lý tưởng cho phép bạn nhanh chóng tạo wireframe và nguyên mẫu để tăng tốc quá trình thiết kế và phát triển.

Và quan trọng nhất: một khung giao diện người dùng tốt sẽ đơn giản hóa, hiện đại hóa và tăng tốc quá trình thiết kế và phát triển trang web, đồng thời cung cấp cho bạn sự linh hoạt và chức năng để tạo ra một sản phẩm độc đáo.

Không có những từ không cần thiết Tôi giới thiệu với bạn khung giao diện người dùng phổ biến thứ tám trong năm 2016.

Khởi động

TOP sẽ không đầy đủ nếu không có Bootstrap framework giao diện người dùng rất phổ biến. Các tác giả của khung này là những người tạo ra Twitter, người đã phát hành nó vào năm 2011. Framework mã nguồn mở được sử dụng nhiều nhất trên thế giới.

Giống như bất kỳ framework giao diện người dùng hiệu quả nào khác, Bootstrap bao gồm các thành phần HTML, CSS và JS. Khung này tuân thủ các tiêu chuẩn thiết kế web đáp ứng, cho phép bạn tạo các trang web đáp ứng ở mọi mức độ phức tạp và kích thước.

Cập nhật liên tục Bootstrap đảm bảo rằng bạn có được những tính năng mới nhất và tuyệt vời nhất. Ví dụ: gần như ngay lập tức các chủ đề đáp ứng tiêu chuẩn thiết kế vật liệu của Google đã được thêm vào khung. Các chủ đề đã được cải tiến để hỗ trợ Sass.

hỗ trợ thiết kế web đáp ứng (có thể tắt nếu muốn);

tài liệu phong phú.

các kiểu hiếm khi được sử dụng sẽ tăng trọng lượng của khung tiêu chuẩn lên 276 KB;

quá nhiều các lớp HTML và các phần tử DOM, làm ô nhiễm mã và gây nhầm lẫn cho người dùng.

Thích hợp cho người mới bắt đầu và những người thích khung giao diện người dùng đáng tin cậy.

Không có kiểu khóa, giúp bạn linh hoạt hơn;

thay vì pixel, đơn vị đo lường REM được sử dụng, cho phép bạn không đặt rõ ràng chiều rộng, chiều cao và các thuộc tính khác cho từng thiết bị.

Theo mặc định, dung lượng tệp khá lớn;

một chút phức tạp cho người mới bắt đầu.

Thích hợp cho các nhà phát triển có kinh nghiệm tốt, nhiệm vụ chính là phát triển nhanh, trang web hấp dẫn và phản hồi nhanh.

Cụ thể hoá

Khung Pure được tạo ra bởi nhóm phát triển Yahoo. TRONG bao gồm một mảng mô-đun CSS nhẹ phù hợp với bất kỳ dự án nào. Với Pure, bạn có thể dễ dàng tạo các nút, menu, lưới, bảng phản hồi, v.v. Khung này được viết bằng CSS thuần túy và không hỗ trợ các plugin JS hoặc JQuery.

Sau khi thu nhỏ và nén thông qua Gzip, khung Pure sẽ nén xuống 4,5Kb, khiến nó trở thành một trong những khung giao diện người dùng nhẹ nhất và phản hồi nhanh nhất. Tinh khiết là lý tưởng cho phát triển điện thoại di động, đó là lý do tại sao nó thu hút nhiều nhà phát triển.

rất nhẹ, đảm bảo tải nhanh ngay cả trên thiết bị di động;

một mảng mô-đun CSS linh hoạt có thể được sử dụng trong mọi thiết kế và dự án.

được viết bằng CSS mà không hỗ trợ các plugin JS hoặc JQuery.

Thích hợp cho các nhà phát triển tập trung vào việc tạo các trang web di động phản hồi nhanh và nhanh.

Bộ xương

Bộ xương – nhẹ mẫu đáp ứng chỉ trong 400 dòng mã. Khung này bao gồm các chức năng cần thiết tối thiểu để bắt đầu phát triển. Không giống như các khuôn khổ được mô tả ở trên, đây không phải là một giải pháp toàn diện.

Bộ xương khung thích ứng, dựa trên lưới 12 cột. Bộ này chỉ bao gồm các thành phần cần thiết: nút, danh sách, bảng, biểu mẫu, v.v.

rất nhẹ;

đơn giản và thuận tiện cho việc viết các dự án nhỏ.

thiếu nhiều lựa chọn thành phần, không giống như các khung lớn.

Thích hợp cho những người tạo các dự án nhỏ không cần tất cả các thành phần tạo kiểu có thể tìm thấy trong các khung lớn.

UIKit

UIKit là một khung giao diện người dùng có tính mô-đun cao, nổi bật giữa đám đông vì nhiều lý do. Lý do chính là sự hiện diện của hai bộ tiền xử lý LESS và Sass.

Nhờ các thành phần linh hoạt và đáp ứng với tên gọi rõ ràng, UIKit đã trở thành một trong những framework front-end phổ biến nhất.

30 làm cho framework trở nên linh hoạt hơn thành phần mô-đun. Trong số các thành phần: menu, biểu mẫu và bảng HTML, các thành phần JS, ví dụ: tab trượt và cửa sổ phương thức, các thành phần phổ biến như nút, bảng hiệu và lớp phủ cũng như các thành phần bố cục như hệ thống lưới linh hoạt, phản hồi nhanh.

khả năng tùy biến cao;

Cấu trúc mô-đun độc đáo cho phép bạn thêm các thành phần vào kiểu mà không ảnh hưởng đến phong cách chung;

khả năng tạo giao diện phức tạp nhờ các thành phần như danh sách lồng nhau.

Framework này vẫn còn mới, có rất ít tài nguyên trên Internet về nó.

Thích hợp cho các nhà phát triển khá có kinh nghiệm, vì nó khoảnh khắc này Có rất ít thông tin về khuôn khổ này. Tuyệt vời để tạo cả các dự án đơn giản và phức tạp.

miligam

Milligram là một framework nhẹ khác tương tự như Skeleton. Sau khi nén qua Gzip, kích thước tệp đạt 2KB, giúp các nhà phát triển có một khởi đầu đơn giản và thuận tiện.

Hệ thống lưới của Milligram khác với hầu hết vì nó sử dụng tiêu chuẩn Mô-đun bố cục hộp linh hoạt CSS. Ngoài ra còn có một số thành phần chính được đưa vào để giúp bạn bắt đầu, bao gồm phông chữ, nút, biểu mẫu, danh sách, bảng, dấu ngoặc kép, v.v.

rất nhẹ, chỉ 2Kb sau khi nén qua Gzip;

sử dụng hệ thống lưới Flexbox.

framework còn khá mới, có rất ít thông tin về nó;

số lượng thành phần kiểu dáng tối thiểu so với các khung lớn hơn.

Thích hợp cho các nhà phát triển tạo các dự án nhỏ không cần nhiều thành phần tạo kiểu và cho các nhà phát triển muốn sử dụng Flexbox.

susy

Một số người sẽ nói rằng Susy không thực sự là một framework front-end vì nó giải quyết được nhiệm vụ phức tạp về bố cục. Trên thực tế, nhiều người coi Susy như một hệ thống lưới, nhưng nó có thể là một công cụ không thể thiếu đối với những người làm việc với bố cục.

Susy trang bị cho bạn các mixin mà bạn có thể sử dụng để tạo lưới. Khung này thực hiện tất cả các phép tính cho bạn, giúp tiết kiệm rất nhiều thời gian và công sức.

Susy cho phép bạn tạo các mắt lưới có độ phức tạp bất kỳ. Nếu bạn đang cố gắng giải quyết vấn đề tạo một hệ thống lưới phức tạp, Susy có thể giúp bạn.

tính linh hoạt tăng lên cho phép bạn tạo các mắt lưới có độ phức tạp bất kỳ;

tính toán tự động.

không bao gồm tất cả các vấn đề về thiết kế trang web, điều này sẽ yêu cầu một khuôn khổ khác;

không có lưới tích hợp.

Thích hợp cho các nhà phát triển với những thách thức thiết kế độc đáo.

Thống kê về các framework front-end

Quyết định của bạn không nên dựa trên mức độ phổ biến của framework. Khung phải được lựa chọn dựa trên nhu cầu phát triển. Tuy nhiên, điều thú vị là tất cả các khung này sẽ được xếp hạng như thế nào trong bảng xếp hạng. Danh sách bên dưới cho biết mỗi dự án đã nhận được bao nhiêu sao trên GitGub tại thời điểm viết bài (từ phổ biến nhất đến ít phổ biến nhất).

Bootstrap: 101.433 sao

Ngữ nghĩa-UI: 28.170 sao

Nền tảng: 24.127 sao

Hiện thực hóa: 21.515 sao

UI vật liệu: 19.631 sao

Tinh khiết: 14.967 sao

Bộ xương: 12.622 ngôi sao

UIKit: 7.433 sao

Miligam: 4.195 sao

Susy: 3.506 sao

Ngoài ra, khi so sánh TOP 5 framework front-end trên xu hướng Google Rõ ràng là Bootstrap vẫn vượt trội so với các đối thủ cạnh tranh về số lượng đề cập.

Phần kết luận

Như bạn có thể thấy, các framework front-end khác nhau đều có những ưu điểm riêng. Những gì hiệu quả với một nhà phát triển hoặc dự án này có thể không hiệu quả với một nhà phát triển hoặc dự án khác. Vì vậy, điều cực kỳ quan trọng là phải phân tích nhiều lựa chọn trước khi chọn một cái gì đó cụ thể.

Trước khi chọn một framework front-end, hãy xác định trình độ kiến ​​thức của bạn cũng như các yêu cầu cơ bản cho dự án của bạn. Rất có thể, một hoặc nhiều sản phẩm trong danh sách này sẽ hoàn hảo cho bạn.

Đó là năm 2016, đồng nghĩa với việc phong cách bắt buộc không còn là mốt nữa. “Người bình thường không viết như vậy,” ai cũng sẽ nói nhà phát triển hiện đại TRÊN dự án quan trọng và anh ấy sẽ đúng.

Và nếu bạn vẫn không đồng ý với anh ấy, thì đã đến lúc cập nhật kiến ​​​​thức của bạn: các phương pháp hiện đại, chẳng hạn như MVC hoặc OOP, sẽ đơn giản hóa đáng kể cuộc sống cho cả bạn và đồng nghiệp của bạn. Và tất cả những điều này đều được triển khai đầy đủ bởi một thứ bắt buộc phải có khác trong năm 2016 - PHP framework.

Chúng ta hãy xem xét chúng chi tiết hơn và tìm ra cái nào bạn nên chọn.

Laravel

Một trong những khung PHP phổ biến nhất với cú pháp tinh tế và biểu cảm. Nó sẽ giúp việc giải quyết các vấn đề chính và cấp bách nhất, chẳng hạn như xác thực, định tuyến, phiên và bộ nhớ đệm trở nên dễ dàng nhất có thể. Laravel được tạo ra như một nỗ lực chỉ kết hợp những gì tốt nhất của các framework PHP khác, cũng như Ruby on Rails, ASP.NET MVC và Sinatra. Một trong những ưu điểm quan trọng nhất của nó là sự hiện diện của hệ thống thử nghiệm đơn vị tích hợp.

Zend

Một khung được viết hoàn toàn theo phong cách hướng đối tượng, sử dụng tất cả các cải tiến PHP mới nhất. Được thiết kế với sự phụ thuộc tối thiểu vào các thành phần khác, mỗi thành phần có thể được sử dụng riêng biệt; tuy nhiên, bộ thư viện tiêu chuẩn làm cho nó trở thành một công cụ phát triển rất mạnh mẽ và dễ mở rộng.Ngoài ra, nó còn cung cấp triển khai MVC mạnh mẽ và hiệu suất cao cũng như khả năng trừu tượng hóa cơ sở dữ liệu dễ sử dụng, cùng với nhiều tính năng khác bổ sung để biến nó trở thành một trong những khung giàu tính năng nhất hiện có.

BánhPHP

CakePHP là một framework được viết bằng PHP để tạo các ứng dụng web với cộng đồng năng động và đang phát triển nhanh chóng. Giống như hầu hết các khung công tác khác, nó thực hiện mẫu MVC. Ban đầu nó được tạo ra như một bản sao của Ruby on Rails phổ biến và nhiều ý tưởng của nó được mượn từ đó. Nó khác với các đối thủ cạnh tranh ở chỗ nó không chỉ hỗ trợ PHP5 mà còn cả PHP4.

Bộ đánh lửa mã

Có lẽ là framework dễ học và sử dụng nhất. Nói tóm lại, dễ dàng mở rộng, an toàn và sử dụng các phương pháp tiếp cận đơn giản và rõ ràng - lý tưởng cho người mới bắt đầu. Một trong những ưu điểm khác của nó là tốc độ; khung này xử lý nhiệm vụ làm việc với cơ sở dữ liệu nhanh hơn nhiều so với những người anh em khác của nó.

Kohana

Kohana, trước đây là Blue Flame, là một khung web PHP5 mã nguồn mở sử dụng mô hình kiến ​​trúc HMVC. Mục tiêu của nó là an toàn, nhẹ và dễ sử dụng.

PHP Inside, một tạp chí trực tuyến dành cho các nhà phát triển web, đã vinh danh Kohana là "Sự lựa chọn của biên tập viên... vì kiến ​​trúc, tốc độ và cộng đồng của nó."

Kohana là một nhánh của khung Code Igniter nổi tiếng và tập trung vào việc tuân thủ nghiêm ngặt PHP 5 OOP và mô hình phát triển minh bạch.

Symfony

Một khung bao gồm nhiều thành phần và được viết bằng PHP5 sử dụng mẫu Model-View-Controller. Cung cấp khả năng phát triển và quản lý nhanh chóng các ứng dụng web, cho phép bạn dễ dàng giải quyết các công việc thường ngày của một lập trình viên web. Một trong những ưu điểm chính của nó là hỗ trợ nhiều cơ sở dữ liệu (MySQL, PostgreSQL, SQLite hoặc bất kỳ DBMS tương thích PDO nào khác).

Yii

Khung PHP hiệu suất cao sử dụng mẫu MVC và được thiết kế để phát triển nhanh chóng ứng dụng web hiện đại. Khả năng của nó cho phép bạn triển khai các dự án quy mô lớn như diễn đàn, cổng thông tin, CMS, dịch vụ web RESTful và các dự án khác trong thời gian ngắn hệ thống phức tạp. Nó đã bao gồm nhiều giải pháp đã được chứng minh và sẵn sàng sử dụng: trình tạo truy vấn, ActiveRecord cho cơ sở dữ liệu quan hệ và NoSQL, API RESTful, hỗ trợ bộ đệm ẩn đa cấp và nhiều giải pháp khác.

Giới thiệu

Khi sử dụng nhiều framework hiện đại khác nhau, tôi nhận ra rằng mình chưa hiểu đủ về cách mọi thứ hoạt động bên trong; Tôi không hiểu tại sao các nhà phát triển lại chọn giải pháp này hay giải pháp kia; Tôi chỉ chú ý đến nhiệm vụ hiện tại và không nhìn “cao hơn, sâu hơn và xa hơn”. Và, như một lựa chọn để phát triển nghề nghiệp, tôi đã chọn tạo dự án của riêng mình.

Như thực tế sâu hơn đã chỉ ra: đọc, biết, nghe về điều gì đó và có thể tự mình thực hiện nó là những điều hoàn toàn khác nhau. Bạn có thể đưa ra lý thuyết vô tận, nhưng chỉ có một nhiệm vụ thực tế thực sự mới giúp bạn hiểu được mình đang ở cấp độ nào. Liên quan đến điều này, việc “viết chiếc xe đạp của riêng bạn” đã bắt đầu. Mọi chuyện diễn ra thế nào là tùy bạn đánh giá)

Quá trình phát triển

Quá trình phát triển khung được thực hiện như sau: ban đầu có một ứng dụng web đơn giản nhất định, được tinh chỉnh, viết lại, thay đổi cấu trúc, mua các lớp và thành phần mới, v.v. Vài tháng trước tôi có thời gian rảnh, rất nhiều nhiệt tình và quyết tâm để cuối cùng hoàn thành khuôn khổ -nghiêm túc." Tôi đã dành tổng cộng 3-4 tuần để viết phiên bản này (làm việc trung bình 1-3 giờ một ngày, 3-4 ngày một tuần).

Khi quá trình phát triển diễn ra, tôi cố tình nâng cao các tiêu chuẩn và yêu cầu cho bản thân, tìm kiếm giải pháp tối ưu và viết lại mã nhiều lần. Vì vậy, ví dụ, tôi làm lại công việc với cấu hình 5-6 lần (và một vài lần hoàn toàn), định tuyến - 3-4 lần. Để làm ví dụ, tôi lấy mã từ các bài báo, ấn phẩm, hướng dẫn, khung (Yii2, CodeIgniter, Zend, Phalcon, Bun), v.v.

Phân tích yêu cầu

Tất cả bắt đầu bằng việc phân tích các yêu cầu và mong muốn đối với hệ thống cuối cùng.

Khuôn khổ nên:

  • cho phép bạn nhanh chóng tạo một trang web từ đầu
  • có một số giải pháp, công cụ kỹ thuật cơ bản đã được triển khai
  • chứa frontend và backend riêng biệt
  • đáp ứng các yêu cầu hiện đại về mã hóa, công nghệ, giải pháp kỹ thuật ứng dụng...
  • chứa một ứng dụng demo đã có trong gói cơ bản, trên cơ sở đó bạn có thể tiến hành phát triển của riêng mình
  • có tính mô-đun và có thể mở rộng
  • có tài liệu rõ ràng, hỗ trợ kỹ thuật (lý tưởng nhất là một cộng đồng)

Công nghệ được sử dụng

Danh sách các giải pháp như vậy trực tiếp phụ thuộc vào những gì bạn biết và những gì bạn áp dụng vào thực tiễn thực tế của mình. Những thứ kia. Chúng tôi tiếp cận nhu cầu giám sát liên tục các sản phẩm mới và những thay đổi trong lĩnh vực CNTT.

Thực tiễn và công nghệ:

Cấu trúc thư mục

Đây là cấu trúc file và thư mục trong framework (bạn cũng có thể xem code trên GitHub):

Mã số

Có một cái trong ứng dụng điểm vào duy nhất. Đây là mã tập tin chỉ mục.php từ gốc thư mục công cộng máy chủ web.

Phiên_start(); $loader = require(__DIR__ . "/../../vendor/autoload.php"); $loader->addPsr4("framework\", __DIR__ . "/../../system/"); $loader->addPsr4("frontend\", __DIR__ . "/../"); $loader->addPsr4("common\", __DIR__ . "/../../common/"); $config = array_merge(require(__DIR__ . "/../config/main.php"), require(__DIR__ . "/../../common/config/main.php")); $application = frameworkcoreApplication mới(); $application->run($config);

Mã phương pháp chạy($config) từ lớp học frameworkcoreỨng dụng(). Các lớp ứng dụng cần thiết được tải và bộ điều khiển tương ứng được gọi (trong phương thức hành hình()).

/** * * @param array $config */ public function run($config = ) ( $this->benchmark = new Benchmark(); $this->environment = Environment::get(); $this->config = Sổ đăng ký mới($config); $this->response = Phản hồi mới(); $this->request = Yêu cầu::getInstance(); $this->assets = Tài sản mới($this->config->assets) ; $this->setParams(); $this->router = Bộ định tuyến mới($this->config->routes);

Mã phương pháp hành hình() từ lớp học frameworkcoreỨng dụng(). Bộ điều khiển cần thiết trên ở giai đoạn nàyđã được chọn, chúng tôi khởi tạo bộ điều khiển này, xử lý các tiêu đề và nội dung đầu ra. Nếu có lỗi, chúng tôi từ bỏ nó. 404 Không tìm thấy .

Hàm công khai thực thi() ( $controllerName = $this->router->getControllerName(); thử ( $controllerClass = "\" . $this->config->name . "controllers\" . $controllerName . "Controller"; if (class_exists($controllerClass)) ( $controller = new $controllerClass; if ($controller instanceof Controller) ( $controller->setApplication($this)->run(); ) ) else ( ném new CoreException("Controller " " . $controllerName . "" không tồn tại: " . Yêu cầu::getInstance()->server["REQUEST_URI"] ) bắt (CoreException $e) ( $e->logError(); $this->response - >setHeader("Không tìm thấy HTTP/1.1 404"); $this->router->error404(); $this->execute(); ($tiêu đề); ) echo $this->response->getContent();

Những cải tiến và kế hoạch tương lai

Là một bộ chuyển đổi để kết nối với cơ sở dữ liệu, tôi đã sử dụng PDO. Trong quá trình làm việc, tôi không thực sự thích PDO - rất khó để gỡ lỗi các truy vấn, tôi muốn sự thoải mái khi sử dụng ORM. Có thể được cài đặt ORM hùng hồn- nó hiện đại và giải pháp làm sẵn(được sử dụng trong framework Laravel), ngoài ra, nó được ghi chép đầy đủ và có thể được cài đặt từ trình soạn thảo trong vài phút.

Tôi cũng đã nghĩ đến việc mở rộng chức năng cơ bản của khung: Tôi muốn thêm hỗ trợ cho các mô-đun. Những thứ kia. để bạn có thể viết, chẳng hạn như một blog dưới dạng một mô-đun riêng biệt (với bộ điều khiển, người xem, mô hình riêng, v.v.). Và sau đó kết nối mô-đun này ở bất kỳ đâu trong ứng dụng.

Bạn có thể mở rộng tập hợp các lớp cơ bản của “quý ông” trong kernel, làm phức tạp hệ thống ghi nhật ký, xử lý lỗi, cấu hình, viết một trang demo chính thức với tất cả các chức năng, v.v.

Phần kết luận

Tôi sẽ rất vui khi nghe những lời chỉ trích về mã, kiến ​​trúc, các yêu cầu ban đầu, v.v. Tôi sẽ tích cực đọc các bình luận và cố gắng trả lời các câu hỏi.

Tôi cũng muốn thực hiện bất kỳ dự án nào dựa trên khuôn khổ này. Có thể nói, hãy thử công cụ này tại nơi làm việc. Rõ ràng là việc tìm kiếm khách hàng hoàn toàn không liên quan đến phần này, nhưng tôi muốn biết liệu có thể bắt đầu một dự án thực sự với giải pháp này không? Các framework phổ biến “ngay lập tức” cung cấp chức năng chất lượng cao hơn 50-100 lần và quy mô lớn hơn, rất khó để cạnh tranh với chúng.

Khi phát triển bất kỳ sản phẩm phần mềm Nhóm phát triển chủ yếu phải đối mặt với nhiệm vụ đưa ra lựa chọn đúng đắn nền tảng phần mềm, xác định cấu trúc của hệ thống phần mềm.

Để làm được điều này, bạn cần phải tính đến một số lượng lớn các đặc điểm, từ “mọi thứ sẽ hoạt động nhanh như thế nào” đến “chúng ta có cần tính năng này không?” Và lần nào cũng vậy. Đó là trong những khoảnh khắc động não nhóm so sánh sự tiện lợi của khung, tốc độ và tập hợp các tính năng được triển khai trong đó hoặc trong các mô-đun tương thích với nó.

Nhưng cái nào tốt hơn, nhanh hơn và hiệu quả hơn?

Các nhà phát triển liên tục so sánh các framework để làm rõ vấn đề này. Ví dụ: bài viết của Lukasz Kujawa cung cấp sự so sánh về các framework PHP. Một chữ “nhưng” - bài viết từ năm 2013. Nhưng thời gian trôi qua... Vì thế chúng tôi quyết định dành thời gian của mình, so sánh hiện tại khuôn khổ.

Điểm chuẩn khung PHP được sử dụng để đánh giá hiệu suất. Anh ấy đưa ra nhiều khung để so sánh (không chỉ những khung được đề cập ở trên), nhưng tác giả không vội thêm các phiên bản mới của dự án vào kho lưu trữ, điều này tất nhiên là đáng buồn, mặc dù không gây tử vong. Nếu muốn, hãy thêm phiên bản mới không khó.

Một trong những mục tiêu chính của bài viết này cũng là cố gắng một cách thực tế xác định các cải tiến về hiệu suất và hiệu quả của các phiên bản PHP mới. Do đó, việc thử nghiệm đã được thực hiện trên PHP 5.6/7.0/7.1

Chúng ta sẽ so sánh điều gì?

Các khung sau đây được chọn để so sánh:
  • mỏng-3.0
  • ci-3.0
  • lumen-5.1
  • yii-2.0
  • silex-1.3
  • nhiên liệu-1.8
  • phpixie-3.2
  • zf-2.5
  • zf-3.0
  • symfony-2.7
  • symfony-3.0
  • laravel-5.3
  • laravel-5.4
  • bluz (phiên bản 7.0.0 - dành cho PHP5.6 và phiên bản 7.4 dành cho PHP7.0 trở lên)
  • ze-1.0
  • phalcon-3.0
Kiểm tra được chia thành 4 loại:
  • hiệu suất (thông lượng),
  • bộ nhớ bị chiếm dụng (bộ nhớ),
  • thời gian thực hiện (thời gian thực hiện),
  • số lượng tập tin được bao gồm.

Phương pháp thử nghiệm và bàn thử nghiệm

Máy được sử dụng để thử nghiệm có các đặc điểm sau:

Hệ điêu hanh: Linux Mint 17 Quế 64-bit
Phiên bản quế 2.2.16
Hạt nhân Linux: 3.13.0-24-generic
Bộ xử lý: Lõi Intel CPU i3-4160 3.60GHz X 2
Bộ nhớ: 8GB

Phiên bản máy chủ: Apache/2.4.7 (ubuntu)
Xây dựng máy chủ: ngày 15 tháng 7 năm 2016
php 7.1 / php7.0 / php5.6

Chúng tôi nhập lệnh git clone https://github.com/kenjis/php-framework-benchmark - và khung đã có trên máy của chúng tôi. Vì chúng tôi đã sử dụng Mint nên chúng tôi cần thực hiện một số thiết lập:

# Addednet.netfilter.nf_conntrack_max = 100000net.nf_conntrack_max = 100000net.ipv4.tcp_max_tw_buckets = 180000net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_fin_timeout = 10

Sudo sysctl -p

Một chút về cấu trúc của php-framework-benchmark:

/điểm chuẩn- chứa các tập lệnh bash chịu trách nhiệm thu thập thông tin về số lượng yêu cầu mỗi giây (sử dụng tiện ích ab), lượng thông tin, lượng thời gian đã sử dụng và số lượng tệp được gọi từ tệp “điểm bắt đầu”.

/lib- thư mục chứa các file chịu trách nhiệm xử lý thông tin nhận được sau khi hiển thị trang “Hello world”, hiển thị các bảng kết quả và xây dựng sơ đồ.

/đầu ra- thư mục mà các bản ghi được thêm vào sau khi kiểm tra. Ở đây có hai tệp cho mỗi tệp được kiểm tra: .ab.log - nhật ký sau khi tiện ích ab chạy và .output - chứa thông tin được hiển thị trên màn hình (thường là hello world và dữ liệu trên bộ nhớ, thời gian thực hiện và các tệp được sử dụng ).

Các thư mục còn lại là các mẫu khung, trong đó một bộ điều khiển đã được thêm vào, sẽ trả về chuỗi “hello world” khi được truy cập bởi một URI được biên dịch theo các quy tắc truy cập khung này.

Để chạy thử nghiệm, trước tiên bạn cần định cấu hình các khung. Hãy xem xét hai cách tiếp cận.

Lệnh bash setup.sh sẽ định cấu hình các khung được mô tả trong tệp list.sh. Bạn có thể chỉnh sửa nó: thêm và xóa các thư mục để thử nghiệm. Đó là, cấu hình nó như bạn cần.

lệnh bash setup.sh fatfree-3.5/ slim-3.0/ lumen-5.1/ silex-1.3/ bạn có thể cài đặt một số khung riêng lẻ bằng cách chỉ định chúng làm tham số cho lệnh. Trong một số trường hợp, điều này thuận tiện nhưng chúng tôi đã sử dụng cách tiếp cận đầu tiên.

Sau khi thiết lập các khung, chúng tôi bắt đầu thử nghiệm bằng bash benchmark.sh.

Khi kết thúc công việc, một bảng xuất hiện trong thiết bị đầu cuối với danh sách các khung được thử nghiệm, số lượng yêu cầu mỗi giây, giá trị tương đối của bộ nhớ bị chiếm dụng, cũng như giá trị tương đối của các chỉ báo này.

Để hiển thị biểu đồ, chúng tôi đã sử dụng liên kết http://localhost/php-framework-benchmark/.

Như bạn đã hiểu, cần phải cấu hình Apache và buộc nó xem thư mục có khung. Tất cả điều này được mô tả trong readme, vì vậy không có câu hỏi nào phát sinh.

Kết quả kiểm tra khung

Mỗi phần có cấu trúc bao gồm hai hình thức trình bày kết quả.

Hình thức đầu tiên là một kiểu trình bày trực quan. Mỗi đặc điểm chứa 4 sơ đồ. Mỗi biểu đồ hiển thị sự so sánh giữa các khung, cùng với biểu đồ tích lũy. Nó được xây dựng bằng cách sử dụng phiên bản cụ thể RNR. Bằng cách này, bạn có thể theo dõi sự phát triển của các cải tiến trong PHP và các khung công tác.

Hình thức thứ hai là kết quả kiểm tra dưới dạng bảng (hình dung đủ rồi, hãy nghiêm túc nào - hãy cho tôi thêm số!).

Hiệu suất (thông lượng)

Liên quan đến tình huống của chúng tôi, đặc tính thông lượng được đo bằng số lượng yêu cầu mà khung của chúng tôi có thể xử lý trong vòng một giây. Do đó, con số này càng cao thì ứng dụng của chúng tôi sẽ càng hoạt động hiệu quả hơn vì nó có thể xử lý các yêu cầu một cách chính xác số lượng lớn người dùng.

Chúng tôi đã nhận được kết quả sau (yêu cầu mỗi giây):

php 5.6 php 7.0 php 7.1
phalcon-3.1.2 5058.00 5130.00 7535.00
ci-3.0 2943.55 4116.31 4998.05
mỏng-3.0 2074.59 3143.94 3681.00
yii-2.0 1256.31 2276.37 2664.61
silex-1.3 1401.92 2263.90 2576.22
lumen-5.1 1316.46 2384.24 2741.81
ze-1.0 1181.14 1989.99 1741.81
phpixie-3.2 898.63 1677.15 1896.23
nhiên liệu-1.8 1044.77 1646.67 1770.13
bluz-7.3.1 - * 1774.00 1890.00
zf-2.5 198.66 623.71 739.12
zf-3.0 447.88 1012.57 1197.26
symfony-2.7 360.03 873.40 989.57
symfony-3.0 372.19 853.51 1022.28
laravel-5.3 258.62 346.25 625.99
laravel-5.4 219.82 413.49 600.42

Để rõ ràng, chúng tôi đã xây dựng biểu đồ cho từng phiên bản PHP:

PHP5.6:

PHP7.0:

PHP7.1:



Bộ nhớ đỉnh

Đặc tính này (tính bằng megabyte) chịu trách nhiệm về lượng bộ nhớ mà khung chiếm dụng khi thực hiện nhiệm vụ được giao cho nó. Ít số đã cho, thì càng tốt cho chúng tôi và cho máy chủ:
php 5.6 php 7.0 php 7.1
phalcon-3.1.2 0.27 0.38 0.37
ci-3.0 0.42 0.38 0.38
mỏng-3.0 0.61 0.55 0.55
yii-2.0 1.31 0.91 0.91
silex-1.3 0.74 0.65 0.65
lumen-5.1 0.80 0.63 0.63
ze-1.0 0.79 0.56 0.56
phpixie-3.2 1.22 0.82 0.82
nhiên liệu-1.8 0.7 0.6 0.6
bluz-7.3.1 - * 0.69 0.69
zf-2.5 3.06 1.34 1.34
zf-3.0 2.12 1.09 1.08
symfony-2.7 3.11 1.41 1.42
symfony-3.0 2.86 1.30 1.32
laravel-5.3 2.91 2.04 2.04
laravel-5.4 3.04 1.45 1.49

* - bluz-7.3.1 không hỗ trợ php 5.6

PHP 5.6:

PHP 7.0:

PHP 7.1:

Biểu đồ tích lũy tóm tắt (theo khung):

thời gian dẫn

Thời gian thực thi là thời gian để hệ thống hoàn thành một nhiệm vụ nhất định. Nó được hệ thống đo lường từ khi bắt đầu nhiệm vụ cho đến khi đưa ra kết quả.

Chúng tôi đã xem xét khung có thể xử lý bao nhiêu yêu cầu mỗi giây và nó chiếm bao nhiêu bộ nhớ. Bây giờ hãy xem chúng ta cần đợi bao lâu để nhận được phản hồi từ máy chủ. Giá trị này càng thấp thì càng tốt cho chúng tôi và đối với hệ thần kinh của khách hàng trong ứng dụng của chúng tôi.

Thời gian được tính bằng mili giây (ms):

php 5.6 php 7.0 php 7.1
phalcon-3.1.2 1.300 1.470 1.080
ci-3.0 0.996 0.818 1.007
mỏng-3.0 1.530 1.228 0.662
yii-2.0 1.478 1.410 1.639
silex-1.3 4.657 1.625 2.681
lumen-5.1 2.121 1.829 1.228
ze-1.0 2.629 2.069 1.528
phpixie-3.2 9.329 4.757 1.911
nhiên liệu-1.8 3.283 2.684 1.425
bluz-7.3.1 - * 1.619 1.921
zf-2.5 22.042 5.011 3.998
zf-3.0 12.680 2.506 2.989
symfony-2.7 6.529 3.902 2.384
symfony-3.0 9.335 3.987 2.820
laravel-5.3 19.885 4.840 2.622
laravel-5.4 19.561 4.758 3.940

PHP 5.6:

PHP 7.0:

PHP 7.1:

Biểu đồ tích lũy tóm tắt (theo khung):

Các tập tin đi kèm

Một đặc tính chịu trách nhiệm về số lượng tệp được bao gồm được mô tả trong tệp "điểm vào" của khung. Rõ ràng là hệ thống dành một chút thời gian để tìm kiếm và kết nối. Kể từ đây, Làm sao ít tập tin hơn, càng nhanh Ứng dụng sẽ được khởi chạy lần đầu tiên, vì thông thường trong những lần tiếp theo, khung hoạt động với bộ đệm, giúp tăng tốc công việc:
phalcon-3.1.2 5
ci-3.0 26
mỏng-3.0 53
yii-2.0 46
silex-1.3 63
lumen-5.1 37
ze-1.0 68
phpixie-3.2 163
nhiên liệu-1.8 53
bluz-7.3.1 95
zf-2.5 222
zf-3.0 188
symfony-2.7 110
symfony-3.0 192
laravel-5.3 38
laravel-5.4 176


Sự khác biệt về số lượng tệp được bao gồm giữa Laravel 5.3 và Laravel 5.4 có vẻ lạ và làm nảy sinh các cuộc thảo luận, tranh chấp, v.v. Chúng tôi vội vàng làm rõ tình hình. Như bạn đã biết, sử dụng lệnh

Tối ưu hóa thủ công Php --force

Trong Laravel 5.3, bạn có thể tạo tệp được biên dịch.php và do đó giảm số lượng tệp được bao gồm bằng cách tập hợp chúng thành một. Nhưng có một chữ “nhưng”: lệnh tạo tệp này trong Laravel 5.4 không còn nữa. Nhà phát triển đã quyết định loại bỏ tính năng này vì anh ấy cho rằng (https://github.com/laravel/framework/pull/17003) rằng tốt hơn nên sử dụng opcache để điều chỉnh hiệu suất.

Có đáng để nâng cấp không?

Dữ liệu tóm tắt theo phiên bản cho thấy rõ hơn mức độ tăng năng suất và hiệu quả tài nguyên sẽ xảy ra khi chuyển (hoặc chọn ban đầu) sang phiên bản PHP mới.

Khi chuyển từ PHP 5.6 sang PHP 7.0, mức tăng hiệu suất trung bình là gần +90%, với mức tăng hiệu suất tối thiểu là +33% đối với Laravel 5.3 và tối đa >200% đối với Zend Framework 2.5.

Việc chuyển đổi từ phiên bản 7.0 sang 7.1 không còn quá sốc nữa nhưng tính trung bình vẫn giúp hiệu suất tăng gần 20%.

Kết hợp tất cả dữ liệu thu được về hiệu suất của các phiên bản PHP khác nhau, chúng tôi nhận được những “nệm” sau:


Sự thật thú vị: Laravel 5.3 cho thấy mức tăng hiệu suất nhỏ nhất khi di chuyển từ PHP 5.6 sang PHP 7.0, nhưng mức tăng lớn nhất khi di chuyển từ phiên bản 7.0 sang phiên bản 7.1 và kết quả là hiệu suất của Laravel 5.3 và 5.4 trên PHP 7.1 gần như giống nhau.

Mức tiêu thụ bộ nhớ cũng đã được tối ưu hóa, do đó, việc chuyển từ PHP 5.6 sang PHP 7.0 sẽ cho phép ứng dụng của bạn tiêu thụ ít bộ nhớ hơn 30%.

Việc cập nhật từ phiên bản 7.0 lên phiên bản 7.1 thực tế không mang lại sự gia tăng nào, và trong Symfony và Laravel mới nhất, chúng tôi hoàn toàn chìm trong sắc đỏ, vì chúng bắt đầu “ăn” nhiều hơn một chút.


Tất cả những gì còn lại là xem xét thời gian thực hiện, và vâng, mọi thứ ở đây cũng ổn:

  • Chuyển từ PHP 5.6 sang PHP 7.0 sẽ giúp bạn tăng tốc trung bình 44%.
  • Việc chuyển từ PHP 7.0 sang PHP 7.1 sẽ giúp bạn tăng tốc thêm 14%.

Ghi chú. Thử nghiệm với ab - những gì chúng tôi gặp phải


“Còn slim và phpixie thì sao” - câu hỏi này đã thúc đẩy một cuộc điều tra về hành vi của tiện ích ab khi tương tác với các khung này.

Hãy chạy thử nghiệm riêng cho Slim-3.0:

Ab -c 10 -t 3 http://localhost/php-framework-benchmark/slim-3.0/index.php/hello/index

Mức độ đồng thời: 10
Thời gian thực hiện bài kiểm tra: 5,005 giây
Hoàn thành yêu cầu: 2
Yêu cầu không thành công: 0
Tổng số được chuyển: 1800 byte
HTML được chuyển: 330 byte
Số yêu cầu mỗi giây: 0,40 [#/giây] (trung bình)
Thời gian cho mỗi yêu cầu: 25024.485 (trung bình)
Thời gian cho mỗi yêu cầu: 2502.448 (trung bình trên tất cả các yêu cầu đồng thời)
Tốc độ truyền: 0,35 nhận được

Đã xảy ra sự cố - số lượng yêu cầu mỗi giây chỉ là 0,4 (!)

Ab -c 10 -t 3 http://localhost/php-framework-benchmark/laravel-5.4/public/index.php/hello/index

Mức độ đồng thời: 10
Thời gian thực hiện các bài kiểm tra: 3,004 giây
Hoàn thành yêu cầu: 1961
Yêu cầu không thành công: 0
Tổng số được chuyển: 1995682 byte
HTML được chuyển: 66708 byte
Số yêu cầu mỗi giây: 652,86 [#/giây] (trung bình)
Thời gian cho mỗi yêu cầu: 15.317 (trung bình)
Thời gian cho mỗi yêu cầu: 1,532 (trung bình trên tất cả các yêu cầu đồng thời)
Tỷ lệ chuyển: 648,83 nhận được

Sự cố là do kết nối Keep Alive, bạn có thể tìm hiểu thêm tại đây.

“Khi bạn thực hiện các yêu cầu với “Kết nối: duy trì hoạt động”, yêu cầu tiếp theo tới máy chủ sẽ sử dụng cùng một kết nối TCP. Đây được gọi là kết nối liên tục HTTP. Điều này giúp giảm tải CPU về phía máy chủ và cải thiện độ trễ/thời gian phản hồi.

Nếu một yêu cầu được thực hiện với “Kết nối: đóng”, điều này cho biết rằng sau khi yêu cầu được thực hiện, máy chủ cần đóng kết nối. Và như vậy với mỗi yêu cầu, một kết nối TCP mới sẽ được thiết lập.

Theo mặc định, máy khách/máy chủ HTTP 1.1 sử dụng tính năng duy trì trong khi máy khách/máy chủ HTTP 1.0 không hỗ trợ tính năng duy trì theo mặc định.”


Vì vậy, bài kiểm tra Slim sẽ trông như thế này:

Ab -H "Kết nối: đóng" -c 10 -t 3 http://localhost/php-framework-benchmark/slim-3.0/index.php/hello/index

Mức độ đồng thời: 10
Thời gian thực hiện bài kiểm tra: 3.000 giây
Hoàn thành yêu cầu: 10709
Yêu cầu không thành công: 0
Tổng số được chuyển: 2131091 byte
HTML được chuyển: 353397 byte
Số yêu cầu mỗi giây: 3569,53 [#/giây] (trung bình)
Thời gian cho mỗi yêu cầu: 2.801 (trung bình)
Thời gian cho mỗi yêu cầu: 0,280 (trung bình trên tất cả các yêu cầu đồng thời)
Tỷ lệ chuyển: 693,69 nhận được

Phần kết luận

Như bạn có thể mong đợi, người dẫn đầu không thể tranh cãi về hiệu suất (nhưng không phải tốc độ phát triển) là Phalcon. Vị trí thứ hai - và thực sự là đầu tiên trong số các khung công tác PHP (không phải C, trong đó mã nguồn Phalcon được viết) - là CodeIgniter 3!

Tất nhiên, chúng ta không nên quên rằng mỗi nhạc cụ đều có mục đích riêng. Nếu bạn chọn một khung nhỏ và nhẹ và định viết thứ gì đó không phải là các ứng dụng đơn giản hoặc API REST trên đó, thì rất có thể bạn sẽ gặp phải vấn đề khi mở rộng chức năng. Và ngược lại - sự dư thừa của các framework lớn, đầy đủ tính năng sẽ kéo theo chi phí tài chính để duy trì dịch vụ lưu trữ ngay cả đối với các ứng dụng cơ bản chịu tải nặng.

Thử nghiệm này được thực hiện để thuyết phục/nói/củng cố vị thế của ngôn ngữ PHP phiên bản 7.0 và 7.1 trong tâm trí bạn và trong các dự án trong tương lai, nhằm truyền tải thông điệp rằng năng suất thực sự đã tăng lên.

Việc tái cấu trúc cấu trúc dữ liệu nội bộ và thêm một bước bổ sung trước khi biên dịch mã thành Cây cú pháp trừu tượng (AST) mang lại hiệu suất vượt trội và phân bổ bộ nhớ hiệu quả hơn. Bản thân các kết quả có vẻ đầy hứa hẹn: các thử nghiệm được thực hiện trên ứng dụng thực tế, cho thấy rằng PHP 7 trung bình nhanh gấp đôi so với PHP 5.6 và cũng sử dụng bộ nhớ ít hơn 50% trong quá trình xử lý truy vấn, khiến PHP 7 trở thành đối thủ nặng ký cho trình biên dịch HHVM JIT của Facebook.

Các thử nghiệm xác nhận đầy đủ cả quá trình xử lý yêu cầu được tăng tốc gấp đôi trong PHP7 và lượng bộ nhớ được sử dụng đã giảm.

Các khung công tác PHP được thiết kế để giúp việc này trở nên dễ dàng hơn vấn đề phức tạp Mã hóa dành cho nhà phát triển PHP. Ngôn ngữ lập trình được công nhận trên toàn cầu này giúp các nhà phát triển tạo ra các ứng dụng web độc quyền một cách nhanh chóng. một khoảng thời gian ngắn. Trên thực tế, phần hay nhất của PHP là tính dễ thích ứng. Nó dễ học hơn so với các ngôn ngữ kịch bản khác.

Bằng cách sử dụng các khung công tác PHP, các nhà phát triển có thể giảm đáng kể thời gian phát triển, tránh phải viết mã từ đầu. Nếu không có khung PHP được chỉ định phù hợp thì rất khó để quản lý mã. PHP hoạt động trên MVC (Model-View-Controller), là một mẫu kiến ​​trúc có sẵn trong các ngôn ngữ lập trình, tạo cầu nối giữa logic lĩnh vực chủ đềgiao diện người dùng. Nhiệm vụ của logic miền là làm việc với khả năng quản lý việc trao đổi thông tin giữa cơ sở dữ liệu và giao diện người dùng. Điều này đơn giản hóa toàn bộ quá trình.

Dưới đây là danh sách 42 framework PHP tốt nhất mà bạn có thể sử dụng trong năm 2017.

Laravel framework có các quy tắc ngôn ngữ rõ ràng và rõ ràng giúp các ứng dụng web nổi bật so với các ứng dụng còn lại. Khung này được tạo ra để cung cấp cho các nhà phát triển một nguồn mở, miễn phí mã nguồn Khung PHP cho các ứng dụng web. Thêm vào sự phổ biến của khung này là một số tính năng nhất định như công cụ xây dựng mạnh mẽ, ứng dụng lớn mạnh mẽ với bộ chứa quản lý đảo ngược chuyên dụng, khung di chuyển giao tiếp và chương trình thử nghiệm bảo trì được triển khai chặt chẽ.

Là một khung PHP rất phổ biến trong số các nhà phát triển chuyên nghiệp, Symfony được sử dụng để phát triển các trang web và ứng dụng xuất sắc thông qua nhiều phương pháp chuyên nghiệp và sáng tạo khác nhau. Đó là một khuôn khổ mạnh mẽ giúp giảm bớt các vấn đề về cấu trúc mã hóa lặp đi lặp lại. Hơn nữa, nó đảm bảo một nền tảng ổn định, khiến nó trở thành một trong những khung PHP được săn lùng nhiều nhất trên toàn thế giới.

Được coi là linh hoạt, codeigniter được mở phần mềm PHP, đã đạt được sự công nhận nhờ khả năng thực thi cổ điển của nó. Trên thực tế, nó có khả năng hỗ trợ thế hệ phát triển ứng dụng tiếp theo yêu cầu mã hóa đơn giản hóa. Điều này có nghĩa là sẽ không có hạn chế nào trong quá trình mã hóa và không cần cấu hình phức tạp để khung hoạt động. Tóm lại, cái hay của Codeigniter là nó cung cấp giải pháp đơn giản vấn đề lập trình phức tạp để tạo các ứng dụng web.

Đó là một khung PHP nhanh, an toàn và chuyên nghiệp, cung cấp hỗ trợ bộ nhớ đệm mạnh mẽ và được xây dựng để hoạt động thông minh với AJAX. Không còn nghi ngờ gì nữa, các giải pháp phát triển nhanh chóng của framework giúp các nhà phát triển dễ dàng tạo các ứng dụng trong thời gian ngắn. Được thiết kế đẹp mắt với tài liệu chất lượng trong khung thời gian eo hẹp, các ứng dụng được xây dựng bằng Yii Framework mang đến những trải nghiệm tuyệt vời. Kinh nghiệm người dùng và các tính năng.

Tất nhiên, thuộc loại framework mạnh mẽ, Cake PHP 3.0 là một trong những framework PHP quan trọng nhất được các nhà phát triển tin cậy. Nó đã được cập nhật qua nhiều năm với các phiên quản lý ngẫu hứng, các cải tiến dựa trên ORM, v.v. Nền tảng này cũng cung cấp các giải pháp tạo thư viện độc lập với sự hỗ trợ vô tận để tăng tính mô đun.

Được coi là một khung công tác đầy đủ, khung công tác PHP này được viết bằng ngôn ngữ C và C++. Những ngôn ngữ này được thêm vào yếu tố hiệu suất Phalcon. Nhờ các tính năng cải tiến, Phalcon đã nhanh chóng trở thành một trong những framework phổ biến nhất để tạo các ứng dụng web.

Một framework PHP nổi bật khác. Một framework hoàn toàn sáng tạo, an toàn và linh hoạt mà các lập trình viên cần để tạo các ứng dụng web. Trong những năm qua, Zend đã được sử dụng trong các dự án doanh nghiệp lớn. Là một phần mềm nguồn mở, framework này yêu cầu sử dụng mã hướng đối tượng để phát triển các ứng dụng web. Kết hợp với công cụ thư viện tiêu chuẩn mạnh mẽ, Zend cung cấp hiệu suất cao với việc triển khai MVC, xác nhận trạng thái của nó như một khung có ảnh hưởng và linh hoạt.

Đây là tập hợp các thư viện độc lập, chất lượng cao, được kiểm tra đầy đủ, có thể được sử dụng một cách thông minh trong bất kỳ loại khung mã hóa nào. Nó được thiết kế đặc biệt dành cho những người tin tưởng vào mã hóa sạch, các thư viện được tách rời hoàn toàn và các bộ tự quản lý. Bộ sưu tập cũng cung cấp các cấu trúc tiêu chuẩn, được kiểm tra kỹ lưỡng và tầm thường.

Đó là một khung công tác PHP 5.3+ nhẹ, nhanh nhẹn, hướng tới cộng đồng dựa trên ý tưởng hay nhất từ các cấu trúc khác. Phổ biến như một mô hình trình bày, Fuel PHP được tích hợp chức năng bổ sung giữa các bộ điều khiển. Đó là một khung PHP mạnh mẽ, chuyên nghiệp và đáp ứng giúp bạn tạo ra các trang web đáng kinh ngạc.

Các nhà phát triển PHP đang tìm kiếm một khung PHP nhẹ hãy chọn PHPixie vì nó chạy trên nền tảng mẫu MVC để giúp các nhà phát triển tạo ứng dụng trong một khoảng thời gian ngắn. Nó là một công cụ dễ học giúp tạo ra các ứng dụng web chất lượng cao một cách hoàn hảo. Ngoài ra, nó còn tạo nền tảng vững chắc cho sự phát triển. Yêu cầu ít cấu hình hơn và dễ sử dụng, framework này sẽ ngày càng trở nên phổ biến hơn trong những ngày tới.

Kohana là một khung PHP phong cách với nhiều tính năng để tạo các ứng dụng web. Anh ấy giúp đỡ trong tạo nhanh các ứng dụng web nhờ nhiều thành phần phổ quát được tích hợp như công cụ dịch thuật, lập hồ sơ mã, truy cập cơ sở dữ liệu, mã hóa, xác minh và nhiều hơn nữa. Khung này cũng có các công cụ gỡ lỗi và lập hồ sơ tuyệt vời để giúp giải quyết mọi vấn đề. Kohana được thiết kế để trở thành một khung PHP nhanh được tối ưu hóa để xử lý trong thế giới thực.

Được thiết kế như một khung nhẹ, Slim là một khung vi mô cho phép bạn nhanh chóng tạo các ứng dụng web nhẹ và mạnh mẽ. Nó có bộ định tuyến mạnh mẽ, mẫu hình ảnh, bộ nhớ đệm http, tin nhắn flash, cookie bảo mật với mã hóa AES-256, ghi nhật ký, xử lý và gỡ lỗi lỗi cũng như cấu hình nhẹ.

Flight là một micro framework phổ biến dành cho các nhà phát triển PHP và được biết đến như một framework nhanh, nhẹ và linh hoạt. Phần tốt nhất của framework này là nó cho phép các nhà phát triển tạo ra các ứng dụng web mạnh mẽ một cách nhanh chóng và dễ dàng. Nó yêu cầu PHP 5.3+.

Medoo là khung PHP nhẹ và dễ quản lý nhất được sử dụng để tăng tốc quá trình phát triển web của bạn. Nó chỉ chiếm 13kb dung lượng trong một tệp. Khung này cực kỳ dễ học và triển khai, tương thích với nhiều cơ sở dữ liệu SQL khác nhau, chẳng hạn như MySQL, SQLite và MSSQL DBMS, Maria DB, Oracle, Postgre SQL, Sybase và các cơ sở dữ liệu khác. Nền tảng này được cung cấp miễn phí theo giấy phép MIT. Medoo là một sự trợ giúp lớn cho những nhà phát triển không muốn bối rối trong việc quản lý các yêu cầu mã hóa phức tạp.

Thiết kế của khung POP PHP khá nặng nhưng dễ sử dụng với API hiệu quả. Nó yêu cầu PHP 5.3+ và đã cố gắng duy trì tính tối giản và nhẹ nhàng. Mặc dù nhiều tính năng mới đã được thêm vào nhưng nó vẫn chỉ có thể được sử dụng như một công cụ hoặc làm nền tảng cho các ứng dụng của bạn.

Đây là trợ thủ đắc lực cho các nhà phát triển trong việc tạo ra những trang web tốt hơn. Nó sử dụng các công nghệ cấp tiến giúp loại bỏ các lỗ hổng bảo mật và xử lý sai như XSS cũng như các bản ghi phiên. Khung này có các công cụ sửa lỗi mạnh mẽ giúp phát hiện lỗi.

Là một micro-framework mạnh mẽ và dễ sử dụng, Fat-free được Bong Cosca tạo ra vào năm 2009. Quả thực, đây là một trong những framework nhẹ nhất, nặng chưa đến 50 kb. Nó được tạo gần như hoàn toàn bằng PHP với các tính năng như bộ định tuyến URL, hỗ trợ ứng dụng đa ngôn ngữ và công cụ bộ đệm. Có nhiều plugin cho cơ sở dữ liệu phong phú hoạt động máy chủ chẳng hạn như MSSQL, MySQL, PostgreSQL, SQLite, Sybase, MongoDB, DB2, CouchDB và Tệp phẳng.

Còn tiếp…