THÔNG TIN THƯ MỤC VÀ TỔNG QUAN HỌC THUẬT: GIÁO TRÌNH LẬP TRÌNH BACK-END WEB 2

  • Tên giáo trình: Giáo trình môn học: Lập trình Back-End Web 2
  • Mã môn học: CNC107454
  • Đơn vị ban hành: Khoa Công nghệ Thông tin – Trường Cao đẳng Công nghệ Thủ Đức (Ủy ban Nhân dân TP. Hồ Chí Minh)
  • Chủ biên: Phan Thanh Nhuần
  • Năm biên soạn/ban hành: 2020
  • Trình độ đào tạo: Cao đẳng (Ngành/Nghề: Công nghệ thông tin)

Tổng quan về giáo trình

Môn học và vị trí trong chương trình đào tạo

Học phần Lập trình Back-End Web 2 (Mã môn học: CNC107454) là môn học chuyên ngành bắt buộc thuộc chương trình đào tạo trình độ Cao đẳng ngành Công nghệ thông tin tại Trường Cao đẳng Công nghệ Thủ Đức. Môn học được bố trí giảng dạy tại Học kỳ 3 (HK3), đóng vai trò cầu nối chuyển tiếp từ lập trình web căn bản sang lập trình hướng khung phát triển (framework). Học phần này kế thừa trực tiếp khối kiến thức từ môn Lập trình Back-End Web 1 (học phần trang bị ngôn ngữ PHP thuần và hệ quản trị cơ sở dữ liệu MySQL), nhằm cung cấp phương pháp tiếp cận các thư viện mã nguồn mở hiện đại, tập trung chuyên sâu vào Laravel Framework.

Mục tiêu học tập (Learning Outcomes)

Căn cứ theo chuẩn đầu ra của đề cương chi tiết học phần, giáo trình xác lập ba nhóm mục tiêu:

  • Về kiến thức: Người học có khả năng phân tích quy trình xây dựng website hoàn chỉnh theo tài liệu hướng dẫn kỹ thuật; nắm vững cấu trúc, cơ chế vận hành của mô hình MVC và các tầng xử lý trong framework mã nguồn mở.
  • Về kỹ năng: Cài đặt, cấu hình và sử dụng thành thạo các kỹ thuật do Laravel framework cung cấp; hiện thực hóa các chức năng website ở mức độ nâng cao; làm việc với hệ thống định tuyến (Routing), tiền xử lý (Middleware), tầng truy xuất dữ liệu (Query Builder, Eloquent ORM) và đóng gói gói mở rộng (Vendor).
  • Về năng lực tự chủ và trách nhiệm: Hình thành tư duy tiếp cận hệ thống, phương pháp làm việc chủ động, tuân thủ các quy tắc tổ chức mã nguồn, tiêu chuẩn bảo mật và quy trình kỹ thuật trong môi trường doanh nghiệp.

Cấu trúc và cách tiếp cận

Giáo trình chuyển dịch phương pháp học tập từ việc "tự hiện thực mã nguồn thủ công" (ở học phần Web 1) sang "tận dụng tối đa tài nguyên thư viện chuẩn hóa sẵn có". Cấu trúc nội dung đi từ tổng quan hệ sinh thái mã nguồn mở, kỹ thuật định tuyến, kiến trúc ba tầng MVC, ánh xạ đối tượng cơ sở dữ liệu (ORM), xác thực người dùng cho đến xây dựng đồ án website thực tế và phát hành thư viện lên hệ thống quản lý gói.

Điểm đặc sắc của giáo trình

Tài liệu quán triệt nguyên lý phát triển phần mềm chuẩn mực: "Hạn chế sửa những gì framework đã làm" nhằm đảm bảo tính tương thích khi nâng cấp. Đồng thời, giáo trình kết hợp song song hai hình thức triển khai (thủ công và thông qua công cụ quản lý phụ thuộc Composer/Packagist), tích hợp quy chuẩn quản lý phiên bản với Git/GitHub Webhooks vào đồ án ứng dụng.


