- Trang 1 -
MỤC LỤC
LỜI NÓI ĐẦU 3
1. Tổng quan 5
1.1 Giới thiệu chung về vấn đề nghiên cứu 5
1.2 Quá trình nghiên cứu 7
2. Cơ sở lí thuyết và các phƣơng pháp sáng tạo 8
2.1 Các kiến thức về lập trình ZendFramework để xây dựng trang web 8
2.2 Các nguyên tắc sáng tạo áp dụng để giải quyết vần đề 13
3. Giải quyết vấn đề nghiên cứu 16
4. Kết luận 26
- Trang 2 -
DANH MỤC HÌNH ẢNH
Hình 1.1 Thanh Menu của trang web 16
Hình 1.2 Giao diện bên phía ngƣời dùng 17
Hình 1.3 Menu chức năng của ngƣời quản trị 18
Hình 1.4 Giao diện bên trang web quản trị 19
Hình 1.5 Cấu trúc cây thƣ mục đƣợc xây dƣng trong Zend 20
- Trang 3 -
LỜI NÓI ĐẦU
Hoạt động sáng tạo gắn liền với lịch sử tồn tại và phát triển của xã hội loài
ngƣời. Từ việc tìm ra lửa, chế tạo công cụ bằng đá thô sơ đến việc sử dụng năng
lƣợng nguyên tử, chinh phục vũ trụ , hoạt động sáng tạo của loài ngƣời không ngừng
đƣợc thúc đẩy. Sáng tạo không thể tách rời khỏi tƣ duy - hoạt động bộ não của con
ngƣời. Chính quá trình tƣ duy sáng tạo với chủ thể là con ngƣời đã tạo các giá trị vật
chất, tinh thần, các thành tựu vĩ đại về mọi mặt trong cuộc sống và tạo ra nền văn
minh nhân loại.
Ý định "khoa học hóa tƣ duy sáng tạo" có từ lâu. Nhà toán học Hy Lạp Pappos,
sống vào thế kỷ III, gọi khoa học này là Ởistic (Heuristics). Theo quan niệm lúc bấy
giờ, Ơristic là khoa học về các phƣơng pháp và quy tắc làm sáng chế, phát minh trong
mọi lĩnh vực khoa học, kỹ thuật, văn học, nghệ thuật, chính trị, triết học, toán, quân
sự Do cách tiếp cận quá chung và không có nhu cầu xã hội cấp bách, Ơristic bị quên
lãng cho đến thời gian gần đây.
Cùng với cuộc cách mạng Khoa học kĩ thuật, số lƣợng bài toán phức tạp mà
loài ngƣời cần giải quyết tăng nhanh, đồng thời yêu cầu thời gian phải giải đƣợc
chúng rút ngắn lại. Trong khi đó không thể tăng mãi phƣơng tiện và số lƣợng ngƣời
tham gia giải bài toán. Thêm nữa, cho đến nay và trong tƣơng lai khá xa sẽ không có
công cụ nào thay thế đƣợc bộ óc tƣ duy sáng tạo. Ngƣòi ta đã nhớ lại Ơristic và phát
triển tiếp để tìm ra cách tổ chức hợp lý, nâng cao năng suất, hiệu quả quá trình tƣ duy
sáng tạo - quá trình suy nghĩ giải quyết vấn đề và ra quyết định trong mọi lĩnh vực
không riêng gì khoa học kỹ thuật.
Thông qua những buổi giảng dạy và sự dìu dắt hƣớng dẫn tận tình của giáo sƣ
tiến sĩ Hoàng Kiếm, em đƣợc biết và hiểu hơn về cách vận dụng các nguyên tắc cũng
nhƣ thủ thuật sáng tạo trong quá trình giải quyết các bài toán, cùng các vấn đề mang
- Trang 4 -
tính khoa học. Đi cùng với sự phát triển nhƣ vũ bão trong lĩnh vực công nghệ nói
chung và mạng internet nói riêng, em đã vận dụng kiến thức mà mình lĩnh hội từ
những bài giảng của thầy trong phạm vi môn học Nghiên Cứu Phƣơng Pháp Luận
Sáng Tạo Khoa Học, em đã sử dụng một vài nguyên tắc sáng tạo cơ bản để giải quyết
cho vấn đề thiết kế và xây dựng trang web thƣơng mại điện tử.
Thƣơng mại điện tử là sự vận dụng kết hợp rất độc đáo giữa: công nghệ thông
tin bao gồm internet, phần mềm cơ sở dữ liệu, phần cứng máy tính, phần mềm ứng
dụng,… và hình thức kinh doanh truyền thống tạo thành. Nó có ý nghĩa đặc biệt quan
trọng và là công cụ trợ giúp mạnh mẽ cho hoạt động kinh doanh của doanh nghiệp thể
hiện ở chỗ: ít tốn chi phí, dễ tiếp cận, cơ hội làm ăn rất lớn, dễ quảng bá thƣơng hiệu
và lợi nhuận cao. Và điều quan trọng hơn Thƣơng mại điện tử giúp doanh nghiệp có
cách tƣ duy mới và tầm nhìn chiến lƣợc trong việc vận dụng môi trƣờng intenet vào
kinh doanh. Việc vận dụng 1 cách logic những nguyên tắc sáng tạo để xây dựng trang
web đã giúp em đạt đƣợc những mục tiêu cũng nhƣ yêu cầu đặt ra dành cho trang của
mình, với những tính năng thiết yếu của một trang web bán hàng
Hoạt động của khách hàng
- Xem thông tin giới thiệu về cửa hàng và ngƣời cần liên hệ
- Đóng góp ý kiến
- Tìm kiếm, xem danh sách các sản phẩm.
- Đƣa sản phẩm chọn mua vào giỏ hàng
- Xác nhận việc mua hàng
- Xem, hủy các mặt hàng đã chọn
Hoạt động của người quản trị
- Quản lý sản phẩm: Thêm, xóa, sửa
- Quản lý tin tức
- Quản lý đợt đặt hàng: xem, xóa.
- Trang 5 -
- Quản lý thông tin đóng góp ý kiến của khách hàng
- Quản lý thông tin khách hàng mua sản phẩm: xem, xóa.
1. Tổng quan
1.1 Giới thiệu chung về vấn đề nghiên cứu
Hiện nay xã hội phát triển, đời sống con ngƣời ngày càng nâng cao, nhu cầu
sống của họ cũng phải đƣợc thỏa mãn theo tỉ lệ thuận của cuộc sống, thời trang cũng
không phải là ngoại lệ. Thời trang là một nhu cầu không thể thiếu trong đời sống con
ngƣời, đặc biệt là giới trẻ. Nắm bắt đƣợc nhu cầu này, chúng tôi đã cho ra mắt trang
web về mua sắm thời trang online, không những phục vụ nhu cầu của giới trẻ, mà còn
thỏa mãn một phần nhu cầu về thời trang hiện nay cho mọi lứa tuổi.
Trên thực tế vấn đề lựa chọn trang phục cho mỗi cá nhân mất khá nhiều thời
gian, phải trực tiếp tới những nơi bán hàng để mua, lựa chọn trang phục và quan trọng
là phải phù hợp với túi tiền. Để tiện cho ngƣời tiêu dùng lựa chọn cũng nhƣ việc
thanh toán, chúng tôi xây dựng trang web mua bán trực tuyến các sản phẩm thời trang
qua mạng, nhằm tiết kiệm thời gian cho ngƣời tiêu dùng, đồng thời giúp ngƣời tiêu
dùng dễ dàng lựa chọn sản phẩm , mua hàng và thanh toán. Tất cả các thao tác đều
đƣợc thực hiện trực tuyến trên internet, nên rất thuận tiện và nhanh chóng.
Khách hàng lựa chọn các sản phẩm thời trang theo ý muốn có trên thanh menu
hoặc có thể tìm kiếm theo sở thích: giới tính và loại sản phẩm. Ngoài ra còn có thể
nêu ý kiến về sản phẩm mà mình yêu thích hoặc đánh giá những sản phẩm đó nhƣ thế
nào? Nếu thích sản phẩm nào đó, bạn có thể mua hàng ngay tại trang web bằng cách
cho vào giỏ hàng và thanh toán qua mạng. Sản phẩm sẽ đƣợc nhân viên chuyển trực
tiếp cho bạn, hoặc có thể gửi qua bƣu điện tùy theo yêu cầu của khách hàng. Chúng
tôi làm tất cả những gì có thể để mang đến cho khách hàng những sản phẩm đẹp nhất,
- Trang 6 -
rẻ nhất, cùng với dịch vụ giao dịch thuận lợi nhất, tiết kiệm thời gian mà vẫn đảm bảo
cho khách hàng mua đƣợc sản phẩm nhƣ ý muốn.
Ngoài những tiện ích trong việc giao dịch, bạn còn có thể biết thêm tin tức về
các sản phầm, xu hƣớng thời trang trong năm, năm tới và các nhu cầu mua sắm khác,
đƣợc chúng tôi đăng tải và cập nhật thƣờng xuyên trên trang web.
- Trang 7 -
1.2 Quá trình nghiên cứu
Giải quyết và hoàn thiện đề tài nghiên cứu là cả quá trình lâu dài từ việc tìm hiểu
tích lũy các kiến thức cần thiết cũng nhƣ vận dụng những điều đó để thực hiện đề tài.
Quy trình đó đi từ những thứ cơ bản đến phức tạp, từ sơ lƣợc đến cụ thể trải qua các
bƣớc sau :
Bƣớc đầu tiền phải làm là tìm hiểu kiến thức trên cơ sở lý thuyết về các công cụ
lập trình, ngôn ngữ, đặt vấn đề và đƣa ra các cách giải quyết vấn đề.
Xác định nội dung, mục đích của Website (Trả lời câu hỏi "Để làm gì?")
Một Website để kinh doanh trực tuyến (độ phức tạp cao) sẽ phải khác Website chỉ
để giới thiệu các hoạt động của công ty (đơn giản với các dữ liệu tĩnh). Website về
văn hoá nghệ thuật chắc chắn phải khác một trang Web hƣớng về thƣơng mại. Xác
định rõ điều này có thể đi đến quyết định về mặt kỹ thuật, tức là liên quan đến chi phí
làm Web.
Xác định đối tƣợng chủ yếu của Website (Trả lời câu hỏi "Cho ai?")
Website của bạn dành cho đối tƣợng khách hàng nào? Khách hàng của bạn là ai?
Website dành cho phụ nữ phải khác Web dành cho nam giới. Web dành cho thanh
niên phải khác loại dành cho trẻ con và ngƣời già xét cả về góc độ nội dung và hình
thức thể hiện.
Tìm hiểu quy trình thực hiện Website (Trả lời câu hỏi "Nhƣ thế nào?")
Quy trình thực hiện Website liên quan nhiều về mặt kỹ thuật, nếu bạn làm một dự án
lớn đôi khi bạn phải thuê trọn gói các công ty thực hiện các bƣớc này cho bạn. Tuy
nhiên bạn vẫn phải năm một cách khái quát quy trình này vì nó quyết định 90% thành
công của trang web của bạn. Và nói tóm lại, bạn cũng phai biết để kiểm tra xem bạn
thuê đơn vị thực hiện họ làm có đạt yêu cầu không.
Chọn tên miền: Chọn một tên miền ngắn gọn, dễ nhớ.
- Trang 8 -
2. Cơ sở lí thuyết và các phương pháp sáng tạo
"PHƢƠNG PHÁP LUẬN SÁNG TẠO" (Creativity Methodologies) là bộ môn
khoa học có mục đích xây dựng và trang bị cho mọi ngƣời hệ thống các phƣơng
pháp, các kỹ năng thực hành tiên tiến về suy nghĩ để giải quyết vấn đề và ra quyết
định một cách sáng tạo, về lâu dài, tiến tới điều khiển đƣợc tƣ duy.
"PHƢƠNG PHÁP LUẬN SÁNG TẠO" là phần ứng dụng của khoa học rộng lớn
hơn, mới hình thành và phát triển trong thời gian gần đây : KHOA HỌC SÁNG TẠO
(Creatology).
Theo các nhà nghiên cứu, khoa học này ứng với "làn sóng thứ tƣ" trong quá trình
phát triển của loài ngƣời, sau nông nghiệp, công nghiệp và tin học. Làn sóng thứ tƣ
ứng với Creatology (hay còn gọi là thời đại hậu tin học) chính là sự nhấn mạnh vai
trò chủ thể tƣ duy sáng tạo của loài ngƣời trong thế kỷ XXI.
Nghiên cứu là công trình khảo sát, nỗ lực tìm kiếm hay khám phá những sự kiện
hay thông tin, kiến thức mới bằng các biện pháp có hệ thống và khoa học về một lĩnh
vực nào đó, với mục đích mở rộng hay đào sâu hơn kiến thức về một chủ đề trong
lĩnh vực đã chọn. Vì vậy, trƣớc khi giải quyết vấn đề đƣợc nghiên cứu, chúng ta phải
nắm rõ cơ sở lý thuyết cần thiết, mà ở đây là các kiến thức về lập trình cùng với
những phƣơng pháp sáng tạo mà ta có thể vận dụng trong quá trình làm bài.
2.1 Các kiến thức về lập trình ZendFramework để xây dựng trang web
Việc tìm hiểu zend framework cũng nhƣ các php framework khác điều đầu tiên
là bạn pải có kiến thức tƣơng đối về php .Tiếp đến bạn cần tìm hiểu kiến thức cơ sở
sau:
Framework là một thƣ viện các lớp đã đƣợc xây dựng hoàn chỉnh , bộ khung để
phát triển các phần mềm ứng dụng. có thể ví framework nhƣ tập các “Vật liệu” ở
- Trang 9 -
từng lĩnh vực cho ngƣời lập trình viên, thay vì họ phải mất nhiều thời gian để tự thiết
kế trƣớc khi dùng. Do vậy, ngƣời lập trình viên chỉ cần tìm hiểu và khai thác các vật
liệu này rồi thực hiện ( tức lập trình ) để gắn kết chúng lại với nhau, tạo ra sản phẩm.
Xây dựng trang web theo mô hình MVC:
MVC = Model + View + Controller.
Model: chính là dữ liệu (cụ thể hơn trong ZF sẽ là các class làm nhiệm vụ thao tác trực tiếp
xuống DBMS).
Mô hình Views có nhiệm vụ liên kết với Mô hình Model và xuất các dữ liệu ra trình duyệt
theo nhu cầu đòi hỏi của ngƣời tiêu dùng (user). Điển hình là các văn bản HTML.
View: làm nhiệm vụ render trang web từ các action do controller truyền sang + dữ liệu từ
model (có thể hiểu nó nhƣ là template render).
Controller: chính là phần cốt lỗi, điều hành trang web của bạn, 1 trang web có thể có nhiều
module (có thể hiểu nhƣ component của Joomla!), 1 module có thể có nhiều controller. Một
controller sẽ gồm nhiều action, ví dụ: trong forum sẽ có PostController bao gồm các action
nhƣ listAction, readAction, writeAction,…
Một số class/ interface sử dụng trong Zend khi xây dựng web
Zend_Controller
Zend_Controller là trung tâm của hệ thống MVC của Zend Framework. MVC là
viết tắt của Model-View-Controller và là 1 design pattern nhắm vào việc
tách phần ứng dụng (application logic) ra khỏi phần hiển thị (display logic).
Zend_Controller_Front áp dụng pattern Front Controller, mọi request đều
bị front controller chặn lại và gửi đến Action Controller riêng biệt dựa trên
URL đƣợc request.
- Trang 10 -
- Khởi tạo đƣờng dẫn đến thƣ mục chứa các Controller: Để ứng dụng có thể
hiểu chúng ta sẽ sử dụng Controller nào chúng ta phải khai báo đƣờng dẫn
đến thƣ mục chứa Controller.
// Khởi tạo đối tượng của class Zend_Controller
$frontController = Zend_Controller_Front::getInstance();
$frontController->throwExceptions(true);
// Khai báo thư mục chứa các Controller
$frontController-
>setControllerDirectory(' /application/controllers');
Những điều căn bản về Controller
- Mỗi controller sẽ có chức năng để xử lý 1 vấn đề nào đó.
- Mỗi Controller sẽ có nhiều action
- Mỗi Controller sẽ có 1 thƣ mục tƣơng ứng cùng tên, nằm trong views\script.
Trong mỗi thƣ mục sẽ chứa các file .phtml, thông thƣờng các file này có tên
cùng tên với tên của Action trong Controller đó
Zend_Session
Zend_Session cung cấp cho ta các phƣơng thức tƣơng tự nhƣ trong PHP nên sẽ có
các phƣơng thức nhƣ sau
1. Khai báo tên biến session cần sử dụng
$aNamespace = new Zend_Session_Namespace('ssweb');
2. Gán giá trị cho biến session
$aNamespace->user = 'Marsu';
3. In đối tƣợng session
$aNamespace->getIterator()
4. Khóa biến session
$aNamespace->lock();
- Trang 11 -
5. Mở khóa cho biến session
$aNamespace->unlock();
6. Thiết lập thời gian sống cho biến session
$aNamespace->setExpirationSeconds(500)
$ aNamespace ->a = 'apple';
$aNamespace->setExpirationSeconds(500,a)
7. Hủy biến session
unset($aNamespace->user);
$aNamespace->unsetAll();
8. Khởi tạo session_id()
Zend_Session::start(true);
$ssWeb = Zend_Session::getId();
Zend_Auth
Thiết kế để nhận dạng của các xác thực request chống lại một số cơ chế xác thực
(e.g., HTTP / Digest cơ bản, bảng cơ sở dữ liệu, LDAP).
- Hỗ trợ ngƣời sử dụng định nghĩa xác thực các adapter.
- Còn tự động nhận dạng persistence .
- Nhận dạng cấu hình triển khai thực hiện lƣu trữ.
- Cung cấp một giao diện xác thực đơn giản.
Một số loại Zend_Cache
- Zend_Cache_Core: là tập hợp tất cả các phƣơng thức và tùy chọn có trong
Zend_Cache. Các kiểu Cache khác trong Zend có thể thừa hƣởng các thuộc
tính và tùy chọn trong Core
- Zend_Cache_Frontend_Output: dùng để chứa nội dung của nào đó
- Trang 12 -
- Zend_Cache_Frontend_Function: dùng để chứa kết quả của 1 hàm
- Zend_Cache_Frontend_Class: dùng để cache 1 clas nào đó. Theo tôi chúng ta
có thể dùng để cache các đối tƣợng Helper hoặc những file class support cái
mà sẽ chạy thƣờng xuyên trong qua trình xử lý của ứng dụng:
- Zend_Cache_Frontend_File: Dùng để cache 1 file có thể là kiểu jpg, flash,
video, xml, .ini …Nói chung chúng ta sẽ cache những file thƣơng xuyên sử
dụng trong suốt qua nhƣ banner, file
- Trang 13 -
2.2 Các nguyên tắc sáng tạo áp dụng để giải quyết vần đề
1. Nguyên tắc phân nhỏ :
a. Chia đối tƣợng thành các phần độc lập
b. Làm đối tƣợng trở nên tháo lắp đƣợc
c. Tăng mức độ phân nhỏ của đối tƣợng
2.Nguyên tắc tách khỏi:
Tách phần gây phiền phức hay ngƣợc lại, tách phần duy nhất cần thiết ra khỏi
đối tƣợng.
3.Nguyên tắc phẩm chất cục bộ:
a. Chuyển đối tƣơng có cấu trúc đồng nhất thành không đồng nhất
b. Các thành phần khác nhau của đối tƣợng phải có các chức năng khác nhau.
c. Mỗi phần của đối tƣợng phải ở trong những điều kiện thích hợp nhất đối với
công việc
5.Nguyên tắc kết hợp:
a. Kết hợp các đối tƣợng đồng nhất hoặc các đối tƣợng dùng cho các hoạt
dộng kế cận
b. Kết hợp về mặt thời gian các hoạt động đồng nhất hoặc kế cận
7. Nguyên tắc chứa trong :
a. Một đối tƣợng chứa bên trong nó đối tƣợng khác và đối tƣợng đó lại chứ
đối tƣợng thứ ba…
b. Một đối tƣợng chuyển động xuyên suốt bên trong đối tƣợng khác
11. Nguyên tắc dự phòng :
Bù đắp độ tin cậy không lớn của đối tƣợng bằng cách chuẩn bị trƣớc các
phƣơng tiện báo động, ứng cứu, an toàn.
13. Nguyên tắc 32- Nguyên tắc thay đổi màu sắc
a. Thay đổi màu sắc của đối tƣợng hay môi trƣờng bên ngoài
b. Thay đổi độ trong suốt của đối tƣợng hay môi trƣờng bên ngoài
- Trang 14 -
c. Để có thể quan sát đƣợc những đối tƣợng hoặc những quá trình, sử dụng
các chất phụ gia màu, huỳnh quang.
d. Nếu các chất phụ gia đó đã đƣợc sử dụng, dùng các nguyên tử đánh dấu.
e. Sử dụng các hình vẽ, ký hiệu thích hợp.
15. Nguyên tắc linh động :
a.Cần thay đổi các đặc trƣng của đối tƣợng hay môi trƣờng bên ngoài sao cho
chúng tối ƣu trong từng giai đoạn làm việc.
b. Phân chia đối tƣợng thành từng phần có khả năng dịch chuyển đối với nhau
c. Nếu đối tƣợng nhìn chung bất động, làm nó di động đƣợc.
16. Nguyên tắ c sao ché p (copy)
a. Thay vì sử dụng những cái không đƣợc phép, phức tạp, đắt tiền, không tiện
lợi hoặc dễ vỡ, sử dụng bản sao.
b. Thay thế đối tƣợng hoặc hệ các đối tƣợng bằng bản sao quang học(ảnh,
hình vẽ) với tỉ lệ cần thiết.
c. Nếu không thể sử dụng bản sao quang học ở vùng biểu kiến(vùng ánh sáng
nhìn thấy đƣợc bằng mắt thƣờng), chuyển sang sử dụng các bản sao hồng
ngoại hoặc tử ngoại.
Ưu điể m củ a cá c thủ thuậ t:
1. Có thể dạy và học các thủ thuật đƣợc. Để luyệ n tậ p có thể lấy một đối tƣợng hoặc
mộ t giả i phá p kỹ thuậ t rồ i phân tích xem ngƣờ i ta đã dù ng cá c thủ thuậ t gì , nhằ m giả i
quyế t vấ n đề nà o. Cũng có thể lấy một đối tƣợng nào đó rồi dùng các thủ thuật tác
độ ng lên nó để phát các ý tƣởng cải tiến , hoàn thiện đối tƣợng đó ( các thủ thuật cơ
bản này không đơn thuần là công cụ, chúng còn phản ánh khuynh hƣớng phát triển
các hệ kỹ thuật nói chung và hệ thống nói chung nên chúng có công dụng khá lớn ).
Có thể dùng các thủ thuật theo cách trên để luyện tập phát triển trí tƣởng tƣợng .
- Trang 15 -
2. Nế u dù ng cá c thủ thuậ t đú ng nơi,đú ng lú c, đú ng cá ch thì suy nghĩ sẽ trở nên định
hƣớ ng và tiế t kiệ m thờ i gian giả i bà i toá n .
3. Có thể nhân sức mạnh của các thủ thuật bằng cách không chỉ dùng các thủ thuật
đơn lẻ mà dùng các tổ hợp của chúng.
4. Mặ c dù cá c thủ thuậ t tìm ra tƣ̀ lĩnh vƣ̣ c sá ng tạ o kỹ thuậ t nhƣng có thể mở rộ ng
dùng chúng ở các lĩnh vực sáng tạo khác nếu hiểu chúng một cách linh hoạt, khái
quát cộng với trí tƣởng tƣợ ng.
Nhượ c điể m củ a cá c thủ thuậ t:
1. không có cá c tiêu chuẩ n khá ch quan để xá c đị nh cụ thể dù ng thủ thuậ t gì , lúc nào,
ở đâu và nhƣ thế nào để giải bài toán cho trƣớc nhanh nhất.
2. trên thƣ̣ c tế , ngƣờ i ta thƣờ ng dùng tổ hợp các thủ thuật để giải, do vậ y, lại đụng
đến vấn đề số lớn của phƣơng pháp thử và sai.
3. khi mộ t số thủ thuậ t mang lạ i lợ i ích cho ngƣờ i giả i và trở nên đƣợ c yêu thích,
chúng tiềm chứa tính ì tâm lý, cản trở sá ng tạ o khi phả i giả i cá c bà i toá n loạ i khá c.
- Trang 16 -
3. Giải quyết vấn đề nghiên cứu
Các hình thức đƣợc biết nhiều của thƣơng mại điện tử là mua bán sách và
nhạc cũng nhƣ mua bán đấu giá trong Internet. Thông qua việc Internet bùng nổ
vào cuối thập niên 1990, cửa hàng trực tuyến ngày càng có tầm quan trọng nhiều
hơn. Những ngƣời bán hàng trong Internet có lợi thế là họ không cần đến một diện
tích bán hàng thật sự mà thông qua các trang Web sử dụng một không gian bán
hàng ảo. Các cửa hàng trực tuyến cũng thƣờng hay không cần đến nhà kho hay chỉ
cần đến rất ít, vì thƣờng có thể cung cấp cho khách hàng trực tiếp từ ngƣời sản
xuất hay có thể đặt hàng theo nhu cầu. Lợi thế do tiết kiệm đƣợc những phí tổn cố
định này có thể đƣợc tiếp tục chuyển tiếp cho khách hàng. Để cạnh tranh với các
trang web bán hàng khác ngoài uy tín và chất lƣợng của sản phẩm thì việc thiết kế
1 giao diện gần gũi, thân thiện với ngƣời dùng cũng là một yếu tố không thể thiếu
để nâng cao doanh thu của trang web.
Một trong những thành phần dƣờng nhƣ không thể thiếu đƣợc trong mỗi
Website đó là hệ thống Menu ngang, đây là một trong những hệ thống danh mục
thế hiện những nội dung chính của Website, từ đó giúp cho ngƣời duyệt Web dễ
dàng lựa chọn những chuyên mục mà mình quan tâm.
Hình 1.1 Thanh Menu của trang web
- Trang 17 -
Trang web bán hàng ShopIT4girl đƣợc bao gồm các thành phần chính sau :
- Trang chủ : bao gồm những thông tin tổng quát, tin tức
- Sản phầm : các loại quân áo thời trang nam, nữ tổng hợp, giá cả
- Thành viên : cho phép ngƣời dùng đăng nhập, viết ý kiến của mình về sản
phẩm mà họ đã chọn mua và sử dụng
- Giỏ hàng : hình thức thanh toán qua mạng khi ngƣời dùng ƣng ý và quyết định
mua đồ
- Hỗ trợ : thông tin về chủ trang web
Nội dung trang web đƣợc bố trí hài hòa với màu hồng làm chủ đạo, các phần
đƣợc phân chia rõ ràng bằng cách sử dụng thẻ <div> với phần chính giữa là sản
phẩm để bán 2 bên là hình quảng cáo và khung đăng nhập dành cho ngƣời dùng.
Hình 1.2 Giao diện bên phía ngƣời dùng
- Trang 18 -
Việc chia nhỏ trang web ra thành từng khu vực riêng biệt vừa làm tăng tính
thẩm mĩ của trang web, vừa giúp cho việc quản lí và sắp xếp các sản phẩm bán hàng
cũng nhƣ chức năng tƣơng tác giữa ngƣời dùng và trang web đƣợc đễ dàng hơn. Áp
dụng nguyên tắc phân nhỏ để chia trang web thành những phần nhỏ hơn ứng với
chức năng và vai trò của nó trong trang web nhƣ phần bên để hiển thị quảng cáo,
phần trung tâm trang web là hiển thị các sản phẩm quần áo thời trang.
Cũng tƣơng tự nhƣ trang web dành cho ngƣời dùng, bên phía giao diện của web
danh riêng cho ngƣời quản trị cũng có những quy tắc phân chia các thành phần riêng
biệt theo đúng chức năng của nó.
Hình 1.3 Menu chức năng của ngƣời quản trị
- Trang 19 -
Hình 1.4 Giao diện bên trang web quản trị
Có lẽ việc thiết kế một trang web không còn quá xa lạ, mọi ngƣời đều có thể
thiết kế một website cá nhân cho mình. Có khá nhiều công cụ hỗ trợ web, thậm chí
có nhiều website cung cấp cả mẫu riêng và một nơi lƣu trữ để bạn sản phẩm của
mình lên mạng. Ở đây, chúng tôi chỉ giúp bạn tạo một hiệu ứng rất đẹp tô điểm cho
website của mình: Tạo các màu chuyển sắc cho chuỗi ký tự bằng các thẻ lệnh
HTML, hãy áp dụng nguyên tắc đổi màu thật linh động và sáng tạo trong phần này.
Thật ra việc tạo chuỗi ký tự màu sắc cho web không phải là khó, bạn có thể đổi màu
cho từng ký tự trên bằng thẻ lệnh HTML. Ví dụ nhƣ bạn muốn chuỗi LBVMVT
(chuỗi hiển thị trong ô mã xác nhận khi đăng kí thành viên) có màu bảy sắc cầu
vòng, bạn chỉ việc tô từng ký tự bằng màu tƣơng ứng.
Cách sử dụng vô cùng đơn giản, bạn chỉ việc nhập chuỗi ký tự vào ô Text, chọn kiểu
màu trong Text Style (Rainbow – bảy sắc cầu vòng; Gradual Color – màu chuyển
sắc; Random Color – màu ngẫu nhiên) và copy đoạn mã phát sinh bên dƣới dán vào
trang web của bạn. Bạn có thể chọn kiểu phông ở list Font, kích thƣớc chữ, in
đậm/nghiêng, quy định màu sắc…
Trong phần tin tức khi bạn nhấp vào tiêu đề của phần nội dung thông tin cần đọc thì
phần tiêu đề sẽ chuyển màu khác khi bạn đƣa chuột vào.
- Trang 20 -
Trong trang web có thể kết hợp nhiều màu sắc để thiết kế giúp cho trang web của
mình trở nên nổi bật hơn, những sản phẩm mới có thể để những màu đặc biệt nhƣ
màu nhấp nháy, các màu nổi… để thu hút ngƣời dùng coi và chọn sản phẩm
Nếu biết cách, bạn có thể tạo ra những kiểu chữ rất ấn tƣợng cho website của mình.
Sau khi thiết kế giao diện tƣơng tác với ngƣời dùng thì việc tiếp theo chúng ta cần
giải quyết là xử lí các yêu cầu và thao tác bên trong trang web, từ việc kết nối cơ sở
dữ liệu, lƣu thông tin ngƣời dùng, trao đổi buôn bán sản phẩm trực tuyến…
Xây dựng trang web với ZendFrameWork, trƣớc hết trang web phải đƣợc xây dựng
theo cấu trúc thƣ mục nhƣ sau
Hình 1.5 Cấu trúc cây thƣ mục đƣợc xây dƣng trong Zend
Mô hình MVC là mô hình chuẩn đƣợc sử dụng trong Zend để xử lí các yêu cầu và
thao tác trong trang web. Xây dựng ứng dụng với 2 phần giao diện : admin ứng với
phần giao diện của trang admin bao gồm những chức năng, quyền hạn của ngƣời
quản trị, trang public giao diện tƣơng tác dành cho ngƣời dùng web bình thƣờng.
- Trang 21 -
Bắt tay vào giải quyết các thao tác, yêu cầu trên trang web thì việc đầu tiên
phải làm là gì, vấn đề của mình lớn đến đâu phải phân nhỏ nó ra làm sao, tách và
phân chia chức năng cho các đối tƣợng nhƣ thế nào, các thành phần độc lập đến
đâu có tháo lắp đƣợc dẽ dàng và khi kết hợp lại có đồng bộ trong quá trình hoạt
động hay không. Cấu trúc trong cây thƣ mục của Zend đã giải quyết vấn đề một
cách triệt để các thành phần đƣợc sử dụng một cách linh hoạt, độc lập về tính năng
nhƣng tổng thể thì không tách rời, tập trung giải quyết và nhận yêu cầu tại một
file duy nhất là boottrap, phân phối và chuyển các yêu cầu đi từng tầng để xử lí
ứng với từng chức năng ban đầu mà thành phần đó đƣợc quy định
Mỗi trang web đƣợc chia thành 3 thƣ mục Model, View, Controller và các thao
tác trong trang web đƣợc xử lí cụ thể nhƣ sau:
Model
Model là một đối tƣợng hoặc tập hợp các đối tƣợng biểu diễn cho phần dữ
liệu của chƣơng trình ứng dụng.
Thành phần model này đƣợc chúng ta xây dựng thành các lớp kế thừa từ
lớp Zend_Db_Table hoặc Zend_Db_Table_Abstract đƣợc đặt trong thƣ mục
application/models của ứng dụng. Mỗi lớp sẽ đảm nhận việc kết nối và thao tác
đến table tƣơng ứng trong cơ sở dữ liệu.
View
Là phần giao diện với ngƣời dùng. bao gồm việc hiện dữ liệu ra màn hình,
cung cấp các menu, nút bấm, hộp đối thoại, chọn lựa…, để ngƣời dùng có thể
thêm, xóa, sửa, tìm kiếm và làm các thao tác khác đối với dữ liệu trong hệ
thống. View làm nhiệm vụ render trang web từ các action do controller truyền
sang kết hợp với dữ liệu từ model, có thể hiểu View đóng vai trò nhƣ là
template render. Thành phần view này đƣợc đặt trong thƣ mục admin/views và
public/views
- Trang 22 -
Trong thƣ mục views này có 3 thành phần
scripts
Chứa các thƣ mục gồm các file ánh xạ đến các controller/action để
hiển thị trang giao diện tƣơng ứng
helpers :
Trong thƣ mục này chứa các các lớp mà chúng ta tạo ra và các lớp
này sẽ đƣợc nạp tự động cho đối tƣợng Zend_view thông qua
Zend_View_Helper để giúp chúng ta dễ dàng gọi đến hàm đƣợc xây dựng
trong lớp này mà không cần phải khai báo trƣớc vì nó đƣợc xem là một thành
phần trong thƣ viện của Zend (đƣợc nạp tự động).
filters :
Tƣơng tự nhƣ thành phần helpers, filters chứa các lớp giúp cho chúng ta
có thể thay đổi hoặc xóa những dữ liệu không mong muốn trong quá trình
nhập liệu thông qua bộ lọc này.
Controller
Là phần điều khiển toàn bộ logic về hoạt động của giao diện, tƣơng tác
với thao tác của ngƣời dùng và cập nhật, thao tác trên dữ liệu theo đầu vào
nhận đƣợc và điều khiển việc chọn phần “Hiển thị” thích hợp để truyền dữ liệu
tới ngƣời dùng.
Controller làm nhiệm vụ điều hành trang web của bạn, 1 trang web có thể
có nhiều module , 1 module có thể có nhiều controller. Một controller sẽ gồm
nhiều action .
Zend Framework sử dụng đối tƣợng Front Controller để quản lý các
Request đƣợc gởi đến Web server. Và dựa trên Request đó, nó sẽ gọi các lớp
xử lý Model và trả về kết quả trình bày với các lớp View.
Ví dụ: Trong website bán hàng it4girl sẽ có AuthController bao gồm các
action nhƣ:loginAction(), captchAction(), logoutAction(),…
- Trang 23 -
Bootstrap :
Ngoài ra trang web của bạn cần có 1 file quan trọng chính là bootstrap,
làm nhiệm vụ chờ và nhận tất cả các request vào, sau đó khởi tạo controller và
dispatch request đến controller tƣơng ứng.
Điều đó có nghĩa là thay vì bạn tổ chức với đầy đủ chức năng từ kết nối đến
database , xử lý và hiển thị kết quả ra trình duyệt chỉ trong một file thì với mô hình
kiến trúc MVC này bạn tách làm 3 thành phần riêng biệt (có thể ví nhƣ việc phân
công lao động theo chuyên môn của mổi ngƣời vậy) mỗi phần sẽ đảm nhiệm môt
nhiệm vụ đặc trƣng của mình(áp dụng nguyên tắc phân nhỏ và nguyên tắc tách khỏi).
Trong quá trình xây dựng code cho chƣơng trình thƣờng có nhiều thay đổi. Vì vậy
ngƣời ta chia chƣơng trình thành các class riêng. Trong mỗi class sẽ có các hàm thực
hiện các chức năng riêng biệt. Nhƣ vậy khi cần thay đổi, sửa chữa ta chỉ cần thay đổi
cục bộ mà không ảnh hƣởng đến toàn bộ chƣơng trình.
Các phẩm chất cục bộ phát triển từ đơn giản đến phức tạp để tạo ra những ƣu điểm
riêng biệt. Nguyên tắc phẩm chất cục bộ tạo ra những sản phẩm tối ƣu, có thể mở
rộng.
Các nguyên tắc kết hợp, phân nhỏ, phẩm chất cục bộ còn phản ảnh khuynh hƣớng
phát triển biện chứng : Sự liên kết , hợp tác hóa đi kèm với sự phân công chức năng
nhiệm vụ và chuyên sâu hơn.
Giúp cho việc đồng nhất quá trình hoạt động của chƣơng trình ta có file bootrap,
đƣợc dùng để nhận các yêu cầu và gọi các hàm khởi tạo, nguyên tắc sao chép đƣợc
vận dụng khi chúng ta kế thừa các lớp và các hàm để xử lí trong chƣơng trình.
Những mẫu lập trình nhƣ mẫu thiết kế MVC thì không còn quá xa lạ với chúng ta
nữa .bây giờ chúng ta sẽ tìm hiểu một số mẫu còn lại khác nhƣ : Singleton,
Registry,Factory,Strategy,Iterator,Buider,…
- Trang 24 -
Bây giờ chúng ta hãy xem Zend_Controller_Front implements nó nhƣ thế nào trong
Zend Framework :
class Zend_Controller_Front
{
// Singleton instance
protected static $_instance = null;
// Constructor
// Instantiate using {@link getInstance()}; front controller is a singleton
object.
protected function __construct()
{
……
}
// Enforce singleton; disallow cloning
private function __clone()
{
}
// Singleton instance
public static function getInstance()
{
if (null === self::$_instance) {
self::$_instance = new self();
}
return self::$_instance;
}
Chúng ta lƣu trữ các instance trong một biến tĩnh biến là $_instance với khai báo
protected hoặc private . Sau khi hàm getInstance() đƣợc gọi để instance một đối
tƣợng vào lúc khởi tạo đầu tiên.
Chúng ta cần chú ý đến hàm __clone() bị chặn vì nó đƣợc khai báo private ,nghĩa là
chúng ta không thể sao chép các đối tƣợng và instance nó đƣợc nhiều hơn một lần .
Bây giờ chúng ta có thể instance đối tƣợng Zend_Controller_Front chỉ bằng cách
thông qua Zend_Controller_Front::getInstance()
- Trang 25 -
Registry cung cấp một cơ chế giúp bạn lƣu trữ và duy trì các đối tƣợng của bạn trong
ứng dụng .nó nhắm ngăn ngừa việc sử dụng đối tƣợng toàn cục không đúng cách bởi
ngƣời dùng .
Registry thƣờng cung cấp các functions làm cho bạn thoải mái để quản lý các đối
tƣợng lƣu trữ , lấy ,xóa bỏ , … đối tƣợng .
Chúng ta cần phải quan tâm đến một điều là Zend_Cache đƣợc khai báo là class
abstract .Điều này làm cho nó không thể khởi tạo và chỉ đƣợc sử dụng nhƣ một
factory cung cấp cho các objects bạn cần .Đây là một cơ chế hiệu quả làm ngăn ngừa
tình trạng hỗn độn từ việc dùng sai factory .
Mặt khác , chúng ta cũng có thể thấy một số biến tĩnh nhƣ $standardFrontends mà có
thể đƣợc xem là chuẩn của products . những tiêu chuẩn này là dễ dàng để duy trì
.Users có thể sử dụng hoặc sữa đổi chúng ở khắp mọi nơi mọi lúc.