MỤC LỤC
!
"#$%& !'
()*+,++ !-+($%& /+01234-5)$6*!
7*589/:;<3=+#)%&<0;!>"(
*?!@?A0B>-8C*:3%($"8BD'
E87F?(-+2-+1236*!% >BG-H)*$I:-9?%&AI;AJ
+8%$$()*'
K$LM/A2:NOPQ"BQR%(-S.TU3-+2&VUWXMPQ"BQ36/,%=
)*RM?!@?,WBY?(6$PQ"BQZ3$,@MOI)R>(
$/;-[WPQ"BQ\,$9]]?(6$2M%PQ"88>
2@K$L%^+)<3*)*L2J6_9A!-+- *?N-+2PQ"
K$L`8CO)*OPQ"BQR%(-S.TUa,VUWPQ"BQO"@/+,`8C
6$++,Vb$+O"@-+VPQ"BQ/+,?:;?(6$PQ"/+,2
PQ"/+, ?(6$-,@/+,%c,+8S+de(<MM/+&
!3&23)%&=PQ"BQR%(-S.TU8*+,VUW#)%&=
PQ"BQ- 2J6_9A*"@-+22M/=$-I6"@?( %f<$
I)=$"8+),"@) "@g?(\22M$6$$)%&+)&
<)*Lhij+IO%kQ"O"@l+<<2-@A"@5?"*3632%dQ2
"@ >L=f-+2<@) 76I'
af 2Daf2M 2]fA/m'
nna>BG-N)*+$?8>?$?B$@,o
na$6*!-9?%&pQ/q%2Qk,%63d.)/=%kQ"o
r) ]?s2:"MDr
()* !
t Trang 1 -
a$&!8C"*O8>2@u-+2"$B$+@582"$
$%,Q%QIQ%Q"v+,`9? hhiAu+%=)*+)
+<72%f>;8S"$+%,Q%Q<-C*-+f6I7*
2M/4"$+9B=2+I$%PQ"Bu/:2M6I"$+(,a$
u+%=)*58S)6I7*+6,)Z7*%NA&8S<3
?,6$+%=F*?08SB(d)<3J+Q,7C*/,F*
628C;?N`L+)<38CF*?:)3F*?,6$+3@%
$%kQ""$+6$,+)4+-8COB(?s2&*6*,/7
5A.8S/v5-+2M)*`6I3*3.,/,O%kQ"
<<w-+)&"@!7)O!\06*`*/"BQAdu-H+3L
6*(%%&/)Z%,2Mx-Q&2I&6*%yXla+)"@$-+2r+?7
% "R<3N8?.I-,MQ,) 2IO28S9)W2z?7BY(2
22I2:J%8O2&R$?/:) ]?.T+) ]$6TWnr
b*-9n
t Trang 2 -
DANH MỤC HÌNH ẢNH
{&XQO%kQ"
{&n,/" ?N8S/v'
{&rXQ!\O8S(%Lo
{&,/" %kQ"(%Lh
{&|a%y.)82:8Cd.)/8%,pQ/ni
t Trang 3 -
1. 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
t Trang 4 -
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
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.
- 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.
t Trang 5 -
1. Tổng quan
a. 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,
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.
t Trang 6 -
b. 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ớ.
t Trang 7 -
2. 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” ở
t Trang 8 -
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.
- 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.
t Trang 9 -
// 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();
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)
t Trang 10 -
$ 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 đó
- 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
t Trang 11 -
t Trang 12 -
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
t Trang 13 -
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 đi5m c7a các th7 thu8t:
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.
t Trang 14 -
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ư9c đi5m c7a các th7 thu8t:
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.
t Trang 15 -
1. 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.
t Trang 16 -
Hình 1.1 Thanh Menu của trang web
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.
t Trang 17 -
Hình 1.2 Giao diện bên phía người dùng
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ị
t Trang 18 -
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.
t Trang 19 -
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.
t Trang 20 -
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
Trong thư mục views này có 3 thành phần
t Trang 21 -
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(),…
t Trang 22 -
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,…
t Trang 23 -
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()
t Trang 24 -
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.
t Trang 25 -