Zend Framework 2: Login ZF2 using session basic

Zend Framework 2: Login ZF2 using session basic

Zend Framework 2: Login ZF2 using session basicViệc dùng session trong một ứng dụng web là chuyện rất bình thường và gần như là một điều bắt buộc trong việc lập trình ứng dụng web ngày nay. Bài viết không có ý định giải thích session là gì, cách khai báo, cơ chế như thế nào... trong session. Bài viết chỉ đơn giản làm một ví dụ minh họa cách dùng session đơn giản nhất trong Zend Framework 2 (ZF2). Việc ứng dụng hay dùng nhất  và cũng đơn giản nhất đó chính là việc login/logout trong một website, như vậy mình cũng sẽ dựa vào đây để làm ví dụ minh họa cho bài viết này.

Bài viết sử dụng Zend Framework - ApplicationSkeleton để viết tiếp ứng dụng login/logout. (Nếu bạn chưa biết cách cài đặt ZF2 như thế nào thì có thể vào đây để tham khảo cách cài đặt ZF2)
 

 Đầu tiên, chúng ta tạo ra một module mới "User" theo cấu trúc như hình bên. Trong module này, mình sẽ dùng 1 controller duy nhất để tiến hành viết demo cho ứng dụng login/logout cơ bản với session trong ZF2. Ngoài ra, mọi người nên có thêm tầng model dùng để connect DB lúc login, nhưng vì để đơn giản hóa cho bài viết này, nên mình tạm lướt qua phần model tương tác DB.

Trong tập tin Module.php thì mình chỉ đơn giản viết 2 phương thức dùng đó là getConfig và getAutoloaderConfig. Việc này rất đơn giản, và ý nghĩa của nó đó là lấy cấu  hình dựa vào trong file module.config.php và thiết lập cơ chế autoload theo chuẩn mặc định (Standard)

Trong file cấu hình module.config.php này, chủ yếu là thiết lập router để chúng ta xử lý demo cho việc login/logout. Sau khi cấu hình xong các bước này, thì chúng ta phải bổ sung thêm 1 module mới vào tập tin application.config.php thì ứng dụng ZF2 mới có thể hiểu và thực thi module mới này.

Tiếp theo thì xây dựng một tầng view login cho user đơn giản như hình trên. Việc này khá đơn giản, chúng ta chỉ cần xây dựng một tầng view như đoạn HTML bên dưới

<form method="post">
  <table style="width: 100%">
    <tr>
      <td style="width: 10%">
        Username
      </td>
      <td>
        <input type="text" name="username" />
      </td>
    </tr>
    <tr>
      <td style="width: 10%">
        Password
      </td>
      <td>
        <input type="password" name="password" />
      </td>
    </tr>
    <tr>
      <td colspan="2">
        <input type="submit" value="login" />
      </td>
    </tr>
  </table>
</form>

Tiếp theo mình xây dựng tầng controller -action xử lý cho việc người dùng login thông qua form đã tạo như sau:

 Ở đây chúng ta chú ý các dòng được tô vàng, đó là việc chúng ta khai báo dùng Namespace Zend\Session\Container để lưu trữ session của người dùng, và 2 dòng bên dưới chúng ta lưu giá trị username vào đối tượng Container. Như có nói bên trên, bài viết này mình không đề cập tới việc dùng model để tương tác DB, mọi người tự tay làm ha ^^ (Tham khảo bài viết sau để biết cách tương tác DB trong ZF2)

Như vậy là xong phần login, chúng ta đi tiếp tới phần welcome (lấy giá trị session đã lưu) và phần logout (hủy session) theo như hình bên dưới

Như vậy là chúng ta xây dựng xong 1 ứng dụng nhỏ nhưng luôn luôn có ở hầu hết các website - login/logout. Đây chỉ là một phần ứng dụng rất nhỏ và đơn giản cho việc áp dụng Session trong ZF2. Hy vọng sẽ giúp được mọi người.

Bạn thấy bài viết này như thế nào?: 
No votes yet
Ảnh của Khanh Hoang

Khanh Hoang - Kenn

Kenn is a user experience designer and front end developer who enjoys creating beautiful and usable web and mobile experiences.

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
MarTech Talks #4: CONTENT - TRAFFIC - CONVERSION tại Tp.HCM

MarTech Talks #4: CONTENT - TRAFFIC - CONVERSION tại Tp.HCM

Ngày 8.9.2019, đã diễn ra sự kiện MarTech Talks #04 tại MPLEX Studio & Theatre, 62 Trần Quang Khải, Phường Tân Định, Quận 1, TP.HCM của Asia Mar Tech Group (Đơn vị chủ quản của chuỗi MarTechTalks)

Tên miền .vn của Việt Nam hơn gì tên miền .com?

Tên miền .vn của Việt Nam hơn gì tên miền .com?

Trong vài ngày gần đây, một số tờ báo đã thông tin về một loạt dự án bất động sản (BĐS) bị mất thương hiệu tên miền.com và đang phải xúc tiến mua lại. Thực chất câu chuyện có nghiêm trọng đến như vậy?

Những điều cần biết về Mac OS X Lion

Những điều cần biết về Mac OS X Lion

Phiên bản tiếp theo của hệ điều hành Mac OS X, phiên bản 10.7 có tên mã là Lion, đã được Apple xác nhận lên kệ ngày vào thứ Tư (20/7). Và để biết thêm về thông tin hệ điều hành này, bài viết sau sẽ giải quyết một vài thắc mắc của người dùng.

Công ty diệt chuột T&C

 

Diet con trung