Framework là một khái niệm của tập hợp các cấu trúc và hướng dẫn, được sử dụng để xây dựng một cái gì đó hữu ích.
Software Framework là gì?
Theo wikipedia, Software Framework là một khái niệm sự trừu tượng (=))) ) trong đó phần mềm cung cấp chức năng chung có thể được thay đổi có chọn lọc bằng code do người dùng viết thêm. Một Software Framework cung cấp một tiêu chuẩn để xây dựng và triển khai các ứng dụng.
Nói một cách đơn giản, Software Frarmework là một cấu trúc mà bạn có thể sử dụng để xây dựng một cái gì đó. Nó cho phép bạn sử dụng các thành phần khác nhau, giao tiếp với các API bên ngoài và xác định cấu trúc ứng dụng của bạn.
Nôm na: Software Framework là cái “Khung” của phần mềm.
Software Framework cho phép bạn:
Giảm độ phức tạp: Software Framework giúp dễ dàng xử lý các tình huống phức tạp và chia tách chúng thành các phần khác nhau.
Clean Code: Software Framework giúp bạn viết code sạch và có thể tái sử dụng.
Kiểm thử và gỡ lỗi: Software Framework giúp kiểm thử dễ dàng hơn và gỡ lỗi tốt hơn.
Nguyên tắc mã hóa: Một Software Framework có hướng dẫn nghiêm ngặt để các lập trình viên tuân theo nhằm thúc đẩy codebase nhất quán với ít lỗi hơn.
Mở rộng: Cho dù ứng dụng của bạn phát triển nhanh như thế nào, các Framework làm cho việc mở rộng ứng dụng theo yêu cầu dễ dàng hơn.
Web Framework là gì?
Web Framework hoặc Web Application Framework chỉ là một Software Framework khác giúp bạn xây dựng các trang web / Ứng dụng web bao gồm cả các Web Service và API.
Web Framework cho phép bạn tạo các thành phần có thể tái sử dụng và lập trình các tác vụ phổ biến của web dễ dàng hơn.
Laravel Framework sở hữu một hệ sinh thái lớn bao gồm các tính năng như: instant deployment, routing, ORM, DB query, Routing, Templating…
Dưới đây là một số tính năng chính làm cho Laravel Framework khác biệt so với các Web Framework khác.
Trong Laravel, IoC (Inversion of Control) hoặc Service Container là công cụ mạnh nhất để quản lý các class phụ thuộc.
Dependency Injection là một phương pháp để loại bỏ các class được lập trình cứng và dễ bị tấn công SQL bằng cách sử dụng một công cụ như Composer.
- Tính mô đun
Tính mô đun là khả năng một thành phần ứng dụng web có thể được tách rời và kết hợp lại.
Bạn có thể phân chia logic nghiệp vụ thành các mô-đun khác nhau, tất cả đều hoạt động cùng nhau để làm cho ứng dụng web hoạt động.
Laravel được thiết kế để tạo ra một ứng dụng web mô-đun hóa, ngay cả bản thân Laravel cũng là một bộ sưu tập các thành phần.
Sử dụng cấu trúc mô-đun, bạn có thể thiết kế và phát triển một ứng dụng doanh nghiệp quy mô lớn một cách dễ dàng. Laravel cung cấp các hướng dẫn rất đơn giản để tạo các mô-đun hoặc pakage trong Laravel.
- Tính năng xác thực
Xác thực là một phần không thể thiếu của bất kỳ website hiện đại nào.
Viết xác thực trong các Framework khác như Codeigniter có thể làm bạn mất rất nhiều thời gian.
Nhưng với Laravel thì hoàn toàn ngược lại, chỉ việc chạy một lệnh đơn giản, bạn có thể tạo một hệ thống xác thực đầy đủ chức năng.
Laravel cũng cung cấp tài liệu tiện dụng để thực hiện xác thực theo nhu cầu riêng của bạn.
- Tính năng Caching
Caching (bộ nhớ đệm) là một kỹ thuật để lưu trữ dữ liệu trong một vị trí lưu trữ tạm thời và có thể được lấy ra một cách nhanh chóng khi cần thiết.
Nó chủ yếu được sử dụng để tăng hiệu suất của website.
Laravel lưu gần như tất cả dữ liệu từ View đến routes. Điều này giúp Laravel giảm thời gian xử lý và tăng hiệu suất.
- Định tuyến (Routing)
Định tuyến (Routing) trong Laravel rất dễ hiểu và giống như Framewwork Ruby on Rails.
Định tuyến Laravel có thể được sử dụng để tạo ra một ứng dụng tĩnh một cách dễ dàng. Bạn có thể nhóm các routes, đặt tên cho chúng, áp dụng các bộ lọc cho chúng và liên kết mô hình dữ liệu của bạn với chúng.
Các routes của Laravel có thể sử dụng để tạo các URL thân thiện với công cụ tìm kiếm với tính linh hoạt và khả kiểm soát tối đa.
- Restful Controllers
Resful Controller của Laravel cho phép bạn tách logic nghiệp vụ sau khi phục vụ các request GET hoặc POST.
Bạn cũng có thể tạo resource controller có thể được sử dụng để tạo CRUD dễ dàng. Sau đó, bạn có thể liên kết resource controller để định tuyến để phục vụ tất cả các routes CRUD tự động.
- Kiểm thử và gỡ lỗi
Laravel đi kèm với PHPUnit để kiểm thử các ứng dụng của bạn. Laravel được xây dựng với khả năng kiểm thử từ đầu, do đó nó hỗ trợ kiểm thử và gỡ lỗi rất tốt. - Template Engine
Blade là template engine của Laravel. Blade cung cấp một số lượng nhỏ chức năng của helper để định dạng dữ liệu của bạn trong View.
Blade cũng triển khai kế thừa template mà bạn có thể sử dụng để tạo bố cục phức tạp. Tất cả các Blade template đều sử dụng phần mở rộng tệp .blade.php.
- Tính năng Database Query Builder
Database Query Builder của Laravel cung cấp một cách thuận tiện để tạo các truy vấn cơ sở dữ liệu.
Nó đi kèm với vô số chức năng của trình trợ giúp mà bạn có thể sử dụng để lọc dữ liệu của mình.
Bạn có thể dễ dàng thực hiện các truy vấn phức tạp bằng join trong Laravel.
Cú pháp Query Builder của Laravel rất dễ hiểu và làm cho việc viết các truy vấn cơ sở dữ liệu trở nên nhẹ nhàng hơn rất nhiều.
- ORM
Laravel dựa trên Eloquent ORM cung cấp hỗ trợ cho hầu hết các database engine.
Nó hoạt động hoàn hảo với MySQL và SQLite.
Laravel cũng cung cấp tài liệu toàn diện cho tất cả các hàm Eloquent.
- Tính năng File System
Laravel cung cấp hỗ trợ cho nhiều hệ thống tập tin. Bạn có thể sử dụng hệ thống tệp cục bộ hoặc bất kỳ nền tảng đám mây nào như Amazon S3.
Bạn có thể chọn hệ thống tệp nào bạn muốn sử dụng bằng cách thay đổi các tùy chọn trong tệp config/filesystems.php.
- Tính năng bảo mật của Laravel rất tốt
Laravel cung cấp một cách để tạo các ứng dụng web an toàn.
Laravel lưu trữ tất cả mật khẩu dưới dạng hash thay vì mật khẩu văn bản text đơn giản. Nó sử dụng BCrytp để băm (hash) mật khẩu.
Laravel cung cấp bảo mật để chống lại các cuộc tấn công truy vấn SQL (SQL injection). An toàn khi xử lý với dữ liệu mà người dùng cung cấp.
- Artisan
Công cụ dòng lệnh của Laravel được gọi là Artisan. Laravel đi kèm với hàng tá lệnh được xây dựng sẵn mà bạn có thể chạy trên giao diện dòng lệnh để thực hiện các tác vụ.
Bạn có thể tránh hầu hết các tác vụ lặp đi lặp lại trong quá trình phát triển bằng công cụ này.
- Hệ thống Migration
Laravel cung cấp hệ thống Migration giống như Ruby on Rails để tạo cấu trúc cơ sở dữ liệu.
“Migration đơn giản là một cách cho phép bạn tạo ra một trong bảng cơ sở dữ liệu, không thực sự đi vào quản lý dữ liệu như phpmyadmin hoặc sql lite…”
Bạn có thể sử dụng ngôn ngữ PHP để viết Migration để tạo cấu trúc cơ sở dữ liệu của bạn thay vì sử dụng SQL.
Bạn có thể tạo cơ sở dữ liệu, bảng và chỉ mục bằng Migration. Nếu bạn muốn thay đổi cột, bạn không cần phải lặp lại việc tạo bảng thay vào đó bạn có thể chạy migration mới.
- Tính năng Envoy
Sử dụng Envoy, bạn có thể chạy tác vụ phổ biến nhất trên các máy chủ từ xa trong ứng dụng của mình. Nó cũng cho phép bạn thiết lập các task để deploy. - Tính năng địa phương hóa
Laravel cho phép bạn tạo một ứng dụng đa ngôn ngữ đồng thời khi xây dựng website của mình. Bạn có thể truy cập chuỗi các ngôn ngữ khác nhau bằng cách sử dụng trình trợ giúp trans().