Thứ Năm, 22 tháng 10, 2015

Sự Hình Thành Và Phát Triển Của Laravel Framework

       Khi các bạn bắt đầu tìm hiểu về Laravel thì tôi tin chắc rằng bạn đã có một kiến thức đủ vững vàng về PHP, OPP, .... Laravel là một PHP Framework khá mới mẻ so với các PHP Framework gạo cội khác như Zend hay CodeIgniter . Phiên bản đề tiên Laravel 1 được phát hình vào 6/2011 dưới bàn tay của Taylor Otwell . Tuy là một PHP Framework sinh sau để muộn nhưng Laravel đã đem đến cộng đồng lập trình PHP một cách toàn diện từ Document và các phiên bản sau này được cập nhật thường xuyên. Nói một cách khác, chính Larvel đã kéo lại một lượng đông đảo các Dev chuyển sang Ruby on Rails ( một Ruby Framework nổi tiếng ). Phiên bản mới nhất là Laravel 5.1 các bạn có thể tham khảo tại trang chủ của Laravel.


Thống Kê PHP Framework 2015 theo www.sitepoint.com

Ngay từ khi ra mắt, Laravel đã được chú ý đến bởi nhiều đặc điểm “nhẹ mà hay” như Eloquent ORM, localization, models and relationships, routing, caching, sessions, views, ... Chính tác giả Laravel - Taylor Otwell đã nói rằng Laravel được tạo ra để khắc phục những vấn đề còn vướng mắc và thiếu sót mà CodeIgniter còn gặp phải.

SƠ LƯỢC CÁC TÍNH NĂNG CƠ BẢN CỦA LARAVEL .
    • Bundles : Ở laravel phiên bản 3.x, cung cấp một hệ thống đóng gói các module, với rất nhiều tính năng đi kèm.
    • Composer : Ở laravel phiên bản 4.x, được sử dụng như một công cụ quản lý với tính năng như thêm các gói cài đặt, các chức năng PHP phụ trợ cho Laravel có trong kho Packagist.
    • Eloquent ORM (object relation mapping) : ánh xạ các đối tượng và quan hệ cơ sở dữ liệu, cung cấp các phương thức nội bộ để thực thi đồng thời cũng bổ sung các tính năng hạn chế về mối quan hệ giữa các đối tượng cơ sở dữ liệu. Eloquent ORM trình bày các bảng trong cơ sở dữ liệu dưới dạng các lớp, cung cấp thêm lựa chọn truy cập cơ sở dữ liệu trực tiếp mới mẻ hơn, chuyên nghiệp hơn.
    • Application logic : Là một phần của phát triển ứng dụng, được sử dụng bởi bộ điều khiển controllers.
    • Routes : Định nghĩa mối quan hệ giữa các đường dẫn (url), các liên kết (link) . Khi một liên kết được tạo ra bằng cách sử dụng tên của routes, thì một định danh liên kết thống nhất sẽ được tạo ra bởi laravel.
    • Restful Controller : cung cấp các tùy chọn để tách các logic phía sau các request HTTP POST, GET
    • Class auto loading : cung cấp việc tải tự động các class trong PHP, mà không cần include các class vào. Tùy thuộc vào yêu cầu các class cần thiết sẽ được nạp vào, hạn chế các class không cần thiết.
    • View : chưa các mã html, hiển thị dữ liệu được chỉ định bởi controller
    • Migrations : cung cấp một hệ thống kiểm soát các phiên bản lược đồ cơ sở dữ liệu (database cheme), làm cho web ứng dụng có khả năng tương tác phù hợp những thay đổi logic, các đoạn  code của ứng dụng và những thay đổi cần thiết trong việc bố trí cơ sở dữ liệutriển khainới lỏng và cập nhật các ứng dụng.
    • Unit Testing : đóng một vai trò quan trọng trong Laravel, Unit testting chứa rất nhiều các hệ thống unit testing, giúp phát hiện và ngăn chặn lỗi trong khuôn khổ nhất định. Unit Testing có thể được chạy thông qua tiện ích command-line.
    • Automatic pagination : Tính năng tự động phân trang được tích hợp vào Laravel giúp đơn giản hóa các nhiệm vụ thực hiện phân trang so với các phương pháp thông thường.

