Lập trình Web động với PHP/MySQL (Phần 1) - Tống Phước Khải
Kiến trúc căn bản nhất để trang Dynamic Web hoạt động được là nó phải làm việc
trên mô hình client/server. Nôm na là mỗi thứ client hay server đều đảm đương một
chức năng riêng để hoàn thành công việc chung đó là cho ra một trang Web động.
Các bạn có lẽ đã quen thuộc với chương trình WinWord để soạn văn bản, nó có thể
hoạt động độc lập trên bất kỳ máy tính nào chẳng cần quan tâm tới cái gì là client hay
cái gì là server. Ứng dụng Web thì khác hẳn, phải có một mô hình server có thể làmột máy tính làm server thôi, nhằm tập trung hoá việc xử lý dữ liệu. Còn các client,
còn được hiểu nôm na là máy tính của người sử dụng phải được nối mạng với server,
giả sử các máy này truy cập vào một Website chẳng hạn, thì có nghĩa họ đã truy cập
vào server, sau đó lấy dữ liệu từ server về thể hiện lên máy mình. Cùng một lúc có
thể có hàng trăm người (client) truy cập vào cùng một Website được xử lý tập trung
trên server, tương tự như một đám trẻ xúm nhau giành phần của mình từ một cái bánh.
g trình mở rộng tính năng của Apache. PHP hoạt động với tư cách là một phần mở rộng của Apache, và người ta gọi là một module của Apache. Apache có tính ổn định và tốc độ đáng phải nói. Tuy nhiên, cũng có một số sự phàn nàn về nó là không hỗ trợ công cụ đồ hoạ trực quan, điều có thể giúp người ta làm việc một cách dễ dàng hơn. Bạn phải thực hiện các thay đổi đối với Apache bằng cách sử dụng dòng lệnh, hoặc sử các tập tin text trong folder chương trình Apache. Nếu lần đầu đến với Apache thì bạn sẽ gặp một chút lạ lẫm. Mặc dù Apache chỉ làm việc tốt trên Unix, nhưng cũng có những phiên bản chạy tốt trên hệ Windows. Không một ai, kể cả các nhà phát triển Apache đề nghị rằng Apache nên được chạy trên một server Windows bận rộn. Nếu bạn quyết định chọn HĐH Windows cho server thì bạn nên sử dụng IIS. Nếu bạn thử nghiệm ứng dụng trên Windows và sau đó đem upload và chạy trên Unix/Apache của nhà cung cấp host thì cũng không hề hấn gì, ứng dụng của bạn vẫn chạy ngon lành. Middleware PHP thuộc lớp ngôn ngữ lập trình gọi là middleware. Các ngôn ngữ này hoạt động cận kề với Web Server để thông dịch các yêu cầu từ trên World Wide Web, sau đó nhận các trả lời từ Web Server chuyển tải đến trình duyệt Web nhằm đáp ứng các yêu cầu đó. Middleware là nơi mà bạn sẽ thực hiện các khối lượng rất lớn công việc chính yếu của bạn. Với hỗ trợ này Web Server của bạn sẽ không phải cán đáng quá nhiều khối lượng công việc. Nhưng khi bạn phát triển ứng dụng của bạn, bạn sẽ tốn nhiều thời gian viết mã chương trình để cho chương trình của bạn có thể hoạt động được. Ngoài PHP ra có một số ngôn ngữ khác có chức năng tương đương như ASP, Perl, ColdFusion. Hệ CSDL quan hệ Relational Database Management Systems (Hệ Quản trị Cơ Sở Dữ Liệu Quan hệ - RDBMSs) cung cấp phương thức tuyệt vời để lưu trữ và truy xuất lượng thông tin lớn và phức tạp. Nó đã ra đời khá lâu. Thực tế, nó có trước Web, Linux và WindowsNT, cho nên không có gì ngạc nhiên khi có quá nhiều hệ CSDL để chọn lựa. Tất cả các CSDL này đề dựa trên cơ sở SQL (Structure Query Language). Một số hệ phổ biến như Oracle, Sysbase, Informix, Ms SQL Server, IBM's DB2. Hệ nguồn mở thông dụng hiện nay là MySQL mà quyển sách này đề cập đến, ngoài ra còn có hai hệ nguồn mở khác là PostgresSQL đã một thời thay thế MySQL và Interbase là bộ nguồn mở của Borland giới thiệu vào tháng 8/1999. Tại sao sử dụng PHP và MySQL Tại sao có quá nhiều chọn lựa như vậy mà chúng ta lại phải chỉ lấy ra cặp bài trùng PHP/MySQL mà thôi? Tôi sẽ giải thích điều naỳ ở phần sau. Nói về PHP Các ngôn ngữ lập trình xem ra giống như các loại giày dép. Có loại có vẻ bắt mắt với một số người này, nhưng lại khó ưa với người khác và ngược lại. Một số người chỉ thích sử dụng một hiệu giày nào đó đã quen thuộc và ngôn ngữ lập trình cũng tương tự như vậy. Ở đây tôi muốn ngụ ý với các bạn là khi lập trình Web, các ngôn ngữ lập trình đều cho kết quả gần giống nhau. Câu hỏi ngôn ngữ nào tốt nhất không phải là vấn đề nó không có khả năng thực hiện một số chức năng nào đó mà thường là nó có làm cho bạn thực hiện công việc một cách nhanh chóng và đỡ nhọc công hay không? Tốc độ nhanh, dễ sử dụng Chúng ta hãy bàn về tốc độ. Có 3 thứ mà tôi chắc chắn khi bàn về việc so sánh tốc độ giữa các ngôn ngữ lập trình Web. Thứ nhất, ứng dụng viết bằng C chạy nhanh nhất. Thứ hai, công việc lập trình C khá là phức tạp, và sẽ ngốn nhiều thời gian hơn. Thứ ba, việc so sánh giữa các ngôn ngữ là một điều khó khăn. Tất cả những gì tôi biết là tôi cảm thấy yên tâm khi nói rằng PHP cũng nhanh như các ngôn ngữ khác. Trở lại ví dụ so sánh với các loại giày dép: Vina, Đông Hải, Kiến Hoa, Hồng Thạnh, Italy v.v., chắn chắn bạn sẽ chọn loại tiện dụng nhất? Nếu bạn giống như tôi, bạn sẽ cảm thấy rằng PHP có đầy đủ các đặc tính như khả năng, cấu trúc và dễ sử dụng. Xin nói thêm, đây chỉ là cách nhìn riêng của tôi thì tôi tin rằng cú pháp PHP tuyệt hơn ASP hay JSP. Và theo tôi thì việc gõ lệnh PHP nhanh hơn ColdFusion và nó không khó học như Perl. Tóm lại, tôi cho rằng PHP cung cấp các tính năng mạnh mẽ để thực hiện ứng dụng Web một cách nhanh chóng. Chạy trên nhiều hệ điều hành Như đã trình bày ở phần kiến trúc web, tôi có nói là PHP có thể chạy trên WindowsNT/2000/2003 và Unix với sự hỗ trợ của IIS và Apache. Nhưng ngoài ra nó có thể chạy trên một số các platform khác như Netscape, Roxen, hay một vài thứ khác. Như chúng ta biết ASP có thể chạy trên Unix, ColdFusion có thể chạy trên Solaris và Linux, JSP có thể chạy trên khá nhiều loại platform. Đối với PHP, nó có thể chạy tốt trên những platform hỗ trợ các chủng loại trên. Truy cập bất kỳ loại CSDL nào Ứng dụng của bạn dự định sẽ truy cập những loại dữ liệu dịch vụ nào? LDAP, IMAP mail server, DB2, hay XML parser hay WDDX. Bất kể bạn cần đến thứ gì thì PHP cũng sẵn sàng hỗ trợ thông qua các hàm được xây dựng sẵn nó sẽ làm công việc của bạn trở nên rất dễ dàng và tiện lợi. Nhưng nếu như có một số thứ chưa được xây dựng sẵn thì sao? Ta tiếp tục sang phần sau sẽ rõ. Luôn được cải tiến & cập nhật Nếu như bạn cảm thấy bỡ ngỡ đối với việc phát triển nguồn mở, bạn có lẽ sẽ ngạc nhiên đối với chất lượng của loại phần mềm này. Có hàng ngàn những chuyên gia lập trình xuất sắc đợi sẵn và họ sẵn sàng bỏ thời gian ra để tạo những phần mềm tuyệt vời và hầu như miễn phí. Đối với ngôn ngữ thịnh hành như PHP thì ắt hẳn là các rất nhiều các nhà lập trình đang thực hiện phát triển nó hằng ngày. Sự thật có một việc rất ấn tượng là nếu như bạn có một sự cố kỹ thuật, bạn có thể gởi email đến một nhà phát triển PHP các chi tiết sự cố đó. Chỉ trong vòng vài giờ bạn sẽ nhận được sự trả lời thoả đáng. Khi PHP4 được phổ biến, nó đã trở thành một hiện tượng của ngôn ngữ lập trình. Nó giúp cho việc bổ sung số lượng lớn các hàm chức năng một cách dễ dàng. Nếu như ngôn ngữ đã có sẵn nhiều hàm đặc thù cho công việc thì bạn sẽ đỡ tốn công hơn cho việc lập trình của mình. Được hướng dẫn kỹ thuật bất cứ lúc nào Hầu hết các ngôn ngữ đều hỗ trợ active mailing list (hiểu nôm na là danh sách mail những thành viên trực chiến hỗ trợ kỹ thuật) và các development site (trang web hỗ trợ giải quyết kỹ thuật). PHP cũng không ngoại lệ. Nếu bạn gặp phải sự cố - gặp những lỗi trong chương trình và không tìm ra cách khắc phục - sẽ có hàng trăm người có tên trong danh sách mail luôn sẵn lòng kiểm tra và khắc phục sự cố cho bạn. Bộ nguồn mở PHP thật sự đã tạo ra một tình cảm của cả cộng đồng. Khi bạn gặp phải khó khăn đối với nó thì lúc nào cũng có những đồng môn chia sẻ nỗi lòng đó và giúp bạn khắc phục nhằm đem lại niềm vui cho bạn. Hoàn toàn miễn phi$ Bạn không ngại gì về vấn đề bản quyền khi bạn sắm một máy vi tính và cài lên đó những phần mềm như Linux, Apache, PHP vì tất cả đều miễn phí. Free! Nói về MySQL Mặc dù MySQL được phổ biến rất nhiều nhưng nó vẫn có những đối thủ đáng gờm đang cạnh tranh với nó. Những đối thủ của nó có thể trội hơn về một phương diện đặc thù nào đó. Trong phần trên, chúng ta đã bàn sơ qua MySQL. Trong phần này, bạn sẽ được biết về những đặc điểm của những Hệ quản trị CSDL khác mà MySQL không hỗ trợ. Với những hạn chế đó đã làm cho MySQL không được chọn để chạy trên một số các môi trường. Nếu bạn đang có kế hoạch bắt đầu cho một ngân hàng chẳng hạn, thì tôi khuyên bạn là MySQL không thích hợp cho bạn. Nhưng đối với phần đông mọi người và phần lớn các ứng dụng, MySQL là sự chọn lựa của họ bởi nó rất thích hợp cho những ứng dụng Web. Vừa túi tiền Hãy nghĩ bạn cần cài đặt Oracle. Hãy chuẩn bị hầu bao của mình khoảng 30.000 đến 100.000 USD hoặc thậm chí còn hơn thế nữa. Điều hiển nhiên là Oracle, Sysbase và Informix là những Hệ Quản trị CSDL tuyệt vời, nhưng giá thành quá cao, không hợp với túi tiền của phần đông mọi người. MySQL hoàn toàn miễn phí. Bạn có thể sử dụng mà không cần chuẩn bị bất kỳ khoản tiền nào. Nhanh và mạnh MySQL không có đầy đủ những cơ sở vật chất cho một Hệ Quản trị CSDL chính tông, nhưng đối với công việc thường nhật của phần đông mọi người thì nó cung cấp cũng khá nhiều thứ. Nếu công việc của bạn là lưu trữ dữ liệu trên Web hoặc làm một trang Thương mại Điện tử cỡ vừa, thì MySQL có đủ những thứ bạn cần. Đối với những CSDL cỡ trung bình thì MySQL hỗ trợ tuyệt vời về tốc độ. Các nhà phát triển MySQL rất tự hào về tốc độ sản phẩm của họ. Với các ứng dụng mà tôi giới thiệu trong phần III và IV của quyển sách này, thì bạn khó có thể kiếm được một Hệ Quản trị CSDL nào đạt được tốc độ nhanh hơn nó.
File đính kèm:
- lap_trinh_web_dong_voi_phpmysql_phan_1_tong_phuoc_khai.pdf