Nội dung kiến thức cốt lõi

Các chương và chủ đề chính

  • Chương 1: Tổng quan về Laravel

    • Khảo sát các framework PHP phổ biến: CodeIgniter, Zend Framework, Symfony, Laravel, cùng các thư viện chuyên dụng (lessphp, Savsoft Quiz, phpFox, SocialEngine).
    • Tiêu chí lựa chọn framework: Mức độ đáp ứng tính năng dự án, chất lượng tài liệu kỹ thuật, sự hỗ trợ từ cộng đồng lập trình viên.
    • Yêu cầu hệ thống: PHP phiên bản $\ge 5.4$, các module mở rộng bắt buộc (OpenSSL, PDO, Mbstring, Tokenizer, XML).
    • Quản lý môi trường máy chủ cục bộ: WampServer 3, Xampp, Ampp, VertrigoServ; kiểm tra cấu hình qua phpinfo().
    • Khởi tạo dự án: Cài đặt thủ công và cài đặt thông qua Composer (composer create-project --prefer-dist laravel/laravel blog "5.*", composer install, composer dump-autoload).
    • Phân tích cấu trúc thư mục dự án và hiện thực chương trình cơ sở Hello World.
  • Chương 2: Routing và Middleware

    • Định nghĩa cơ chế điều hướng trong routes/web.php và routes/api.php.
    • Triển khai các phương thức HTTP theo tiêu chuẩn RESTful: Route::get(), Route::post(), Route::put(), Route::patch(), Route::delete(), Route::options().
    • Quản lý tham số đường dẫn động (URI parameters), tham số tùy chọn ({name?}), đặt tên route (->name()) và ràng buộc kiểu dữ liệu bằng biểu thức chính quy (->where(['id' => '[0-9]+'])).
    • Cơ chế tiền xử lý Middleware: Cấu trúc lớp handle($request, Closure $next), thiết lập lớp mẫu (như CheckAge).
    • Đăng ký Middleware trong app/Http/Kernel.php thông qua mảng $routeMiddleware và gom nhóm qua $middlewareGroups (web, api, nhóm tùy biến).
  • Chương 3: Hiện thực mô hình MVC

    • Request & Dependency Injection: Lớp Illuminate\Http\Request, tiêm phụ thuộc thông qua Service Container, xử lý dữ liệu qua các phương thức path(), is(), url(), fullUrl(), isMethod(), all(), input().
    • Controller: Cấu trúc lớp trong app/Http/Controllers, cơ chế Single Action Controller thông qua phương thức ma thuật __invoke(), gán Middleware trực tiếp trong hàm khởi tạo __construct().
    • View & Blade Template: Cú pháp Blade Engine, nguyên lý kế thừa giao diện (@extends, @section, @yield, @parent, @include), cơ chế rẽ nhánh/lặp (@if, @isset, @for, @foreach, @while), xuất dữ liệu và cơ chế lọc mã độc XSS ({{ $name }} so với {!! $name !!}).
    • Database & Query Builder: Cấu hình kết nối tại config/database.php và tệp môi trường .env (MySQL, PostgreSQL, SQLite, SQL Server); sử dụng DB facade thực thi câu truy vấn tham số hóa chống SQL Injection (DB::select, DB::insert, DB::update, DB::delete, DB::statement).
  • Chương 4: Tương tác Database với Eloquent ORM

    • Khái niệm Object-Relational Mapping (ORM) và kiến trúc Eloquent.
    • Thao tác Single Model: Truy vấn dữ liệu, thêm mới (insert), cập nhật (update).
    • Thiết lập các mối quan hệ thực thể: Quan hệ một - một (One to One), một - nhiều (One to Many), nhiều - nhiều (Many to Many).
    • Định nghĩa các phương thức can thiệp dữ liệu: Bộ truy xuất (Accessors) và Bộ biến đổi dữ liệu (Mutators).
  • Chương 5: Xác thực người dùng

    • Hiện thực hệ thống xác thực (Authentication), quản lý phiên làm việc, kiểm tra quyền hạn truy cập của người dùng đối với các tài nguyên hệ thống.
  • Chương 6: Xây dựng Website

    • Quy trình thực hiện đồ án: Tiếp nhận đặc tả yêu cầu, phân tích thiết kế dữ liệu, hiện thực hệ thống, đánh giá và kiểm thử.
    • Kỹ thuật đóng gói mã nguồn: Phát triển Vendor độc lập kết nối với Laravel, quản lý kho lưu trữ trên GitHub, thiết lập Webhooks và phát hành gói lên kho lưu trữ Packagist.