Ở phiên bản mới nhất Laravel 5.1 có những tính năng đặt biệt ấn tượng :

Hỗ trợ dài hạn về bảo mật :

      Kể từ khi ra đời năm 2011, Laravel luôn luôn đi theo "chân ngôn" release early, release often, là xu hướng chung của giới phát triển mã nguồn mở. Tuy nhiên với sự phát triển và phổ biến nhanh chưa từng thấy của framework này, tác giả đã phải nghĩ đến việc cung cấp hỗ trợ cho các công ty, tổ chức lớn, nơi cần một framework ổn định và bảo mật tốt, đồng thời không thể bảo trì và nâng cấp một cách thường xuyên. Laravel 5.1 được release bao gồm cả một gói hỗ trợ với thời gian 3 năm về mọi vấn đề bảo mật.
     Chính sách hỗ trợ dài hạn nói trên là điểm sáng lớn nhất của lần release này, tuy nhiên ngoài ra Taylor Otwell cũng giới thiệu thêm những tính năng mới dưới đây.

 Hệ thống tài liệu chất lượng cao

Hệ thống tài liệu (document) đã được làm lại một cách cẩn thận và rõ ràng hơn. Mỗi trang tài liệu đã được dành vô số thời gian tỉ mỉ để chăm chút cẩn thận.
Khi được hỏi tại sao lại dành nhiều thời gian để làm lại document như vậy, Taylor Otwell nói rằng ông sẽ lùi thời gian release của mỗi phiên bản mới, thay vì release sớm nhưng cùng với một bản tài liệu nghèo nàn.
Hệ thống tài liệu lần này đi kèm với khă năng tìm kiếm real-time và auto-completeLaravel Document

PRS-2

Toàn bộ framework và bộ generator đã được convert về chuẩn PSR-2. Ngoài ra tất cả tab đều được chuyển thành space.

Gọi Service ngay trên template

Từ bây giờ, tất cả service có thể được gọi trực tiếp từ template blade .
@extends('layouts.app')
@inject('stats', 'StatisticsService')
<div>{{ $stats->getCustomerCount() }}</div>

Event qua websocket

Hệ thống event (sự kiện) đã được giới thiệu từ lần release trước, tuy nhiên từ bây giờ thì event có thể được phát qua websocket đến client-side, điều này mở ra tiềm năng phát triển cho những ứng dụng trao đổi theo thời gian thực (Real-time application), dựa trên backend là Laravel và các front-end framework của JS.

Application Unit Testing

Unittest trong Laravel đã trờ trên dễ dàng hơn nữa
public function testNewUserRegistration()
{
    $this->visit('/register')
         ->type('Taylor', 'name')
         ->check('terms')
         ->press('Register')
         ->seePageIs('/dashboard');
}

Commands

Commands trong các bản Laravel trước được đổi tên thành Jobs, với ý nghĩa để chuyên dùng cho xử lý các jobs theo hàng đợi. Thay đổi này hoàn toàn không làm mất tính tương thích với các phiên bản trước.

Tùy chỉnh bỏ qua bộ lọc CSRF

Từ Laravel 5.0 mọi request đến đều phải đi qua một CRSF middleware (bộ lọc phòng chống tấn công Cross-site request forgery hay one-click-attack), Tuy nhiên với các dịch vụ webhook thì việc tạo một CRSF token là không thể, vì vậy từ Laravel 5.1, chúng ta có thể "bỏ qua" bộ lọc trong những trường hợp cố định được chỉ định sẵn. Dưới đây là một property của class VerifyCsrfToken
protected $except = [
 'webhook/*'
];

Không có nhận xét nào:

Đăng nhận xét