Tổng quan về PHP Laravel và Restful AP

Một phần của tài liệu Báo cáo app luyện thi toeic (Trang 32 - 40)

3.2.1. Một số ưu điểm của ngôn ngữ PHP

PHP là mã nguồn mở và miễn phí, giúp các nhà phát triển cài đặt nó nhanh chóng và sẵn sàng để sử dụng. Vì nó là nguồn mở, nó làm cho hệ thống sẵn sàng với PHP trong thời gian nhanh chóng và làm cho việc phát triển web nhanh hơn với sự trợ giúp của việc cung cấp các công cụ và các tính năng khác một cách dễ dàng.

PHP chủ yếu được hỗ trợ bởi tất cả các hệ điều hành như Windows, Unix, Linux. Các ứng dụng web được phát triển dựa trên PHP có thể dễ dàng chạy trên mọi nền tảng. Nó có thể được tích hợp với ngơn ngữ lập trình và cơ sở dữ liệu khác một cách dễ dàng và khơng có u cầu phát triển lại. Nó giúp tiết kiệm rất nhiều nỗ lực và chi phí.

Ưu điểm này của PHP là đơn giản và dễ học và viết mã. Người biết bất kỳ ngơn ngữ lập trình nào cũng có thể dễ dàng làm việc trên PHP. Cú pháp rất đơn giản và linh hoạt để sử dụng.

PHP dễ dàng kết nối với cơ sở dữ liệu và tạo kết nối an tồn với cơ sở dữ liệu. Nó có một mơ-đun tích hợp được sử dụng để kết nối với cơ sở dữ liệu một cách dễ dàng.

PHP là một trong số những ngơn ngữ lập trình web nhanh nhất. Các ứng dụng PHP có thể dễ dàng được tải qua Internet và tốc độ dữ liệu chậm

Ưu điểm này của PHP có cộng đồng và hỗ trợ trực tuyến tuyệt vời, giúp các nhà phát triển mới giúp viết mã và phát triển các ứng dụng web.

Các ứng dụng web dựa trên PHP có thể dễ dàng được kiểm tra. Đơn vị PHP sử dụng để thực hiện kiểm tra đơn vị một cách nhanh chóng và dễ dàng.

Các tính năng và cơng cụ tích hợp sẵn của PHP làm cho việc bảo vệ các ứng dụng web khỏi các cuộc tấn cơng bên ngồi và các mối đe dọa bảo mật dễ dàng hơn

PHP cũng ổn định so với các ngơn ngữ lập trình khác. Nó đã tồn tại trong một thời gian dài. Các nhà phát triển đã làm việc trên PHP để giúp các lập trình viên dễ dàng làm việc trong việc phát triển các ứng dụng dựa trên web PHP.

3.2.2. Kiến trúc và ưu điểm của Laravel

Hình 3.6. Kiến trúc của bộ source Laravel

Kiến trúc của Laravel như sau:

- app là thư mục chứa tất cả các thư mục, các tập tin php, các class php, thư viện,

models để xây dựng project của bạn.

o Console thư mục chứa các tập tin định nghĩa các lệnh thực thi trên

Artisan.

o Exception thư mục chứa các tập tin quản lý, điều hướng lỗi.

o Http

Controllers là thư mục chứa các tập tin controllers

Middleware là thư mục chứa các tập tin lọc và ngăn chặn các

requests.

Kernel.php là tập tin cấu hình, định nghĩa Middleware hoặc nhóm

Middleware.

o Providers chứa các providers mình sẽ nói rõ về nó trong các bài nâng

- bootstrap thư mục chứa tập tin điều hướng khởi động hệ thống, thường thì

chúng ta sẽ khơng làm gì đến nó.

- config chứa mọi tập tin cấu hình của Laravel

- database chứa các thư mục tập tin về CSDL

o migrations chứa các tập tin định nghĩa khởi tạo và sử bảng.

o seeds chứa các tập tin định nghĩa dữ liệu insert vào database. (adsbygoogle = window.adsbygoogle || []).push({});

o factories chứa các tập tin định nghĩa các cột bảng dữ liệu để tạo ra các

dữ liệu ảo phục vụ cho tests.

- public chính là webroot người dùng sẽ truy cập vào đây, đây cũng là nơi chứa

các tập tin css, js, image.

- resources chứa các tập tin giao diện (js, css, less, sass, coffeescript), views,

ngôn ngữ.

- storage chứa các tập tin hệ thống như upload, cache, session, cookie, log...

- routes là thư mục chứa các tập tin định nghĩa các router, xử lý router hoặc điều

hướng router (tức là URL, laravel không tự đặt url theo kiểu example.com/controller/action/value mà chúng ta phải tự định nghĩa chúng) bao gồm 3 loại là web, api và console.

- tests chứa các tập tin định nghĩa tests.

- vendor thư mục của composer.

- .env và .env.example là 2 tập tin cấu hình chính của laravel như key app, tên

app, url app, email, env mode, CSDL hay bật tắt debug. - composer.json, composer.lock tập tin của composer.

- package.js tập tin cấu hình của nodejs chứa các package cần thiết cho projects.

- gulpfile.js là tập tin gulp builder.

- phpunit.xml là tập tin xml của phpunit dùng để testing project.

- server.php là tập tin để artisan trỏ đến tạo server khi gõ lệnh php artisan serve

- artisan tập tin thực thi lệnh của Laravel, cũng là tập tin mà chúng ta tương tác

nhiều nhất.

Xây dựng nhanh chóng: Laravel framework có thể được tạo nhanh chóng

bằng cách sử dụng câu lệnh