Kiến thức nền tảng được xây dựng

  • Lý thuyết kiến trúc: Mô hình MVC (tách biệt Model, View, Controller), kiến trúc Middleware dạng đường ống (Pipeline pattern), cơ chế Dependency Injection và Service Container.
  • Nguyên tắc thiết kế: Thiết kế API theo chuẩn RESTful, nguyên tắc cô lập Vendor (không chỉnh sửa trực tiếp mã nguồn trong thư mục vendor/), cơ chế kế thừa layout trong lập trình giao diện.
  • Bảo mật hệ thống: Cơ chế phòng chống tấn công SQL Injection bằng tham số hóa câu truy vấn qua PDO (PHP Data Objects), cơ chế ngăn chặn lỗ hổng Cross-Site Scripting (XSS) của Blade Engine.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật: Cài đặt, cấu hình web server; vận hành công cụ dòng lệnh Composer; lập trình định tuyến, xử lý Controller, thiết kế giao diện Blade và truy vấn cơ sở dữ liệu qua Query Builder/Eloquent ORM.
  • Kỹ năng phân tích: Đánh giá ưu nhược điểm của các framework (Laravel, Symfony, Zend, CodeIgniter) dựa trên quy mô bài toán; phân tích luồng dữ liệu của HTTP Request qua các lớp kiểm soát.
  • Kỹ năng thực hành đồ án: Hiện thực ứng dụng web hoàn chỉnh; xây dựng cấu trúc bảng cơ sở dữ liệu quan hệ; đóng gói, tích hợp mã nguồn ngoài và phân phối gói thư viện cá nhân.

Phương pháp giảng dạy và học tập

Phương pháp sư phạm (Pedagogical Approach)

Giáo trình áp dụng mô hình đào tạo kết hợp lý thuyết với bài tập thực hành theo mẫu (Hand-on Labs). Quy trình truyền tải kiến thức được thiết kế theo các bước:

  1. Trình bày khái niệm kỹ thuật và kiến trúc nền tảng.
  2. Cung cấp mã nguồn mẫu tối giản (ví dụ: route foo, middleware CheckAge, controller UserController).
  3. Phân tích chi tiết từng tham số, cú pháp và luồng hoạt động.
  4. Giao bài tập tình huống thực tế để sinh viên tự triển khai.

Bài tập và đồ án tình huống (Case Studies)

  • Tình huống cổng thông tin Khoa Công nghệ Thông tin (fit.vn):
    • Định nghĩa hệ thống Routing kết nối các Controller chuyên biệt: HomeController@index cho trang chủ, NewsController@index cho trang tin tức, ProController@index cho trang thông tin nhân sự.
    • Ràng buộc tham số định danh bài viết: Xử lý trường hợp ID chỉ chứa chữ số ([0-9]+) và ID kết hợp chữ số lẫn ký tự chữ cái ([a-zA-Z0-9]+).
    • Thiết lập Middleware auth kiểm soát truy cập trang quản trị (Admin) và phân quyền duyệt nội dung.
  • Tình huống so sánh liên thư viện (Thực hiện theo nhóm):
    • Triển khai cùng một yêu cầu giao diện (từ gói tài nguyên lab1-1.zip) trên các nền tảng: CodeIgniter 4 (CI4), Symfony 5, Zend Framework 3.
    • Phân tích, viết báo cáo nhận xét so sánh về quy trình cài đặt, tính đầy đủ của tài liệu hướng dẫn và cách thức tổ chức thư mục của từng framework so với Laravel.

