php Object Oriented Programming

php කියන්නේ object oriented language එකක් කියලා  අපි දන්නවා..මේ ලිපියෙන් php Object Oriented Programming කරන විදිහ දැනගමු ..මුලික Object Oriented Design Concepts ටික දන්නවනම් ඉතාමත්ම පහසුවෙන් මේක ඉගෙනගන්න පුළුවන්..class,methods,properties සහ Abstraction,Inheritance වැනි Object Oriented Concepts වල දැනුම තිබීම මේ ලිපියට  වැදගත්.

Fundamentals of OOP

මුලින්ම දැනගන්න  අවශ්‍යයි  කොහොමද class එකක් declare කරන්නේ..සහ object එකක් බාවිතා කරන විදිහ.

as

 

 

 

 

 

class කියන keyword එක බාවිතා කරලා person කියන class name එකෙන් class එකක් හදාගෙන තියෙන්නේ මේ විදිහට.ඊළගට බලමු properties හදුන්වා දෙන්නේ කොහොමද කියන එක.

ssa

 

 

 

 

 

මෙහිදී name සහ age කියන properties දෙක define කරලා තියෙන්නේ.properties වලට variables කියලා කියන්නත් පුළුවන්..එක්තරා විදිහක variables..ඊළගට methods..methods කියන්නේ class එකක් ඇතුලට ආපු function එකක් කිව්වොත් හරි..

classමෙහිදී bio කියලා method එකක් හදලා තියෙනවා..ඒ method එකෙන් යම්කිසි දෙයක් return කරනවා.මේ $this කියන key word එකෙන් කියන්නේ ඒ අවස්ථාවේ බාවිතා කරන object එක කියන එක…

දැන් අපි person class එක හදාගෙන method එකකුත් හදාගෙන ඉවරයි..ඊළගට අපි මේ class එක බාවිතා කරන්නේ කොහොමද කියලා බලන්න ඕන..

oneමුලින්ම index.php file එකට class එක declare කරපු person.php කියන file එක include කරගෙන තියෙනවා.දැන් index.php තුල මට person class එක බාවිතා කරන්න පුළුවන්.ඊළගට $rajith කියලා object එකක් හදලා තියෙනවා..එක person class එකේ instance එකක්..(person කියන්නේ සියලුම මිනිස්සුන්ට පොදු class එකක්,rajith කියන්නේ person class එකට එක උදාහරණයක්)

instance->name = ‘rajith;

instance->age = 21;

ඊට පස්සේ මේ object එකට අදාලව bio කියන කලින් හදාගත්ත method එක call කරලා print කරන්න කියලා තියෙන්නේ..bio method එකේ $this key word එකෙන් වෙන්නේ ඒ අවස්ථාවේ බාවිතා කරන object එකට අදාළ දේවල් කියලා කිව්වා..මෙතනදී වෙන්නේ rajith object එකට අදාල name එක සහ age එක assign වෙන එක.Capture
s

 

 

 

 

 

 

construct method

construct method එකෙන් වෙන්නේ class එකට අදාලව instance එකක් create උන ගමන් auto construct method එක execute වෙන එක..

qqමෙහිදී instance එකක් create කරාම automatically construct method එක මගින්

$this->name = current object given value

$this->age = current object given value

මේ විදිහට store වෙනවා.

asas

 

 

 

 

 

Inheritance

inheritance concept එක මේ විදිහට diagram එකකින් පෙන්නන්න පුළුවන්..

785px-Inheritance.svg

 

 

 

 

 

php වලින් කොහොමද මේ concept එක implement කරන්නේ.

මුලින්ම bird class එකක් ඕන..ඒ වගේම එකට අදාළ methods ඕන.

assaකලින් කතාකරපු විදිහටම class,properties,methods හදාගෙන තියෙනවා..

ඊළගට duck,cuckoo,ostrich class තුන ඕන ,ඒ වගේම ඒවා Birds class එකට inherited වෙන්න ඕන.

c d os

 

 

 

 

 

 

 

 

 

 

 

extends Birds වලින් තමා duck,cuckoo,ostrich class තුන Birds class එකට inherit කරන්නේ..දැන් Birds class එකේ තියෙන සියලුම methods,properties,

duck,cuckoo,ostrich class තුල අන්තර්ගත වෙනවා.

දැන් index.php file එකට include කරලා ඕනෑම class එකක් run කරන්න පුළුවන්..මෙතනදී Birds class එකේදී හදුන්වා දුන්න methods, duck,cuckoo,ostrich class  වලට බාවිතා කරලා තියෙනවා.

Captureas

 

 

 

 

 

 

visibility

properties සහ methods වලදී public key word එක බාවිතා කරලා තියෙනවා.මේ විදිහට අපිට

  1. public
  2. protected
  3. private

කියලා options 3ක් තියෙනවා.

public

public එකෙන් වෙන්නේ අපිට class එක තුල හෝ,sub classes තුල හෝ class එකෙන් පිටත ඕන තැනකදී public visibility එක තියෙන method එකකට හෝ properties වලට access කරන්න පුළුවන් වීම. උදාහරණයක් ලෙස index.php file එකේ ඉදන් උනත් Birds class එකේ properties බාවිතා කරන්න පුළුවන්.

protected

protected මගින් class එක සහ sub classes තුල methods සහ properties බාවිතා කරන්න පුළුවන්.නමුත් class  එකෙන් පිටත බාවිතා කරන්න බෑ..උදාහරණයක් වශයෙන් Birds class එකේ inheritance වන duck,cuckoo,ostrich class තුල බාවිතා කරන්න පුළුවන්.නමුත් එයින් පිටත(index.php)බාවිතා කරන්න ලබාදෙන්නේ නැ.

1properties protected ලෙස තියෙද්දී class  හෝ sub class එකකින් පිටතදී property එකකට access කරන්න හැදුවොත් අපිට මේ වගේ error එකක් එනවා.

Captureprivate

private ලෙස properties හෝ methods තියෙනවනම්..ඒවා බාවිතා කරන්න පුළුවන් ඒ class එක තුලදී පමණයි..subclass හෝ class එකෙන් පිටතදී බාවිතා කරන්න නිදහස ලබා දෙන්නේ නැ.

උදාහරණයක් ලෙස Birds class එක තුල legs property එක private කලවිට duck,cuckoo,ostrich class තුලවත් ඉන් පිටතවත් එය බාවිතා කරන්න බැ.

d1ඊලග ලිපියෙන් abstraction,dependency injections ගැන කියනවා.

Advertisements

2 thoughts on “php Object Oriented Programming

  1. Pingback: CodeIgniter | RST 'S BLOG

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s