• Hệ thống routing: Laravel framework hỗ trợ bạn dễ dàng xây dựng url cho hệ thống với sự linh hoạt và dễ dàng kiểm soát. Hiện tại laravel hỗ trợ 2 loại url web.php và api.php.

Mã nguồn mở: Với mã nguồn mở, bạn có thể dễ dàng phát triển hệ thống

rộng lớn và với tất cả mọi vấn đề bạn có thể dễ dàng tìm thấy sự giúp đỡ từ những diễn đàn.

Xác thực (Authenticate): Với laravel bạn có thể dễ dàng xây dựng web

authenticate từ laravel framework 5 trở lên

Mơ hình MVC (MVC architecture): Laravel Framework sử dụng mơ

hình MVC đảm bảo sự rõ ràng giữa logic và trình bày

Sự kế thừa (Method or Dependency Injection): Laravel Inversion of

Control (IoC) là một công cụ mạnh để quản lý sự kế thừa (adsbygoogle = window.adsbygoogle || []).push({});

• Thư viện và cấu hình: với Laravel framework bạn sẽ dễ dàng thêm vào những libraries và bạn cũng sẽ dễ dàng quản lý library thông qua file composer.json

Truy vấn cơ sở dữ liệu (Database query builder): Trình xây dựng truy vấn

cơ sở dữ liệu của Laravel cung cấp một giao diện thuận tiện, thông thạo để tạo và chạy truy vấn cơ sở dữ liệu

Testing và Debugging: Laravel framework được tích hợp sẵn hệ thống

Hình 3.7. Mơ hình MVC trong Laravel 3.2.3. Tìm hiểu về Restful API

RESTful API là một tiêu chuẩn dùng trong việc thiết kế các API cho các ứng dụng web để quản lý các resource. RESTful là một trong những kiểu thiết kế API được sử dụng phổ biến ngày nay để cho các ứng dụng (web, mobile…) khác nhau giao tiếp với nhau.

Chức năng quan trọng nhất của REST là quy định cách sử dụng các HTTP method (như GET, POST, PUT, DELETE…) và cách định dạng các URL cho ứng dụng web để quản các resource. RESTful không quy định logic code ứng dụng và không giới hạn bởi ngơn ngữ lập trình ứng dụng, bất kỳ ngơn ngữ hoặc framework nào cũng có thể sử dụng để thiết kế một RESTful API.

Hình 3.8. Mơ hình hoạt động Restful

REST hoạt động chủ yếu dựa vào giao thức HTTP. Các hoạt động cơ bản nêu trên sẽ sử dụng những phương thức HTTP riêng.

• GET (SELECT): Trả về một Resource hoặc một danh sách Resource.

• POST (CREATE): Tạo mới một Resource.

• PUT (UPDATE): Cập nhật thơng tin cho Resource.

• DELETE (DELETE): Xố một Resource.

Những phương thức hay hoạt động này thường được gọi là CRUD tương ứng với Create, Read, Update, Delete – Tạo, Đọc, Sửa, Xóa.

RESTful API khơng sử dụng session và cookie trong authentication và trả về dữ liệu, nó sử dụng một access_token với mỗi request. Dữ liệu trả về thường có cấu trúc json hoặc XML

Status code

Khi chúng ta request một API nào đó thường thì sẽ có vài status code để nhận biết sau:

• 200 OK – Trả về thành cơng cho những phương thức GET, PUT, PATCH hoặc DELETE.

• 201 Created – Trả về khi một Resouce vừa được tạo thành cơng.

• 204 No Content – Trả về khi Resource xố thành cơng.

• 304 Not Modified – Client có thể sử dụng dữ liệu cache.

• 403 Forbidden – bị từ chối khơng cho phép.

• 404 Not Found – Khơng tìm thấy resource từ URI

• 405 Method Not Allowed – Phương thức khơng cho phép với user hiện tại.

• 410 Gone – Resource khơng cịn tồn tại, Version cũ đã khơng cịn hỗ trợ.

• 415 Unsupported Media Type – Khơng hỗ trợ kiểu Resource này.

• 422 Unprocessable Entity – Dữ liệu khơng được xác thực

• 429 Too Many Requests – Request bị từ chối do bị giới hạn

HTTP Request

• HTTP request có tất cả 9 loại method, 2 loại được sử dụng phổ biến nhất là GET và POST (adsbygoogle = window.adsbygoogle || []).push({});

• GET: được sử dụng để lấy thông tin từ server theo URI đã cung cấp.

• HEAD: giống với GET nhưng response trả về khơng có body, chỉ có header.

• POST: gửi thơng tin tới sever thơng qua các biểu mẫu http.

• PUT: ghi đè tất cả thông tin của đối tượng với những gì được gửi lên.

• PATCH: ghi đè các thơng tin được thay đổi của đối tượng.

• DELETE: xóa tài ngun trên server.

• CONNECT: thiết lập một kết nối tới server theo URI.

• OPTIONS: mơ tả các tùy chọn giao tiếp cho resource.

• TRACE: thực hiện một bài test loop – back theo đường dẫn đến resource.

3.3. Tổng kết chương

Chương 3 ta đã thiết tìm hiểu tổng quan về cơng nghệ React native, cách thức hoạt động, một số ưu và nhược điểm, sự khác biệt giữa ReactJS và React Native. Tìm hiểu về nền tảng PHP Laravel, Restful API.

Chương 4. TRIỂN KHAI VÀ THỰC NGHIỆM

Một phần của tài liệu Báo cáo app luyện thi toeic (Trang 32 - 40)