Cũng như nhiều bạn đang học lập trình và sẽ chọn lập trình là sự nghiệp của mình sau này thì việc đứng trước những ngôn ngữ lập trình khác nhau sẽ có những thắc mắc và tò mò về ngôn ngữ đó. Và PHP là một trong số những ngôn ngữ mà các bạn trẻ IT đang rất quan tâm và muốn tìm hiểu. Với một chút kinh nghiệm làm việc và hiểu biết về PHP, mình viết bài này để chia sẽ và giới thiệu tới các bạn – những người đang quan tâm tới PHP – một cái nhìn thấu đáo và dễ hiểu hơn về ngôn ngữ lập trình thú vị này.
Sự phổ biến của Website & PHP
Mặc dù ra đời chưa lâu, nhưng Internet đã trở thành một phần trong cuộc sống của hầu hết chúng ta. Cùng với sự hình thành của Internet, sự ra đời và phát triển của hệ thống website đã làm cải thiện và phong phú hơn cho xã hội hiện nay. Với xu thế đó, xây dựng website trở thành một hành động “cần được xem xét” đối với lập trình viên.
Khác với mô hình lập trình Desktop thông thường, lập trình trên môi trường web chủ yếu dựa vào mô hình Client-Server và giao thức HTTP để làm việc. Hiện tại, có khá nhiều ngôn ngữ cho phép chúng ta lập trình web như Java, .NET, PHP, Perl, Python, Ruby on Rails…mỗi ngôn ngữ đều có những ưu và khuyết điểm riêng. Nội dung của bài viết này sẽ đi vào một số điểm nổi bật của PHP và một số nhân tố khiến PHP ngày càng trở nên phổ biến như ngày nay.
Với PHP, bạn có thể viết ra nhiều kiểu ứng dụng có mô hình tương tác khác nhau như thông qua website (HTTP Request – Response), thông qua Command Line Interface – CLI (Shell, Batch processing…), Web Service (SOAP, REST…), thông qua ứng dụng Desktop (PHP-GTK)…. Giống như các công nghệ web khác, PHP là một ngôn ngữ phía Server, có nghĩa là code của bạn sẽ được triển khai và thực thi trên Server.
Mới ra đời gần 15 năm nhưng PHP đã có sự phát triển nhanh chóng và chóng mặt. Có thể chỉ ra đây một số ứng dụng nổi tiếng viết bằng PHP như: Yahoo, Facebook, Wikipedia, Digg, Joomla, WordPress…Sự phổ biến của PHP trong xây dựng web đã làm cho ngày càng nhiều website triển khai bằng PHP. Một số dạng web tiêu biểu có thể viết bằng PHP là : Social Network, Message Board (Forum, Guestbook, Blog…), CMS (Content Management System), E-Commerce, Multimedia (Image Gallery, Music, Video…), Web Mail, IM (Instant Message), Office tools…
Tôi chọn PHP vì:
Mã nguồn mở
– Có lẽ nhiều bạn cũng biết PHP là một sản phẩm mã nguồn mở (Open-source) nên việc cài đặt và tùy biến PHP là miễn phí và tự do.
– Vì có ưu thế nguồn mở nên PHP có thể được cài đặt trên hầu hết các Web Server thông dụng hiện nay như Apache, IIS…
Tính Cộng đồng của PHP
– Là một ngôn ngữ mã nguồn mở cùng với sự phổ biến của PHP thì cộng đồng PHP được coi là khá lớn và có chất lượng.
– Với cộng đồng phát triển lớn, việc cập nhật các bản vá lỗi phiên bản hiện tại cũng như thử nghiệm các phiên bản mới khiến PHP rất linh hoạt trong việc hoàn thiện mình.
– Cộng đồng hỗ trợ, chia sẽ kinh nghiệm của PHP cũng rất dồi dào. Với rất nhiều diễn đàn, blog trong và ngoài nước nói về PHP đã khiến cho quá trình tiếp cận của người tìm hiểu PHP được rút ngắn nhanh chóng.
Thư viện phong phú
– Ngoài sự hỗ trợ của cộng đồng, thư viện script PHP cũng rất phong phú và đa dạng. Từ những cái rất nhỏ như chỉ là 1 đoạn code, 1 hàm (PHP.net…) cho tới những cái lớn hơn như Framework (Zend, CakePHP, CogeIgniter, Symfony…) ,ứng dụng hoàn chỉnh (Joomla, WordPress, PhpBB…)
– Với thư viện code phong phú, việc học tập và ứng dụng PHP trở nên rất dễ dàng và nhanh chóng. Đây cũng chính là đặc điểm khiến PHP trở nên khá nổi bật và cũng là nguyên nhân vì sao ngày càng có nhiều người sử dụng PHP để phát triển web.
Hỗ trợ kết nối nhiều hệ cơ sở dữ liệu
– Nhu cầu xây dựng web có sử dụng cơ sở dữ liệu là một nhu cầu tất yếu và PHP cũng đáp ứng rất tốt nhu cầu này. Với việc tích hợp sẵn nhiều Database Client trong PHP đã làm cho ứng dụng PHP dễ dàng kết nối tới các hệ cơ sở dữ liệu thông dụng.
– Việc cập nhật và nâng cấp các Database Client đơn giản chỉ là việc thay thế các Extension của PHP để phù hợp với hệ cơ sở dữ liệu mà PHP sẽ làm việc.
– Một số hệ cơ sở dữ liệu thông dụng mà PHP có thể làm việc là: MySQL, MS SQL, Oracle, Cassandra…
Lập trình hướng đối tượng
– Ngày nay, khái niệm lập trình hướng đối tượng (OOP) đã không còn xa lạ với lập trình viên. Với khả năng và lợi ích của mô hình lập trình này nên nhiều ngôn ngữ đã triển khai để hỗ trợ OOP.
– Từ phiên bản PHP 5, PHP đã có khả năng hỗ trợ hầu hết các đặc điểm nổi bật của lập trình hướng đối tượng như là Inheritance, Abstraction, Encapsulation, Polymorphism, Interface, Autoload…
– Với việc ngày càng có nhiều Framework và ứng dụng PHP viết bằng mô hình OOP nên lập trình viên tiếp cận và mở rộng các ứng dụng này trở nên dễ dàng và nhanh chóng.
Tính Bảo mật
– Bản thân PHP là mã nguồn mỡ và cộng đồng phát triển rất tích cực nên có thể nói PHP khá là an toàn.
– PHP cũng cung cấp nhiều cơ chế cho phép bạn triển khai tính bảo mật cho ứng dụng của mình như session, các hàm filter dữ liệu, kỹ thuật ép kiểu, thư viện PDO (PHP Data Object) để tương tác với cơ sở dữ liệu an toàn hơn.
– Kết hợp với các kỹ thuật bảo mật ở các tầng khác thì ứng dụng PHP sẽ trở nên chắc chắn hơn và đảm bảo hoạt động cho website.
Khả năng mở rộng cho PHP
– Bằng việc xây dựng trên nền ngôn ngữ C và là mã nguồn mở nên khả năng mở rộng cho ứng dụng PHP có thể nói là không có giới hạn.
– Với thư viện phong phú và khả năng mở rộng lớn, ứng dụng PHP có thể tương tác với hầu hết các loại ứng dụng phổ biến như xử lý hình ảnh, nén dữ liệu, mã hóa, thao tác file PDF, Office, Email, Streaming…
– Bạn hoàn toàn có thể tự xây dựng cho mình các Extension để tối ưu, bổ sung các chức năng cho PHP cũng như tối ưu luôn Core của PHP để phục vụ cho các mục đích mở rộng website của mình.
Liệu biết PHP là đủ?
Như nhiều bạn lập trình viên có khả năng học khá nhiều ngôn ngữ lập trình nói chung và ngôn ngữ lập trình web nói riêng thì việc chỉ biết mỗi PHP thì có lẽ chưa “thỏa mãn”. Biết một ngôn ngữ chưa hẳn là ít, nếu bạn chú tâm và đào sâu thì mỗi ngôn ngữ luôn có những tầng khác nhau để khám phá. Không sợ học hết, chỉ sợ học không nổi mà thôi!
Nói đi cũng phải nói lại, nếu chỉ biết mỗi PHP thì thật sự bạn khó có khả năng triển khai 1 website. Bởi vì trong một hệ thống website, Coding PHP chỉ là một mảng nhỏ trong khâu sản xuất web mà thôi. Bạn cần phải trang bị một số kiến thức khác trong công nghệ web như : HTML, CSS, Javascript, SEO, UML, Database, Networking…để đảm bảo bạn nắm được những gì sẽ xảy ra trong quá trình làm web vì nó sẽ rất có ích cho bạn khi triển khai PHP.
Như vậy có nghĩa là học lập trình web thì bạn phải vừa học theo chiều sâu và học theo chiều rộng. Ngôn ngữ lập trình web phía Server (PHP) thì học càng sâu càng tốt và các công nghệ của web thì tìm hiểu càng rộng càng tốt. Có như vậy bạn mới có một cái nhìn toàn diện hơn về ứng dụng web và dễ dàng hoàn thiện website.
Môi trường làm việc, thị trường & tương lai của PHP
Để học tập và nghiên cứu PHP thì triển khai môi trường để tiến hành rất dễ. Bạn có thể cài các bộ ứng dụng đầy đủ để tạo mô hình Client-Server ngay trên máy của mình để học (AppServ, WAMP, XAMPP…) .
Nếu bạn không muốn code từ đầu thì có thể nghiên cứu các Framework PHP để phát triển ứng dụng trên đó như là Zend, CakePHP, CodeIgniter…
Như hầu hết các ngôn ngữ lập trình hiện đại khác, bạn cũng có thể sử dụng các IDE để phát triển ứng dụng PHP như Zend Studio, Nusphere PhpED, NetBeans…Với các tính năng nổi bật như là Code & Syntax Highlighting, Auto-Complete, Project Manager, Code Navigator, Debug…thì việc code PHP sẽ trở nên dễ dàng và nhanh chóng hơn.
Với việc ngày càng có nhiều ứng dụng lớn viết bằng PHP, sự đa dạng trong ứng dụng và Framework làm cho thị trường và tương lai dành cho các bạn yêu thích PHP là rất lớn. Ngoài ra, bạn có thể thử sức với chứng chỉ ZCE của Zend trong lĩnh vực PHP. Rất nhiều công ty đang chọn PHP làm ngôn ngữ phát triển website cho khách hàng cũng như sản phẩm của riêng họ nên việc hiểu biết và chuyên sâu về công nghệ web nói chung và chuyên sâu về PHP nói riêng sẽ là một lợi thế rất lớn cho các bạn.
VÕ DUY TUẤN
Một bài viết rất tâm đắc và rất đầu tư. Không hỗ danh là một người chuyên về PHP. Chúc Tuấn luôn đạt được những thành công.
Cảm ơn lời chúc của bạn!
Cảm ơn bạn đã chia sẽ. Nếu ở trên những hiểu biết về PHP của bạn là như thế thì nói thiệt bạn chưa hiểu gì về PHP :D, hoặc có thể những hiểu biết PHP của bạn chỉ gói gọn trong mấy cái open source mà thôi. Hy vọng một ngày nào đó bạn tìm thấy niềm vui từ PHP. Thân.
php được nhiều người dùng đến bởi :
+ viết nhanh và đơn giản
+ free (my sql cũng free)
hạn chế của nó là :
+ tính security của php không cao
mà đối với website tính bảo mật luôn luôn là tiêu chuẩn hàng đầu.
bởi vì các hạn chế của nó nên
cùng 1 loại website thương mại điện tử bán hàng :
+ viết = php thì giá chừng 3 triệu tốn 2 ngày để hoàn thành
có thể kể đến như Zend cart , CMS , MAgeto , Baamboo v..v
những sản phẩm trên xây dựng sẵn ứng dụng shopping cart nên 1 ngày là xong
+ việt = asp.net đương nhiên giá nó cáo gấp 3 lần so với viết = php.
đơn giản bởi security asp.net cao hơn nhiều so với php(tùy người viết nữa)
asp.net viết lấu hơn php rất nhiều
+ viết = Java thì khỏi nói . giá nó gấn 5-6 lần so với php
về security thì Java là vô đối bởi 1 ứng dụng web viết đúng chuẩn của java cần :
Jsp(servlet) phải qua 1 cái gọi là Strust sau đó strust lấy dữ liệu từ EJB , EJB sẽ gọi dữ liệu từ database
có thể mô hình ở đây
gửi yêu cầu
JSP—————>Strust ——-> EJB
<——-
| |
gọi | |
| |
| |trả dữ liệu
v |
Database
theo mình nghĩ bạn đánh giá là .Net có mức độ security cao hơn PHP là hoàn toàn sai lầm và không khách quan, mình nghĩ về security thì phụ thuộc vào chính người code, nếu code ẩu, bừa thì khả năng bị tấn công và hack là đương nhiên
1 ví dụ cho thấy .Net có mức độ bảo mật ko cao, hay thậm chí là dở ẹc
là đa số các site viết trên nền ASP.net là shopping luôn bị hack CC, vậy thì độ bảo mật ở đâu?
@phucvh, Tôi nghĩ bạn nói đúng một phần. Ngôn ngữ lập trình chỉ chiếm 30% chương trình chúng ta làm nên, còn lại là là thuật toán. Học ngôn ngữ lập trình không khó, cái mà chúng ta quan tâm là công nghệ đi kèm. C/C++, Java, PHP… thì có khác nhau mấy. Trang http://www.w3schools.com được viết bằng ASP cổ điển đó bạn ạ. Nói tóm lại ai thích gì thì học nấy thôi
@php là thứ ngôn ngữ kiểu Mì Ăn Liền,
Bình thường tôi chẳng buồn để lại Comment tại website nào cả nhưng đọc mấy cái Comment này lại thấy chột dạ. Bản thân tôi cũng là một người làm việc với PHP và đồng thời đứng lớp giảng dạy lập trình PHP hơn 4 năm, hy vọng tạm đủ tư cách nêu chút ý kiến kém hiểu biết của mình.
Cái gì mà web viết = PHP thì 3-5tr, ASP thì 9-10tr, còn JSP thì 15-16tr ? Tôi hy vọng bạn có thể thuyết phục người ta rằng cái Computer bạn đang sử dụng có kết cấu mainboard và Chip bằng VÀNG nhưng không mở ra cho người ta xem.
Rồi PHP kém security hơn ASP và JSP. Tôi nghĩ bạn còn ko biết CHMOD và NTFS là cái gì nữa chứ nói gì đến Secure Code. Nói đến Secure cho một ứng dụng Web, cần phải có kết hợp giữa Networking + Server Config + Application build (Code). Dù trình bạn có là “thánh” trong Code đi nữa thì cũng quên đi giấc mơ an toàn.
Có thể bạn đã sử dụng qua TẤT CẢ Framework và Opensource nhưng để trở thành một chuyên gia thì còn xa.
P/S: web viết PHP mà 3-5tr thì bạn nên xem lại cách kinh doanh, cách giải thích, thuyết phục, chăm sóc và “gài độ” của mình. Hoặc sa thải anh kinh doanh ấy đi.
@php là thứ ngôn ngữ kiểu Mì Ăn Liền,
Ngu mà tỏ ra nguy hiểm,
Theo tui bạn Phoenix nó đúng! ai nói php bảo mật kém, chắc là môn đạo asp.net đây. ở việt nam mấy trang viết asp.net bị hack tè le!
@php là thứ ngôn ngữ kiểu Mì Ăn Liền,
Bạn nói dễ hack web viết bằng PHP ah. Hack sập Facebook, Yahoo mình xem đi. 2 anh này viết bằng PHP nè. Không biết có phải chỉ 2-3 triệu như bạn nói ko nhỉ 😉
Mình ko ý nói FB hay Yahoo là bức thành vững chắc không thể phá vỡ, vì vẫn liên tục bị nhiều lần công kích, nhưng securiry mà chỉ căn cứ vào ngôn ngữ lập trình thì nên xem lại khả năng của bạn.
hihi, vo tinh doc duoc nhung kien thuc chia se cua ban DUY TUAN.
cong nhan voi ban la dotnet bao mat tot, nhung bu lai neu cac ban lam viec voi dotnet thi cac ban chi co the goi la “cuoi ngua xem hoa”, don gian thi dang sau ban lun lun la 1 ong lon microsoft che cho~, cac ban chi tuong tac voi code thong qua cai giao dien ma` ko the nao cham tay vao ung dung nen de chay dotnet va no chay nhu the nao tren ly thuyet ma thoi, con viec gia ca~ du. an cao hon php don gian la` moi thu lam viec voi dotnet deu phai “buy..buy…buy” tu cai visual studio cho den cai SQL Sever..,(bo tien ra mua ban quyen thi phai ban san pham mac chu? phai ko ban).
1 lap trinh vien lam viec voi dotnet 3 nam khi nhay qua mang PHP rat kho chiu. don gian la phai lam viec tu a->z(doi voi nhung du an trung binh, va lon), con doi voi PHP qua mang Dotnet thi rat ok.
—
con voi Java ko ai che dc, nhung nghi di nghi lai di ban, quy trinh hoat dong cua Java qua thu dong, thay vi “1 phong ngu nguoi ta xay co 2 cua, 1 cua ra va 1 cua vao rieng biet thi` thang Java choi di vao di ra chung 1 cua~, tat nhien no chi can bao mat 1 cong do’, chu trong vao 1 cong tat han se tot hon phai chia va bao mat nhieu cong~ roi`. Bu lai khi du lieu it thi ok nhung luc du lieu ra vao qua nhieu thi hay bi ket, Java co dau tu kha nhieu ve viec xu ly du lieu lam ung dung chay nhanh nhung cung ko co tac dung nhieu , 1 cai cong sao ma nhanh hon 2,3 cai cong bao gio”.
—-
tren doi o co cai gi ngon, bo, re ca ban ah`, cai quan trong la ban co kien thuc de xu ly tot moi thu ko thoi.
voi PHP ma noi den thoi diem nay, nguon nhan luc vietnam rat yeu ve no’. Minh co dieu kien lam viec ben Singapore 3 nam, minh thay kha nang phat trien PHP cua lap trinh vien rat cao va rat la chuyen nghiep.
Cảm ơn những chia sẽ rất đầy đủ của bạn. Rất hân hạnh được quen biết bạn.
good!doc nhung bai viet cua anh! cam thay tam dac!
Một bài viết chứa đầy kinh nghiệm + nhiều trăn trở về ứng dụng PHP hiện nay. Cảm ơn đã chia sẽ.
Đúng là nói về tính bảo mật không thể so sánh được bằng ngôn ngữ. Ai nói 1 site cần bảo mật tốt thì phải viết .net. nganluong.vn cũng là php, 1 site không lồ khác là facebook.com cũng là php.
Nếu mọi người so sánh về tính bảo mật giữa các ngôn ngữ lập trình đúng là không cần thiết tí nào.
À mà mọi người cho mình hỏi luôn. Admin của bloghoctap.com này là ai vậy. mình muốn làm quen với bạn. nếu ở HCM thì hay thật.
Rất vui được làm quen với bạn. Mình ở HCM :D.
òh. hôm nay search google “orm là gì?” thì có bài đọc được bài này hay quá. Em đang bắt đầu tìm hiểu PHP. Hi vọng là em cũng có thể có một cái chứng chỉ của Zend Framework. Hihii
Cám ơn vì đã chia sẻ. Con đường mình đi có niềm tin hơn rùi
[…] Tại sao tôi chọn PHP? January 25, 2011 pqlife Leave a comment Go to comments Nguồn: https://bloghoctap.com/web-programming/tai-sao-toi-chon-php.html […]