Phương pháp đánh giá (Assessment Methods)

  • Đánh giá thường xuyên: Thông qua các bài thực hành Lab từng chương (cấu hình môi trường, viết route, tạo middleware, truy vấn DB facade).
  • Đánh giá định kỳ/Đồ án: Căn cứ vào tiến độ và kết quả thực hiện đồ án ở Chương 6, bao gồm: Bản đặc tả yêu cầu, mức độ hoàn thiện của mã nguồn dự án, khả năng tích hợp cơ sở dữ liệu quan hệ và quy trình đóng gói thư viện (Vendor) trên GitHub/Packagist.

Hướng dẫn tự học (Self-study Guidelines)

  • Khai thác tài liệu kỹ thuật chính thức từ trang chủ của các nền tảng (laravel.com/docs, symfony.com, packagist.org).
  • Sử dụng giao diện dòng lệnh (CLI) để kiểm tra phiên bản môi trường (composer --version, php -m).
  • Tuân thủ quy chuẩn viết mã nguồn của framework để thuận lợi cho việc kiểm tra lỗi và nâng cấp phiên bản hệ thống.

Điểm nổi bật và cập nhật

Chuyển đổi mô hình so với học phần tiền đề

Giáo trình đánh dấu bước chuyển đổi phương pháp luận từ lập trình cấu trúc/hướng đối tượng cơ bản trên PHP thuần (Back-End Web 1) sang lập trình ứng dụng trên nền tảng khung ứng dụng (Back-End Web 2). Thay vì tự xây dựng các thành phần cơ bản từ đầu, người học được đào tạo kỹ năng tích hợp, cấu hình và vận hành các module đã được chuẩn hóa.

Tiêu chí Lập trình Back-End Web 1 Lập trình Back-End Web 2
Nền tảng chính PHP thuần, MySQL thủ công Laravel Framework, Symfony Component
Quản lý mã nguồn Tự viết toàn bộ chức năng Tận dụng thư viện chuẩn, quản lý qua Composer
Tổ chức mã nguồn Tệp đơn lẻ hoặc cấu trúc tự do Mô hình MVC, Service Container, Middleware Pipeline
Truy xuất dữ liệu Câu lệnh SQL thuần Query Builder tham số hóa (PDO), Eloquent ORM
Bảo mật tích hợp Tự xử lý chuỗi đầu vào Tự động hóa phòng chống XSS (Blade), SQL Injection

Xu hướng công nghệ được tích hợp

  • Quản lý phụ thuộc tiêu chuẩn: Sử dụng Composer làm công cụ quản lý thư viện và nạp tự động (composer dump-autoload).
  • Hỗ trợ phiên bản dài hạn (LTS): Phân tích sự khác biệt giữa phiên bản LTS (Long-term support) và phiên bản thông thường về chu kỳ hỗ trợ vá lỗi bảo mật.
  • Kiến trúc dữ liệu hiện đại: Ứng dụng mô hình ORM (Eloquent) để trừu tượng hóa các bảng dữ liệu thành các lớp đối tượng, hỗ trợ tương tác đa hệ quản trị (MySQL, PostgreSQL, SQLite, SQL Server).
  • Quy trình triển khai mã nguồn hiện đại: Kết nối kho mã nguồn GitHub với Packagist thông qua Webhooks nhằm tự động hóa quy trình phân phối thư viện.

