10/10/2018, 09:47

Bàn về Lập trình Hướng đối tượng trong PHP

Khi làm 1 website thông thường code bằng thủ tục thì em làm được chạy ngon,em ko dùng mấy cái template system nào cả,toàn cho cả đóng code PHP dồn vào với HTML với chỉ phân file css và javascript ra riêng thôi.Nghe mấy bác khuyên chuyển qua lập trình OOP trong PHP nhưng thử dùng mấy framework tốc độ nó chậm quá và khó hiểu hết bản chất các framework đó nên khi dùng thấy hơi khó khăn ,ví dụ em hay lấy mấy cái ajax tooltip share trên mạng nếu dùng hàng tự code theo function em chèn code PHP thoải mái vào mấy cái đó và dùng rất khỏe nhưng khi code theo OOP, framework như codeigniter hay zend hoặc cake thì chịu ,chắc do em trình còi.
Và cho em hỏi 1 chút 1 project thì khi đã code theo OOP thì cả project dùng OOP hết luôn sao!!!
Em mở topic này hy vọng các bác share 1 vài project đơn giản mà các bác đã làm và viết theo OOP,và bản chất của OOP trong PHP ví dụ đơn giản như khi nào thì dùng từ khóa static,instance,inheritance..., hay các kinh nghiệm các bác đã trải qua khi code,mong mấy bác giúp đỡ.

Thân
ngoc_viet08 viết 11:52 ngày 10/10/2018
nếu là destop applicant thì việc dựng oop là tất nhiên !
còn website php chỉ là request->respone cho nên dùng oop em thấy miễn cưỡng quá .
ví dụ như js , tương tác trực tiếp với người dùng , có thể xem như 1 chương trình destop , thì việc code oop là hiển nhiên.
còn php , oop chỉ tồn tại tại server , các class đựoc tạo ra tại server và tương tác lẫn nhau . nếu web đơn giản , class chỉ việc tạo function và xài 1 , 2 lần ...
với web phức tạp , sự tương tác giữa các class cao , thì có thể xài nhìu hơn . nhưng cuối cùng mục đích chỉ là truy xuất , tính toán , thực hiện 1 số công việc và hiển thị ra html .

@mabongdem : oop là lập trình hướng đối tượng , tạo ra các đối tượng chuẩn ( vd con người , con sói , con mèo ) với những thuộc tính , phương thức và sau đó tạo ra 1 cá thể riêng , ví dụ tôi và cậu là cá thể của class con người .
lập trình web oop là biến các thành phần của web thành 1 đối tượng , rồi sử dụng nó .
ví dụ 1 web có nhiều module ( or widget ..) thì tạo 1 class module , chứa những đặc tính cơ bản của module , rồi tạo thêm nhiều class module con thực hiện những công việc đặc thù như module đếm số lượt truy cập , module most read ...
nói chung ví dụ là thế , à ko tớ tưởng tượng là thế , vì chưa lập trình oop với php khi nào .
miễn cưỡng thì cứ miễn cưỡng vậy thui , đang chuẩn bị học nó
pcdinh viết 12:00 ngày 10/10/2018
Đề nghị em @ngoc_viet08 thực hành OOP nhiều lên đê. Em cứ ba hoa mãi về cái khoản em ko chịu đào sâu làm ô nhiễm hết cả khí quyển. Just kidding.

OOP trong PHP có thể chỉ đơn giản thế này thôi này

http://gist.github.com/158654
http://gist.github.com/158655

Khi phức tạp hơn thì nó có thể thành như thế này

http://spica.googlecode.com/svn/trun...ountSignin.php

Tốt nhất là bắt đầu ngồi code. Không tưởng tượng nữa. Đêm dài nằm mơ sẽ lắm mộng
ngoc_viet08 viết 11:51 ngày 10/10/2018
anh pcding nổi điên rồi thì phải , hình như yii là 1 framework function , non oop thì phải
thui em ko dám bàn luận nữa , để bắt đầu làm oop rồi công lực lên tí rùi nói chuyện sau
pcdinh viết 12:00 ngày 10/10/2018
Tính anh rất hiền hòa. Chẳng bao giờ nổi ... cái gì hết Chỉ đơn giản là có nhiều tình huống anh thấy ko thỏa hiệp được mà thôi

Yii là một OOP framework. Tất nhiên vì tính thực dụng, nó có các function khi nào ko cần quản lý trạng thái. Thường thì họ sẽ dùng function để xử lý một đối tượng tĩnh nào đó: text manipulation, data transformation. Tuy nhiên điểm bất lợi của function là quản lý trạng thái. Tính đóng gói của function thì đã được xử lý qua namespace hay pseudo prefix rồi.

@mabongdem

Bạn muốn tìm hiểu về OOP thì ko nên đọc code hay làm trên framework. Bạn sẽ chẳng bao giờ hiểu được chúng đâu. Vì ngoài lý thuyết sách vở, các framework designer còn mang vào đó cả tấn các kinh nghiệm thực hành và thiết kế kiến trúc của họ cả từ PHP lẫn non-PHP. Vì thế hãy bắt đầu từ những cái đơn giản hơn mà bạn có thể mổ xẻ được.
kenphan19 viết 11:49 ngày 10/10/2018
Được gửi bởi pcdinh
Tính anh rất hiền hòa. Chẳng bao giờ nổi ... cái gì hết Chỉ đơn giản là có nhiều tình huống anh thấy ko thỏa hiệp được mà thôi

Yii là một OOP framework. Tất nhiên vì tính thực dụng, nó có các function khi nào ko cần quản lý trạng thái. Thường thì họ sẽ dùng function để xử lý một đối tượng tĩnh nào đó: text manipulation, data transformation. Tuy nhiên điểm bất lợi của function là quản lý trạng thái. Tính đóng gói của function thì đã được xử lý qua namespace hay pseudo prefix rồi.

@mabongdem

Bạn muốn tìm hiểu về OOP thì ko nên đọc code hay làm trên framework. Bạn sẽ chẳng bao giờ hiểu được chúng đâu. Vì ngoài lý thuyết sách vở, các framework designer còn mang vào đó cả tấn các kinh nghiệm thực hành và thiết kế kiến trúc của họ cả từ PHP lẫn non-PHP. Vì thế hãy bắt đầu từ những cái đơn giản hơn mà bạn có thể mổ xẻ được.
cao thủ ý kiến có khác đọc lưu loát ghê ... khâm phục
@p/s: ước gì mình đc như anh ý
Bài liên quan
0