CHƯƠNG 1: TỔNG QUAN CÔNG NGHỆ SỬ DỤNG 1.1 Ngôn ngữ PHP 1.1 Giới thiệu Ngôn ngữ PHP là một ngôn ngữ lập trình, PHP được viết tắt là Personal Home Page nay chuyển thành Hypertext Preprocessor và nó thường được tích hợp trực tiếp vào mã HTML để tạo ra nội dung động trên các trang web. Với PHP có thể thực hiện nhiều tác vụ như tạo, đọc, ghi và xoá tệp, tương tác với cơ sở dữ liệu, và nhiều chức năng khác để xây dựng ứng dụng web phức tạp.2 Ứng dụng - Thiết lập chương trình cho hệ thống máy chủ - Tạo các dòng tập lệnh - Xây dựng các ứng dụng làm việc - Hỗ trợ mọi loại cơ sở dữ liệu khác nhau 1.3 Ưu nhược điểm của ngôn ngữ lập trình PHP - Ưu điểm + Mã nguồn mở và miễn phí: PHP sử dụng mã nguồn mở và miễn phí và đây cũng là ngôn ngữ rất dễ học + Tính linh hoạt: PHP là ngôn ngữ đa nên tảng, có thể hoạt động trên bất kì nền tảng nào. Hơn nữa, PHP còn có thể kết hợp với nhiều ngôn ngữ lập trình khác. + Hệ thống thư viện phong phú, tính cộng đồng cao: Do sự phổ biến của ngôn ngữ PHP nên việc tìm các thư viện code hay hàm liên quan rất dễ dàng.
Với việc diễn đàn trợ giúp đông đảo nên việc học trở nên dễ dàng. + Cơ sở dữ liệu đa dạng: PHP cho phép kết nối hầu hết cơ sơ dữ liệu khác như MySQL, SQLite, MS-SQL,… - Nhược điểm Mặc dù sở hữu nhiều lợi ích nhưng PHP vẫn còn những hạn chế nhất định, trong đó vấn đề bảo mật được nhiều người quan tâm. Vì PHP là mã nguồn mở nên các lỗ hổng của mã nguồn sẽ bị công khai ngay sau khi được tìm thấy. Và các lỗ hổng này sẽ bị khai thác bởi các mục đích xấu nếu như ta không sửa lỗi kịp 3 Bên cạnh đó, ngôn ngữ PHP chỉ hoạt động được trên các website và giao diện không được gọn gàng, đẹp mắt.
Độ bảo mật và hiệu suất của ngôn ngữ này cũng chưa tốt.1 Laravel framework là gì? Laravel là một PHP framework, có mã nguồn mở miễn phí được xây dựng nhằm hỗ trợ phát triển các phần mềm, ứng dụng, theo kiến trúc MVC. Hiện nay, Laravel đang là framework phổ biến nhất và tốt nhất. - Những lí do khiến Laravel trở nên phổ biến: + Cú pháp dễ hiểu, rõ ràng + Hệ thống đóng gói modul và quản lí gói phụ thuộc + Nhiều cách khác nhau để truy cập vào cơ sở dữ liệu quan hệ + Nhiều tiện ích khác nhau hỗ trợ việc triển khai vào bảo trì ứng dụng 1.2 Framework là gì? PHP Framework là gì? Framework chính là thư viện với các tài nguyên có sẵn cho từng lĩnh vực để lập trình viện sử dụng thay vì tự thiết kế. Có framework, lập trình viên chỉ tìm hiểu và khai thác những tài nguyên đó gắn kết lại với nhau để hoàn chỉnh sản phẩm của mình.
Đối với lập trình viên trong mỗi lĩnh vực, họ cần phải xây dựng các lớp chương trình để xây dựng nên những sản phẩm, ứng dụng thành phẩm. PHP Framework là thư viện làm cho sự phát triển của những ứng dụng web viết bằng ngôn ngữ PHP nên trôi chảy hơn bằng cách cung cấp một cấu trúc cơ bản để xây dựng ứng dụng đó. Hay nói cách khác PHP framework giúp bạn thúc đẩy nhanh chóng quá trình phát triển ứng dụng, giúp ban tiết kiệm được thời gian, tăng ổn định cho ứng dụng.3 MVC? - MVC là mô hình thiết kế được sử dụng trong kỹ thuật phần mềm. MVC chia thành ba phần được kết nối với nhau và mỗi phần đều có một nhiệm vụ riêng của nó và độc lập với các thành phần.
+ Model: Là bộ phận chức năng lưu trữ toàn bộ dữ liệu của ứng dụng và là cầu nối giữa hai thành phần bên dưới là View và Controller. Một model là dữ liệu được sử dụng bởi chương trình. Đây có thể là cơ sở dữ liệu, hoặc file XML bình thường hay một đối tượng đơn giản. 4 + View: Đây là giao diện dành cho người sử dụng.
View là phương tiện hiển thị các đối tượng trong ứng dụng hoặc trang web. + Controller: Là bộ phận có nhiệm vụ xử lí các yêu cầu người dùng đưa đến thông qua View. Một Controller bao gồm cả Model lẫn View. Nó nhận input và thực hiện các update tương ứng.
Hình1: Hình ảnh hoạt động của MVC - Luồng xử lí trong MVC: + Khi một yêu cầu của từ máy khách gửi đến Sever. Thì bị Controller trong MVC chặn lại để xem đó là URL request hay sự kiện + Sau đó. Controllẻ xử lí input của user rồi giao tiếp với Model trong MVC + Model của bị data và gửi lại cho Controller. + Cuối cùng, khi xử lí xong yêu cầu thì Controller gửi dữ liệu trở lại View và hiện thị cho người dùng trên trình duyệt.
5 Hình 2: Luồng xử lí trong MVC Ở đây, View không giao tiếp trực tiếp với Model. Sự tương tác giữa View và Model sẽ chỉ được xử lí bởi Controller. - Ưu điểm và nhược điểm của MVC + Ưu điểm: Băng thông nhẹ vì không sử dụng viewstate nên khá tiết kiệm băng thông. Việc giảm băng thông giúp website hoạt động ổn định hơn.
Kiểm tra đơn giản và dễ dàng, kiểm tra lỗi phần mềm trước khi bàn giao lại cho khách hàng. Có thể dễ dàng duy trì ứng dụng vì chúng được tách biệt với nhau. Có thể chia nhiều developer làm việc cùng một lúc. Công việc của các developer sẽ không ảnh hưởng đến nhau.
+ Nhược điểm: MVC đa phần phù hợp với công ty chuyên về website hoặc các dự án lớn thì mô hình này phù hợp hơn so với với các dự án nhỏ, lẻ vì khá là cồng kềnh và mất thời gian. Không thể xem trước các trang như ASP.NET Khó triển khai 1.3 Lịch sử phát triển của Laravel Phiên bản đầu tiên của Laravel được Taylor Otwell tạo ra vào tháng 6 năm 2011 như một giải pháp thay thế cho Codelgniter. Với framework này, lập trình viên được hỗ trợ nhiều tính năng mới mẻ, hiệu quả và dễ thực hiện hơn.4 Ưu điểm và nhược điểm của Laravel - Ưu điểm: + Sử dụng các tính năng mới nhất của PHP: Sử dụng Laravel giúp các lập trình viên cập những tính năng mới của PHP cung cấp, nhất là Namespaces, Interfaces, Overloading, Anonymous. 6 + Nguồn tài nguyên vô cùng lớn và có sẵn: Nguồn tài nguyên của Laravel rất thân thiên với các lập trình viên với đa dạng tài liệu khác nhau để tham khảo + Tích hợp với dịch vụ mail: Laravel là framework được trang bị API sạch sẽ trên thư viện SwiftMailer, do đó bạn có thể gửi thư qua các dịch vụ dựa trên nền tảng đám mây hoặc local.
+ Tốc độ xử lí nhanh: Laravel hỗ trợ hiệu quả cho việc tạo lập website hay các dự án lớn trong thời gian ngắn. Vì vậy, nó được các công ty công nghệ và lập trình viên sử dụng rộng rãi để phát triển các sản phẩm của họ. + Dễ sử dụng: Laravel được đón và trở nên sử dụng phổ biến vì nó rất dễ sử dụng. Thường chỉ mất vài giờ bạn có thể thực hiện một dự án nhỏ với vốn kiến thức cơ bản nhất về lập trình với PHP.
+ Tính bảo mật cao: Laravel cung cấp sẵn cho người dùng các tính năng bảo mật mạnh mẽ để người dùng hoàn toàn tập trung vào việc phát triển sản phẩm của mình. Sử dụng PDO để chống lại tấn công SQL Injection. Sử dụng một filed token ẩn để chống lại tấn công kiểu CSRF. Mặc định đều được Laravel escape các biến được đưa ra view mặc định, do đó có thể tránh được tấn công XSS.
- Nhược điểm: + So với các PHP framework khác, Laravel bộc lộ khá ít nhược điểm. Vấn đề lớn nhất có thể kể đến của framework này là thiếu sự liên kết giữa các phiên bản, nếu cố cập nhật code, có thể khiến cho ứng dụng bị gián đoạn hoặc phá vỡ. + Bên cạnh đó, Laravel cũng quá nặng cho ứng dụng di động, khiến việc tải trang trở nên chậm chạp.5 Những tính năng hữu ích của Laravel Những tính năng tuyệt vời có thể kể đến của Laravel là: + Composer: Sử dụng để nâng cấp, cài đặt… + Eloquent ORM: Thao tác với cú pháp đẹp mắt và đơn giản. + Resful API: hỗ trợ biến Laravel thành một web service API + Artisan: Cung cấp các lệnh cần thiết để phát triển ứng dụng +View: Giúp code sạch sẽ hơn rất nhiều.
7 + Migrations: Hỗ trợ tạo các trường trong cơ sở dữ liệu, thêm các cột trong bảng, tạo mối quan hệ giữa các bảng, hỗ trợ quản lí cơ sở dữ liệu. + Authentication: Cung cấp sẵn các tính năng đăng nhập, đăng ký, quên mật khẩu… + Unit Testing: Hỗ trợ test lỗi để sửa chữa.6 Cài đặt Laravel 1.1 Yêu cầu hệ thống cài đặt của Laravel Để có thể cài đặt Laravel, bạn cần đáp ứng các yêu cầu bắt buộc sau: - PHP >= 5.9 - OpenSSL PHP Extension - PDO PHP Extension - Mbstring PHP Extension - Tokenizen PHP Extension Đối với Window sử dụng phần mềm tạo webserver trên Window như: Openserver, Xampp,… 1.2 Cài đặt Laravel - Thông qua Laravel Installer Mở Terminal (CMD hoặc Git Bash) gõ lệnh sau: “composer global require “laravel/installer””. +Đối với Windows, đường dẫn là “%appdata%Composervendorbin”. + Đối với Mac và Linux, đường dẫn là “~/.composer/vendor/bin”.
- Thông qua Composer Di chuyển thẳng vào thư mục htdocs của XAMPP, tại đây mở cửa sổ lệnh và gõ “composer create-project-prefer-distlaravel/laravel blog”. Cấu trúc thư mục Laravel Hình 3. Thư mục của Laravel framework + App: Nó là thư mục ứng dụng và bao gồm toàn bộ mã nguồn của dự án. Nó chứa các sự kiện (Event), ngoại lệ (Exception) và khai báo Middleware - Console: Nơi bạn định nghĩa ra các lệnh của Laravel.
- Exceptions: Thư mục này chứa tất cả các phương thức cần thiết để xử lý các ngoại lệ. Nó cũng chứa tệp handle.php xử lý tất cả các trường hợp ngoại lệ. 9 - Http: Thư mục Http này chứa các thư mục con controllers, middleware. Vì Laravel tuân theo mô hình MVC nên thư mục này chứa các xử lý để xử lý request của người dùng.
- Models: Chứa các Class định nghĩa các thành phần để thao tác với CSDL - Providers: Chứa tất cả các Service Provider. Khởi động ứng dụng một cách bắt buộc, đăng ký sự kiện hoặc thực hiện bất kỳ tác vụ nào khác để chuẩn bị ứng dụng của bạn khi các yêu cầu đến. + bootstrap: Thư mục bootstrap chứa tệp app.php khởi động khung. Thư mục này cũng chứa một thư mục bộ đệm chứa các tệp được tạo khung để tối ưu hóa hiệu suất, chẳng hạn như tệp bộ đệm của tuyến đường và dịch vụ.