Đối tượng sử dụng giáo trình

  • Sinh viên chuyên ngành: Sinh viên theo học chương trình Cao đẳng ngành Công nghệ thông tin (học kỳ 3), chuẩn bị bước vào giai đoạn thực hiện đồ án chuyên ngành và làm việc thực tế tại doanh nghiệp phần mềm.
  • Điều kiện tiên quyết (Prerequisites):
    • Đã hoàn thành học phần Lập trình Back-End Web 1.
    • Nắm vững cú pháp ngôn ngữ PHP, kiến thức lập trình hướng đối tượng căn bản.
    • Có kiến thức về cơ sở dữ liệu quan hệ, thiết kế bảng và viết các truy vấn SQL cơ bản trên hệ quản trị MySQL.
  • Giảng viên chuyên nghiệp: Sử dụng giáo trình làm tài liệu giảng dạy chính thức, làm căn cứ biên soạn đề cương bài giảng lý thuyết, thiết kế hệ thống bài tập thực hành phòng máy và tiêu chí chấm điểm đồ án kết thúc môn.
  • Lập trình viên tự học và tham khảo: Dành cho người học đã có nền tảng web muốn tiếp cận kiến trúc framework PHP một cách hệ thống, từ cấu hình cơ bản đến kỹ thuật đóng gói vendor.

Câu hỏi thường gặp

1. Giáo trình này phù hợp với đối tượng người học nào?

Giáo trình được biên soạn chuyên biệt cho sinh viên Học kỳ 3 hệ Cao đẳng ngành Công nghệ thông tin tại Trường Cao đẳng Công nghệ Thủ Đức, đồng thời phù hợp với người học kỹ thuật phần mềm cần tài liệu tiếp cận framework web PHP theo hướng thực hành.

2. Cần chuẩn bị kiến thức nền tảng nào trước khi học?

Người học bắt buộc phải nắm vững kiến thức lập trình web với PHP thuần và thao tác cơ sở dữ liệu MySQL (được trang bị trong môn Lập trình Back-End Web 1), cùng kiến thức cơ bản về HTML/CSS và mô hình client-server.

3. Điểm khác biệt cốt lõi của giáo trình này so với tài liệu hướng dẫn trực tuyến là gì?

Giáo trình thiết lập lộ trình học thuật có tính hệ thống: Đi từ nguyên lý lựa chọn framework, giải thích tường tận kiến trúc bên dưới (Dependency Injection, Request Pipeline, Kernel), đối chiếu song song giữa Laravel với các framework khác (CodeIgniter, Symfony, Zend), và hoàn thiện bằng quy trình phát triển, phân phối Vendor qua Packagist.

4. Phương pháp nào giúp tự học giáo trình đạt hiệu quả cao nhất?

Người học nên cài đặt đầy đủ môi trường máy chủ cục bộ (Xampp, WampServer) cùng công cụ Composer, thực thi từng đoạn mã ví dụ từ cơ bản (Hello World, Single Route) đến nâng cao, chủ động làm các bài tập tình huống gắn với website fit.vn và đọc tài liệu kỹ thuật tại laravel.com/docs.

5. Giáo trình có cung cấp tài liệu bổ trợ kèm theo không?

Học phần đi kèm tệp tài nguyên thực hành (ví dụ: gói lab1-1.zip), các giao diện mẫu tham khảo thực tế từ trang chuyên đề Khoa CNTT, cùng các chỉ dẫn tham chiếu đến kho mã nguồn GitHub và kho quản lý gói Packagist.


Kết luận

Giáo trình Lập trình Back-End Web 2 do Khoa Công nghệ Thông tin – Trường Cao đẳng Công nghệ Thủ Đức biên soạn cung cấp hệ thống kiến thức toàn diện về phương pháp phát triển ứng dụng web hiện đại trên nền tảng Laravel framework. Giá trị cốt lõi của tài liệu nằm ở tính chuẩn hóa kiến trúc phần mềm, phương pháp tối ưu tài nguyên mã nguồn mở và định hướng rèn luyện tác phong kỹ thuật theo chuẩn doanh nghiệp.

Lộ trình học tập đề xuất cho người học: Hoàn thiện học phần Lập trình Back-End Web 1 $\rightarrow$ Nghiên cứu và thực hành theo Giáo trình Lập trình Back-End Web 2 $\rightarrow$ Triển khai đồ án chuyên ngành và tham gia các dự án phát triển phần mềm thực tế.

Tài liệu tham khảo và địa chỉ liên kết được nêu trong giáo trình: